實現原理:使用檔案伺服器統一存放和管理監控指令碼,在zabbix agent預埋通用指令碼,根據zabbix server傳輸的key和引數,從檔案伺服器拉取指令碼執行後返回資料。
架構設計:
具體實現:
1.搭建檔案伺服器,以nginx作為檔案伺服器為例
修改nginx的配置並重啟
erver
}2.編寫檔案拉取和執行的指令碼
url="" #定義檔案伺服器的url
parentdir="/usr/local/zabbix/bin/zabbix_script"
file_directory=$parentdir/$1 #定義本地存放執行指令碼的目錄
file_name=$2 #指令碼名稱
file_path=$1/$2 #拼接檔案伺服器的指令碼www.cppcns.com路徑
if [ ! -d $file_directory ];the程式設計客棧n #判斷檔案目錄是否存在
mkdir -p $file_directory
fiif [ ! -f $parentdir/$file_path ];then #判斷指令碼是否已經存在
wget -p $file_dijjbnorectory $url$file_path 2>>log
fitimestamp=$(date +%s)
filetimestamp=$(stat -c %y $parentdir/$file_path)
if [ $[$timestamp - $filetimestamp] -gt 3600 ];then #判斷當前時間與指令碼修改時間的大小,3600秒更新一次
wget $url$file_path -o $parentdir/$file_path 2>>log #覆蓋指令碼
touch -c $parentdir/$file_path #修改指令碼的修改時間
fipython $parentdir/$file_path $3 #執行指令碼
3.增加zabbix的配置檔案
userparameter=requests_file[*],sh /usr/local/zabbix/bin/zabbix_script/requests_file.sh $1 $2 $3
4.重啟zabbix agent
5.編寫測試指令碼,並上傳到檔案伺服器指定目錄
#監控伺服器連線數
#!/usr/bin/python
import pwd
import os,sys
import re
import glob
state = sys.ar**[1]
cjjbnomd = "netstat -an | grep " + state + " | wc -l"
os.system(cmd)
6.配置zabbix頁面的監控項:
7.觀察資料是否正常 :
8.新的監控指令碼放在檔案伺服器之後,可直接配置頁面的監控項進行資料採集
本文著重提供了乙個zabbix自定義監控指令碼集中管理的解決思路,可根據這個思路自由拓展更簡潔、高效的zabbix使用方法,進一步讓運維變得簡單。
參考鏈結 :
zabbix 如何動態執行監控採集指令碼 :
Zabbix實現批量監控埠狀態的方法
引言 在監控生產環境的服務的時候,通rqkvrpgyss常需要對多個埠進行監控,如果我們手動乙個乙個的新增,這將是一件很麻煩的事情,為了減少這樣的情況,我們採用批量新增監控埠的方法,這是非常常見的需求,zabbix也是支援這種方式的,需要使用zabbix的discovery功能來實現,下面小編就給大...
shell指令碼 監控oracle的執行狀態
bin sh author wdh226 date 2012年5月26日0 41 05 監控oa伺服器oracle埠1521是否異常,一旦出現問題,傳送郵件到245696918 qq.com healoracle ne 0 then return else return fi send oracle...
遊戲裡的動態陰影 ShadowMap實現原理
shadowmap是比較流行的實時陰影實現方案,原理比較簡單,但真正實現起來還是會遇到很多問題的,我這裡主要記錄下實現方式 先看效果 實現原理 shadowmap技術是從燈光空間用相機渲染一張rendertexture,把深度值寫入其中所以稱之為深度圖,在把接受陰影的物體從模型空間轉換到燈光空間中,...