在RHEL5中搭建CACTI监控系统
2008-05-19 TsengYia#126.com 一路狂笑
################################################################
系统环境:RHEL5 [ 2.6.18-8.el5xen ]
软件环境:
RPM包(使用RHEL5光盘自带软件)
gd-2.0.33-9.3.fc6
zlib-1.2.3-3
lm_sensor-2.10.0-3.1
net-snmp-5.3.1-14.el5
net-snmp-utils-5.3.1-14.el5
源码包及补丁:
httpd-2.2.8.tar.bz2
mysql-5.0.22.tar.gz
php-5.2.6.tar.bz2
rrdtool-1.2.27.tar.gz
cacti-0.8.7b.tar.gz
upgrade_from_086k_fix.patch
snmp_auth_none_notice.patch
reset_each_patch.patch
软件下载地址:
参考文档:
目标功能:
搭建CACTI监控服务器,基于SNMP协议对网络设备、Linux服务器等进行流量、性能监控。
##########################################################################
一、配置被监控Linux服务器
1、安装lm_sensor、net-snmp(从RHEL5光盘自带RPM包安装,过程略)
2、简单配置SNMP服务
shell> vi /etc/snmp/snmpd.conf # 查找修改以下行,分别在第41、
com2sec notconfigUser default public # default可以修改为监控服务器的IP地址,public可以修改为授权snmp查询的口令字
串
access notConfigGroup "" any noauth exact all none none # all也可以只设置为read权限
view all included .1 80 # 去掉开头的#号
3、调整及启动SNMP服务
shell> chkconfig --level 35 snmpd on
shell> service snmpd start
4、调整防火墙设置(放行CACTI服务器对本机进行SNMP查询的数据)
shell> iptables -I INPUT -s $CACTI_SERVER_IP -p udp --dport 161 -j ACCEPT
二、配置CACTI监控服务端
1、安装支持软件
1) 安装gd、zlib等软件包(使用RHEL5系统自带或从光盘安装,过程略)
2) 安装lm_sensor、net-snmp、net-snmp-utils(从RHEL5光盘自带RPM包安装),以获得snmpwalk、snmpget等工具命令
3) 安装rrdtool数据库工具(绘图引擎)
shell> tar zxvf rrdtool-1.2.27.tar.gz
shell> cd rrdtool-1.2.27
shell> ./configure --prefix=/opt/rrdtool
shell> make && make install
shell> ln -s /opt/rrdtool/bin/rrdtool /usr/bin
2、安装Apache、MySQL、PHP套件(主要注意PHP的配置,若已安装完整套件,此步骤可省略;或卸载原有软件后重新安装)
1) 安装MySQL
shell> groupadd mysql
shell> useradd -g mysql -s /sbin/nologin mysql
shell> tar zxvf mysql-5.0.22.tar.gz
shell> cd mysql-5.0.22
shell> ./configure --prefix=/opt/mysql
shell> make && make install
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> cp support-files/mysql.server /etc/init.d/mysqld
shell> chmod +x /etc/init.d/mysqld
shell> chkconfig --add mysqld
shell> cd /opt/mysql
shell> bin/mysql_install_db --user=mysql
shell> chown -R root.mysql ./
shell> chown -R mysql var
shell> ln -s /opt/mysql/bin/mysql /usr/bin/
2) 安装Apache
shell> tar jxvf httpd-2.2.8.tar.bz2
shell> cd httpd-2.2.8
shell> ./configure --prefix=/opt/httpd --enable-so
shell> make && make install
shell> cd /opt/httpd
shell> cp -p bin/apachectl /etc/init.d/httpd
3) 安装PHP
shell> tar jxvf php-5.2.6.tar.bz2
shell> cd php-5.2.6
shell> ./configure --prefix=/opt/php --with-apxs2=/opt/httpd/bin/apxs --with-mysql=/opt/mysql --with-gd --with-
zlib --enable-sockets # 若缺少gd、zlib等支持,可能会导致CACTI的安装页面无法显示(空白)。
shell> make && make install
shell> cp php.ini-dist /opt/php/php.ini
4) 调整启动MySQL、Apache
shell> chkconfig --level 35 mysqld on
shell> service mysqld start
shell> vi /opt/httpd/conf/httpd.conf # 简单配置httpd.conf文件,及增加php支持
ServerName # 主机名更改为该服务器的FQDN名称
DocumentRoot "/var/www/cacti"
Options None
AllowOverride None
Order allow,deny
Allow from all
DirectoryIndex index.php index.html
AddType application/x-httpd-php .php
AddType image/x-icon .ico
shell> echo '/etc/init.d/httpd start' >> /etc/rc.local
shell> service httpd start
shell> echo -e "" > /var/www/test.php
——在浏览器访问可以测试网站及php是否正常。
3、安装配置CACTI套件
1) 安装源文件
shell> groupadd cactiuser
shell> useradd -g cactiuser cactiuser
shell> tar zxvf cacti-0.8.7b.tar.gz -C /var/www/
shell> cd /var/www/
shell> mv cacti-0.8.7b cacti
shell> cd cacti
shell> cp *.patch ./
shell> patch -p1 -N < upgrade_from_086k_fix.patch
shell> patch -p1 -N < snmp_auth_none_notice.patch
shell> patch -p1 -N < reset_each_patch.patch
shell> chown -R cactiuser.cactiuser rra log
2) 数据库处理
shell> /opt/mysql/bin/mysql -u root -p
mysql> update mysql.user set password=password('secret') where user='root'; # 为安全起见,更改一下root密码
mysql> create database cactidb;
mysql> grant all on cactidb.* to identified by 'pwd123'; # 设置数据库操作用户/密码
mysql> flush privileges;
shell> cd /var/www/cacti
shell> /opt/mysql/bin/mysql -u root -p cactidb < cacti.sql # 导入数据库文件
shell> vi /var/www/cacti/include/config.php # 调整数据库配置,注意与前述设置保持一致
$database_type = "mysql";
$database_default = "cactidb";
$database_hostname = "localhost"
$database_username = "cactiuser"
$database_password = "pwd123"
$database_port = "3306"
3) 添加定期采集数据任务
shell> su - cactiuser # 切换为cactiuser用户身份再编辑crontab任务
shell> crontab -e
*/5 * * * * /opt/php/bin/php /var/www/cacti/poller.php > /dev/null 2> &1
shell> /opt/php/bin/php /var/www/cacti/poller.php # 手动执行一次进行初始化
shell> exit
shell> chkconfig --levele 35 crond on
shell> service crond start
三、使用CACTI监控系统
1、设置CACTI
Step 1:使用浏览器访问,通过页面登录(默认用户名、密码均为admin)并按提示更改管理密码;
Step 2:按提示执行install任务,期间注意确认设置rrdtool、php、snmpwalk、snmpget等命令的执行路径;
——初次使用时需要执行以上两步骤。
Step 3:添加被监控的设备、服务器
通过console标签页的Create devices链接进入设备管理界面,点击Add链接添加设备,一般注意以下几点:
1)、Description栏填写对应的设备说明;
2)、Hostname栏一般可填写被监控设备、服务器的IP地址;
3)、如果被监控的是Linux服务器,Host Template栏可选择"ucd/net SNMP Host",其他设备根据实际情况选择;
4)、Ping Method栏选择ICMP Ping即可
5)、SNMP Version一般可简单选择Version 1,对应的SNMP Community栏填写授权查询的口令(如public);
6)、确认后点击右下角的Create链接添加设备。
Step 4:为刚增加的被监控设备添加需要图形监控的项目
通过下方的Associated Graph Templates、Associated Data Queries栏下的Add链接添加,根据实际需要而定(完成后点右下角的Save保存配置),如:
Associated Gpaph Templates
1)、Linux - Memory Usage
2)、ucd/net - CPU Usage
3)、ucd/net - Load Average
4)、Unix - Processes
Associated Data Queries:
1) SNMP - Interface Statistics
2) Unix - Get Mounted Partitions
Step 5:为被监控设备绘制初始化图形
通过Console标签栏的Create graphs链接进入绘制图形,过程略。
Step 6:将需要监控的设备图片项添加至监控树
通过Console标签栏的Graph Trees链接进入管理监控树结构,可增加主机的图形模板项、数据查询项等,过程略。
Step 7:查看各设备、服务器的图形化监控显示结果
通过graphs标签栏下监控树结构,查看对应设备、服务器的图形化监控结果,略。
##################################### End #####################################
常见问题
—— From Internet
1. 对于Traffic 大于800Mbits/s的无法显示问题,在创建graph前修改 Data Templates -> Interface Traffic -> 1: traffic_in ->
Maximum Value Use Per-Data Source Value 默认是100000000 后面再添 几个0就OK了,同样 2: traffic_out也要修改哦,最好在使用new
graph创建新的graph之前修改后,否则之后修改会有一定的麻烦,甚至无法正常工作。
2.一般说来,图片的流量统计描述都是 |host_description| - Traffic - |query_ifName| 按照这个形式来描述的,对于华为的设备,Gi显示
成GigabitEthernet,可能导致后面的模块号,端口好无法显示。如 GigabitEthernet4/3/2显示成GigabitEthernet,解决办法:
Console -> Settings -> Visual -> Maximum Field Length: 默认 15,我修改成30就OK了。
The maximum number of characters to display for a data query field.
阅读(2642) | 评论(0) | 转发(0) |