目录
一、常见监控软件
二、Cacti概述
三、Cacti工作原理
四、cacti安装
五、配置Cacti监控本机
注:本文所有软件采用yum安装
一、常见监控软件概述
1、cacti
Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。
简单的说Cacti 就是一个PHP 程序。它通过使用SNMP 协议获取远端网络设备和相关信息,(其实就是使用Net-SNMP软件包的snmpget 和snmpwalk 命令获取)并通过RRDTOOL 工具绘图,通过PHP 程序展现出来。我们使用它可以展现出监控对象一段时间内的状态或者性能趋势图。
2、nagios
Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。
3、zabbix
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供柔软的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbixserver与可选组件zabbix agent。zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平台上。
二、Cacti概述
1. cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。
2. Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体
名、端口号、模板信息等变量。
3. snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round RobinArchive),它能够存储的数据笔数在创建时就已经定义。
三、Cacti工作原理
Cacti的工作流程:
步骤一,snmp协议收集远程服务器的数据
步骤二,将snmp收集的数据内容保存到rrd数据库中
步骤三,若用户查看某台设备上的流量或其它状态信息
步骤四,在mysql数据库中查找该设备对应的rra数据库文件的名称
步骤五,通过rrdtool命令进行绘图即可
四、Cacti安装
Cacti的运行环境基于LAMP环境首先安装lamp环境
1、安装yum源
[[email protected] ~]# yum install -y epel-release
2、同步时间
[[email protected] ~]# yum install -y ntpdate [[email protected] ~]# ntpdate time.windows.com 12 Apr 22:44:15 ntpdate[11234]: adjust time server 23.102.23.44 offset 0.109652 sec [[email protected] ~]#
3、安装LAMP环境
使用yum安装相关软件包:http,php,mysql
[[email protected] ~]# yum install -y httpd php php-mysql mysql mysql-server mysql-devel php-gd libjpeg libjpeg-devel libpng libpng-devel
设置开机自启动服务
[[email protected] ~]# chkconfig httpd on [[email protected] ~]# /etc/init.d/httpd start Starting httpd: [ OK ] [[email protected] ~]# chkconfig mysqld on [[email protected] ~]# /etc/init.d/mysqld start Starting mysqld: [ OK ] [[email protected] ~]# netstat -tunlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 2811/named tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 10947/sshd tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 2811/named tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1007/master tcp 0 0 127.0.0.1:199 0.0.0.0:* LISTEN 10433/snmpd tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 11490/mysqld tcp 0 0 :::80 :::* LISTEN 11345/httpd tcp 0 0 ::1:53 :::* LISTEN 2811/named tcp 0 0 :::22 :::* LISTEN 10947/sshd tcp 0 0 ::1:953 :::* LISTEN 2811/named tcp 0 0 ::1:25 :::* LISTEN 1007/master udp 0 0 0.0.0.0:161 0.0.0.0:* 10433/snmpd udp 0 0 127.0.0.1:53 0.0.0.0:* 2811/named udp 0 0 ::1:53 :::* 2811/named
测试php解析
4、安装cacti net-snmp rrdtool
[[email protected] ~]# yum install -y cacti net-snmp net-snmp-utils rrdtool [[email protected] ~]# /etc/init.d/snmpd start [[email protected] ~]# netstat -tunlp|grep snmpd tcp 0 0 127.0.0.1:199 0.0.0.0:* LISTEN 10433/snmpd udp 0 0 0.0.0.0:161 0.0.0.0:* 10433/snmpd [[email protected] ~]#
5、编辑httpd配置文件
[[email protected] ~]# vim /etc/httpd/conf.d/cacti.conf