vlambda博客
学习文章列表

Zabbix监测类型讲解

Zabbix提供十几种监控类型,包括:Zabbix agent, Simple checks, SNMP, Zabbix internal, IPMI, JMX monitoring等等。

1.zabbix agent

zabbix自带的客户端程序(被动模式),zabbix server主动向它收集监控数据。agent提供丰富的key,包
括不限于cpu、内存、网络、磁盘、web等等。如果你不介意或者系统支持安装此程序,那么他是首选的。需要注
意的是,server检索数据有超时限制,最大超时时间30秒,如果检索数据经常超过30秒,那么,不建议你使用
主动模式的agent,可以使用如下类型agent active。

2.zabbix agent(active)

也需要安装agent(主动模式),和上一个相同。但是数据由zabbix agent主动提交至zabbix server。
主动模式需要在配置文件里配置:
ServerActive=HOST_IP
#主动收集进程数量
StartPollers=100
#负责处理Agentd推送过来的数据的进程数量
StartTrappers=200

3.simple check

基本的检测,可以检测网络、端口、fping这些,功能很少并且无需安装客户端。
举例:
net.tcp.service[ftp,,155]
net.tcp.service[http]
net.tcp.service.perf[http,,8080]

4.snmp check

snmp v1 check、snmp v2 check、snmp v3 check的功能都是一样的。推荐如下场景:
客户基于安全考虑,不同意安装agent
路由器、打印机等等设备无法安装,但是支持snmp协议
不喜欢频繁对agent升级

5.zabbix internal

zabbix系统内部用,比如趋势数据记录数了、历史记录数量等等,日常业务监控用不上他。

6.zabbix trapper

也需要安装agent(主动模式),你需要借助bin/zabbix_sender将数据提交至zabbix server。如下情况
适合使用:
检索数据时间较长
同一时间有大量的数据要提交,例如redis info信息,里面包含五六十项数据,通过zabbix_sender来一
次性提交,显然比agent来取几十次要方便。

7.zabbix aggretage

aggregate checks是一个聚合的检测,例如我想知道某个组的host负载平均值,硬盘剩余总量,或者某几台
机器的这些数据,简单的说,这个方法就是用来了解一个整体水平,而不需要我们一台台看过去。这个方法的数
据全部来之数据库,所以它不需要agent。

#aggregate item key语法如下:

groupfunc["Host group","Item key",itemfunc,timeperiod]
##多个组使用逗号分隔,支持按组的function
GROUP FUNCTION 描述
grpavg 平均值
grpmax 最大值
grpmin 最小值
grpsum 总和

#
#支持按tiem的function
ITEM FUNCTION 描述
avg 平均值
count value个数
last 最新值
max 最大值
min 最小值
sum 总值

#
timeperiod为指定的采集时间,可以使用时间单位,例如可以使用1d代替86400(单位默认为秒),5m代替300.
备注:
如果第三个参数为last,那么timeperiod参数值将会被server忽略掉
只有被监控的HOST上启用的item才会被计入aggregate check

#示例:

..组MySQL Servers剩余硬盘空间大小
grpsum["MySQL Servers","vfs.fs.size[/,total]",last,0]
..组MySQL Servers的平均CPU负载
grpavg["MySQL Servers","system.cpu.load[,avg1]",last,0]
..组MySQL Servers 5分钟内的平均查询速度(次/秒)
grpavg["MySQL Servers",mysql.qps,avg,5m]
..多个组的cpu负载平均值
grpavg[["Servers A","Servers B","Servers C"],system.cpu.load,last,0]

8.external check

zabbix server运行脚本或者二进制文件来执行外部检测,外部检测不需要在被监控端运行任何agentd。

备注:请不要过度使用外部检测,这会严重降低zabbix系统性能

9.database monitor

zabbix通过调用ODBC来获取数据库的数据以及数据库状态等等信息

10.IPMI agent

用于监控硬件设备,例如Dell或者hp服务器的主板温度、cpu电压、盖子是不是被打开等等

11.SSH agent

zabbix使用提供的ssh信息(服务器用户密码或者证书)登录服务器,执行指定的脚本来检索数据。如下人适合
用:
不会安装agent、不想相撞agent
不担心账号密码/证书放在zabbix里

12.Telnet agent

同上,Windows不支持ssh,可以使用Telnet agent。

13.jmx agent

通过jmx监控java jvm,比如tomcat。目前有一个很大的不足,如果tomcat多实例,jmx agent只能监控一
个。如果是多实例,建议使用agent + cmdline-jmxclient-0.10.3.jar

14.zabbix Calculated

计算类型,在几个key值之间做计算,例如redis自带的info命令可以监控keyspace_hits和
keyspace_misses这两个值,但是redis的命中率不能直接获取,可以通过zabbix的calculated实现监控
redis的命中率