Yum

如何讓 Zabbix 報告過期包?

  • March 19, 2014

如何配置 Zabbix 以報告具有過期包的 Linux 伺服器?

以下 shell 命令報告包更新是否可用:

/usr/bin/yum --debuglevel 2 --security check-update 2>/dev/null \
   | grep -P '(?<! 0 packages) available$'

如果沒有更新,則返回一個空字元串。如果有可用更新,則返回:

10 packages available

您應該創建一個內容類似於以下內容的使用者參數:

UserParameter=yum.updates,/usr/bin/yum --debuglevel 2 --security check-update 2>/dev/null | grep -P '(?<! 0 packages) available$'

將此行放入 Zabbix 代理的主配置文件 (zabbix_agentd.conf) 或單獨的文件中(如果您計劃在許多伺服器上分發此使用者參數可能會更好)並使用Include指令包含它或其目錄.

在目前表單中,您有一個使用者參數而不是返回一個字元串,因此在 Zabbix 前端您將配置一個項目,其鍵yum.updates和類型為“字元”。那麼觸發器將是:

{host:yum.updates.strlen()}#0

然而,字元串項目的問題是它們不能被繪製出來。最好有一個項目返回一個帶有可用更新數量的整數,如下所示(注意尾隨部分):

UserParameter=yum.updates,/usr/bin/yum --debuglevel 2 --security check-update 2>/dev/null | grep -P '...' || echo 0

您還必須更改 中的正則表達式grep,使其僅返回一個整數。

這種方法的好處是可以繪製可用更新的數量,您還可以為觸發器設置更高的門檻值:

{host:yum.updates.last()}>10

有關完整詳細資訊,另請參閱有關使用者參數的官方文件。

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