cundeng 发表于 2019-1-11 13:30:53

cacti实现监控

Cacti 在英文中的意思是仙人掌的意思,Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。它通过snmpget来获取数据,使用 RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善。
Cacti是一个c/s架构的,他主要监网络接口流量,监控CPU的负载,内存使用,磁盘空间等,还监控服务器中的WEB、mail、ftp、数据库等,当然还能监控网络设备性能,配置文件,路由数,以及机房温度,电压,湿度,风扇,电源,等运行状态。
原理:这个主要是基于SNMP协议进行工作的,SNMP是一个udp协议,使用的端口号是161,现在有v1、v2、v3几个版本,其中v2版本用的还是较多的。RHEL5上使用的net-snmp。
接下来给出一个官方文档给出的cacti架构的,来阐述整个工作流程
http://roqi410.blog.运维网.com/attachment/201109/233815205.png
这里使用SNMP来定时采集数据信息,然后通过RRD工具来绘制成人们容易识别的图形,方便统计,而RRD还能实现一个环形存储,然后用户通过一个cacti提供的一个图形化界面来统计信息,从而实现监控的目的。
接下来介绍一下RRDtool (Round Robin Database,环形数据库),能让你创建数据库、存储数据、提取数据、创建用于在Web浏览器中显示的PNG格式的图像。这些PNG图像以来于你收集的数据,它可以是网络平均使用率、峰值。
接下来我就通过实验来实现整个安装配置,以及实现监控效果的整个过程:
1.       环境介绍,主监控机是RHL5,IP=192.168.1.108
2.       主监控机上安装apche+php+gd的web环境,本实验我采用的是rpm包的安装方式
3.       安装正式开始:
一、安装相关的依赖的软件包
安装必要的开发库:
# yum groupinstall "Development Libraries" "Development Tools"

安装一些应用软件包
#yum install php php-mysql php-snmp mysql mysql-server net-snmp net-snmp-libs net-snmp-utils php-pdo perl-DBD-MySQL

安装rrdtool,我这里下载了软件包,分别是rrdtool-1.2.27-3.el5.i386.rpm、rrdtool-devel-1.2.27-3.el5.i386.rpm、rrdtool-php-1.2.27-3.el5.i386.rpm
# yum localinstall --nogpgcheck rrdtool-*

安装并配置SNMP的配置文件/etc/snmp/snmp.conf
# yum install net-snmp
#vi /etc/snmp/snmp.conf
#将下边这行中的default
com2secnotConfigUser default public
#改为127.0.0.1
com2secnotConfigUser 127.0.0.1 public
#将下边这行中的systemview
access notConfigGroup "" any noauth exact systemview none none
#改为all
access notConfigGroup "" any noauth exact all none none
#将下边这行的注释“#”号去掉
#view all included .1 80

启动snmp
# service snmpd start

二、安装cacti
我这里使用的是cacti-0.8.7g.tar.gz,源码安装
# tar xf cacti-0.8.7g.tar.gz//解压出来
# mv cacti-0.8.7g /var/www/html/cacti//移动到http的目录下的cacti目录下
#yum install mysql-server //安装Mysql
#chkconfig –add mysqld
#chkconfig mysqld on //设置开机自动启动
#service mysqld start//启动mysql数据库
#mysql
mysql> CREATE DATABASE cacti ;//创建数据库
mysql> GRANT ALL PRIVILEGES ON cacti.* TO cacti@localhost IDENTIFIED BY 'cacti';//授权
mysql> GRANT ALL PRIVILEGES ON cacti.* TO cacti@127.0.0.1 IDENTIFIED BY 'cacti';
mysql> FLUSH PRIVILEGES;
mysql> USE cacti;
mysql> SOURCE /var/www/html/cacti/cacti.sql;//导入数据

配置cacti来连接数据库
# vim /var/www/html/cacti/include/config.php
$database_username = "cacti";
$database_password = "cacti";
修改上面两项,注意这里的用户名是对应授权的用户和密码;

启动httpd服务
# service httpd start
#setenforce 0

