轉自@twt社區,做者:Zabbix大叔_樂維。linux
前言nginx
在過去的幾年裏,開源產品和商業監控應用程序發生了爆炸式增加,涌現出了一批優秀且應用普遍的監控工具,如Zabbix、Prometheus等,系統運維人員須要掌握這些新工具,以及解決這些工具在平常應用中的各類故障、難題等。咱們將持續在社區和公衆號中發佈同行分享的相關實用知識和技巧。web
場景需求:chrome
一、咱們能夠經過zabbix_server的web界面的腳本功能實現對已經安裝了zabbix_agent主機實現遠程關機而不用手動登錄而後輸入關機指令shell
二、咱們能夠經過zabbix_server的web界面的腳本功能實現某個服務的啓動關閉和重啓vim
實驗配置過程:segmentfault
一、建立腳本 打開zabbix_server的web配置界面,選擇管理,接着選擇藍色導航條中的腳本選項,最後點擊建立腳本。bash
腳本名稱:自定義服務器
類型:若是是window或者linux主機類型都是選擇腳本。IPMI類型(暫且不討論)app
執行在:有三種類型,
(1)zabbix客戶端,說明建立的腳本會在安裝了zabbix客戶端的主機上運行。
(2) zabbix_server(代理),說明腳本會在zabbix代理上執行。
(3)zabbix服務器,說明腳本會在服務器上面執行。
命令:能夠填系統命令,或者某個腳本的絕對路徑
要求的主機權限:選擇默認就行了
建立一個顯示主機ip的腳本
重要:腳本建立完成後,必須到zabbix_agent的配置文件中開啓容許zabbix客戶端執行遠程命令
把默認的EnableRemoteCommands=0改爲EnableRemoteCommands=1
重啓zabbix客戶端,使配置生效
腳本建立完成後,咱們去到zabbix_server的web界面中的監測,而後找到藍色導航條中的最新數據,找一臺已經已經安裝了zabbix客戶端的window主機執行。由於ifconfig是Linux主機的系統命令,因此測試只能找安裝了zabbix客戶端的Linux主機測試。
而後在主機列中,鼠標左鍵一下主機名,就會出現一些咱們自定義和內置的腳本。顯示IP的腳本就是咱們剛纔建立的。
執行結果:
正常的顯示出安裝了zabbix客戶端的linux主機的ip
原文地址:http://www.talkwithtrend.com/Article/247577
需求:監控網站pv和uv的總量和5分鐘內的pv和uv的增量
1. PV、UV是什麼?
UV:獨立訪客,每一個獨立上網電腦視爲一位訪客,一天以內網站的訪客數量
PV:訪問量,頁面瀏覽量或者點擊量,用戶每訪問一次記錄一次
2. 根據的訪問日誌統計網站PV 和UV總量
[root@server-web scripts]# cd /usr/local/zabbix/scripts/
[root@server-web scripts]# cat pvuv_number.sh
/bin/bash
desc: used nginx pv and uv
uv_number(){
cat /usr/local/nginx/logs/access.log |awk '{print $1}'|sort|uniq|wc -l
}
pv_number(){
cat /usr/local/nginx/logs/access.log |awk '{print $7}'|wc -l
}
case $1 in
uv|UV)
uv_number;
;;
pv|PV)
pv_number;
;;
esac
exit 0
[root@server-web scripts]# chmod 755 pvuv_number.sh
[root@server-web scripts]# chown zabbix:zabbix pvuv_number.sh
[root@server-web scripts]# chown zabbix:zabbix pvuv_number.sh
[root@server-web scripts]# vim /usr/local/zabbix/etc/zabbix_agentd/nginx.conf
[root@server-web scripts]# chmod 755 /usr/local/zabbix/etc/zabbix_agentd/nginx.conf
[root@server-web scripts]# chown zabbix: /usr/local/zabbix/etc/zabbix_agentd/nginx.conf
3. 製做模板
3.1 添加PV的總量
3.2 添加5分鐘內訪問量 #時間選擇5分鐘,而後在根據zabbix的簡單更改的功能獲取5分鐘內的增量。
3.3 UV根據PV的相似
4. 實現效果
原文地址:http://www.talkwithtrend.com/Article/247773
分析:但願在星期一時某一監控閾值在固定較高的位子,其他時間則默認該監控閾值處在一個較低的固定位置。
下面以監控某一臺主機的CPU使用率爲例:
一、去到某一主機的觸發器配置裏面,找到原有的CPU使用率告警觸發器。如圖1.1.
二、進行入下圖2.1配置。
三、進行下圖3.一、3.2配置。
四、調整完畢,點擊「更新」如圖4.1。
框內的表達式表示「CPU總使用率持續3分鐘大於95%且爲週一時」 觸發嚴重告警。
五、另外,還要配置多一條針對該監控項的觸發器,從新打開該觸發器,點擊「克隆」,如圖5.一、圖5.2.
圖5.2中的表達式書寫方法與前面差很少,只是運算符號由原來的「=」,改成」<>」,表示不等於,便是非週一。結合全段表達的內容爲「在非週一時段,CPU使用率持續三分鐘大於65%」。
以後直接點擊添加,即完成配置。
原文地址:http://www.talkwithtrend.com/Article/247737
做者:劉俊源
爲何要使用zabbix_sender?
zabbix獲取數據有超時時間,若是一些數據須要執行比較長的時間才能獲取的話,那麼zabbix會出現異常,考慮到這種狀況,zabbix增長了Trapper功能,客戶端本身提交數據給zabbix,這個通道即是trapper。
思路解析:在window主機上,編寫一個每隔5秒就會執行tasklist查看進程的bat腳本,若是該腳本找到了指定的進程就經過zabbix_sender發送「is running」到zabbix_server服務器,此時對應的zabbix_trapper(zabbix採集器)監控項就會獲取到「is running」這個最新的數據。若是找不到進程的話,就經過zabbix_sender發送「not running」到zabbix_server服務器,此時zabbix_trapper(zabbix採集器)監控項就會獲取到「not running」這個最新的數據。最後還要給這個監控應用進程的服務器設置一個觸發器,若是觸發器的值等於not running就觸發告警。
1. 首先咱們要準備一個監控應用進程的批處理腳本(bat腳本)
@echo off
if "%1" == "h" gotobegin
mshtavbscript:createobject("wscript.shell").run("%~nx0h",0)(window.close)&&exit
:begin
:start
ping -n 5 127.0.0.1>nul
tasklist|findstr "chrome.exe"
if %errorlevel% == 0 (
"C:ProgramFilesZABBIX_AGENT3binwin64zabbix_sender.exe" -s"zabbix-server" -z 192.168.74.128 -k "test" -o "isrunning"
) else (
"C:ProgramFilesZABBIX_AGENT3binwin64zabbix_sender.exe" -s"zabbix-server" -z 192.168.74.128 -k "test" -o "notrunning"
)
goto start
腳本解析:
@echo off 做用是關閉回顯功能。若是沒有此代碼,第三行的ping –n 5 127.0.0.1>nul這個命令就會顯示到cmd控制檯。
if "%1" == "h" gotobegin
mshtavbscript:createobject("wscript.shell").run("%~nx0h",0)(window.close)&&exit
:begin
這段代碼的做用是把bat腳本放到後臺運行
Ping –n 5 127.0.0.1>nul 這句代碼的意思是ping本地地址,有5條顯示記錄(若是要每隔十秒或者幾十秒執行腳本,能夠修改-n後面的參數ping -n 後面的數字越大,腳本執行的間隔越長),而後把ping的結果重定向到nul就是不會輸出內容到cmd控制檯,(Ping –n 5127.0.0.1>nul與goto start這句語句結合,實現每5秒執行一次這個腳本。)
Tasklist|findstr 「chrome.exe」這句代碼的做用是列出當前運行的進程,而後經過findstr工具查看chrome.exe程序有沒有運行
%ERRORLEVEL% 是批處理腳本的全局變量,返回上一條命令的結果,若是上一條命令執行成功就會返回0,不然返回1.
Goto start 做用是跳轉到start函數塊執行函數裏的命令。函數塊前面要以冒號開頭,第二行的start前面要加冒號
(安裝window版本的zabbix_agent就會附帶zabbix_sender)
zabbix_sender用法
zabbix_sender –s 「zabbix_server的主機名」-z 「zabbix_server的IP」-k 「鍵值名」-o 「自定義發送的消息」
"C:ProgramFilesZABBIX_AGENT3binwin64zabbix_sender.exe" -s"zabbix-server" -z 192.168.74.128 -k "test" -o "isrunning" 這條命令是若是存在指定的進程,就發送is running
"C:ProgramFilesZABBIX_AGENT3binwin64zabbix_sender.exe" -s "zabbix-server"-z 192.168.74.128 -k "test" -o "not running" 這條命令是若是不存在指定的進程,就發送not running
(特別注意:爲了獲取到最新數據,因此這兩個命令的鍵值必須使用相同名稱的鍵值「test」)
2.在zabbix_server界面建立trapper監控項
測試效果:
Chorme.exe程序運行,chorme.exe運行狀態監控項獲取到「is running」
Chorme.exe程序沒有運行,chorme.exe運行狀態監控項獲取到「not running」
3.配置觸發器,若是chorme.exe服務沒有運行就要告警
實際效果,手動關閉chorme.exe服務,觸發告警