Munin
穆寧的智能外掛過去一直報錯是因為退出碼
我的託管服務提供商在我的伺服器中插入了一個硬碟驅動器,該驅動器過去似乎出現過某種錯誤,但完整的離線智能檢查顯示目前一切正常。伺服器有一個 RAID1,所以我可以忍受這種情況。
問題是(根據手冊頁)如果過去有錯誤,smartctl 設置第 6 位,所以現在一切正常,退出程式碼是數字 64。
智能外掛預設配置為門檻值 0,雖然我知道我可以將門檻值設置為 64,但我會錯過更重要的第 3 位“磁碟出現故障”。
有沒有辦法以某種方式設置門檻值,以便 munin 對值進行按位比較?
最終我求助於修補智能外掛。根據您的版本,有一些類似這樣的程式碼:
if exit_status!=None : # smartctl exit code is a bitmask, check man page. num_exit_status=int(exit_status/256)
用這個替換它
if exit_status!=None : # smartctl exit code is a bitmask, check man page. num_exit_status=int(exit_status/256) # filter out bit 6 num_exit_status &= 191 if num_exit_status<=2 : exit_status=None if exit_status!=None :
最有趣的部分是對 191 進行按位運算的行:這是二進制的 0x11011111,因此對目前值進行 AND 運算只會將第 6 位設置為 0,而其他值保持不變。
因此,值 64(就像我的一樣)將報告為 0,而值 8 將保持為 8。而且,非常重要的是,值 72(始終設置為第 6 位,由於磁碟出現故障而設置為第 3 位) 它也會報告 8。