今天上午有一台存儲伺服器未讀寫,但由于是叢集環境,并沒有發現這個問題。後來偶然看到該伺服器負載為0才發現不對勁,正常情況下應該為5。平時我們監控都是負載高于某個值,而從沒想過負載太低也是問題。
為防止後續再出現此情況,決心編寫監控負載下限的nagios插件,當負載低于某個值時,則報警。
該腳本應該能替代nagios插件包中的監控負載腳本,自帶插件隻能監控上限。無法監控下限,預期功能如下:
1、可設定下限的警告門檻值,緊急門檻值。
2、可設定上限的警告門檻值,緊急門檻值。
3、也可隻設定上限或下限警告門檻值。
1、 文法錯誤輸出幫助資訊
[root@hostb libexec]# shcheck_load_low.sh -LW 0.5,0.5,0.5,0.5 #傳參數多時錯誤。
Option:
parament one
--lower_limit_warn|-LW ;set lower warning limit threshold value.
--upper_limit_warn|-UW ;set upper warning limit threshold value.
parament two
--lower_limit_crit|-LC ;set lower crit limit threshold value.
--upper_limit_crit|-LC ;set upper crit limit threshold value.
Example:
check_load_low.sh -LW 0.5,0.5,0.5 -LC 0.1,0.1,0.1
check_load_low.sh -UW 15,15,15 -UC 20,20,20
check_load_low.sh -LW 1,1,1
check_load_low.sh -UW 15,15,15
2、設定下限警告門檻值、緊急門檻值執行效果
[root@hostb libexec]# shcheck_load_low.sh -LW 8,8,8 -LC 7,7,7
#同時低于警告門檻值與緊急門檻值,退出值為2
crit,load average: 4.93, 5.64, 5.96
[root@hostb libexec]# echo $?
2
[root@hostb libexec]# sh check_load_low.sh-LW 8,8,8 -LC 1,1,1
#低于警告門檻值高于緊急門檻值,退出值為1
warn,load average: 4.82, 5.43, 5.85
1
[root@hostb libexec]# shcheck_load_low.sh -LW 1,1,1 -LC 0.5,0.5,0.5
#負載高于警告,緊急門檻值,則正常
OK,load average: 5.59, 5.54, 5.85
3、 設定上限警告門檻值、緊急門檻值執行效果
[root@hostb libexec]# shcheck_load_low.sh -UW 5,5,5 -UC 6,6,6
#高于警告值,低于緊急值則退出值為1
warn,load average: 5.28, 5.35, 5.73
[root@hostb libexec]# shcheck_load_low.sh -UW 4,4,4 -UC 5,5,5
#同時高于警告值、緊急值則退出值為2
crit,load average: 5.28, 5.35, 5.73
[root@hostb libexec]# shcheck_load_low.sh -UW 15,15,15 -UC 20,20,20
#同時低于警告值、緊急值則退出值為0
OK,load average: 5.20, 5.32, 5.68