用zabbix_sender監控磁盤是否只讀 原 薦

zabbix_sender是一個能夠在客戶端主動把數據發給zabbix server的工具,zabbix server無需去客戶端進行獲取,只需要接收客戶端提交過來的數據即可。使用zabbix_sender,zabbix server的監控項目的配置的類型就要配置zabbix捉捕器(zabbix trapper),另外需要注意觸發器需要在一定時間內沒接收到數據觸發告警。

監控磁盤只讀是比較頭疼的事,說一下以下方案:

1: 每個分區給zabbix權限,然後每個分區都探測下,這個部署起來比較麻煩。

2: 用root用戶每分鐘去探測每個分區,然後寫入一個文件,最後再部署一個UserParameter,重啓agent。聽起來也比較麻煩。

3: 使用zabbix_sender,root用戶探測到哪個分區有異常時,直接跟zabbix server彙報,這個部署起來比較方便點。

先看下使用zabbix_sender客戶端向zabbix server端彙報過來的截圖如下,截圖都沒有問題,如果有問題,會彙報 分區名 read only:

 

使用zabbix_sender實現磁盤只讀監控,首先,在客戶端的crontab放一個腳本,每兩分鐘去探測下磁盤是否異常,過濾掉nfs和tmpfs不去探測,腳本就echo一下,如果echo有問題就進行彙報,如下:

#!/bin/sh
ZabbixHost=`hostname`
Check_Desc="Check Disk Read Only"
houzhui=`date "+%Y%m%d"`
df -Th |egrep -v -i 'tmpfs|nfs'|awk '$(NF-1)~/%/{print $NF}'|grep '^/'|sort -u|while read line;do
    echo "zabbix_test" > ${line}/zabbix_test_${houzhui}
    if [ $? -ne 0 ];then
	    /usr/local/zabbix/bin/zabbix_sender -z xxx.xxx.xxx.xxx -s "${ZabbixHost}" -k "is_read_only" -o "${line} read only"
        exit 1
    fi  
    \rm ${line}/zabbix_test_${houzhui}
done
if [ $? -eq 0 ];then
    /usr/local/zabbix/bin/zabbix_sender -z xxx.xxx.xxx.xxx -s "${ZabbixHost}" -k "is_read_only" -o "all disk is ok!"
fi

注意:hostname是zabbix server監控上寫的主機名,-z後面跟的zabbix server的地址, -k是zabbix server監控項目配置的key,監控項目配置如下(截圖有可以改善的地方,應用集可以就用filesystems,然後保留的天數改爲1天即可,數據沒保留的必要,有問題告警即可):

 

觸發器的定義如下:

 

最後附上本人的網絡課堂地址,如有興趣請點擊: 實踐哥

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章