Yum
如何讓 Zabbix 報告過期包?
如何配置 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
有關完整詳細資訊,另請參閱有關使用者參數的官方文件。