Zabbix的监控配置流程

■ 监控项说明
● 监控项(iterm)就是需要监控的指标,比如cpu利用率,cpu负载,内存使用率等。
● 监控项一般关联指定模板(只有应用此模板的主机才有此监控项),也可以将监控项关联指定主机(某个独有监控项)。
● 监控项是Zabbix中获得数据的基础。没有监控项,就没有数据——因为一个主机中只有监控项定义了单一的指标或者需要获得的数据。
● 监控项都是基于键值进行监控,键值有包含zabbix自带的内置键值,通过shell/python等脚本抓取的参数自定义的键值。
■ 为指定模板配置监控项
配置→模板→监控项(需要添加监控项的模板)→创建监控项

常用监控键值
监控项的键以类似 xxx.yyy.zzz[mm,<nn>] 方式组织,xxx.yyy.zzz是键名,[mm,<nn>]为键的参数,mm表必填参数,<nn>表可选参数。
net.if.collisions[if]
网络冲突数量,返回整型。
net.if.in[if,<mode>]
网络接口上传流量统计,返回 整数。网卡流入量统计,mode:bytes
(默认)/packets/errors/dropped
net.if.out[if,<mode>]
上行流量统计,返回整数。网卡流出量统计,mode:bytes(默认)/packets/errors/dropped
net.if.total[if,<mode>]
网络接口上传下载的流量总和,返回整数。网卡的进出流量统计信息总和,mode:bytes(默认)/packets/errors/dropped
net.tcp.listen[port]
检查 TCP 端口 是否处于侦听状态,返回 0 - 未侦听;1 - 正在侦听。
net.tcp.port[<ip>,port]
检查是否能将 TCP 连接到指定端口,返回 0 - 不能连接;1 - 可以连接。
net.tcp.service[service,<ip>,<port>]
检查服务是否运行并接受 TCP 连接,返回 0 - 服务关闭;1 - 服务运行。
proc.cpu.util[<name>,<user>,<type>,<cmdline>,<mode>,<zone>]
CPU进程百分比,返回浮点值。
进程的CPU利用率百分比,name:进程名,默认所有进程;user:指定用户名,默认所有用户;type:CPU利用率类型,user/system,默认是两者;cmdline:提供命令行用以过滤,支持正则;mode:数据收集模式,avg1(默认)/avg5/avg15;zone:仅用于Solaris。
proc.num[<name>,<user>,<state>,<cmdline>]
进程数量,返回整数。
name:进程名称(默认是all processes) user:用户名(默认是all users) state:可选的值: all (default),run,sleep,zomb cmdline:按命令行过滤(正则表达式)system.cpu.intr
设备的中断数,返回整数。
system.cpu.load[<cpu>,<mode>]
CPU 负载,返回浮点数。
cpu:all (default), percpu (总负载除以在线CPU数)
mode:avg1 (一分钟平均值, 默认值), avg5, avg15。
system.cpu.util[<cpu>,<type>,<mode>]
CPU 使用率,返回浮点数。
cpu:<CPU数量> 或者all(默认值)
type:idle,nice,user(默认值),system (Windows系统默认值),
iowait,interrupt,softirq,steal,guest,guest_nice mode:可能的值: avg1 (默认值), avg5, avg15
vfs.dev.read[<device>,<type>,<mode>]
磁盘读取数据,类型是sectors, operations, bytes;返回整数,类型是 sps, ops, bps则返回浮点。
device:磁盘设备 (默认为 all)
type:sectors,operations,bytes,sps,ops,bps(必须指定此参数,因为各种操作系统的默认值不同) sps,ops,bps表示:[sectors/operations/bytes] per second。
mode:avg1(1分钟平均值, 默认),avg5,avg15.此参数仅支持的类型为: sps,ops,bps.
vfs.dev.write[<device>,<type>,<mode>]
磁盘写入数据,类型是sectors, operations, bytes;返回整数,类型是 sps, ops, bps则返回浮点。
vfs.fs.size[fs,<mode>]
磁盘容量,如果返回的是字节则是整数,如果返回的是百分比则是浮点。
fs:文件系统
mode:total(默认),free,used,pfree(剩余百分比),pused(已用百分比)。
vm.memory.size[<mode>]
占字节或总百分比的内存大小,它返回一个整数值,如果字节,只要百分比返回浮点值。内存大小,以字节为单位,以百分比表示。整数用于字节,浮点用于百分比。
自定义监控项键值
zabbix自带的默认模版里包括了很多监控项,有时候为了满足业务需求,需要根据自己的监控项目自定义监控项。
1、首先需要编写一个自定义的监控脚本,以监控httpd进程是否存在为例。
脚本名字:
check_httpd.sh
脚本目录:
/usr/local/etc/zabbix_scripts
脚本内容:
#!/bin/bash
result=`ps -ef | grep httpd | grep -v grep`
if [ -n "$result" ]
then
echo '0'
else
echo '1'
fi
脚本说明:
通过ps检查httpd进程是否存在,如果存在则脚本反馈1,如果不存在则返回0
2、修改zabbix_agentd.conf配置文件。
vi /etc/zabbix/zabbix_agent.conf
UnsafeUserParameters=1
◼ UnsafeUserParameters默认为0,此处我们将它改为1,改为1以后,表示用户自定义的脚本中可以包含特殊字符。
UserParameter=check_httpd,
sh /usr/local/etc/zabbix_scripts/check_httpd.sh
◼ 增加一行我们自定义监控项,格式为:UserParameter=<键值>,<命令>。这里我们自定义键值为:check_httpd,要执行的命令为执行check_httpd.sh这个脚本。
说明:等号后面,逗号前面是定义的监控项的键值,逗号后面是脚本存放的路径,添加完成以后,需要重启zabbix_agentd才会生效。重启过后监控项中可以使用check_httpd键值来监控httpd进程是否存在。
点击蓝字|关注我们




