千家信息网

监控利器--Cacti

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,一、cacti概述1.1 cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。
千家信息网最后更新 2025年01月20日监控利器--Cacti

一、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配置文件,增加红框内的内容重要:

二、安装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后台创建数据库,如下图:

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设定完成,只需要交换机设定相关的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可以帮助你解决此类问题;

七、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

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配置成功

7.4 Configstore设定

  • 设定各类别的Accounts以管理不同设备的权限

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

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

  • 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 内容如下:

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

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


  • 重启以下服务

/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消息

九、Plugins: weathermap使用

weathermap监控拓扑图如下:

下图监控状态实例说明:

--------->



--->



------->


IFSTATUS的配置如下:



0