DOCS
インテグレーションガイド / Check_MK
本記事は米国PagerDuty社のサイトで公開されているインテグレーションガイドをそのまま日本語に翻訳したものです。日本語環境での動作を保証するわけではありません。原文は こちら https://www.pagerduty.com/docs/guides/check_mk-integration-guide/ を参照してください。
Check_MKは、Nagiosの上に構築されています。Nagiosは、オープンソースおよびエンタープライズクラスのITインフラストラクチャ監視ツールの主要プロバイダーの1つです。 世界中の何十万人ものユーザーが使用しているNagiosは、ITインフラストラクチャ全体を監視し、問題が発生する前に発見し、セキュリティ違反を検出し、ITアップグレードの計画/予算を立てられるようにします。 既存のCheck_MK監視ソリューションにPagerDutyを統合することで、PagerDutyのスケジュールでオンコール中の担当者に直接電話で呼び出せます。
このガイドでは、簡単にインストールできるエージェントを使用して、Check_MK 1.2.xをPagerDutyと単独で、またはOpen Monitoring Distribution(OMD)の一部として統合する方法について説明します。 インストールを完了するには、 rootとしてログインする必要があります。 正確なLinuxディストリビューションとCheck_MKの設定とバージョンに合わせて、下記の手順を少し変更する必要があるかもしれません。 インテグレーションに問題が発生した場合は、サポートチームまでお問い合わせください。
注意:CentOS 5でNagiosを実行している場合は、このガイドに従うのではなく、Check_MK用のPerlベースの統合を使用する必要があります。
PagerDutyでの設定
- Configuration メニューからServices を選択します。
- Servicesページで: インテグレーションのために新しいサービスを作成する場合は、 +Add New Service をクリックします。 既存のサービスにインテグレーションを追加する場合は、統合を追加するサービスの 名前をクリックします。 その後、Integrations タブをクリックし、 + New Integration ボタンをクリックします。
- Integration Type メニューから追加したいアプリを選択し、Integration Nameを入力してください。 インテグレーションのために新しいサービスを作成する場合は、General Settingsで新しいサービスのNameを入力します。 次に、Incident Settingsで、新しいサービスの Escalation Policy (エスカレーションポリシー)、Notification Urgency (通知の緊急度)、Incident Behavior(インシデントの動作)を指定します。
- Add Service またはAdd Integration ボタンをクリックして、新しいインテグレーションを保存します。 すると、サービスのIntegrationsページにリダイレクトされます。
- 新しいインテグレーションのIntegration Keyをコピーします。
Check_MKサーバーでの設定
このガイドでは、スタンドアロンバージョンのCheck_MKおよびOMDバージョンのステップを収録しています。使用しているCheck_MKのバージョンに応じ、使用するパスを調整する必要があります。下記で示した全コマンドは、 root
ユーザーとして実行されることを前提としています。
-
PagerDuty Agentをインストールします。このエージェントはCheck_MKからイベントを受信し、PagerDutyにキューを使って送信し、問題のトラブルシューティングに役立つログを提供し、接続に失敗した場合(つまりCheck_MKサーバーが一時的に接続を失った場合)にアラートを自動的に再試行します。 注:このエージェントはCentOS 5以降では動作しません。CentOS 5に含まれているバージョンよりも新しいバージョンのPythonが必要です。古いオペレーティングシステムでは、Check_MKのPerlベースの統合を使用してください。 注:このエージェントはCentOS 5以降では動作しません。CentOS 5に含まれているバージョンよりも新しいバージョンのPythonが必要です。古いオペレーティングシステムでは、Check_MKのPerlベースの統合を使用してください。
-
GitHubから
pagerduty-agent
をダウンロードして実行可能にするします:wget https://gist.githubusercontent.com/jcurreee/b21938f316f92dd3fadf/raw/cd59f855145692d96dd32164190faa1237a0d89e/pagerduty-agent
chmod +x pagerduty-agent
pagerduty-agent
は Check_MKのための通知スクリプトであり、エージェントでも代替でもありません。 エージェントは別途インストールする必要があります。 -
通知スクリプトを所定の場所に移動します。 Check_MKのスタンドアロンバージョンの場合、これは通常
/usr/share/check_mk/notifications
です: mv pagerduty-agent / usr / share / check_mk / notifications Check_MKのOMDバージョンでは、通常/omd/sites/ {site-name-here} /local/share/check_mk/notifications
です。 mv pagerduty-agent /omd/sites/{site-name-here}/local/share/check_mk/notifications -
Check_MK Webインターフェースにログインし、Users ( WATO · Configurationボックスにあります)に移動し、New Userをクリックします 。
-
PagerDutyユーザーのUsernameとFull name (オプション)を入力します。将来の複数のPagerDutyサービスにアラートを送るために複数のCheck_MKホストとサービスを設定する場合は、Full nameの欄に、作成したPagerDutyサービスの名前を設定すると便利です。 このユーザーのパスワードを入力しないでください。その代わりにdisable the login to this accountをチェックしておくとよいでしょう。このアカウントはPagerDutyエージェントに通知を送信するためだけに存在するからです。 ユーザーのロール(role)をNormal monitoring user、または通知を送信する権限で作成したカスタムロールに設定し、アラートを受信するホスト/サービスの一部であるContact Groups ユーザーを追加します。 完了したら Save クリックします 。
-
作成したユーザーの Notification アイコン(放送塔のアイコン)をクリックします。 Check_MK 1.2.4以前を使用している場合は、 Editアイコン(鉛筆のアイコン)をクリックしてください。
-
New Ruleクリックします。 Check_MK 1.2.4以前を使用している場合は、Notifications ボックスまでスクロールダウンしてください。
-
新しい通知方法のためにDescriptionを入力し、Notification MethodをPagerDuty Agentに設定します。PagerDutyからコピーしたインテグレーションキーを、PagerDutyエージェントを選択した後に表示されるテキストボックスに貼り付け、PagerDutyに送信するアラートを制限する条件を選択します。 完了したら Saveクリックします 。 Check_MK 1.2.4以前を使用している場合は、enable notificationsをチェックし、Notification MethodからFlexible Custom Notifications までを設定します。 Add notification クリックし、 Notification Pluginを PagerDuty Agentに設定します。 PagerDutyからコピーしたインテグレーション キーをPagerDutyエージェントを選択した後に表示される最初のPlugin Argumentsテ キストボックスに貼り付け、Notification Methodオプションのグループ(Notifications Optionsではありません)のHost Eventsのセクションと、 Service Eventsのセクションの下にあるStart or end of flapping stateとStart or end of scheduled downtimeのチェックボックスをオフにします。 完了したらSave をクリックします 。
-
ユーザーリストに戻り、 # Changesをクリックし、Activate Changesをクリックします。
-
おめでとう! 設定が正常に有効になったことが確認したら、完了です! Check_MKはPagerDutyでインシデントをトリガー、確認、解決できるようになり、PagerDutyエージェントは最初の試行で正常に送信できなかった場合(つまり接続の問題などがあった場合)にはイベントを再送します。
次のステップ
Check_MKインターフェースでホストまたはサービスに行き、 Executeアイコン(ハンマーのアイコン)をクリックすることで、全機能が正常に動作することを確認することができます。Fake check results ボックスで、Critical(サービスの場合)またはDown (ホストの場合)をクリックすると、偽の警告を送信していいかどうかを確認する表示が出ますのでYesをクリックします。 一時的にPagerDutyで作成された新しいインシデントが表示されるはずですが、偽の検査結果が次回の検査で実際の検査結果に置き換えられるため、テストインシデントは迅速に解決されるはずです。。
よくある質問
複数のPagerDutyサービスで動作するようにCheck_MKを設定するにはどうすればよいですか?
PagerDutyのCheck_MKサービスはCheck_MKのユーザーに直接マッピングされるため、現在の統合ではこれは簡単です。 複数のサービスを設定するには、Check_MKに複数のユーザーを作成するだけです(例:
pagerduty_database
、pagerduty_network
など)。 次に、対応するインテグレーションキーをPagerDutyからコピーし、通知メソッドパラメータ/ Plugin Argumentsフィールドに貼り付けます。 設定を有効にするために変更後に有効にすることを忘れないでください。ネットワークがダウンしているときにCheck_MKイベントが発生するとどうなりますか?
何らかの理由でPagerDutyサーバにアクセスできない場合、イベントはディスク上のキューに保存されます。 PagerDutyエージェントは、接続が復元されたときにイベントを再送信しようとします。
Check_MKはPagerDutyに失敗を報告するために外部インターネット接続が必要ですが、私のサイトが外部接続を失った場合、どのように通知を受け取りますか?
StatusCakeやNodePingなどの外部pingチェックサービスを設定して、サイトの外部接続を監視する必要があります。 もちろん、PagerDutyを使ってこれらのサービスからアラートを受け取ることもできます。
インテグレーションが機能していないようです。 どうしたの?
まず、 PagerDutyエージェントをインストールしたことと、PagerDutyエージェントをインストールしようとするときにパッケージマネージャからエラーがないことを確認してください。 インストールの失敗(CentOS 5などの互換性のない配布による)は、インテグレーションが機能しない場合の最もよくある原因です。
その他の一般的な問題には、統合キーが変更されている(つまり、ユーザーがキーを再生成したり、PagerDutyでCheck_MKサービスを削除して再作成したことによります)か、間違った統合タイプを使用している(Check_MKの代わりにGeneric APIを選んでしまった、など)といったことがあります。
Check_MKアラートがまだPagerDutyでインシデントをトリガーしない場合は、 /omd/sites/ {site-name-here}
/var/log/nagios.log
(スタンドアロン版Check_MKの場合)または/omd/sites/ {site-name-here} /var/log/nagios.logの通知ログを確認してください/omd/sites/ {site-name-here} /var/log/nagios.log
バージョン用)に潜在的なエラーがないか、サポートチームに問い合わせてください 。PagerDutyはCheck_MKの統合に関してどんなNagiosメッセージを理解しますか?
PagerDutyは、
PROBLEM
、ACKNOWLEDGEMENT
、およびRECOVERYメッセージを処理できます。FLAPPINGSTART
とFLAPPINGSTOP
を含む他の全メッセージ、またはカスタムメッセージは無視されます。