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),它能够存储的数据笔数在创建时就已经定义。
2、安装
一.安装nginx,php,mysql
二.安装 RRDtool和net-snmp
yum install rrdtool
yum install net-snmp
yum install net-snmp-utils
修改snmp配置
shell>vi /etc/snmp/snmpd.conf
把第89行前面的注释符号#去掉,变成
view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc
在62行进行修改:将
access notConfigGroup "" any noauth exact systemview 改为
access notConfigGroup "" any noauth exact mib2 none none
snmp默认的弱口令为Public,安全改为一个更复杂的口令,
修改第41行的community字段..把public改成mypassword就可以了,将“default”改为你想哪台机器
可以看到你的snmp信息,如10.10.10.10,)
重启服务service snmpd restart
查看snmp是否获取信息
snmpwalk -v 1 127.0.0.1 -c public
如果可以看到大量的信息输出..就表明snmp已经配置好了
三.安装cacti
1. 解压
shell>cp cacti-version.tar.gz /usr/local/webserver/nginx/html/
shell> tar xzvf cacti-version.tar.gz
2. 创建数据库
shell> mysqladmin --user=root create cacti
3. 导入数据
shell> mysql cacti < cacti.sql
4. 创建cacti用户
shell> mysql --user=root mysql
mysql> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'somepassword';
mysql> flush privileges;
5. 剪辑 include/config.php 文件,更改数据库连接
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "somepassword";
6. 配置nginx.conf
server {
listen 80;
root html; #apps下面有cacti目录
index index.php index.html;
location ~.*\.(php|php5)?$ {
root html; #apps下面有cacti目录
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
}
7.增加www的权限
chown -R /usr/local/webserver/nginx/html/cacti/log /usr/local/webserver/nginx/html/cacti/raa
*/5 * * * * php /usr/local/webserver/nginx/html/cacti/poller.php > /dev/null 2>&1
8. 浏览器访问:
http://your-server/cacti/
进入安装界面
安装完成,就可以使用了,默认用户名:admin密码:admin
notebook-----------------------------------------
cacti
周期性执行能够获取数据的命令,并将取回的数据保存至RRD文件中 利用rrdtool绘图并展示
crontab -u cactiusr -e
*/5 * * * * /php/bin/php /www/cacti/poller.php >/dev/null 2>$1
分 时 日期 月份 星期
php 开发网页程序 LANP LNMP
--enable-sockets (php编译中) 插件机制 thold 报警插件
模板
数据模板 数据格式
图形模板 取得数据,并按照要求展示
主机模板 包括数据模板和图形模板
cacti安装 注意cacti的主机路径 cacti默认 扫描cacti文件夹
cacti 配置 如果主机名不是localhost时 ,需要更改cacti中配置的主机名
数据获取 --》数据模板--》主机模板 --》图形模板
some questions about cacti
1、cacti登录密码忘记解决方法;如果是admin 的密码丢失,id = 1;其他用户以此类推。
进入mysql
mysql> show databases;
mysql> use cacti;
mysql> show tables;
mysql> update user_auth set password=md5("newpassword") where id='1';新的cacti密码就是newpassword了
cacti 无法生成数据
1,查看log下的日志文件。一般那里会有提示
2,测试SNMP是不是工作正常 snmpwalk -c community -v 2c hostIP if正常的话会出现一些数据。不正常会出现一些错误,也会有对应的错误提示。
3,自动运行poller.php没有。有没有加入cacti的的用户。。有没有给 cacti用户写入rra/ log/的权限。对应的命令为:pw useradd cactiuser –d /www/htdocs/cacti(具体路径具体对待)命令作用。为cactiuser这个用户加上cacti这个文件夹的权限 cd /www/htdocs/cacti chown -R cactiuser rra/ log/ cactiuser加到/rra /log的写权限。
4,crontab –u cactiuser –e 为cactiuser加上自动运行poller.php的任务:
*/1 * * * * root /usr/local/bin/php /usr/local/share/cacti/poller.php /dev/null 2>&1
1分钟刷新一次数据。你也可以根据需要还设置。
5。#####把cacti目录里的cmd.php和poller.php文件加下运行的权限。装过cacti遇到过很多问题,比如说无图像或者无数据。
crontab -u -e 定义定时执行 使用nginx 或apache 运行用户的身份执行
运行PHP时所需要的LIB(安装RRDTOOLS时产生的LIBRRD.SO.. 或是其它必须的)的问题
在命令行执行POLLER.PHP与在计划任务执行POLLER.PHP时所需要的LIB的路径是不一样的,所以在安装RRDTOOLS时最好安装在/usr/lib中,或者把产生的LIBRRD.SO....放在/usr/lib中,这样在计划任务中执行时就会找到这些LIB,这样就可以顺利执行了.
1.cacti sonsole --> system utilities –>Rebuild poller cache 情况cacti缓存
2.系统时间不准确,重新设置时间
3.图像没有生成,运行#/usr/bin/php /www/htdocs/cacti/poller.php –force 生成数据
4.权限问题,修改权限#chmod 777 -R /srv/www/htdocs/cacti/rra log/
5.数据库表有损坏,修复#mysqlcheck -ao cacti –auto-repair -uroot -p
6.重启snmpd服务#service snmpd restart
通过以上的检查,一般问题都是可以解决的!
cacti 没有图像 排错
1. 首先检查一下rra/下面,有没有数据,如果没有检查rra/ log/的拥有者是不是cactiuser
2. snmpwalk -v 2c -c public ServerIP if 用来测试被控对象(serverIP)是否开启了SNMP服
务
3. snmpwalk -v 2c ServerIP -c public .1.3.6.1.4.1.2021.10.1.3 查看被控端是否有CPU负
载的数据返回
4. /usr/local/bin/php /home/wwwroot/cacti/poller.php 用来测试PHP是否可以采集到数据
。如果上面的都正确,但这步出错,很有可能是PHP配置的问题,或开启了SuLinux。
5. 如果按第2步snmpwalk能采集到数据,但第3步无法采集,可能是PHP设置的问题,修改
PHP.ini,很有可能是PHP权限问题。如果第4步正常而无法显示图,则可能是rra/ log/ 的
Owner不对
6. #crontab -e
*/5 * * * * /usr/local/php/bin/php /usr/local/apache/htdocs/cacti/poller.php > /dev/null 2>&1
//每5分钟自动执行一次数据
注意:如果执行没成功是模式没有执行
或者运行一下该命令看rra文件夹是否有数据
# /usr/local/php/bin/php /usr/local/apache/htdocs/cacti/poller.php
查询模式crond的
[root@localhost bin]# chkconfig --list| grep cron
anacron 0:off 1:off 2:on 3:off 4:on 5:on 6:off
crond 0:off 1:off 2:on 3:off 4:on 5:on 6:off
[root@localhost bin]# chkconfig crond on //更改模式为启动计划任务
[root@localhost bin]# chkconfig --list| grep cron
anacron 0:off 1:off 2:on 3:off 4:on 5:on 6:off
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:of
ldconfig -p 列出所有动态链接库