- A+
所属分类:Zabbix
本文自定义监控Nginx状态模板,模板可以导入可以导出
1.
- // /etc/nginx/nginx.conf
- server {
- server_name 127.0.0.1;
- location /nginx_status{
- stub_status on;
- access_log off;
- allow 127.0.0.1;
- deny all;
- }
- }
- // 重启nginx服务
- [root@linux-node2 ~]# systemctl restart nginx
- // 获取nginx状态
- [root@linux-node2 ~]# curl http://127.0.0.1/nginx_status
- Active connections: 1 // 正在处理的活动连接数
- server accepts handled requests // 总共接受的连接/成功创建多少次握手/总共处理了多少请求
- 3 3 3
- Reading: 0 Writing: 1 Waiting: 0
2.
- // vim /etc/zabbix/zabbix_nginx_plugin.sh // 编写完脚本要加执行权限和用户和组归zabbix
- #!/bin/bash
- NGINX_PORT=$1
- nginx_active(){
- /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'
- }
- nginx_reading(){
- /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'
- }
- nginx_writing(){
- /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
- }
- nginx_waiting(){
- /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
- }
- nginx_accepts(){
- /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $1}'
- }
- nginx_handled(){
- /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $2}'
- }
- nginx_requests(){
- /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $3}'
- }
- main(){
- case $2 in
- active)
- nginx_active;
- ;;
- reading)
- nginx_reading;
- ;;
- writing)
- nginx_writing;
- ;;
- waiting)
- nginx_waiting;
- ;;
- accepts)
- nginx_accepts;
- ;;
- handled)
- nginx_handled;
- ;;
- requests)
- nginx_requests;
- esac
- }
- main $1 $2
3.
- // vim /etc/zabbix/zabbix_agentd.d/zabbix-nginx.conf
- UserParameter=nginx-status[*],/etc/zabbix/zabbix_nginx_plugin.sh "$1" "$2"
- // 说明:此配置中key的*号表示接受所有的参数传给后面的脚本所接的参数,此脚本支持两个参数
4.
- systemctl restart zabbix-agent.service
5.
- [root@linux-node1 ~]# zabbix_get -s 192.168.56.12 -k nginx-status[80,accepts]
- 67
6. 在终端配置成功后就可以在zabbix-web界面上添加自定义的模板了
首先创建模板
配置步骤:配置---模板---创建模板
配置模板信息
以上模板创建完之后模板还是空白的,我们需要创建东西(应用集--监控项),所以在此找到这个模板创建应用集和监控项。
创建应用集
创建监控项(item)
编辑配置item
然后保存,通过克隆加上他的7个item
最后将剩余的item全部克隆出来如下所示:
最后将要监控的主机链接上我们这个自定义的模板:
现在可以去监控项看看node2的监控项是否添加成功,也可以看看最新数据下面:
到此,自定义模板完成!