cacti

一、cacti

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

 

三、安装rrdtool

 ./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,保存退出即可!

四、安装net-snmp

[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日

一、安装rrdtool

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

二、安装配置net-snmp

1、安装net-snmp

yum install net-snmp net-snmp-libs net-snmp-utils

2、配置net-snmp
在/etc/snmp/snmpd.conf中修改:

  1. view    systemview    included   .1.3.6.1.2.1.1 修改为:
  1. view    systemview    included   .1.3.6.1.2.1

3、测试net-snmp

    1. service snmpd start
    2. snmpwalk -v 1 -c public localhost .1.3.6.1.2.1.1.1.0

出现SNMPv2-MIB::sysDescr.0 = STRING: Linux cronos 2.4.28 #2 SMP ven jan 14 14:12:01 CET 2005 i686

三、安装LAMP

  1. yum install httpd php php-mysql php-snmp php-xml php-gd mysql mysql-server
  2. service httpd start
  3. service mysqld start
  4. mysqladmin -uroot password yourpassword
  5. mysqladmin --user=root --password reload 

四、安装cacti

1、下载cacti

  1. cd /tmp
  2. wget http://www.cacti.net/downloads/cacti-0.8.8b.tar.gz
  3. tar xzf cacti-0.8.8b.tar.gz
  4. mv cacti-0.8.8b /var/www/html/cacti
  5. cd /var/www/html/cacti

2、创建数据库

  1. mysqladmin --user=root -p create cacti

3、导入数据库

  1. mysql -uroot -p cacti < cacti.sql

4、创建数据库用户

  1. shell> mysql -uroot -p mysql
  2. mysql> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'cactipassword';
  3. mysql> flush privileges;

5、配置include/config.php

  1. $database_type = "mysql";
  2. $database_default = "cacti";
  3. $database_hostname = "localhost";
  4. $database_username = "cactiuser";
  5. $database_password = "cactipassword";
  6.  
  7. /* load up old style plugins here */
  8. $plugins = array();
  9. //$plugins[] = 'thold';
  10.  
  11. /*
  12.    Edit this to point to the default URL of your Cacti install
  13.    ex: if your cacti install as at http://serverip/cacti/ this
  14.    would be set to /cacti/
  15. */
  16. $url_path = "/cacti/";
  17.  
  18. /* Default session name - Session name must contain alpha characters */
  19. #$cacti_session_name = "Cacti";

6、设置目录权限

  1. useradd cactiuser
  2. chown -R cactiuser rra/ log/

7、配置计划任务

  1. echo "*/5 * * * * cactiuser php /var/www/html/cacti/poller.php > /dev/null 2>&1">>/etc/crontab
  2. service crond restart
  3. service httpd restart

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

  1. */1 * * * * php /usr/share/cacti/poller.php > /dev/null 2>&1  
  2.  

注意:

这个地方不能按照官方文档来,不能加上执行的用户名,

*/5 * * * * gaohu php /usr/share/cacti/poller.php > /dev/null 2>&1  [错误]

原文地址:https://www.cnblogs.com/bluewelkin/p/4343697.html