在浏览器中输入http://192.168.1.108/cacti就能进行安装了
http://blog.运维网.com/attachment/201109/000147959.png
这是安装的其实界面
点击Next进入选择New Install,然后Next,下面一直默认就行了
知道出现用户登录的界面:
http://roqi410.blog.运维网.com/attachment/201109/233952500.png
默认的情况下,用户名和密码都是admin,但是进入以后,必须要修改密码
进入后,出现如下的界面,然后就可以做一定的设置了
http://roqi410.blog.运维网.com/attachment/201109/234040425.png

第一次登录,可能会出现图片无法显示的情况,这个时候,我们只需要手动进行生成图片就行了
#php /var/www/html/cacti/poller.php > /dev/null 2>&1
Ok!
显示当前主机的信息如下:
http://roqi410.blog.运维网.com/attachment/201109/234129319.png
然后就可以自定义需要监控的信息了
http://roqi410.blog.运维网.com/attachment/201109/234209700.png
关于如何使用这个界面,可以自己下去尝试一下做作,多摸索一下,就能熟练掌握这个工具了。
一、定义一个定期计划
# crontab –e
#加入如下内容。注意poller.php的路径
*/5 * * * * php /var/www/html/cacti/poller.php > /dev/null 2>&1
#确保 /var/www/html/cacti/rra/目录存在
#如果暂时未看到图表,可以手工执行,生成图表
#php /var/www/html/cacti/poller.php > /dev/null 2>&1

四、使用 Cacti 监控 Linux 主机
#在被监控的linux主机(192.168.1.110)上安装net-snmp
#yum install net-snmp
#vi /etc/snmp/snmpd.conf
#更改以下部分
#将下边这行中的default
com2secnotConfigUser default public
#改为192.168.1.108(cacti)服务器的地址)
com2secnotConfigUser 192.168.1.108 public
#将下边这行中的systemview
access notConfigGroup "" any noauth exact systemview none none
#改为all
access notConfigGroup "" any noauth exact all none none
#将下边这行的注释“#”号去掉
#view all included .1 80
service snmpd restart
如果出现问题请注意一下snmp协议的版本,都用version 1是一种解决方法
如果都用version 1,需要把所有监控机和被监控机的snmpd.conf改一下
#vi /etc/snmp/snmpd.conf
#将下边这行
view systemview included .1.3.6.1.2.1.1
#改为
view systemview included .1.3.6.1.2.1
被监控机配置完成之后,需要把他加入到监控的队列中
在图形化界面上点击consoleàdeviceàAdd(右上角)
http://roqi410.blog.运维网.com/attachment/201109/234314369.png

点击create,然后点击编辑图像列表,出现一下图像
http://roqi410.blog.运维网.com/attachment/201109/234404712.png
接着点击create 创建成功
然后点击
http://roqi410.blog.运维网.com/attachment/201109/234449857.png
下的User Management在最下面选择,这样就能够实现管理其他的机器了。这里我就不多演示了
显示一下监控到的流量
http://roqi410.blog.运维网.com/attachment/201109/234544656.png

接下来我讲做的是如何在现有的基础上添加具有拓扑功能的管理页面的插件
我现在想添加monitor的功能
# tar xf cacti-plugin-0.8.7g-PA-v2.8.tar.gz//安装安装cacti的一个patch--Plugin Architecture支持插件
# cp -R cacti-plugin-arch/* /var/www/html/cacti///复制到cacti目录下
# cd!$//到cacti目录下
# mysql -ucacti -pcacti cactiFLUSH PRIVILEGES;
然后在图形化界面中导入cacti_host_template_x_db_server_ht_0.8.6i.xml(mysql-cacti-templates-1.1.2.tar.gz里面有,解压出来,然后在导入)
http://roqi410.blog.运维网.com/attachment/201109/234942617.png
点击console—>的Import Templates然后将cacti_host_template_x_db_server_ht_0.8.6i.xml导入就行了,然后出现如下的信息,则表示导入成功了
http://roqi410.blog.运维网.com/attachment/201109/235026407.png
当然里面还有nginx和apache的模块,如果需要,也可以做!!!







页: [1]
查看完整版本: cacti实现监控