Zabbix監控Nginx
在添加監控之前,必須要強調的是,Nginx必須支援stub_status狀態的訪問,不然一切都是空談!!!
首先zabbix監控nginx 是根據nginx的Stub Status模組,抓取Status模組所提供的資料。如果想啟用Stub Status模組,在編譯nginx的時候要加上參數 --with-http_stub_status_module例如:./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module--with-http_ssl_module
在Nginx配置檔中添加: location /nginx_status { stub_status on; access_log off; }
一、建立監控Nginx的key
vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/nginx_status_keyUserParameter=nginx.accepts,/usr/local/zabbix/shell/nginx_status.sh accepts UserParameter=nginx.handled,/usr/local/zabbix/shell/nginx_status.sh handled UserParameter=nginx.requests,/usr/local/zabbix/shell/nginx_status.sh requests UserParameter=nginx.connections.active,/usr/local/zabbix/shell/nginx_status.sh active UserParameter=nginx.connections.reading,/usr/local/zabbix/shell/nginx_status.sh reading UserParameter=nginx.connections.writing,/usr/local/zabbix/shell/nginx_status.sh writing UserParameter=nginx.connections.waiting,/usr/local/zabbix/shell/nginx_status.sh waiting
二、建立監控Nginx的指令碼(記得加執行許可權)
vim /usr/local/zabbix/shell/nginx_status.sh#!/bin/bash # Script to fetch nginx statuses for tribily monitoring systems # License: GPLv4 # Set Variables BKUP_DATE=`/bin/date +%Y%m%d` LOG="/usr/local/zabbix/logs/nginx_status.log"HOST="192.168.0.217" #HOST非常重要,確保CURL能訪問到這個IP地址的StatusPORT="80"# Functions to return nginx stats functionactive { /usr/bin/curl "http://$HOST:$PORT/nginx_status"2>/dev/null| grep 'Active' | awk '{print $NF}' } functionreading { /usr/bin/curl "http://$HOST:$PORT/nginx_status"2>/dev/null| grep 'Reading' | awk '{print $2}' } functionwriting { /usr/bin/curl "http://$HOST:$PORT/nginx_status"2>/dev/null| grep 'Writing' | awk '{print $4}' } functionwaiting { /usr/bin/curl "http://$HOST:$PORT/nginx_status"2>/dev/null| grep 'Waiting' | awk '{print $6}' } functionaccepts { /usr/bin/curl "http://$HOST:$PORT/nginx_status"2>/dev/null| awk NR==3 | awk '{print $1}' } functionhandled { /usr/bin/curl "http://$HOST:$PORT/nginx_status"2>/dev/null| awk NR==3 | awk '{print $2}' } functionrequests { /usr/bin/curl "http://$HOST:$PORT/nginx_status"2>/dev/null| awk NR==3 | awk '{print $3}' } # Run the requested function$1
三、在Zabbix Web介面中建立Templates App Nginx模版
(1)、先建立三個item,這個store value要求是每秒變化的
- nginx.accepts
- nginx.handled
- nginx.requests
我在這邊做一個樣本:模版中添加一個nginx.accepts的itemName nginx.accepts Type Zabbix agentKey nginx.acceptsTypeof information Numeric (unsigned)Data Type DecimalUnits 空Store value Detal (speed per second)Show value As is
(2)、而後四個item Store value是不變的
- nginx.connections.active
- nginx.connections.reading
- nginx.connections.writing
- nginx.connections.waiting
Name nginx.connections.activeType Zabbix agentKey nginx.acceptsTypeof information Numeric (unsigned)Data Type DecimalUnits 空Store value As isShow value As is
建立完大概是這個樣子,相信新手也能做出來!!!
四、現在點擊要Tempates的Graphs,分別建立兩個Graphs
監控Nginx(nginx.accepts、nginx.handled、nginx.requests)監控Nginx(nginx.connections.active、nginx.connections.reading、nginx.connections.writing、nginx.connections.waiting)
映像1:暫且取名為 Nginx_Interactive
映像2:暫且取名為 Nginx_Connection
五、Hosts-Templates-將剛才建立的Templates App Nginx連結到主機上面
完成之後大概是這個樣子
六、在Screen中建立監控Nginx的Screen,將前面建立的兩個映像添加進去
七、這時候在Zabbix Web頁面中查看Nginx狀態就OK~~~
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
以上就介紹了 Zabbix監控Nginx,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。