zabbix默認自帶了很多有用的監控模板,通常對主機運行狀態使用默認的模板就可以了,有時候我們需要根據實際情況自定義一些監控信息。本文記錄一下zabbix監控nginx服務的配置過程。捋一捋思路,整個配置過程大致如下:
1,確定監控內容
2,編寫agent端的監控腳本
3,配置agentd.conf文件,定義監控腳本key
4,zabbix服務端使用zabbix_get 測試獲取數據
5,登錄zabbix web配置台;
1. 確定監控內容
思考一下nginx有哪些信息可以監控,nginx內置了一個status狀態的功能,通過配置可以看到nginx的運行情況,status顯示的內容包括當前連接數,處於活動狀態的連接數,已經處理的請求數等等,關於status狀態頁的配置在nginx啟用status狀態頁文章有介紹,這里不再多說。
2. 編寫agent端監控腳本
通過腳本獲取status頁面信息的關鍵值,zabbix server通過這些關鍵值才能生成數據圖像,獲取status的關鍵值腳本如下:
#! /bin/bash
#date: 2018-05-04
# Description:zabbix監控nginx性能以及進程狀態
# Note:此腳本需要配置在被監控端,否則ping檢測將會得到不符合預期的結果
HOST="gudaoyufu.com"
PORT="80"
# 檢測nginx進程是否存在
function ping {
/sbin/pidof nginx | wc -l
}
# 檢測nginx性能
function active {
/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'
}
function reading {
/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
function writing {
/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
function waiting {
/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}
function accepts {
/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $1}'
}
function handled {
/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $2}'
}
function requests {
/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $3}'
}
# 執行function
$1
腳本寫完先在本地測試一下
[root@web ~]# sh /home/scripts/ngx_status.sh active
2
3. 配置zabbixd.conf,定義監控腳本key
要使用腳本監控需要將zabbixd.conf文件中的
UnsafeUserParameters=1
開啟
在腳本中添加定義以下各項的鍵值
UserParameter=nginx.status[*],/home/scripts/ngx_status.sh $1
配置好后重啟zabbix-agent
service zabbix-agent restart
4. zabbix服務端使用zabbix_get 測試獲取數據
[root@centos ~]# zabbix_get -s 45.76.195.97 -k nginx.status[active]
3
服務端測試正常后就可以在web界面配置監控了,zabbix配置都是通過界面配置,要熟練配置監控,要了解zabbix的每個組件的功能及各個組件之間的關系,否則看着一堆菜單選項會無從下手。
zabbix的配置流程大致如下:
創建主機組 -》添加主機 -》 創建監控模板 -》 創建應用集 -》創建監控項 -》 創建圖像—》創建觸發器 -》 創建事件 -》創建處理動作 -》 創建用戶組與用戶 -》創建告警方式
由於前面已經創建了主機組和主機,這里從配置模板開始,我們可以通過配置監控模板的方式,讓所有相同的監控需求的主機都統一調用這個監控模板,這樣就不用一個一個地添加監控項了。
這篇文章只做 創建監控模板 -》 創建應用集 -》創建監控項 -》 創建圖像 這三項的步奏,監控告警的內容以后再做。
5. 登錄zabbix web配置台
下面開始頁面配置
創建模板



創建應用集我理解為只是給整個模板組中的一部分監控項模板分類,一個模板組中可以創建不同類別的監控項,創建應用集只是起一個名字,從上圖中的應用集進入后創建好應用集然后就可以在應用集中創建監控項了,見下圖
創建監控項
創建監控項要注意命名方式,能夠見名知意,最關鍵的是 鍵值 ,這里的鍵值一點要和agent端的配置文件中定義的鍵值一致

在監控腳本中,一共定義了7個監控項,所以這里的監控項頁要創建7個,重復上面的步奏,創建腳本中相應的監控項

監控項創建好后就可以創建圖像了

創建圖像
創建圖像在選擇要顯示的圖像的監控項時可以選擇多個監控項,這樣就可以在一個圖像中顯示多個數據的線圖

圖像創建完成以后就可以在看到創建的監控模板已經在工作了,在 最新數據 中可以看到創建的模板信息

進入主機查看,創建的應用集已經在主機的應用集中,因為在剛開始創建模板時已經把模板加到該主機中了

最后看看效果圖吧

看到創建的圖像模板已經出圖像了,創建圖像模板時定義了4個監控項,所以這里有4個線圖。