zabbix自定义监控
只要能用命令取出来的东西都可以进行监控
当zabbix服务端需要同时监控多个设备时,监控项过多会导致,监控服务器负载高,所以我们要进行自定义监控,把有些不常用的监控项取消掉
创建key键值
- key文件要放在/etc/zabbix/zabbix_agentd.d/目录下,我们创建一个
注意:
/etc/zabbix/zabbix_agentd.d/目录下.conf类似于nginx,在zabbix2.x版本需要/etc/zabbix/zabbix_agent.conf/里打开include。注释取消了才能生效
- 在监控端创建键值,这里我写一个简单的,主要是方法
[root@web01 ~]#vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf 在最下方添加键值 UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive UserParameter=mysql.version,mysql -V UserParameter=user.login,who|wc -l UserParameter=名称,命令或者脚本 [root@web01 zabbix_agentd.d]# systemctl restart zabbix-agent.service
- 在zabbix服务端进行测试
[root@zabbix tool]# zabbix_get -s 172.16.1.7 -p10050 -k user.login 3 成功
zabbix服务端进行配置键值
- 创建模板
不要忘记把创建的模板和主机进行关联,添加模板
- 配置主机(应用集,监控项,触发器}
添加触发器
然后添加图形就行了
nginx状态监控用zabbix页面展示
那首先就是在nginx上开启状态监控
server { listen 80; server_name 192.168.5.7; location / { root /code/wordpress/wordpress; index index.php index.html; } location /status { stub_status; access_log off; allow 172.16.1.0/24; deny all; } location ~ \.php$ { root /code/wordpress/wordpress; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } 看一下是否成功 [root@web01 zabbix_agentd.d]# curl 172.16.1.7/status Active connections: 2 server accepts handled requests 128 128 372 Reading: 0 Writing: 1 Waiting: 1
用命令把我们想要的信息取出来
Active connections: 当前活动的连接数
[root@web01 /]# curl -s 172.16.1.7/status|awk 'NR==1{print $NF}' 1
Reading: 读取报文的数量
[root@web01 /]# curl -s 172.16.1.7/status|awk 'END{print $2}' 0
Writing: 响应报文的数量
[root@web01 /]# curl -s 172.16.1.7/status|awk 'END{print $4}' 1
Waiting: 队列,要处理报文进行保存到队列
[root@web01 /]# curl -s 172.16.1.7/status|awk 'END{print $6}' 0
组合成一个脚本
[root@web01 /]# vim status_nginx.sh #!/bin/bash case "$1" in Active ) curl -s 172.16.1.7/status|awk 'NR==1{print $NF}' ;; Reading ) curl -s 172.16.1.7/status|awk 'END{print $2}' ;; Writing ) curl -s 172.16.1.7/status|awk 'END{print $4}' ;; Waiting ) curl -s 172.16.1.7/status|awk 'END{print $6}' ;; esac
测试一下
[root@web01 /]# sh status_nginx.sh Waiting 0
创建自定义key开始写的步骤:
[root@web01 ~]#vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf 在最下方添加键值 UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive UserParameter=mysql.version,mysql -V UserParameter=nginx.status[*],sh /nginx_status.sh "$1" 意义表示: UserParameter=nignx.status[read],sh /nginx_status.sh read 这种是一个参数,要是两个或者多个参数: UserParameter=nginx.status[*],sh /nginx_status.sh "$1" "$2" 意义表示: UserParameter=nignx.status[read,xxx] ,sh/nginx_status.sh read xxx
改完之后重启zabbix服务
[root@web01 /]# systemctl restart zabbix-agent.service
在zabbix服务端进行键值检测
[root@zabbix tool]# zabbix_get -s 172.16.1.7 -p10050 -k nginx.status[Active] 1 [root@zabbix tool]# zabbix_get -s 172.16.1.7 -p10050 -k nginx.status[Reading] 0 [root@zabbix tool]# zabbix_get -s 172.16.1.7 -p10050 -k nginx.status[Writing] 1 [root@zabbix tool]# zabbix_get -s 172.16.1.7 -p10050 -k nginx.status[Waiting] 0
现在在zabbix服务端web上配置
因为都是web服务器主机就用原来了,这里只需改:
应用集
监控项
我写的这个脚本有四个选项参数,所以就要创建四个
这里不需要触发器,直接图形
完成了
继续阅读

我的微信
这是我的微信扫一扫
评论