Zabbix 動態執行監控採集指令碼的實現原理

2022-09-21 18:09:09 字數 1586 閱讀 9207

實現原理:使用檔案伺服器統一存放和管理監控指令碼,在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,把深度值寫入其中所以稱之為深度圖,在把接受陰影的物體從模型空間轉換到燈光空間中,...