一、监控介绍:

他是通过一种代理将数据传递到监控平台的手段。


二、监控方式一(SNMP+RRDTool+CACTI):

SNMP(simple network management protocol):简单网络管理协议

RRDtool:绘图工具,他是将收集到的数据通过加工,绘制成某种图形。

cacti(php):将图形数据展示出来

1、snmp有三种版本,分别是snmp v1,snmp v2,snmpv3;


snmp v1:它是基于communitils来实现的。communty的名字就是双方认证的密码。

communities有三种类型:read-only(只读),read-write(读写的,可以发送指令),trap(被监控端可以主动发送请求给监控端);trap本身只是被监控端发送请求给监控端的一种机制,但是监控端操作的机制只有两种:一种是read-only、一种是read-write。

snmp v1的工作机制:需要一个监控端(nms)和一个被监控端(agent),nms向agent发送一个指令获取客户端的数据。agent收到指令查询相应信息发送给监控端(nms)。为了实现数据的安全,通过community来认证实现。(带来的问题是安全性不高)


snmp v2它也是基于communitils-string来实现的。在v1的版本上作了功能增强。

snmp v3增强了认证机制

但是目前最为流行了还是snmp v1。


MIB(manmagement information base):管理信息库。他是agent索取数据事先定义的监控资源库。

所以每个snmp agent都会有一个mib库来定义数据。

mib-II如下图:



主机监控数据的MIB标示:(host OID)



监控可以做到:故障管理、配置管理、记账管理、性能管理、安全管理


snmp通知机制:通过snmp端口实现:udp 161(agent)、udp162(nms)

snmp默认的团体 :public community、private community


snmp报文分类:

get:获取特定OID(对象标识符)信息。

getnext:获取指定节点下的所有的直接指标的OID信息。(它只能获取节点下的直接指标数据)

getbulk(snmp v2 & snmp v3):获取指定节点下所有节点的指标数据。比getnext范围更大。

set:发送控制指令

getresponse:发起响应信息。

trap:由trap端发起。


linux上启用snmp:

linux上有两个snmp软件包分别是:net-snmp和net-snmp-utils

net-snmp:被监控端(agent)(如果需要用到trap功能需要安装此包)

net-snmp-utils(监控端所需用到的命令)


安装步骤:

[root@promote yum.repos.d]# yum install net-snmp.x86_64 net-snmp-utils.x86_64    //安装snmp软件包

[root@promote yum.repos.d]# rpm -ql net-snmp | less    //查看安装snmp软件包后产生了哪些工具

/etc/snmp

/etc/snmp/snmpd.conf

/etc/snmp/snmptrapd.conf

/etc/sysconfig/snmpd

/etc/sysconfig/snmptrapd

[root@promote yum.repos.d]# systemctl start snmpd    //启动snmp服务

[root@promote yum.repos.d]# netstat -unlp   //查看是否启动snmp服务

[root@promote yum.repos.d]# snmpwalk -v 2c -c public localhost    //通过snmp查看主机信息;

[root@promote mibs]# cat /etc/snmp/snmpd.conf    //查看snmp配置文件信息

2、RRDtool(Round Robin Database tool):绘图工具,他是将收集到的数据通过加工,绘制成某种图形。


3、cacti(php):将图形数据展示出来

它的作用是:

  • 自动创建rrdtool语句即rrdtool  create

  • 周期性执行能够取得数据的命令,并将取回的数据保存至rrd文件当中。

  •  利用rrdtool绘图并展示

  


cacti是一种php开发的网页程序

因此必须安装LAMP、LNMP,如果是编译安装的话,必须启用--enable-sockets。

cacti还支持插件机制:如thold插件(报警机制)。

cacti还支持三种模版机制:图形模版、数据模版、主机模版

图形模版:定义图形是怎么绘制的

数据模版:定义数据是怎么获取的,数据获取后怎么保存,保存在哪里

主机模版:归类的图形模版和数据模版。


cacti如何获取数据:

  • 脚本

  • snmp

  • ssh(基于秘钥的认证)

cacti如何保存数据:

  • 数据模版(定义从其他主机上获取数据保存下来的方法)

cacti如何展示数据:

  • 图形模版



安装cacti:

a、安装LAMP环境

[root@promote ~]# yum -y install httpd mysql mysql-server php php-mysql php-devel.x86_64       

b、编辑httpd配置文件,修改主页位置(也可以默认)

c、安装cacti(cacti-0.8.8以后的插件框架默认集成一起。

4、创建一个mysql数据库用于存放cacti数据:#mysqladmin create cactidb

5、将cacti下的cacti.sql导入到数据库 #mysqlcactidb < cacti.sql

6、创建一个mysql账号:#mysql -e "GRANT ALL ON cactidb.*TO cactiuser@localhost IDENTIFIED BY 'cactiuser'












     

















三:监控方式二(nagios):

nagios:监控数据的状态