Linux
檢查傀儡代理是否是最新的
如果每個節點都使用 puppetmaster 提供的目前目錄版本,我想檢查我的 nagios 監控。
在我的情況下,有:
- 木偶大師
- 主機1
- 主機2
- 主機X
我想在 host1、host2、hostX 上創建nrpe外掛以:
- 檢查主機上的目前目錄版本
- 檢查為puppetmaster上的節點準備的目前目錄版本
- 警告,如果兩者不同
問題:
- 要檢查 puppetmaster 上的目錄版本,我可以執行 /production/catalog API 查詢,但它非常昂貴(cpu) - 因為每次我要求時都需要編譯目錄。
- 我看不到任何用於檢查節點上目前目錄版本的選項。我嘗試了 puppet 目錄,但它不是很有幫助。
所以我的問題是,如何監控 puppet 代理的健康狀況,並在任何主機使用舊 puppet 目錄時收到通知?這有什麼意義嗎?
我編寫了一個簡單的check_puppet NRPE 腳本,它可以滿足您的大部分需求。它基於RI Pienaar 的原作,這超出了我的需要。在這兩種情況下,我們都會解析 /var/lib/puppet/state/last_run_summary.yaml 以查看上次代理執行的狀態。
當正常的代理執行應提供足夠的數據以正確發出警報時,我看不到使用第三個軟體來比較主伺服器和代理之間的目錄版本的優勢。
這是我們所做的:
在我們的設置中,我們有一個圍繞呼叫的包裝腳本
puppet agent --test
,它還檢查一些環境設置,例如是否存在允許登錄管理員暫時禁用自動化的“停止文件”。在包裝腳本中,每次 puppet 代理以狀態碼 0 退出時,我們都會觸及一個狀態文件 (/var/state/puppet-run)。
然後我們跟踪這個文件的年齡,以確定它是否比 puppet 執行時間的 1.5 倍以上。