web-dev-qa-db-ja.com

パペットエージェントが最新かどうかを確認します

すべてのノードがpuppetmasterによって提供された現在のカタログバージョンを使用しているかどうかをnagiosモニタリングで確認したいと思います。

私の状況では、次のとおりです。

  • 操り人形マスター
  • Host1
  • Host2
  • hostX

Host1、Host2、hostXにnrpeプラグインを作成したいと思います:

  • ホストで現在のカタログバージョンを確認する
  • puppetmasterのノード用に準備された現在のカタログバージョンを確認してください
  • 警告、両方が異なる場合

問題:

  1. Puppetmasterでカタログのバージョンを確認するには、/ production/catalog APIクエリを実行できますが、非常にコストがかかります(cpu)。カタログを要求するたびにカタログをコンパイルする必要があるためです。
  2. ノードの現在のカタログバージョンを確認するオプションが表示されません。人形カタログを試しましたが、あまり役に立ちませんでした。

だから私の質問は、パペットエージェントの状態を監視し、ホストが古いパペットカタログを使用している場合に通知を受ける方法です。それは意味がありますか?

5

私は簡単な check_puppet NRPEスクリプトを書いて、あなたが望むことのほとんどを実行します。それは RI Pienaar's オリジナルに基づいており、私が必要以上のものでした。どちらの場合も、/ var/lib/puppet/state/last_run_summary.yamlを解析して、最後に実行されたエージェントの状態を確認します。

通常のエージェントの実行で適切に警告するのに十分なデータが提供される場合に、3番目のソフトウェアを使用してマスターとエージェントの間でカタログバージョンを比較する利点はわかりません。

6
Ramin

これが私たちの仕事です:

この設定では、puppet agent --testの呼び出しに関するラッパースクリプトを使用して、ログインした管理者が一時的に自動化を無効にできる「ストッパーファイル」の存在など、いくつかの環境設定をチェックしています。

ラッパースクリプトでは、パペットエージェントがステータスコード0で終了するたびに、状態ファイル(/ var/state/puppet-run)にアクセスします。

次に、このファイルの経過時間を追跡して、パペットの実行間隔の1.5倍よりも古いかどうかを判断します。

1
Theuni

この正確な問題から、これをサービスとして構築するようになりました。これにより、人々は先に進むだけで、独自の監視ツールを構築する必要がなくなります。チェックアウト http://cronitor.io -1台のモニターが無料で、有料のビジネスプランがあります。

0
Encoderer