zabbix監控nginxlinux
在zabbix的客戶端wangb02機器上安裝nginx並啓動起來nginx
在aminglinux02上安裝Nginx
編輯yum倉庫:git
[root@wangzb02 ~]# vi /etc/yum.repos.d/nginx.repo 粘貼: [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=1 安裝: [root@wangzb02 ~]# yum install -y nginx
配置Nginx狀態信息github
[root@wangzb02 ~]# vi /etc/nginx/conf.d/default.conf #增長 location /nginx_status { stub_status on; access_log off; allow 127.0.0.1; deny all; }
測試centos
[root@wangzb02 ~]# curl 127.0.0.1/nginx_status Active connections: 1 server accepts handled requests 7 7 7 Reading: 0 Writing: 1 Waiting: 0
說明:bash
Active Connections:當前活動鏈接數,其中也包括了等待狀態的鏈接 accepts:接收到的鏈接數 handled:已經處理完的鏈接數,該數字通常和accepts一致,若是不一致那麼說明Nginx出錯了 requests:總共處理的請求數,一個鏈接能夠有多個請求,因此該值比accpets要大 Reading:正在讀取請求頭信息的鏈接數 Writing:正在發送響應報文的鏈接數 Waiting:處於閒置狀態,等待客戶端發送請求的鏈接數
編寫監控腳本curl
[root@wangzb02 ~]# vi /usr/local/sbin/ngx_status.sh #內容以下 #!/bin/bash url="http://127.0.0.1/nginx_status" curl=/usr/bin/curl # 檢測nginx進程是否存在 function ping { /sbin/pidof nginx | wc -l } # 檢測nginx性能 function active { $curl $url 2>/dev/null| grep 'Active' | awk '{print $NF}' } function reading { $curl $url 2>/dev/null| grep 'Reading' | awk '{print $2}' } function writing { $curl $url 2>/dev/null| grep 'Writing' | awk '{print $4}' } function waiting { $curl $url 2>/dev/null| grep 'Waiting' | awk '{print $6}' } function accepts { $curl $url 2>/dev/null| awk NR==3 | awk '{print $1}' } function handled { $curl $url 2>/dev/null| awk NR==3 | awk '{print $2}' } function requests { $curl $url 2>/dev/null| awk NR==3 | awk '{print $3}' } $1 [root@wangzb02 ~]# chmod 755 /usr/local/sbin/ngx_status.sh [root@wangzb02 ~]# /usr/local/sbin/ngx_status.sh active 1 [root@wangzb02 ~]# /usr/local/sbin/ngx_status.sh ping 1 [root@wangzb02 ~]# /usr/local/sbin/ngx_status.sh reading 0 [root@wangzb02 ~]# /usr/local/sbin/ngx_status.sh accepts 15
編輯zabbix_agent.conf性能
[root@wangzb02 ~]# vi /etc/zabbix/zabbix_agentd.conf # 增長 UserParameter=nginx.status[*],/usr/local/sbin/ngx_status.sh $1
重啓服務測試
[root@wangzb02 ~]# systemctl restart zabbix-agent
zabbix_get 測試url
在服務端執行
[root@wangzb01 run]# zabbix_get -s 192.168.1.35 -k 'nginx.status[accepts]' 8 [root@wangzb01 run]# zabbix_get -s 192.168.1.35 -k 'nginx.status[ping]' 1 [root@wangzb01 run]# zabbix_get -s 192.168.1.35 -k 'nginx.status[reading]' 0 [root@wangzb01 run]# zabbix_get -s 192.168.1.35 -k 'nginx.status[accepts]' 10 [root@wangzb01 run]# zabbix_get -s 192.168.1.35 -k 'nginx.status[accepts]' 11 [root@wangzb01 run]# zabbix_get -s 192.168.1.35 -k 'nginx.status[accepts]' 12
導入nginx模板
下載模板
https://github.com/aminglinux/linux2019/blob/master/zabbix_nginx_template/zbx_export_templates.xml
Configuration -> Templates -> 右上角Import
查看導入的模板:
連接模板
Configuration -> Hosts -> wangzb02 -> Templates -> Select -> Add -> Update