1. cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。
2. Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。
3. snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。
通过上图我们可以发现Cacti 有三大组件:MySQL 数据库、RRDtool 工具、Net-Snmp 程序。MySQL并不负责监控数据的存储,只保存模板和rra 文件与主机对应等信息,而真正的监控数据存储和图像展现都是rrdtool 来做的。而Net-SNMP 负责数据的采集。
1、数据库的修改
创建数据库用户
CREATE DATABASE cacti; grant all on cacti.* to cacti@'localhost' identified by 'cacti'; grant all on cacti.* to cacti@'127.0.0.1' identified by 'cacti'; flush privileges;
把cacti目录下的cacti.sql 导入cactidb数据库
/usr/local/mysql/bin/mysql -u root -padmin cactidb < cacti.sql
./configure --prefix=/usr/local/rrdtool
I could not find a working copy of glib-2.0. Check config.log for hints on why this is the case.
I could not find a working copy of cairo-pdf. Check config.log for hints on why this is the case
I found a copy of pkgconfig, but there is no libxml-2.0.pc file around.
(1)检查并安装相关依赖包
[root@test ~]# yum install cairo-devel libxml2-devel pango-devel pango libpng-devel freetype freetype-devel libart_lgpl-devel pear pear-devel
安装完以上yum包,错误问题消失。
如果yum出现一堆错误
Error Downloading Packages: libxml2-2.7.6-17.el6_6.1.x86_64: failure: Packages/libxml2-2.7.6-17.el6_6.1.x86_64.rpm from updates: [Errno 256] No more mirrors to try. zlib-devel-1.2.3-29.el6.x86_64: failure: Packages/zlib-devel-1.2.3-29.el6.x86_64.rpm from base: [Errno 256] No more mirrors to try. libxml2-devel-2.7.6-17.el6_6.1.x86_64: failure: Packages/libxml2-devel-2.7.6-17.el6_6.1.x86_64.rpm from updates: [Errno 256] No more mirrors to try. libxml2-python-2.7.6-17.el6_6.1.x86_64: failure: Packages/libxml2-python-2.7.6-17.el6_6.1.x86_64.rpm from updates: [Errno 256] No more mirrors to try.
[root@host-80-0-2-30 yum.repos.d]# ping www.baidu.com ping: unknown host www.baidu.com
解决方案:
然后ping内网ip地址其他通,说明DNS有问题
vi /etc/resolv.conf,里面是否有nameserver xxx.xxx.xxx.xxx,比如使用dns服务器 nameserver 8.8.8.8,如果有,修改一个可用的dns服务器,如8.8.8.8或者4.4.4.4,保存退出即可!
[root@node2 app]# tar zxvf net-snmp-5.6.1.1.tar.gz
[root@node2 app]# cd net-snmp-5.6.1.1
[root@node2 net-snmp-5.6.1.1]# ./configure --prefix=/usr/local/net-snmp
[root@node2 net-snmp-5.6.1.1]# make && make install
[root@node2 net-snmp-5.6.1.1]# cp EXAMPLE.conf /etc/snmpd.conf
[root@node2 net-snmp-5.6.1.1]# ln -s /usr/local/net-snmp/bin/* /usr/local/bin/
[root@node2 net-snmp-5.6.1.1]# vim /etc/snmpd.conf
rocommunity public localhost #去掉注释
[root@node2 net-snmp-5.6.1.1]# /usr/local/net-snmp/sbin/snmpd -c /etc/snmpd.conf
----加入开启启动
[root@node2 net-snmp-5.6.1.1]# echo "/usr/local/net-snmp/sbin/snmpd -c /etc/snmpd.conf " >>/etc/rc.local
让我们测试一下,看看snmp是否已经正常工作 ,下面的命令 应该会得到本机的ip地址信息
snmpwalk -c public -v 1 -m ALL 127.0.0.1 .1.3.6.1.2.1.4.20
如果你添加了远程主机就用下面的命令测试
snmpwalk -c public -v 1 -m ALL 192.168.1.118 .1.3.6.1.2.1.4.20
------------------------------------------------------------------------------------------------------------------------
2015年3月18日
rpm -ivh http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
yum install rrdtool -y
1、安装net-snmp
yum install net-snmp net-snmp-libs net-snmp-utils
2、配置net-snmp
在/etc/snmp/snmpd.conf中修改:
3、测试net-snmp
出现SNMPv2-MIB::sysDescr.0 = STRING: Linux cronos 2.4.28 #2 SMP ven jan 14 14:12:01 CET 2005 i686
1、下载cacti
2、创建数据库
3、导入数据库
4、创建数据库用户
5、配置include/config.php
6、设置目录权限
7、配置计划任务
8、完成cacti的安装
1) 在浏览器中输入:http://www.yourdomain.com/cacti/
默认用户名:admin 密码:admin
参考文章:https://www.centos.bz/2012/01/cacti-install-tutorials/
常见错误问题解决:
http://www.cnblogs.com/jerryxing/archive/2012/05/27/2520495.html
注意:
这个地方不能按照官方文档来,不能加上执行的用户名,
*/5 * * * * gaohu php /usr/share/cacti/poller.php > /dev/null 2>&1 [错误]