自定义监控项流程
1.Zabbix客户端,创建key(键值)与调试 自定义监控的核心
2.书写监控命令/脚本
3.调试Debug命令与脚本
4.写入到zabbix客户端配置文件中 UserParameter=key,command或脚本与调试 zabbix_get
5.Zabbix服务端web页面-点点点
6.Web页面添加/修改模板
7.Web页面分组
8.Web页面监控项-zabbix服务端是否可以获取数据
9.Web页面触发器 trigger- 什么时候报警
10.Web页面图形
Zabbix-客户端-通过命令取出对应的内容
通过命令或脚本取出 当前系统登录的用户数量
假设:zabbix默认无法直接取出系统的已经登录的用户数量。
who
root pts/0 2025-04-27 13:41 (100.254.254.137)
root pts/1 2025-04-27 16:03 (100.254.254.137)
who |wc -l
2
Zabbix-客户端-创建Key(键值)
zabbix键值相当于是一个命令(zabbix服务端可以识别的命令) ,获取zabbix客户端状态(数据/信息)
创建自定义key之前,思考 我们是否必须要创建,是否有现成的(zabbix 内置)
内置键值key: 通过 zabbix_agent2 -p 查看
用户自定义监控项:
用法:
UserParameter=<key>,<shell command>
#UserParameter=键值key, 命令或脚本
cd /etc/zabbix/zabbix_agent2.d/
cat usr_login.conf
UserParameter=sys.login,who |wc -l
重启客户端:
systemctl restart zabbix-agent2
#进行测试能否获取数据
yum install -y zabbix-get
zabbix_get -s 127.0.0.1 -p 10050 -k sys.login
2
创建监控项
我们新建模版,然后把新创建的监控项放到这个模版里面,这样在web界面每个主机只需要选择模版就可以用我们创建的监控项。(前提是agent也要配置键值)
新建模版:
在创建的模版里面新建监控项:
注意键值为客户端配置的sys.login
历史记录(history)保留时长: 每个更新间隔获取到的数据推荐空间不乐观 可以设置为30d
趋势数据(trend)保留时长: 记录数据变化的趋势,占用空间较少 ,推荐保留更长时间 3650d
测试监控项:
添加后可以看到:
将模版绑定到主机上:
查看是否获取到值:
自定义触发器
触发器表达式功能:
触发器: trigger 什么时候进行告警
本质使用监控项获取的数据与我们设置的条件进行比较,从而触发警报
我们还是在刚刚创建的模版里面创建触发器:
添加表达式:
添加完成之后,ssh打开多个终端测试是否会触发:
触发成功
自定义图像
我们还是在刚刚创建的模版里面创建
查看图像:
自定义监控nginx的状态
Zabbix客户端,创建key(键值)与调试
nginx开启监控:
cat /etc/nginx/conf.d/status.conf
server {
listen 80 default_server;
server_name localhost ;
location /nginx_status {
stub_status ;
}
}
curl 127.0.0.1/nginx_status
Active connections: 1
server accepts handled requests
1 1 1
Reading: 0 Writing: 1 Waiting: 0
书写监控命令/脚本:
cat /etc/zabbix/ngx_stat.sh
CMD='curl -s 127.0.0.1/nginx_status'
case "$1" in
active)
$CMD |awk 'NR==1{print $NF}'
;;
reading)
$CMD |awk 'NR==4{print $2}'
;;
writing)
$CMD |awk 'NR==4{print $4}'
;;
waiting)
$CMD |awk 'NR==4{print $NF}'
;;
*)
echo "Usage: $0 {active|reading|writing|waiting}"
esac
sh /etc/zabbix/ngx_stat.sh active
1
sh /etc/zabbix/ngx_stat.sh reading
0
sh /etc/zabbix/ngx_stat.sh writing
1
sh /etc/zabbix/ngx_stat.sh waiting
0
写入到zabbix客户端配置文件中 , 并调试 zabbix_get
cat /etc/zabbix/zabbix_agent2.d/nginx.conf
UserParameter=nginx.status[*],sh /etc/zabbix/ngx_stat.sh "$1"
解释:
UserParameter=nginx.status[*],sh /etc/zabbix/ngx_stat.sh "$1" # $1 zabbix 键值中的第1个参数
编辑完之后重启:
systemctl restart zabbix-agent2
zabbix_get -s 127.0.0.1 -k nginx.status[active]
1
zabbix_get -s 127.0.0.1 -k nginx.status[reading]
0
可以看到已经生效
Zabbix服务端web页面-创建监控项
我们还是在模版里面创建
测试:
查看结果:
已经监控到了
这只是添加了其中一个参数的监控项,还要继续添加剩下的。按照上面方法即可,这里不在叙述。
后面添加触发器和图形和监控ssh连接用户个数一样,不再叙述。