一.简介
监控模版默认监控项太多,对zabbix-server造成压力,监控模版没有想要监控的监控项。那么就可以根据自己的需要采集特定设备或服务的指标数据,自定义监控项需要创建和配置监控项、触发器和报警。
大概流程:
1.客户端:定义监控项的key,先编写获取监控项指标数据的命令或脚本,客户端重启,测试键值;
2.服务端:zabbix_get测试;
3.web界面:创建zabbix监控项,使监控项与键值关联;
4.web界面:创建zabbix触发器,来响应特定的值或模式;
5.web界面:创建图形,来可视化数据。
拓扑图
zabbix-server采用docker部署的,部署在130宿主机上;zabbix-agent部署在140主机上。
二.客户端---自定义监控命令或脚本编写
1.自定义监控项文件配置目录
2.自定义键值的格式
如:获取nginx是否开启80端口的写法key=heck.nginx80 cmd=ss -tlunp | grep -w 80 | wc -l
可能报错[m|ZBX_NOTSUPPORTED] [Unknown metric check.nginx80x]检查key名称和命令
三.服务端---测试
我的服务端安装的是docker版的zabbix-server,不知道怎么安装zabbix-get,操作一通,要没找到
用法:
四.web添加监控项
1.找到上一篇创建的140games主机
配置---主机---监控项
创建监控项
名称自定义 、类型 默认的、键值 key的名字、主机接口默认、更新间隔1分钟、信息类型根据测试结果选、然后测试。
测试完后添加。可以搜索
检测---主机---games---最新数据
名称搜索nginx---应用---图形---这个图形不是自定义的,是自带的。
五.web添加触发器
配置---主机---触发器---创建触发器
名称:自定义、添加、选择上一步创建的监控项“检查nginx80端口”
功能:默认常用的,最后的值、结果大小>小于<不等于<>,这里选等于0、插入
恢复表达式复制上面的修改下,不等于0就恢复了,允许手动关闭,添加
添加后,在触发器模块可查看
六.web添加图形
配置---主机---games---图形---创建图形
名称:自定义、监控项:添加,找到之前添加的监控项、图形类别可选其他的、最后选择
添加、也可以预览图形
检测---主机---图形可查看
产生告警
问题可以关闭,开启nginx,后关闭问题
七.常用键值---从监控项模板中选
1.选择后测试,根据返回的类型选择信息类型。信息类型选错会报错,如下
agent.hostname 信息类型选数字 Value of type "string" is not suitable for value type "Numeric (unsigned)". Value "games"
2.带参数的要写上参数
net.if.in[if,<mode>] 网络接口上传流量统计。返回 整数
说明:中括号内[]是网卡名字,要用实际的内容替换,尖括号内<>可忽略,就成了
net.if.in[ens33,]
net.if.in[if,<mode>]报错Invalid second parameter.
net.if.in[if,]报错Cannot find information for this network interface in /proc/net/dev 文件中未找到if
net.tcp.listen[port] 检查 TCP 端口 是否处于侦听状态。返回 0 - 未侦听;1 - 正在侦听
说明:[port]的port未实际替代报错Invalid first parameter.
中括号参数[port]实际替代如[80],就可以了。