一、cacti的简介
网络管理(如主机负载、网络流量等的监控)是系统管理岗工作人员日常工作的一个重要组成部分,许多厂商为此提供了各自的解决方案。早期开源网管软件中比较著名的其中之一的MRTG,是一款使用perl开发的,通过SNMP协议实现管理工作站与设备代理进程间的通讯,以完成对设备的管理和运行状态的监视。MRTG安装配置简单、图形界面直观,因为广受当时网络管理人员的喜爱,也为笔者早期的网络管理工作立下了汗马功劳。
但MRTG也有许多固有的缺点,如:使用文本式的数据库,数据不能重复使用;只能按日、周、月、年来查看数据;每图只能画两个DS(一条线、一个块);每取一次数据即需要绘图一次,浪费系统资源;同时,它也没有提供管理功能。
有鉴于此,MRTG的作者后来另外又开发了一个工具,即rrdtool。rrdtool是一个性能优良的数据记录器,同时也是一个功能强大的绘图引擎。它使用rrd的数据存储格式,使用得数据可以重复使用;在绘图方面,它可以定义任意时间段进行绘图,能绘出多个DS。但它也有自己的缺点:虽然提供了强大的数据存储及绘图功能,但rrdtool却没有提供类似于MRTG中集成的数据采集功能;同时,它提供了过多的参数,以至于在命令行界面使用起来极为不便;此外,rrdtool也没有提供管理功能。于是cacti应运而生。
简单来说,Cacti就是rrdtool的一个forefront,它内置了快速的获数据取工具、优秀的绘图模板以及许多设计精良的数据获取脚本,从而可以通过结合rrdtool强大的数据抓取、数据存储和绘图功能,轻松实现主机负载、网络流量等信息的走势图的绘制.
cacti是用php语言实现的一个软件,它的运行需要网站服务器(如apache)及PHP环境的支持。同时,cacti还需要Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。
rrdtool的对主机负载、网络流量等信息的统计需要通过SNMP协议实现。经过SNMP抓取到的数据存储于由rrdtool生成的rrd文件中,这些文件通常位于cacti的rra目录中。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的归档文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。
这副图片简述了cacti的工作原理.
本文相关的资源下载:
免费下载地址在 http://linux.linuxidc.com/
用户名与密码都是www.linuxidc.com
具体下载目录在 /pub/2011/12/11/CentOS 5.5快速安装Cacti 0.8.7g/
Cacti的实例应用
1)网络设置
2)主机系统
(1)网络接口流量(进与出的带宽)
(2)监控CPU的负载、内存等等
(3)监控磁盘的空间、进程数等等
…………………………………..等等
3)cacti常见的监测对象
(1)服务器资源:CPU、内存、磁盘、进程、连接数等
(2)服务器类型:WEB、Mail、FTP、数据库、中间件
(3)网络接口:流量、转发速度、丢包率
(4)网络设备性能、配置文件(对比与备份)、路由数
(5)安全设备性能、连接数、攻击数
(6)设备运行状态:风扇、电源、温度
(7)机房运行环境:电流、电压、温湿度
centos5.5安装cacti-0.8.7g为了方便自己写了一个脚本来安装
#!/bin/sh
yum -y install httpd php php-mysql mysql mysql-server php-snmp
chkconfig mysqld on
chkconfig httpd on
chkconfig snmpd on
service mysqld start
mysqladmin -uroot password ‘123456’
tar -zxvf cacti0.8.tar.gz
cp -rf cacti /usr/local/
cp -rf httpd.conf /etc/httpd/conf
cp -rf snmpd.conf /etc/snmp
service httpd start
service snmpd start
useradd cactier
passwd cactier
chown -R cactier /usr/local/cacti
chown cactier.cactier /usr/local/cacti/*
chmod 755 -R /usr/local/cacti
service mysqld restart
mysql -uroot -p123456 -e “create database cactidb;”
mysql -uroot -p123456 -e “GRANT ALL PRIVILEGES ON cactidb.* TO ‘cactier’@’127.0.0.1’ IDENTIFIED BY ‘123456’;”
mysql -uroot -p123456 -e “GRANT all privileges ON cactidb.* TO cactier@localhost IDENTIFIED BY ‘123456’;”
mysql -uroot -p123456 cactidb < /root/cacti/cactidb.sql
yum -y install net-snmp net-snmp-libs net-snmp-utils net-snmp-devel libart_lgpl net-snmp-perl
rpm -ivh rrdtool-1.2.19-1.el5.kb.i386.rpm
rpm -ivh rrdtool-devel-1.2.19-1.el5.kb.i386.rpm
rpm -ivh rrdtool-php-1.2.19-1.el5.kb.i386.rpm
rm -rf cacti
rm -rf mysql
php /usr/local/cacti/poller.php
cp -rf crontab/* /var/spool/cron
安装好之后就可以用web来访问如图所示:
说明:
1.mysql密码为123456
cactier用户密码自定义
2.cacti 路径为/usr/local/cacti
配置文件在/usr/local/cacti/include/config.php中
3.web访问为ip
用户名admin 密码默认为123456
客户端安装net-snmp软件一共5个,可以用yum安装,或者用sh clientinstall.sh前提chmod 777 clientinstall.sh
里面默认ip为127.0.0.1修改为cacti服务器的ip地址,服务端也最好修改ip为服务器的ip地址,最好不要用127.0.0.1
5.cacti_host_template__linux_host_ucdnet-snmp.xml为模板文件可以进入web界面导入即可。
6.里面有添加了一台sambaser服务器,客户端安装client 之后http://ip 进入之后把ip修改为监控的ip即可。
遇到的问题:
1.rrdtool图片显示不了,因为服务端的snmpd.conf没有配置正确所有获取不到localhost的图片
2.刚开始没有刷新php /usr/local/cacti/poller.php所以就没有看到图形
3.添加了主机可惜是unknow状态,因为cacti server snmpd.conf文件里我写的是127.0.0.1所以客户机获取不到所以提示为unknow状态并不是up状态。
4.还有权限问题和属于主组的问题。
5.还有就是rrdtool的问题,版本问题,所以不能显示。
6.snmpwalk -v 2c -c public localhost总是Timeout No Response from localhost