有時我們的伺服器可能被某個ip大量拉取資料,占用大量寬頻,,
現在要實現,用zabbix監控,有ip異常大流量時,就傳送警報。。
使用iftop列印5秒資料,取出5秒內的最大傳送流量,如下圖紅框中的資料。。
編輯zabbix_agentd.conf(預設在/etc/zabbix/目錄下)使之可以執行指令碼
vim /etc/zabbix/zabbix_agentd.conf
修改或新增以下四項
timeout=10
allowroot=1
include=/etc/zabbix/zabbix_agentd.d/*.conf
unsafeuserparameters=1
在zabbix_agentd.d目錄下的conf檔案中新增"userparameter=ip.maxsendofip,/etc/zabbix/scripts/maxsendofip.sh"#使用iftop工具,取5秒內單個ip對應的最大流量值
#取iftop執行5秒後的第1行中倒數第二列的資料
# => 為從伺服器傳送給ip的流量,,從ip傳到伺服器時'$3=="=>"改為'$2=="<="
result=$(sudo iftop -n -t -s 5 2>/dev/null | awk '$3=="=>" ')
#下面部分是為了適用於zabbix而做的一些額外的工作
#iftop出來的結果為(6.60mb 208kb 320b等),將其結果整合進zabbix時要去掉這些單位並對數值做轉換(zabbix裡我統一用b做單位,只給zabbix傳數值)
if [ -z "$result" ];then
echo 0
else
num=$(echo $result|tr -d "a-za-z")
unit=`echo $`
case $unit in
[kk]) echo "$num*1024"|bc;;
[mm]) echo "$num*1024*1024"|bc;;
[gg]) echo "$num*1024*1024*1024"|bc;;
*) echo "$num"
esac
fi
因為iftop需要root許可權才能執行,編輯zabbix使用者配置sudo許可權執行iftop。visudo,新增以下三行**,ctrl+o 儲存,回車鍵確認,ctrl+x退出。
user_alias zb_users=zabbix
cmnd_alias sys_status=/usr/sbin/iftop,/usr/sbin/iotop,/usr/sbin/tcpdump
zb_users all=(root) nopasswd:sys_status
上邊完成後重啟zabbix_agent。。systemctl restart zabbix_agentd因為客戶端的指令碼執行會在5秒以上,服務端預設的超時是3秒,所以還需要改服務端的timeout。vim /etc/zabbix/zabbix_server.conf
修改或新增下邊一項
timeout=10
服務端就這樣了。。重啟,,systemctl restart zabbix-server在控制面板上新增以下監控項再新增乙個觸發器。100mb=100*1024*1024新增後,就可以在最新資料中檢視獲取到的資料了。zabbix5 0系統監控難點彙總
yum reinstall y mariadb server mariadb systemctl start mariadb.service systemctl enable mariadb.service 建議執行下安全配置 mysql secure installationmysql uroot...
zabbix自定義監控
1 監控資料備份情況 主動模式 1 資料備份及傳送成功 1 2 資料匯入成功 1 2 在zabbix agent客戶端配置如下 root zagent zabbix cat etc zabbix zabbix agentd.conf startagents 0 設定該值為0,則agent不會監聽本地...
zabbix監控之自定義監控
自定義監控node1資料庫狀態,並設定報警 編輯agent客戶端的userparameter mysql.conf 檔案,最後一行新增自定義監控內容 root node1 cd etc zabbix zabbix agentd.d root node1 zabbix agentd.d lsuserp...