zabbix的监控项详解
zabbix如何选择适合的监控类型
zabbix提供十几种监控类型,包括:Zabbix agent, Simple checks, SNMP, Zabbix internal, IPMI, JMX monitoring等等,那我们应该如何选择呢?凉白开在此给大家一一作一个说明
zabbix agent
zabbix 自带的客户端程序(被动模式),zabbix server主动向它收集监控数据。agent提供丰富的key,包括不限于cpu、内存、网络、磁盘、web等等。如果你不介意或者系统支持安装此程 序,那么他是首选的。需要注意的是,server检索数据有超时限制,最大超时时间30秒,如果检索数据经常超过30秒,那么,不建议你使用主动模式的 agent,可以使用如下类型agent active
zabbix agent(active)
也需要安装agent(主动模式),和上一个相同。但是数据由zabbix agent主动提交至zabbix server
simple check
基本的检测,可以检测网络、端口、fping这些,功能很少并且无需安装客户端。
snmp check
snmp v1 check、snmp v2 check、snmp v3 check的功能都是一样的。推荐如下场景:
- 客户基于安全考虑,不同意安装agent
- 路由器、打印机等等设备无法安装,但是支持snmp协议
- 不喜欢频繁对agent升级
zabbix internal
zabbix系统内部用,比如趋势数据记录数了、历史记录数量等等,日常业务监控用不上他。
zabbix trapper
也需要安装agent(主动模式),你需要借助bin/zabbix_sender将数据提交至zabbix server。如下情况适合使用:
- 检索数据时间较长
- 同一时间有大量的数据要提交,例如redis info信息,里面包含五六十项数据,通过zabbix_sender来一次性提交,显然比agent来取几十次要方便。
zabbix aggretage
aggregate checks是一个聚合的检测,例如我想知道某个组的host负载平均值,硬盘剩余总量,或者某几台机器的这些数据,简单的说,这个方法就是用来了解一个整体水平,而不需要我们一台台看过去。这个方法的数据全部来之数据库,所以它不需要agent。
external check
zabbix server运行脚本或者二进制文件来执行外部检测,外部检测不需要在被监控端运行任何agentd。
备注:请不要过度使用外部检测,这会严重降低zabbix系统性能
database monitor
zabbix通过调用ODBC来获取数据库的数据以及数据库状态等等信息
IPMI agent
用于监控硬件设备,例如Dell或者hp服务器的主板温度、cpu电压、盖子是不是被打开等等
SSH agent
zabbix使用提供的ssh信息(服务器用户密码或者证书)登录服务器,执行指定的脚本来检索数据。如下人适合用
- 不会安装agent、不想相撞agent
- 不担心账号密码/证书放在zabbix里
Telnet agent
同上,Windows不支持ssh,可以使用Telnet agent。
jmx agent
通过jmx监控java jvm,比如tomcat。目前有一个很大的不足,如果tomcat多实例,jmx agent只能监控一个。如果是多实例,建议使用agent + cmdline-jmxclient-0.10.3.jar
zabbix Calculated
计算类型,在几个key值之间做计算,例如redis自带的info命令可以监控keyspace_hits和keyspace_misses这两个值,但是redis的命中率不能直接获取,可以通过zabbix的calculated实现监控redis的命中率
zabbix telnet监控类型
概述
zabbix监 控的方式很多,例如前面讲到的agent、snmp以及后续后续要讲到ssh和今天要讲到的telnet。流程很简单,创建item-->配置 ip、用户、密码、端口、脚本->zabbix server telnet目标ip->执行制定脚本,脚本最后返回数据给server。
目标:获取linux系统15分钟负载
telnet key
语法:telnet.run[<unique short description>,<ip>,<port>,<encoding>]
<unique short description>:描述
<ip>:服务器ip
<port>:服务器端口
<encoding>:编码,可为空
telnet配置
请看《linux下telnet安装与使用》
创建脚本
获取系统负载脚本loadavg.sh
# cat /home/zabbix/loadavg.sh
#!/bin/bash
/bin/awk '{ print $3 }' /proc/loadavg
创建item
configuration>>host>>你的主机>>item>>create item,如下:
属性说明:
user name:telnet账号
Password:telnet密码
获取到的结果如下
优缺点都很明显,只需要通过telnet就可以监控服务器,但是账号密码是明文配置在item中的,而且一旦网络不好,item状态很容变为unspport。一直相类似的还有ssh监控类型
来源:http://www.ttlsa.com/zabbix/