其实通过yum好依赖的php、rrdtool、snmp后,安装配置Cacti其实很简单。
环境说明
五台机器:cu1~cu5(centos6.6), 其中仅cu2作为cacti服务器,所有服务器都安装snmp服务。
1
2
3
4
5
| cu1 192.168.0.37
cu2 192.168.0.214
cu3 192.168.0.148
cu4 192.168.0.30
cu5 192.168.0.174
|
软件安装
版本信息在贴的内容中体现。PHP不会,仅仅作为一个工具来使用。
Cacti服务器机器安装
mysql数据库5.1
1
2
| [root@cu2 ~]# rpm -q mysql
mysql-5.1.73-5.el6_6.x86_64
|
首先用yum安装依赖软件php,httpd,snmp和rrdtool。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
| [root@cu2 ~]# yum install epel-release
[root@cu2 ~]# yum install httpd php php-devel php-mysql php-pear php-common php-gd php-mbstring php-cli php-snmp net-snmp net-snmp-utils net-snmp-libs rrdtool
...
Installed:
net-snmp-libs.x86_64 1:5.5-54.el6_7.1 net-snmp-utils.x86_64 1:5.5-54.el6_7.1 php.x86_64 0:5.3.3-46.el6_6 php-cli.x86_64 0:5.3.3-46.el6_6 php-common.x86_64 0:5.3.3-46.el6_6
php-devel.x86_64 0:5.3.3-46.el6_6 php-gd.x86_64 0:5.3.3-46.el6_6 php-mbstring.x86_64 0:5.3.3-46.el6_6 php-mysql.x86_64 0:5.3.3-46.el6_6 php-pear.noarch 1:1.9.4-4.el6
php-snmp.x86_64 0:5.3.3-46.el6_6 rrdtool.x86_64 0:1.3.8-7.el6
Dependency Installed:
autoconf.noarch 0:2.63-5.1.el6 automake.noarch 0:1.11.1-4.el6 dejavu-fonts-common.noarch 0:2.33-1.el6 dejavu-lgc-sans-mono-fonts.noarch 0:2.33-1.el6
dejavu-sans-mono-fonts.noarch 0:2.33-1.el6 fontpackages-filesystem.noarch 0:1.41-1.1.el6 lm_sensors-libs.x86_64 0:3.1.1-17.el6 net-snmp.x86_64 1:5.5-54.el6_7.1
php-pdo.x86_64 0:5.3.3-46.el6_6
Updated:
httpd.x86_64 0:2.2.15-47.el6.centos
Dependency Updated:
httpd-tools.x86_64 0:2.2.15-47.el6.centos
Complete!
[root@cu2 ~]# service httpd start
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.0.214 for ServerName
[ OK ]
[root@cu2 ~]# service snmpd start
Starting snmpd: [ OK ]
[root@cu2 ~]# vi /etc/snmp/snmpd.conf
41 #com2sec notConfigUser default public
42 com2sec notConfigUser 192.168.0.214 public
...
63 #access notConfigGroup "" any noauth exact systemview none none
64 access notConfigGroup "" any noauth exact all none none
...
86 ## incl/excl subtree mask
87 view all included .1 80
[root@cu2 ~]# service snmpd restart
# 使用snmpwalk可以得到数据
[root@cu2 ~]# snmpwalk -Os -c public -v 1 cu2 system
[root@cu2 ~]# snmpwalk -v 1 -c public localhost IP-MIB::ipAdEntIfIndex
|
然后,把Cacti应用解压到httpd默认目录下/var/www/html。同时配置cacti连接到数据库。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| [root@cu2 ~]# cd /var/www/html/
[root@cu2 html]# tar zxvf cacti-0.8.8f.tar.gz
[root@cu2 html]# ln -s cacti-0.8.8f cacti
[root@cu2 html]$ mysql -u root -p -h 127.0.0.1
Enter password:
mysql>
mysql> create database cacti character set UTF8;
mysql> grant all on cacti.* to cacti@'%' identified by 'cacti';
mysql> flush privileges;
mysql> source /var/www/html/cacti/cacti.sql;
[root@cu2 html]# vi cacti/include/config.php
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "127.0.0.1";
$database_username = "cacti";
$database_password = "cacti";
$database_port = "3306";
[root@cu2 html]$ vi /etc/php.ini
date.timezone = "Asia/Shanghai"
# 重启httpd服务
[root@cu2 cacti]# php poller.php
[root@cu2 cacti]# crontab -e
* * * * * php /var/www/html/cacti/poller.php > /var/www/html/cacti/log/cron.log 2>&1
|
打开浏览器访问:http://cu2/cacti/ 首先会进入到install步骤,按照提示一步下一步,最后输入admin/admin登录。点击右上角的Preview View就可以看到图了。
如果启动错误,查看日志文件看日志:
1
2
| [root@cu2 cacti]# less /var/log/httpd/error_log
[root@cu2 cacti]# less log/cacti.log
|
添加插件
(网上很多文章都要打补丁,我这里的版本是最新的,同时plugin的补丁没有对应的版本,这里直接安装插件)
从http://docs.cacti.net/plugins下载monitor。把下载文件解压到plugins目录下:
1
2
3
4
5
| [root@cu2 plugins]# pwd
/var/www/html/cacti/plugins
[root@cu2 plugins]# ll
-rw-r--r-- 1 1000 users 44 Jul 20 21:42 index.php
drwxr-xr-x 4 root root 4096 Oct 6 2011 monitor
|
然后进入Plugin Management页面http://cu2/cacti/plugins.php,就能看到Monitor插件。点击表格Actions列的安装和启用图标(按钮),启用后,最上面页签会增加新的页签项monitor。
点击monitor页签,可以查看机器存活的状态。
同时Settings页面多了Misc选项卡,可以配置修改monitor属性。
注意:网上版本资料都有配置config.php添加plugins变量。我这里没进行这个操作也是ok的,安装-启用成功后会把monitor下面的sql更新到数据库,不需要手动执行。
安装spine
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| 注意:设置下umask避免不需要的麻烦: umask 0022
[root@cu2 ~] tar zxvf cacti-spine-0.8.8f.tar.gz
[root@cu2 cacti-spine-0.8.8f]# yum install -y mysql-devel net-snmp-devel
[root@cu2 cacti-spine-0.8.8f]# ./configure --prefix=/usr/local/cacti-spine
[root@cu2 cacti-spine-0.8.8f]# make && make install
# 如果make缺少报了错,需要重新configuration一遍
[root@cu2 cacti-spine-0.8.8f]# cd /usr/local/cacti-spine/etc
[root@cu2 etc]# mv spine.conf.dist spine.conf
[root@cu2 etc]# vi spine.conf
DB_Host 127.0.0.1
DB_Database cacti
DB_User cacti
DB_Pass cacti
DB_Port 3306
|
在[Settings]-[Paths]添加Spine Poller File Path为/usr/local/cacti-spine/bin/spine
。在[Poller]选项卡,[Poller Type]修改为spine,[Poller Interval]和[Cron Interval]修改为一分钟即Every Minute。
点击Console -> Data Templates -> [Interface -> Traffic ] 添加“每分钟”流量视图,将轮询时间设置为60秒,Heartbeat时间设置为120秒(traffic_in/traffic_out里面的Heartbeat时间也设置为120秒)
被监控机器配置
被监控的机器,仅仅需要安装snmp即可。然后配置snpmd.conf即可。
1
2
3
4
5
6
7
8
9
10
11
12
| [root@cu5 ~]# yum install net-snmp net-snmp-utils net-snmp-libs -y
[root@cu5 ~]# vi /etc/snmp/snmpd.conf
41 #com2sec notConfigUser default public
42 com2sec notConfigUser 192.168.0.214 public
...
63 #access notConfigGroup "" any noauth exact systemview none none
64 access notConfigGroup "" any noauth exact all none none
...
86 ## incl/excl subtree mask
87 view all included .1 80
[root@cu2 ~]# service snmpd restart
|
然后在Cacti的web页面添加Device(主机):
- 点击Console->Devices,打开设备管理页面。
- 点击右上角的add,添加一个新的机器
- 当主机的信息填好之后,点击Create
- Host Template就是一个模板,会事先建立一些Associated Graph Templates和Associated Data Queries的数据,如Load Average,Memory Uages等。如果不确定直接选None即可。
- SNMP Version选
Version 2
,SNMP Community与snmpd.conf中对应,如果安装上面操作,默认即可。
- 此时你的页面左上角应该显示:Save Successful,并且已经显示出了主机信息和SNMP信息,如果SNMP信息显示 SNMP error,请查看最后的问题综述。
- 这时我们就可以添加相应的监控项了,在页面最下方的Associated Graph Templates中添加图形模板,在Associated Data Queries中添加数据模板。
- 保存,点击右上角的Create Graphs for this Host,来为刚才通过模板所获得到的数据进行画图。
- 选择好需要画图的项目后,点击右下角的Create,左上角会出现被创建出来的画图项。
总结就是添加设备,然后生成图形,最后等待生成画图查看。
在Graphs界面左边显示树新添加主机。
- 在Cacti界面Graph Trees中,选择进入节点(或者系统默认的Default Tree)。
- 添加一个新的显示项,在Tree Item Type中选择Host,然后在下面的Host中选择我们刚才创建的主机。点击Create。
http://docs.cacti.net/templates
进阶
http://skypegnu1.blog.51cto.com/8991766/1537374
cacti是如何获取数据呢?
其实cacti获取数据的方式是多样化的,通过周期性的执行某个脚本,或者使用snmp,更或者是ssh,这些都是根据实际需要以及方便性来抉择。cacti需要周期性的驱动这些获取数据的脚本执行,并把取得的数据保存至相应的rrd数据库中。
cacti是如何保存数据(创建rrd,并更新数据)呢?
这就是数据模板的功能。
cacti是如何展示数据(绘图)呢?
这就是图形模板的功能。
http://skypegnu1.blog.51cto.com/8991766/1537615
http://skypegnu1.blog.51cto.com/8991766/1538459
http://skypegnu1.blog.51cto.com/8991766/1547029
资料
入门的文档不错,可以到微盘下载。
1
2
3
4
5
6
7
8
9
| Cacti.0.8_Beginner.Guide.pdf
Cacti实战指南--备份还原.pdf
Cacti实战指南-完美部署.pdf
Cacti实战指南-巧设轮询.pdf
Cacti实战指南-插件安装.pdf
Cacti实战指南-用户权限.pdf
Cacti实战指南-邮件预警.pdf
Cacti实战指南-阀值预警.pdf
|
参考
–END