开源界的 监控:
监控的 分类:
状态连续
变化监控
Cacti ,nagios,ntop
Zabbix 中大型企业
Cacti
Cacti
是一套基于PHP,MySQL,SNMP
及RRDTool
开发的网络流量监测图形分析工具。它通过snmpget
来获取数
据,使用 RRDtool
绘画图形,而且你完全可以不需要了解RRDtool
复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host
以及任何一张图,还可以与LDAP
结合进行用户验证,同时也能自己增加模板,功能非常强大完善。
Snmp:版本 v1,v2c,v3 协议 简单网络管里 协议
架构 是给予 c/s架构的
Cacti网络配置:
主机系统 监控:
1. 网络接口流量
2. 监控cpu、负载,内存
3. 监控磁盘的空间 ,进程等等
常见的检测对象:
1. 服务器资源:cpu,内存,磁盘,进程,连接数等
2. 服务器类型:web,mail,ftp,数据库,中间件
3. 网络接口:流量,转发速度,丢包
4. 网络设备性能,配置文件,路由数
5. 安全设备性能,连接数,***术
6. 设备运行状态:风扇,电源,温度
7. 机房运行环境:电流,电压,湿度
RRDtool round robin datase;
RRDtool是一系列由Tobi Oetiker创建的数据库工具。它也被设计处理时间序列数据像
网络带宽,温度,CPU负载等。这些数据被
存储在一系列数据库中,因此系统存储足迹持续的留下。
说明:可以分为三层
1. 信息采集层
通过简单网络管理协议 ,监控机去被监控机通过信息采集
2. 把信息收集起来,收集到监控机上然后通过 rrd 进行数据存储
3. 管理数据呈现
Cacti 工作的流程图:
说明:通过net-snmp 采集数据信息,存储 存储放在rrdttool,
Rra 是模板 温度 和磁盘 负载率是存储在mysql中
Cacti 配置:
一、准备工作
环境:Centos 5.6
所需软件:
http,Php,Php-mysql,Php-snmp,Mysql,Perl-DBD-MySQL,Php-pdo,rrdtool,Net-snmp,Net-snmp-libs,Net-snmp-utils
#下载相关软件
cd /usr/local/src/
wget http://www.cacti.net/downloads/cacti-0.8.7e.tar.gz
在这里是给予 yum安装的
二、环境介绍
主监控机是Centos 5.6
主监控机IP=192.168.0.188
三、安装配置
(1)在主监控机上安装apache+php+gd的web环境,推荐编译安装,不再赘述,本处方便起见用yum装了
yum install php php-mysql php-snmp mysql mysql-server net-snmp net-snmp-libs net-snmp-utils php-pdo perl-DBD-MySQL
因为 红帽内置没有 rrd的 一些工具 ,所以在这要下载 和安装
还需要在 下载 三个包
rrdtool-php-1.2.27-3.el5.i386.rpm
rrdtool-devel-1.2.27-3.el5.i386.rpm
rrdtool-1.2.27-3.el5.i386.rpm
(3)配置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
service snmpd restart
在这里 是给予 yum装的
下载一下这两个包: 这里在本地服务器上下载的,也可以去官网下载:
get cacti-0.8.7g.tar.gz
get monitor-0.8.2.tar.gz
[root@station88 ~]# tar xfv cacti-0.8.7g.tar.gz
[root@station88 ~]# mv cacti-0.8.7g /var/www/html/cacti 为了方便 放在var路径下
[root@station88 cacti]#
service mysqld start启动 mysqld 因为这是给予cacti是给予mysql存储的
进入-mysql
[root@station88 cacti]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.0.77 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> create database cacti 创建的数据库
-> ;
Query OK, 1 row affected (0.01 sec)
mysql> grant all privileges on cacti.* to cacti@localhost identified by 'cacti' with grant option; 授权
Query OK, 0 rows affected (0.03 sec)
mysql> grant all privileges on cacti.* to [email protected] identified by 'cacti' with grant option; 授权
Query OK, 0 rows affected (0.00 sec
mysql> use cacti;
设置为默认 数据库 cacti
Database changed
mysql> source /var/www/html/cacti/cacti.sql; 直接读取
[root@station88 cacti]# vim /var/www/html/cacti/include/config.php
$database_hostname = "localhost";
$database_username = "cacti";
改动
$database_password = "cacti";
改动
[root@station88 cacti]# service httpd start
[root@station88 ~]# getenforce 还要把 selinux 关闭
Permissive
用浏览器 浏览
http://192.168.0.188/cacti/install/
在里面 设置
做到这里 可以看见 画面了
点击 “Next”
选择“New Install”,点击“Next”
指定 rrdtool、 php、 snmp 工具的 Binary 文件路径,确保所有的路径都是显示“ FOUND”,没有 “NOT FOUND”的,点击 Finish 完成安装。
Cacti 默认的用户名与密码是 admin,输入用户名与密码,点击 login
为了安全的原因,第一次登录成功后,cacti 会强制要求你更改一个新的 password ,输入新密码并确认密码,点击 save ,进入 cacti 控制台界面:
点击 graphs ,查看cacti 监控本机的图表:
增加入一个计划任务,使得 cacti 每五分钟生成一个监控图表。
crontab -e
接下来
[root@station88 ~]# crontab -e
编辑
*/5 * * * * php /var/www/html/cacti/poller.php > /dev/null 2>&1
执行php到cacti 目录下找 poller.php这个文件 每五分钟执行一次
确保 /var/www/html/cacti/rra/目录存在
如果暂时未看到图表,可以手工执行,生成图表
#php /var/www/html/cacti/poller.php > /dev/null 2>&1
8)使用 Cacti 监控 Linux 主机
在被监控的linux主机上安装net-snmp
#yum install net-snmp
vi m/etc/snmp/snmpd.conf
更改以下部分
将下边这行中的default
com2secnotConfigUser default public
改为192.168.0.188(cacti)服务器的地址)
com2secnotConfigUser 192.168.0.188 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