一、cacti概述

   1.1 cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmprrdtoolcacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。

   1.2 Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ipsnmp团体名、端口号、模板信息等变量。

   1.3 snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(RoundRobin Archive),它能够存储的数据笔数在创建时就已经定义。

   1.4 LAMP: Linux + Apache + Mysql + PHP ,另此Cacti 版本号为0.8.8H只能用于文档centos6PHP 5.6 Mysql 5.6,高于以上版本会报错;

   1.5 修改/etc/crontab配置文件,增加红框内的内容重要:监控利器--Cacti_第1张图片

二、安装rrdtool

   2.1 rpm-ivh http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

   2.2 yum install rrdtool -y


三、安装配置net-snmp

   3.1 安装net-snmp

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

   3.2 配置net-snmp,在/etc/snmp/snmpd.conf中修改:

       view systemview included  .1.3.6.1.2.1.1为:view  systemview  included  .1.3.6.1.2.1

   3.3 测试net-snmp

       service snmpd start

       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 1414:12:01 CET 2005 i686


四、安装LAMP

yum install httpd php php-mysql php-snmp php-xml php-gd mysqlmysql-server


五、安装cacti

5.1 cd /home

    wget http://www.cacti.net/downloads/cacti-0.8.8h.tar.gz

    tar xzf cacti-0.8.8h.tar.gz

    mv cacti-0.8.8h /var/www/html/cacti

      cd /var/www/html/cacti

  5.2 创建数据库,数据库名称可根据个人爱好去定义;

      mysqladmin--user=root -p create cacti

      或是进入mysql后台创建数据库,如下图:

      wKiom1nE2BKRyYptAAAGGd4YNF4086.png

  5.3 导入数据库,此需要mysql-uroot -p cacti < cacti.sql

  5.4 创建数据库用户,注,我个人比较懒mysql里设定的全是空密码,在生产环境里必须设定密码以保证数库的安全;另外在生产环境需要设定独立的数据库用户名,不要使用root;

    shell> mysql -u root -p      

    mysql> GRANT ALL ON cacti.* TO root@localhost ;

    mysql> flush privileges;

   5.5 配置include/config.php

    $database_type = "mysql";

    $database_default = "cacti";

    $database_hostname = "localhost";

    $database_username = "root";

    $database_password = "";

   5.6 设置目录权限

      chown -R apache rra/ log/

   5.7 配置计划任务

       echo"*/5 * * * * cactiuser php /var/www/html/cacti/poller.php > /dev/null2>&1">>/etc/crontab

       servicecrond restart

       servicehttpd restart

   5.8 完成cacti的安装

       在浏览器中输入:http://XX.XX.XX.XX/cacti/

    默认用户名:admin 密码:admin

       更改密码

    设置cacti用到的命令路径

       监控利器--Cacti_第2张图片

-------------------------------------------------------------------------------------

注:至此cacti设定完成,只需要交换机设定相关的SNMP服务,Cacti就可以采集到相关的数据。因本文的重点不是数据采集,故对数据如何采集不作说明;

-------------------------------------------------------------------------------------

六、Plugins管理

   Plugins存放位置/var/www/html/cacti/plugins -->只做经常用到的Plugin说明以及安装使用

  • Configstore:用于管理交换机防火墙的configure的备份管理。这插件可以帮助对所有设备进行分类批量进行备份。

  • Weathermap :天气图就不用说了,这是我感觉对网络拓扑图监控最为强大的一个插件,商业软件有些功能不能解决的Weathermap都可以做到,比如你可以一张图上图示几个AP接的终端用户数;你可以一张拓扑图上显示你的网络架构的流量、各设备的CPU、内存等信息;你可以一张图上显示一个机房所有服务器设备运行的网卡信息、I/0信息等;

  • Syslog用于收集所有网络设备的Log;查看网络设备日志对于网工来说很正常的一件事情,但当你对面上千台网络设备时,你如分析海量的设备信息?对,syslog可以帮助你解你的烦恼,它可能快速收集所有设备信息,再根据你编写的Alert分类,你就可以从分析日志繁重的工作中分离出来;

  • Thold用于设定各类的阀值,比如你的设备被***了CPU跑到100%,你是如何去发现以及解决问题?thold可以帮助你解决此类问题; 

wKiom1nE4Z2AOyjhAACLskPhBX0141.png 

