目录

一、常见监控软件

二、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工作原理

linux监控之cacti_第1张图片

Cacti的工作流程:

步骤一,snmp协议收集远程服务器的数据

步骤二,将snmp收集的数据内容保存到rrd数据库中

步骤三,若用户查看某台设备上的流量或其它状态信息

步骤四,在mysql数据库中查找该设备对应的rra数据库文件的名称

步骤五,通过rrdtool命令进行绘图即可


四、Cacti安装

Cacti的运行环境基于LAMP环境首先安装lamp环境

1、安装yum源

[root@localhost ~]# yum install -y epel-release

2、同步时间

[root@localhost ~]# yum install -y ntpdate
[root@localhost ~]# ntpdate time.windows.com
12 Apr 22:44:15 ntpdate[11234]: adjust time server 23.102.23.44 offset 0.109652 sec
[root@localhost ~]#

3、安装LAMP环境

使用yum安装相关软件包:http,php,mysql

[root@localhost ~]# yum install -y  httpd php php-mysql mysql mysql-server mysql-devel php-gd  libjpeg libjpeg-devel libpng libpng-devel

设置开机自启动服务

[root@localhost ~]# chkconfig httpd on
[root@localhost ~]# /etc/init.d/httpd start
Starting httpd:                                            [  OK  ]
[root@localhost ~]# chkconfig mysqld on
[root@localhost ~]# /etc/init.d/mysqld start
Starting mysqld:                                           [  OK  ]
[root@localhost ~]# 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

[root@localhost ~]# yum install -y cacti  net-snmp  net-snmp-utils  rrdtool
[root@localhost ~]# /etc/init.d/snmpd start
[root@localhost ~]# 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
[root@localhost ~]#

5、编辑httpd配置文件

[root@localhost ~]# vim /etc/httpd/conf.d/cacti.conf