Zabbix采集数据方式
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完成数据的保存和绘图。
一般定义两个阈值
- 警告阈值
- 紧急阈值
3. 开源监控软件nagios(强大的告警工具、有独立插件)
- 依赖关系(自动分析相关设备告警情况)
- 采集数据特殊:状态转换报警工具,只关心正常与否的状态(阀值,状态转换时报警)
- 支持主动模式监控
cacti、nagios不适合大规模的环境中,很难实现在分布式环境中对大量节点同时监控,一般超过200个节点就出现延迟。
zabbix 是以上两种开源软件的集合,实现分布式监控。