这篇文章将介绍模板中的监控项,包括监控项的配置、Zabbix内置的监控项键值和自定义监控项。
监控项是模板中对于被监控主机的指定对象进行信息收集的配置,只有在模板中配置了监控项,这个模板才能收集到被监控主机的信息。所以监控项是模板中的最重要的项目,是获取监控数据的基础。
1、监控项的配置
点击具体模板中的监控项链接,即可看到该模板中所定义的全部监控项,点击具体监控项的链接,即可修改该监控项。这里查看模板Template OS Linux中的监控项:
点击具体的监控项可修改该监控项;点击“创建监控项”按钮,可以创建新的监控项,创建监控项页面如下:
- 名称:自定义的监控项名称
- 类型:从哪里获得监控项的数据
- 键值:非常重要,Zabbix Server通过键值收集对应的监控信息;Zabbix内置了非常多的键值,可以满足对主机各方面的监控
- 信息类型:键值的返回值类型
- 单位:键值返回值的单位
- 更新间隔:定义Zabbix间隔多长时间采集一次数据
- 历史数据保留时长:历史数据保留多长的时间
- 趋势存储时间:监控数据的趋势存储的时长
- 新的应用集和应用集:可以为该监控项创建一个新的应用集,也可以加入现有的应用集中
Zabbix内置了非常多的监控键值,点击键值后的“选择”按钮,弹出键值选择界面:
Zabbix标注了键值及键值的功能;在红框处下拉还可以切换不同监控数据来源支持的键值。
2、一些常用的内置键值
Zabbix内置了非常多的键值以供我们获取监控数据,这里仅介绍一些常用的键值。
获取操作系统信息
system.boottime # 系统启动的时间点
system.uptime # 系统运行时长
system.localtime # 系统时间
system.hostname # 主机名
system.users.num # 当前登录系统的用户数量
system.uname # 获取系统uname信息
kernel.maxfiles # 系统可打开的最大文件数
kernel.maxproc # 系统支持的最大进程数
获取网络接口信息
# 网络接口入方向的流量
net.if.in[if,<mode>]
# if:网卡名称,可使用LLD中的宏变量{#IFNAME}
# mode:可用的值有 bytes,字节数(默认);packets,包数量;errors,错误数量;dropped,丢包数量
# 网络接口出方向的流量,参数同net.if.in
net.if.out[if,<mode>]
# 网络接口总流量,参数同net.if.in
net.if.total[if,<mode>]
端口检测
# 检测端口是否开启
net.tcp.listen[port]
# 返回值:0 - 未开启;1 - 开启
# 检测是否可以连接到指定端口
net.tcp.port[<ip>,port]
# ip:IP地址,默认为127.0.0.1
# 返回值:0 - 无法连接;1 - 成功连接
服务检测
# 检测服务是否开启,并且端口可用
net.tcp.service[service,<ip>,<port>]
# service:常用服务,SSH、NTP、LDAP、SMTP、FTP、HTTP、POP、NNTP、IMAP、HTTPS、telnet
# ip:默认为127.0.0.1
# port:默认为服务的标准端口号
# 返回值:0 - 服务位运行;1 - 服务正在运行
# 检测服务响应性能
net.tcp.service.perf[service,<ip>,<port>]
# 返回值:返回响应时间,如果为0表示服务未运行
获取处理器信息
system.cpu.switches # CPU的进程上下文切换
system.cpu.intr # CPU中断数量
system.cpu.load # CPU的负载值,进程队列的平均长度
system.cpu.load[percpu,avg1] # CPU每分钟的负载值,按照核数做平均值
system.cpu.load[percpu,avg5] # CPU每5分钟的负载值,按照核数做平均值
system.cpu.load[percpu,avg15] # CPU每15分钟的负载值,按照核数做平均值
system.cpu.util # CPU的使用率
system.cpu.util[,idle] # CPU的空闲时间,百分比形式
system.cpu.util[,user] # CPU的用户态运行时间,百分比形式
system.cpu.util[,system] # CPU的系统态运行时间,百分比形式
system.cpu.util[,iowait] # CPU的io等待时间,百分比形式
system.cpu.util[,interrupt] # CPU的中断时间,百分比形式
system.cpu.util[,nice] # CPU的nice时间,百分比形式
system.cpu.util[,softirq] # CPU的软中断时间,百分比形式
# CPU的负载值可以使用uptime命令查看,但是Zabbix所获得到CPU负载值与uptime所显示的结果并不同,它的结果是uptime所显示的负载值除以主机的CPU核数
获取内存信息
system.swap.size # 系统中swap分区的使用情况
system.swap.size[,total] # swap分区的总容量
system.swap.size[,free] # swap分区尚可使用的容量
system.swap.size[,pfree] # swap分区尚可使用的容量,百分比形式
vm.memory.size # 获取物理内存的使用情况
vm.memory.size[total] # 物理内存总量
vm.memory.size[available] # 物理内存目前可用的容量
获取文件系统信息
vfs.fs.inode # 文件系统中的inode的使用情况
vfs.fs.inode[partition,pfree] # 文件系统的指定分区中尚未使用的inode数量,百分比形式
vfs.fs.size # 文件系统中的使用容量详情
vfs.fs.size[partition,free] # 文件系统中指定分区(目录)中未使用的容量数值
vfs.fs.size[partition,pfree] # 文件系统中指定分区(目录)中未使用的容量,百分比形式
vfs.fs.size[partition,used] # 文件系统中指定分区(目录)中已使用的容量
vfs.fs.size[partition,total] # 文件系统中指定分区(目录)的总容量
获取安全信息
vfs.file.cksum # 获取指定文件的校验和
获取Zabbix Agent信息
agent.ping # 获取Zabbix Agent的在线状态
agent.hostname # 获取Zabbix Agent配置文件中的Hostname值
agent.version # 获取Zabbix Agent的版本号
3、自定义监控键值
当需要监控的项目在Zabbix中不存在内置键值时,此时可以通过编写Zabbix用户参数的方式来自定义一个监控键值。自定义监控项通过Zabbix Agent配置文件中的Userparameter指令实现。
要使用Userparameter指令,必须在Zabbix Agent中修改如下配置的值:
# UnsafeUserParameters=0
取消该行的注释并将值改为1。
Userparameter指令的语法如下:
# 简单语法
UserParameter=key,command
# key:自定义的键值名称
# command:执行的命令或脚本
# 使key接受参数
UserParameter=key[*],command
# 此时可以通过类似key[xxx]的方式传递参数给key,*代表的是传递的参数,可以在后面的command中通过$1进行调用
可以将UserParameter指令写入单独的一个.conf文件中以供Zabbix Agent引用。
在设置好自定义键值后,就可以在Zabbix Web中通过自定义的键值名称进行调用了。