七、Plugins:  Configstore使用 

   7.1 Linux上安装tftp:  需要安装xinetdtftptftp-server3软件

  • 如果能上网,通过yum安装:

    sudo yum install xinetd

    sudo yum install tftp

    sudo yum install tptp-server

  • 如果不能上网,可以直接安装提供的rpm包:

    sudo rpm -ivh xinetd-2.3.14-18.fc9.i386.rpm

    sudo rpm -ivh tftp-0.48-3.fc9.i386.rpm

    sudo rpm -ivhtftp-server-0.48-3.fc9.i386.rpm

   7.2 配置tftp服务器,修改/etc/xinetd.d/tftp文件

     disable=yes 改为  disable=no

     server_args=-s /var/lib/tftpboot  改为  server_args=-s /opt/backups  -c

   监控利器--Cacti_第3张图片 

   7.3 检查tftp

  • 修改/etc/sysconfig/selinux文件 :SELINUX=disabled   (系统默认是enforcing)要改成disabled

  • chmod 777 /opt/backups  修改/opt/backups文件夹的权限 

  • 启动  service xinetd restart

  • o查看tftp服务是否开启:netstat -a | grep tftp 显示结果为  udp    0   0 *:tftp     *:*  表示服务已经开启,tftp配置成功

   wKiom1nE6rKz3NZRAAANIrjPy9k279.png

 7.4 Configstore设定

  • 设定各类别的Accounts以管理不同设备的权限 监控利器--Cacti_第4张图片

  • 添加交换机至设备组并设定备份时间,可分日/周/月三种,必须设定DeviceType以及认证组别否则不能备份

    监控利器--Cacti_第5张图片

  • 下图为已经已经进行备份完成的设备

    监控利器--Cacti_第6张图片

  • configstore下载 https://forums.cacti.net/viewtopic.php?f=19&t=39573&hilit=configstore

八、Plugins:  syslog使用 

  8.1 安装syslog-ng

      rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

             yum install -y syslog-ng

 8.2 配置syslog-ng  

      vi /etc/syslog-ng/syslog-ng.conf,在此配置文件最后加上如下:

# Remote logging

        source s_remote {

        tcp(ip(XXX.XXX.XXX.XXX) port(514)); [备注:此处为本机的IP]

        udp(ip(XXX.XXX.XXX.XXX) port(514));

        };

      destination d_separatedbyhosts {

         file("/var/log/syslog-ng/$HOST/messages" owner("root") group("root") perm(0640) dir_perm(0750) create_dirs(yes));

     };

    log { source(s_remote); destination(d_separatedbyhosts); };

    destination d_mysql {

    program("mysql  -u root syslog" [备注:syslog为收集设备日志数据库]

    template("INSERT INTO syslog_incoming (host, facility, priority, date, time, message, status)

    VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$YEAR-$MONTH-$DAY', '$HOUR:$MIN:$SEC', '$MSG', '0' );\n")

    template-escape(yes));

    };

    log {source(s_remote);destination(d_mysql);};


  8.3. 安装syslog插件,此syslog已经安装,此不作说明并作如下配置:

  • 创建syslog 数据库 

    mysql -uroot -p

    create database syslog;

    GRANT ALL ON syslog.* TO root@localhost ;[备注:在生产环境中要设定数据库的密码] 

  • 进入cacti的syslog插件目录执行下面命令

      mysql -uroot -p syslog < /var/www/html/cacti/plugins/syslog/syslog.sql  [导入相关数据表]

  •  vi /var/www/html/cacti/plugins/syslog/config.php 内容如下:

    监控利器--Cacti_第7张图片

  • 修改/etc/crontab,增加如下内容

    */1 * * * * root php /var/www/html/cacti/plugins/syslog/syslog_process.php

    wKiom1nFDYDDpyBiAAAOGKQ5W2w735.png

  • 重启以下服务

      /etc/init.d/syslog-ng restart

      /etc/init.d/mysqld restart

  • 交机或是路由器增加log日志指向服务器

    logging source-interface Loopback0

    logging host 10.133.83.194

    logging on

  • 完成后系统收集的log,后面就可以根据收集到的数据进行分类alert消息

    监控利器--Cacti_第8张图片

九、Plugins:  weathermap使用 

   weathermap监控拓扑图如下:

   监控利器--Cacti_第9张图片

   下图监控状态实例说明:

   监控利器--Cacti_第10张图片

    3123928e3c61e205d33e81acb91df585.png--------->     监控利器--Cacti_第11张图片



    6e4de22912c2811e580fd776cd6ee2d4.png --->监控利器--Cacti_第12张图片



     b7933284e264e6603097087f1cda27cc.png------->监控利器--Cacti_第13张图片


     IFSTATUS的配置如下:ef89f2aeef129033d6e04e8ac179b2da.png