一、Zabbix 监控 Linux操作系统的监控指标
(仅供参考)
Zabbi x默认使用Zabbix agent监控操作系统,其内置的监控项可以满足系统大部分的指标监控,因此,在完成Zabbix agent的安装后,只需在前端页面配置并关联相应的系统监控模板就可以了。 如果内置监控项不能满足监控需求,则可以通过system. run[command, < mode >]监控项让Zabbix agent运行想要的命令来获取监控数据。
1.1 新建主机群组
1.2 新建模板
1.3 创建主机
1.1 新建主机群组
1.1.1 主机群组 —> 创建主机组
1.1.2 新建一个主机组 My_Linux
1.2 新建模板
注意:A_Oracle模板是没监控项和触发器的,如何创建下面会说到
1.2.1 模板 —> 创建模板
1.3 创建主机
1.3.1 主机 —> 创建主机
1.3.2 主机名称为:Linux_192.168.111.139、主机群组选择 My_Linux、添加接口选择Agent
二、创建监控项、触发器
2.1 在A_Linux模板下创建监控项:运维日志采集
2.1.1 模板 —> 监控项 —> 创建监控项
2.1.2 填入相应的信息
名称:运维日志采集
类型:zabbix采集器
键值:oplog_trpper
信息类型:文本
2.2 在A_Linux模板下创建监控项:系统版本
2.2.1 模板 —> 监控项 —> 创建监控项
2.2.2 填入相应的信息
名称:系统版本
类型:zabbix客户端
键值:system.sw.os[name]
信息类型:字符
更新间隔:1h
2.2.3 查看是否可用
可以获取到值则可用
2.3 在A_Linux模板下创建监控项:系统时间
2.3.1 模板 —> 监控项 —> 创建监控项
2.3.2 填入相应的信息
名称:系统时间
类型:zabbix客户端
键值:system.localtime
信息类型:数字(无正负)
单位:unixtime
更新间隔:5m
2.3.3 创建触发器:模板 —> 选择新建的模板 A_Linux —> 触发器 —> 创建触发器
2.3.4 填入相应的信息
名称:系统时间不同步
表达式:fuzzytime(/A_OS_Linux/system.localtime,60)=0
2.3.5 查看是否可用
可以获取到值则可用
2.4 在A_Linux模板下创建监控项:总进程数
2.4.1 模板 —> 监控项 —> 创建监控项
2.4.2 填入相应的信息
名称:总进程数
类型:zabbix客户端
键值:proc.num
信息类型:数字(无正负)
更新间隔:5m
2.4.3 查看是否可用
可以获取到值则可用
2.5 在A_Linux模板下创建监控项:可用内存 %
2.5.1 模板 —> 监控项 —> 创建监控项
2.5.2 填入相应的信息
名称:可用内存%
类型:zabbix客户端
键值:vm.memory.size[pavailable]
信息类型:浮点数
单位:%
更新间隔:5m
2.5.3 查看是否可用
可以获取到值则可用
2.6 在A_Linux模板下创建监控项:可用内存 %: 内存使用率
2.6.1 模板 —> 监控项 —> 创建监控项
2.6.2 填入相应的信息
名称:内存使用率
类型:相关项目
键值:vm.memory.utilization
主要项:A_OS_Linux:可用内存%
信息类型:浮点数
单位:%
2.6.3 创建触发器:模板 —> 选择新建的模板 A_Linux —> 触发器 —> 创建触发器
2.6.4 填入相应的信息
名称:内存使用率超过95%
操作数据(Operational data):当前值:{ITEM.LASTVALUE1}
严重性:一般严重
表达式:min(/A_OS_Linux/vm.memory.utilization,5m)>95
2.7 在A_Linux模板下创建监控项:主机名
2.7.1 模板 —> 监控项 —> 创建监控项
2.7.2 填入相应的信息
名称:主机名
类型:zabbix客户端
键值:system.hostname
信息类型:字符
更新间隔:1h
2.7.3 创建触发器:模板 —> 选择新建的模板 A_Linux —> 触发器 —> 创建触发器
2.7.4 填入相应的信息
名称:主机名被更改
严重性:警告
表达式:change(/A_OS_Linux/system.hostname)=1
2.7.5 查看是否可用
可以获取到值则可用
2.8 在A_Linux模板下创建监控项:swap 空间使用率
2.8.1 模板 —> 监控项 —> 创建监控项
2.8.2 填入相应的信息
名称:swap 空间使用率
类型:zabbix客户端
键值:system.swap.size[all,pused]
信息类型:浮点数
单位:%
更新间隔:5m
2.8.3 创建触发器:模板 —> 选择新建的模板 A_Linux —> 触发器 —> 创建触发器
2.8.4 填入相应的信息
名称:swap 空间使用率超过 50%
严重性:告警
表达式:last(/A_OS_Linux/system.swap.size[all,pused])>50
2.8.5 查看是否可用
可以获取到值则可用
2.9 在A_Linux模板下创建监控项:ping 检查
2.9.1 模板 —> 监控项 —> 创建监控项
2.9.2 填入相应的信息
名称:ping 检查
类型:简单检查
键值:icmpping
信息类型:数字(无正负)
更新间隔:1m
2.9.3 创建触发器:模板 —> 选择新建的模板 A_Linux —> 触发器 —> 创建触发器
2.9.4 填入相应的信息
名称:服务器无法 ping 通
严重性:严重
表达式:max(/A_OS_Linux/icmpping,#3)=0
2.10 在A_Linux模板下创建监控项:CPU 空闲时间
2.10.1 模板 —> 监控项 —> 创建监控项
2.10.2 填入相应的信息
名称:CPU 空闲时间
类型:zabbix客户端
键值:system.cpu.util[all,idle]
信息类型:浮点数
单位:%
更新间隔:5m
2.10.3 查看是否可用
可以获取到值则可用
2.11 在A_Linux模板下创建监控项:1 分钟平均负载
2.11.1 模板 —> 监控项 —> 创建监控项
2.11.2 填入相应的信息
名称:1 分钟平均负载
类型:zabbix 客户端
键值:system.cpu.load[all,avg1]
信息类型:浮点数
更新间隔:5m
2.11.3 创建触发器:模板 —> 选择新建的模板 A_Linux —> 触发器 —> 创建触发器
2.11.4 填入相应的信息
名称:CPU 负载过高
操作数据(Operational data):当前 1 分钟平均负载:{ITEM.LASTVALUE1}
严重性:一般严重
表达式:last(/A_OS_Linux/system.cpu.load[all,avg1])/last(/A_OS_Linux/system.cpu.num)>2
2.11.5 查看是否可用
可以获取到值则可用
2.12 在A_Linux模板下创建监控项:CPU 核数
2.12.1 模板 —> 监控项 —> 创建监控项
2.12.2 填入相应的信息
名称:CPU 核数
类型:zabbix客户端
键值:system.cpu.num
信息类型:数字(无正负)
更新间隔:5m
2.12.3 创建触发器:模板 —> 选择新建的模板 A_Linux —> 触发器 —> 创建触发器
2.12.4 填入相应的信息
名称:CPU 负载过高
操作数据(Operational data):当前 1 分钟平均负载:{ITEM.LASTVALUE1}
严重性:一般严重
表达式:last(/A_OS_Linux/system.cpu.load[all,avg1])/last(/A_OS_Linux/system.cpu.num)>2
2.12.5 查看是否可用
可以获取到值则可用
2.13 在A_Linux模板下创建监控项:CPU 空闲时间:CPU 使用率
2.13.1 模板 —> 监控项 —> 创建监控项
2.13.2 填入相应的信息
名称:CPU 使用率
类型:相关项目
键值:system.cpu.util
主要项:
信息类型:浮点数
单位:%
2.13.3 创建触发器:模板 —> 选择新建的模板 A_Linux —> 触发器 —> 创建触发器
2.13.4 填入相应的信息
名称:CPU 使用率超过 80%
类型:当前 CPU 使用率:{ITEM.LASTVALUE1}
严重性:警告
表达式:avg(/A_OS_Linux/system.cpu.util,10m)>80
2.13.5 查看是否可用
可以获取到值则可用
2.14 在A_Linux模板下创建监控项:agent 版本
2.14.1 模板 —> 监控项 —> 创建监控项
2.14.2 填入相应的信息
名称:agent 版本
类型:zabbix客户端
键值:agent.version
信息类型:字符
更新间隔:1h
2.14.3 查看是否可用
可以获取到值则可用
2.15 在A_Linux模板下创建监控项:agent 检查
2.15.1 模板 —> 监控项 —> 创建监控项
2.15.2 填入相应的信息
名称:agent 检查
类型:zabbix内部
键值:zabbix[host,agent,available]
信息类型:数字(无正负)
更新间隔:1m
2.15.3 创建触发器:模板 —> 选择新建的模板 A_Linux —> 触发器 —> 创建触发器
2.15.4 填入相应的信息
名称:agent 无法访问
严重性:一般严重
表达式:max(/A_OS_Linux/zabbix[host,agent,available],#3)=0
2.15.5 查看是否可用
可以获取到值则可用
2.16 在A_Linux模板下创建监控项:5 分钟平均负载
2.16.1 模板 —> 监控项 —> 创建监控项
2.16.2 填入相应的信息
名称:5 分钟平均负载
类型:zabbix客户端
键值:system.cpu.load[all,avg5]
信息类型:浮点数
更新间隔:5m
2.16.3 查看是否可用
可以获取到值则可用
2.17 在A_Linux模板下创建监控项:15 分钟平均负载
2.17.1 模板 —> 监控项 —> 创建监控项
2.17.2 填入相应的信息
名称:15 分钟平均负载
类型:zabbix客户端
键值:system.cpu.load[all,avg15]
信息类型:浮点数
更新间隔:5m
2.17.3 查看是否可用
可以获取到值则可用
三、创建自动发现规则
3.1 文件系统发现
3.1.1(模板 —> A_OS_Linux —> 自动发现规则 —> 创建自动发现)
3.1.2 填写相应信息
自动发现规则
名称:文件系统发现
类型:zabbix 客户端
键值:vfs.fs.discovery
更新间隔:1h
3.1.3 切换过滤器,填写相应信息
计算方式:和(同时满足)
标签 宏 正则表达式 动作
A {#FSNAME} 匹配 {$VFS.FS.FSNAME.MATCHES}
B {#FSNAME} 不匹配 {$VFS.FS.FSNAME.NOT_MATCHES}
C {#FSTYPE} 匹配 {$VFS.FS.FSTYPE.MATCHES}
D {#FSTYPE} 不匹配 {$VFS.FS.FSTYPE.NOT_MATCHES}
3.2 创建监控项原型
3.2.1 名称:{#FSNAME} 空间使用率(模板 —> A_OS_Linux —> 自动发现规则 —> 监控项原型 —> 创建监控项原型)
3.2.2 填写相应信息
名称:{#FSNAME} 空间使用率
类型:Zabbix 客户端
键值:vfs.fs.size[{#FSNAME},pused]
信息类型:浮点数
单位:%
更新间隔:5m
3.3 创建第二个监控项原型
3.3.1 名称:{#FSNAME} 空间剩余(模板 —> A_OS_Linux —> 自动发现规则 —> 监控项原型 —> 创建监控项原型)
3.3.2 填写相应信息
名称:{#FSNAME} 空间剩余
类型:Zabbix 客户端
键值:vfs.fs.size[{#FSNAME},free]
信息类型:数字(无正负)
单位:B
更新间隔:5m
3.4 创建触发器类型
3.4.1(模板 —> A_OS_Linux —> 自动发现规则 —> 触发器类型 —> 创建触发器原型)
3.4.2 填写相应信息
名称:{#FSNAME} 空间使用率超过 80%
Operational data(操作数据):当前使用率:{ITEM.LASTVALUE1}
严重性:告警
表达式:last(/A_OS_Linux/vfs.fs.size[{#FSNAME},pused])>80 and
last(/A_OS_Linux/vfs.fs.size[{#FSNAME},free])<100G
3.5 创建第二个触发器原型
3.5.1(模板 —> A_OS_Linux —> 自动发现规则 —> 触发器类型 —> 创建触发器原型)
3.5.2 填写相应信息
名称:{#FSNAME} 空间使用率超过 90%
Operational data(操作数据):当前使用率:{ITEM.LASTVALUE1}
严重性:严重
表达式:last(/A_OS_Linux/vfs.fs.size[{#FSNAME},pused])>90 and
last(/A_OS_Linux/vfs.fs.size[{#FSNAME},free])<50G
3.6 网口发现
3.6.1(模板 —> A_OS_Linux —> 自动发现规则 —> 创建自动发现)
3.6.2 在自动发现规则窗口填写相应信息
名称:网口发现
类型:zabbix 客户端
键值:net.if.discovery
更新间隔:1h
3.6.3 切换过滤器,填写相应信息
计算方式: 和(同时满足)A and B
过滤器
标签 宏 正则表达式 动作
A {#IFNAME} 匹配 {$NET.IF.IFNAME.MATCHES}
B {#IFNAME} 不匹配 {$NET.IF.IFNAME.NOT_MATCHES}
3.7 创建监控项原型
3.7.1 名称:{#IFNAME} 入口速率(模板 —> A_OS_Linux —> 自动发现规则 —>网口发现 —> 监控项原型 —> 创建监控项原型)
3.7.2 填写相应信息
名称:{#IFNAME} 入口速率
类型:Zabbix 客户端
键值:net.if.in[{#IFNAME},bytes]
信息类型:数字 (无正负)
单位:bps
更新间隔:5m
切换进程窗口
预定步骤: 名称 参数
1 每秒更改
2 自定义倍数 8
3.8 创建第二个监控项原型
3.8.1 名称:{#IFNAME} 出口速率(模板 —> A_OS_Linux —> 自动发现规则 —> 网口发现 —> 监控项原型 —> 创建监控项原型)
3.8.2 填写相应信息
名称:{#IFNAME} 出口速率
类型:Zabbix 客户端
键值:net.if.out[{#IFNAME},bytes]
信息类型:数字 (无正负)
单位:bps
更新间隔:5m
切换进程窗口
预定步骤: 名称 参数
1 每秒更改
2 自定义倍数 8
3.9 创建图形原型
3.9.1(模板 —> A_OS_Linux —> 自动发现规则 —> 网口发现 —> 图形原型 —> 创建图形原型)
3.9.2 填写相应信息
名称:{#IFNAME} 网口流量
宽:900
高:2
监控项: