zabbix4.2監控nginx
項目環境:
| 操作系統 | 主機名 | IP地址 |
| Centos7.6 x86_64 | zabbix-server | 192.168.1.18 |
| Centos7.6 x86_64 | zabbix-client | 192.168.1.20 |
在zabbix-servre安裝配置完好的前提下,進行如下操作
配置操作如下:
1. 客戶端安裝nginx軟件
[root@Zabbix-Agent ~]# yum -y install nginx
2. 編輯主配置文件server標簽下添加一個location
[root@Zabbix-Agent ~]# vim /etc/nginx/nginx.conf
location /nginx_status {stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
3. 啟動nginx服務
[root@Zabbix-Agent ~]# systemctl start nginx
[root@Zabbix-Agent ~]# systemctl enable nginx
4. 本地訪問Nginx Status
[root@Zabbix-Agent ~]# curl -s http://127.0.0.1/nginx_status
Active connections: 1
server accepts handled requests
1 1 1
Reading: 0 Writing: 1 Waiting: 0
Nginx狀態解釋:
Active connections Nginx正處理的活動鏈接數1個
server Nginx啟動到現在共處理了1個連接。
accepts Nginx啟動到現在共成功創建1次握手。
handled requests Nginx總共處理了1次請求。
Reading Nginx讀取到客戶端的 Header 信息數。
Writing Nginx返回給客戶端的 Header 信息數。
Waiting Nginx已經處理完正在等候下一次請求指令的駐留鏈接,開啟。
Keepalive的情況下,這個值等于active-(reading + writing)。
請求丟失數=(握手數-連接數)可以看出,本次狀態顯示沒有丟失請求。
5. 編寫nginx_status腳本
[root@Zabbix-Agent ~]# mkdir -p /server/scripts/
[root@Zabbix-Agent ~]# vim /server/scripts/zabbix_status.sh
#!/bin/bash
############################################################
# $Name: nginx_status.sh
# $Version: V1.1
# $Function: Nginx_Status
# $Author: Happy峰
# $organization: blog.chenjiangfeng.com
# $Create Date: 2019-05-23
# $Description: Monitor Nginx Service Status
############################################################
#!/bin/bash
NGINX_HOST=127.0.0.1
NGINX_PORT=80 #如果端口不同僅需要修改腳本即可,否則修改xml很麻煩
NGINX_URI=/nginx_status
NGINX_COMMAND=$1
nginx_active(){ /usr/bin/curl -s "http://${NGINX_HOST}:${NGINX_PORT}${NGINX_URI}" |awk '/Active/ {print $NF}'}
nginx_reading(){ /usr/bin/curl -s "http://${NGINX_HOST}:${NGINX_PORT}${NGINX_URI}" |awk '/Reading/ {print $2}'}
nginx_writing(){ /usr/bin/curl -s "http://${NGINX_HOST}:${NGINX_PORT}${NGINX_URI}" |awk '/Writing/ {print $4}'}
nginx_waiting(){ /usr/bin/curl -s "http://${NGINX_HOST}:${NGINX_PORT}${NGINX_URI}" |awk '/Waiting/ {print $6}'}
nginx_accepts(){ /usr/bin/curl -s "http://${NGINX_HOST}:${NGINX_PORT}${NGINX_URI}" |awk 'NR==3 {print $1}'}
nginx_handled(){ /usr/bin/curl -s "http://${NGINX_HOST}:${NGINX_PORT}${NGINX_URI}" |awk 'NR==3 {print $2}'}
nginx_requests(){ /usr/bin/curl -s "http://${NGINX_HOST}:${NGINX_PORT}${NGINX_URI}" |awk 'NR==3 {print $3}'}
case $NGINX_COMMAND in
active)
nginx_active;
;;
reading)
nginx_reading;
;;
writing)
nginx_writing;
;;
waiting)
nginx_waiting;
;;
accepts)
nginx_accepts;
;;
handled)
nginx_handled;
;;
requests)
nginx_requests;
;;
*)
echo $"USAGE:$0 {active|reading|writing|waiting|accepts|handled|requests}"esac
6. 給腳本授予執行權限
[root@Zabbix-Agent ~]# chmod a+x /server/scripts/zabbix_status.sh
7. zabbix-agent端本地測試腳本是否能獲取到數據
[root@Zabbix-Agent ~]# sh /server/scripts/zabbix_status.sh active
1
[root@Zabbix-Agent ~]# sh /server/scripts/zabbix_status.sh reading
0
[root@Zabbix-Agent ~]# sh /server/scripts/zabbix_status.sh writing
1
[root@Zabbix-Agent ~]# sh /server/scripts/zabbix_status.sh waiting
0
[root@Zabbix-Agent ~]# sh /server/scripts/zabbix_status.sh accepts
15
[root@Zabbix-Agent ~]# sh /server/scripts/zabbix_status.sh handled
16
[root@Zabbix-Agent ~]# sh /server/scripts/zabbix_status.sh requests
17
[root@Zabbix-Agent ~]# sh/server/scripts/zabbix_status.sh nginx
USAGE/etc/zabbix/scripts/zabbix_status.sh {active|reading|writing|waiting|accepts|handled|requests}
7. 在zabbix-agent配置文件添加一個自定義key
[root@Zabbix-Agent ~]# vim /etc/zabbix/zabbix_agent.d/zabbix_nginx_status.conf
UserParameter=nginx_status[*],/bin/bash /server/scripts/zabbix_status.sh "$1"
8. 重啟zabbix-agent服務
[root@Zabbix-Agent ~]# systemctl restart zabbix-agent
9. zabbix server 測試agent-key是否能獲取到響應值
[root@Zabbix-Server ~]# zabbix_get -s 192.168.1.20 -k nginx_status[active]
1
[root@Zabbix-Server ~]# zabbix_get -s 192.168.1.20 -k nginx_status[reading]
0
[root@Zabbix-Server ~]# zabbix_get -s 192.168.1.20 -k nginx_status[writing]
1
[root@Zabbix-Server ~]# zabbix_get -s 192.168.1.20 -k nginx_status[accepts]
30
[root@Zabbix-Server ~]# zabbix_get -s 192.168.1.20 -k nginx_status[handled]
31
[root@Zabbix-Server ~]# zabbix_get -s 192.168.1.20 -k nginx_status[requests]
32
10. zabbix-web端添加監控主機
11. 添加監控項
12. 創建一張匯總數據的圖形


















浙公網安備 33010602011771號