• 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  [错误]

  • 相关阅读:
    软件工程问题清单
    问题清单
    2020软件工程3作业
    2020软件工程作业02
    2020软件工程作业01
    2020软件工程个人作业06——软件工程实践总结作业
    2020软件工程作业03
    2020软件工程作业05
    软件工程作业 疑问总结
    2020软件工程作业04
  • 原文地址:https://www.cnblogs.com/bluewelkin/p/4343697.html
Copyright © 2020-2023  润新知