Zabbix catcti nagios三大监控系统详解

  1. zabbix采集数据方式:
    基于专用agent 被监控的设备上面安装agent软件,这个agent必须在设备上面有采集数据的权限
    基于SNMP, net-snmp (nms/agent架构) 三个版本SNMPV1 V2c V3(V1 V2安全性较差,V3可加密认证)
    基于脚本(ssh)

NMS可随时采集被监控设备的数据,简单命令 snmp get 、snmp get-next、snmp get-bulk
但问题? 获取的数据如何保存,保存在何处? 故SNMP只提供功能,不关心数据处理!
2. 开源监控软件Cacti

采集数据 (例如对网络流量采集)  配合基于SNMP、基于脚本
保存数据
数据展示
数据分析及报警(超过阀值)     cacti报警功能相对一般

   Cacti是通过 snmpget来获取数据,使用 RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善。界面友好。软件 Cacti 的发展是基于让 RRDTool 使用者更方便使用该软件,除了基本的 Snmp 流量跟系统资讯监控外,Cacti 也可外挂 Scripts 及加上 Templates 来作出各式各样的监控图。
    cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。
    Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。
    snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。

rrdtool:

所谓的“Round Robin” 其实是一种存储数据的方式,使用固定大小的空间来存储数据,并有一个指针指向最新的数据的位置。
    rrdtool轮状数据库,时间序列数据,从创建的开始就固定其大小。
    rrdtool不是cacti独有,而是一种开源工具,功能很强大,只是用小部分功能配合cacti完成数据的保存和绘图。

一般定义两个阈值

警告阈值
紧急阈值
  1. 开源监控软件nagios(强大的告警工具、有独立插件)
    依赖关系(自动分析相关设备告警情况)
    采集数据特殊:状态转换报警工具,只关心正常与否的状态(阀值,状态转换时报警)
    支持主动模式监控

cacti、nagios不适合大规模的环境中,很难实现在分布式环境中对大量节点同时监控,一般超过200个节点就出现延迟。
zabbix 是以上两种开源软件的集合,实现分布式监控。