一、Cacti简介
Cacti是通过snmpget来获取数据,使用RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善。界面友好。软件 Cacti 的发展是基于让 RRDTool 使用者更方便使用该软件,除了基本的 Snmp 流量跟系统资讯监控外,Cacti 也可外挂 Scripts 及加上 Templates 来作出各式各样的监控图。
Cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。
Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。
snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。关于RRDTool的知识请参阅RRDTool教学。
二、构造图:
三、准备所需要的软件包
Apache http://www.apache.org/
Mysql http://www.mysql.com/
Php http://www.php.net
Rrdtool http://oss.oetiker.ch/rrdtool/
Net-snmp http://www.net-snmp.org/
Cacti http://www.cacti.net/
其中apache、php通过yum安装
四、安装所需要的软件
4.1、安装LAMP
1 [root@node2 app]#yum -y install httpd php php-mysql 2 [root@node2 app]#chkconfig httpd on 3 [root@node2 app]#/etc/init.d/httpd start
此处mysql已经用源码安装,无需使用yum安装。
安装完成后,可通过登陆页面测试:
4.2、rrdtool
Rrdtool安装需要cairo、libxml2、pango库支持,可通过yum安装
1 [root@node2 app]# yum -y install cairo-devel libxml2-devel pango-devel 2 [root@node2 app]# tar zxvf rrdtool-1.4.8.tar.gz 3 [root@node2 app]# cd rrdtool-1.4.8 4 [root@node2 rrdtool-1.4.8]# ./configure --prefix=/usr/local/rrdtool 5 [root@node2 rrdtool-1.4.8]# make && make install 6 [root@node2 rrdtool-1.4.8]# ln -s /usr/local/rrdtool/bin/* /usr/local/bin/
4.3、安装net-snmp
1 [root@node2 app]# tar zxvf net-snmp-5.6.1.1.tar.gz 2 [root@node2 app]# cd net-snmp-5.6.1.1 3 [root@node2 net-snmp-5.6.1.1]# ./configure --prefix=/usr/local/net-snmp 4 [root@node2 net-snmp-5.6.1.1]# make && make install 5 [root@node2 net-snmp-5.6.1.1]# cp EXAMPLE.conf /etc/snmpd.conf 6 [root@node2 net-snmp-5.6.1.1]# ln -s /usr/local/net-snmp/bin/* /usr/local/bin/ 7 [root@node2 net-snmp-5.6.1.1]# vim /etc/snmpd.conf 8 rocommunity public localhost #去掉注释 9 [root@node2 net-snmp-5.6.1.1]# /usr/local/net-snmp/sbin/snmpd -c /etc/snmpd.conf 10 ----加入开启启动 11 [root@node2 net-snmp-5.6.1.1]# echo "/usr/local/net-snmp/sbin/snmpd -c /etc/snmpd.conf " >>/etc/rc.local
4.4、安装cacti
1 [root@node2 app]# tar zxvf cacti-0.8.8b.tar.gz 2 ----将cacti中的内容移到web目录 3 [root@node2 app]# mv cacti-0.8.8b/* /var/www/html 4 [root@node2 app]# chown -R apache:apache /var/www/html/ 5 ----连接到mysql创建数据库 6 [root@node2 app]# mysql 7 ----创建cacti数据库 8 mysql> create database cacti; 9 ----建立用户cacti,密码cacti123 10 mysql> insert into mysql.user(host,user,password) values ('localhost','cacti',password('cacti123')); 11 ----重载mysql授权表 12 mysql> flush privileges; 13 ----把数据库cacti授权于用户cacti 14 mysql> grant all on cacti.* to cacti@'localhost' identified by 'cacti123'; 15 [root@node2 app]# cd /var/www/html/ 16 [root@node2 html]# mysql -ucacti -pcacti123 cacti<cacti.sql 17 [root@node2 html]# vi include/config.php 18 $database_type = "mysql"; 19 $database_default = "cacti"; 20 $database_hostname = "localhost"; 21 $database_username = "cacti"; 22 $database_password = "cacti123"; 23 $database_port = "3306"; 24 ----在httpd中添加cacti目录的配置 25 [root@node2 app]# cat /etc/httpd/conf.d/cacti.conf 26 Alias /cacti /var/www/html/ 27 <Directory /var/www/html/> 28 DirectoryIndex index.php 29 Options -Indexes 30 AllowOverride all 31 order deny,allow 32 allow from all 33 AddType application/x-httpd-php .php 34 php_flag magic_quotes_gpc on 35 php_flag track_vars on 36 </Directory> 37 ----如果不添加此配置,登陆页面会报: 38 /cacti/auth_changepassword.php was not found on this serve
首次登陆页面可能会出现:
1 FATAL: Cannot connect to MySQL server on 'localhost'. Please make sure you have specified a valid MySQL database name in 'include/config.php' 2 3 或者: 4 5 [root@node2 app]# mysql -uroot -p 6 Enter password: 7 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
解决方案: ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
使用浏览器打开http://ip/install/,会看到安装向导:
点击FINISH后出现下面的界面:
、
默认用户名和密码admin,第一次登陆会要求更改密码。
4.5、设置cacti数据采集轮询时间
1 [root@node2 ~]# crontab -l 2 */5 * * * * env LANG=C /usr/bin/php /var/www/html/poller.php
五、常用插件安装
cacti-0.8.7i-PIA-3.1集成了plugin架构扩展,所以可以直接开启后就可以安装其他插件,打开"Console"----"User Management"----"admin"----"Realm Permissions",选择以下后,单击保存"save"。
之后会在"Console"中的"Configuration"看到一个"Plugin Management"。
5.1、Monitor安装(以图形方式显示设备状态)
[root@node2 u01]# tar zxvf monitor-v1.3-1.tgz [root@node2 u01]# mv monitor /var/www/html/plugins/ [root@node2 u01]# cd /var/www/html/plugins/monitor/ [root@node2 monitor]# mysql -ucacti –pcacti123 cacti<monitor.sql
打开Cacti的web页面"Plugin Management"激活插件:
5.2、Setting安装(用于邮件报警)
1 [root@node2 u01]# tar zxvf settings-v0.71-1.tgz 2 [root@node2 u01]# mv settings /var/www/html/plugins
打开Cacti的web页面"Plugin Management"激活插件
打开"console"----"Settings"可以找到以下:
5.3、Thold安装(用于设备异常预警、阀值报警)
1 [root@node2 u01]# tar zxvf thold-v0.4.9-3.tgz 2 [root@node2 u01]# mv thold /var/www/html/plugins/
打开Cacti的web页面"Plugin Management"激活插件:
六、最后效果图: