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      列出所有动态链接库