Zabbix

通過 Zabbix 執行重複任務

  • November 4, 2017

首先,簡要說明:

使用 Zabbix 進行系統監控,我試圖了解它是否/如何用於執行我需要報告 OK/PROBLEM 值的重要計劃任務(即:通過電子郵件)。

我已經使用由 呼叫的自定義編寫的腳本cron來報告程序執行的錯誤。但是,這種方法很容易被快速重複但失敗的計劃任務“淹沒”。我真正想要的是在“邊緣變化”時收到通知 - 即:從正常(OK)到失敗(PROBLEM)執行,反之亦然。

從這裡開始,我有了嘗試 Monit 的想法——而且效果很好。但是,已經部署了 Zabbix,如果我可以使用現有設置合理地完成我的目標,我想避免使用其他工具。

好的,回到主要問題:

根據我的研究/測試,基本方法是將要執行的任務視為重複檢查/數據查詢。存在兩種可能性:

第一種方法需要為每個命令執行登錄,這往往會用不必要的條目“污染”日誌,所以我傾向於第二種方法。也就是說,這兩種方法都有一個重大問題:它們只擷取命令的輸出,而不擷取命令的退出值

所以,我的問題是:

  • 任何人都知道如何擷取命令退出值?注意:我想避免包裝腳本。
  • 有人使用類似的方法嗎?如果是這樣,您有什麼回饋嗎?
  • 我應該簡單地“辭職”使用Monit嗎?

一般來說,Zabbix 不是任務調度程序——Rundeck、Ansible/AWX 或其他解決方案可能更適合。話雖如此,仍然可以為此使用 Zabbix,尤其是在它是一次性任務的情況下。

您對退出程式碼的關注的解決方案是使用包裝腳本。使該腳本擷取輸出、退出程式碼以及您需要的任何其他內容(可能是執行命令所花費的時間)。然後,此腳本可以將所有這些值發送到 Zabbix Trapper 項目,您可以在這些項目上發出警報。

請記住,長時間執行的任務不應直接作為 Zabbix 使用者參數執行。如果您的命令可以執行超過幾秒鐘,請atd改為使用或類似方法執行它。

預設超時為:

  • 代理 3 秒
  • 自 Zabbix 3.0 以來預設伺服器配置文件中的 4 秒,在那之前的 3 秒
  • 如果未在配置文件中指定,則在伺服器中為 3 秒

最大值是 30 秒,但你真的,真的不應該增加預設值。

引用自:https://serverfault.com/questions/881742