1.監控web
Zabbix的Web監測功能,沒有任何依賴,不需要agent端,全部依賴於Server的主動監測
利用Web監測,監測Server端的nginx首頁
點擊 web監測
點擊右上角創建web場景
客戶端的選擇比較只能,我們可以默認,它自動會選擇
添加步驟
名稱隨便寫,URL爲你要監控的ip ,要求驗證碼爲200(如果不是200就報警)
查看一下
2.監控nginx狀態
2.1 創建nginx監控status
在nginx的配置文件中,添加status配置
[root@ng-to-re ~]# vim /app/nginx/conf/nginx.conf
location = /nginx-status {
stub_status on;
access_log off;
allow 127.0.0.1;
allow 192.168.9.111; #zabbix服務器地址一般是內網地址
deny all;
}
重啓
[root@ng-to-re ~]# systemctl restart nginx
在zabbix-server上測試連通性
[root@zabbix alertscripts]# curl 192.168.9.112/nginx-status
Active connections: 1
server accepts handled requests
2 2 2
Reading: 0 Writing: 1 Waiting: 0
nginx status詳細說明如下:
Active connections:對後端發起的活動連接數;
accepts:nginx總共處理了多少個連接;
handled:nginx成功創建了幾次握手;
requests:nginx總共處理了多少請求。
Reading:nginx讀取客戶端的header數;
Writing:nginx返回給客戶端的header數;
Waiting:nginx請求處理完成,正在等待下一請求指令的連接
2.2 在agents端創建腳本和自定義配置文件
創建腳本:
[root@ng-to-re zabbix]# mkdir /etc/zabbix/scripts
[root@ng-to-re zabbix]# cd /etc/zabbix/scripts
[root@ng-to-re scripts]# vim nginx_status.sh
#!/bin/bash
# Set Variables
HOST="127.0.0.1"
PORT="80"
#Functions to return nginx stats
function active(){
/usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null | grep "Active" | awk '{print $NF}'
}
function reading(){
/usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null | grep "Reading" | awk '{print $2}'
}
function writing(){
/usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null | grep "Writing" | awk '{print $4}'
}
function accepts(){
/usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null | awk 'NR==3' | awk '{print $1}'
}
function handled(){
/usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null | awk 'NR==3' | awk '{print $2}'
}
function requests(){
/usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null | awk 'NR==3' | awk '{print $3}'
}
function ping(){
/sbin/pidof nginx | wc -l
}
# Run the requested function
$1
給執行權限和改雙主
[root@ng-to-re scripts]# chmod +x nginx_status.sh
[root@ng-to-re scripts]# chown zabbix.zabbix nginx_status.sh
創建配置文件
[root@ng-to-re zabbix_agentd.d]# cat /etc/zabbix/zabbix_agentd.d/nginx_status.conf
UserParameter=nginx.status[*],/etc/zabbix/scripts/nginx_status.sh $1
重啓agent客戶端
[root@ng-to-re zabbix_agentd.d]# systemctl restart zabbix-agent
在zabbix-server端測試拉取
[root@zabbix externalscripts]# zabbix_get -s 192.168.9.112 -k "nginx.status[reading]" -p 10050
0
[root@zabbix externalscripts]# zabbix_get -s 192.168.9.112 -k "nginx.status[writing]" -p 10050
1
[root@zabbix externalscripts]# curl 192.168.9.112/nginx-status
Active connections: 1
server accepts handled requests
41 41 41
Reading: 0 Writing: 1 Waiting: 0
2.3在zabbix-server上添加nginx-status模板,模板可以導入也可以自己一條條添加做成模板,我們先用已經一條條做完的模板,導入進來
點擊模板---導入模板
導入進來了名字叫 Template App NGINX
導進來的模板我們把它應用在ng-to-re服務器上,選擇ng主機---模板--鏈接指示器中找到 Template App NGINX 並添加進來,更新
導入進來的模板只有ping的觸發器我們加一個writing的觸發器 模板--選擇Template App NGINX---觸發器
創建觸發器---點擊添加
點擊--表達式構造器,點擊嚴重性
添加圖形
選擇主機和圖形進行查看我們剛剛弄得圖形