
Project Description
本記事は米国PagerDuty社のサイトで公開されているインテグレーションガイドをそのまま日本語に翻訳したものです。日本語環境での動作を保証するわけではありません。原文はこちらを参照してください。
Zabbixは、ネットワークサービス、サーバ、およびその他のハードウェアのステータスを監視するために設計された、非常に強力なオープンソースのエンタープライズクラスのネットワーク管理システムです。多くの組織のITインフラストラクチャを監視する上で重要な役割を果たしています。PagerDutyはZabbixの機能を、PagerDuty APIを経由したオンコール・スケジューリング、アラートおよびインシデントトラッキングを提供することで拡張します。PagerDutyはZabbixの最もクリティカルなイベントを通知し、あなたが即座に対応できるようにします。
このガイドでは、インストール済みのZabbix 1.xまたはZabbix 2.x環境を、PagerDutyにPythonスクリプトを使って統合する方法について説明します。このガイドでは、Zabbixの中でスクリプト、メディアタイプ、ユーザ、アクションを設定する方法を説明します。LinuxディストリビューションのバージョンとZabbixの設定によってはそれに合わせて、下記の手順を少し変える必要があるかもしれません。
Zabbix 3.xを使用している場合は、ここをクリックして(https://www.pagerduty.com/docs/guides/zabbix-3-integration-guide/)そのインテグレーションガイドをご覧ください。
PagerDutyでの設定
1.メニューから<Servicesを選択します。
2.Services ページでの設定:インテグレーションのために新しいサービスを作成する場合は+Add New Serviceをクリックします。既存のサービスにインテグレーションを追加する場合は、インテグレーションを追加するサービスの名前をクリックします。 その後、Integrationsタブをクリックし、+New Integrationボタンをクリックします。
3.Integration Typeメニューからあなたのアプリを選択して、Integration Nameを入力してください。
インテグレーションのために新しいサービスを作成する場合は、General Settingsで新しいサービスのNameを入力します。 次にIncident Settingsで、新しいサービスのEscalation Policy、Notification Urgency、Incident Behaviorを指定します。
4.Add ServiceまたはAdd Integrationボタンをクリックして、新しいインテグレーションを保存します。あなたはサービスのIntegrationsページにリダイレクトされます。
5. 新しいインテグレーションのIntegration Keyをコピーします。
Zabbixでの設定
1.「Agent Install Guide」(https://www.pagerduty.com/docs/guides/agent-install-guide/注:英文です)の説明に従ってPagerDuty Agentをインストールします。
2.ZabbixのAlertScriptsPathディレクトリにあるpd-zabbixスクリプトへのシンボリックリンクを作成します。 AlertScriptsPathは通常、/etc/zabbix/alert.dまたは/usr/local/share/zabbix/alertscriptsですが、変更できます。 zabbix_server.confファイルでパスを確認してください。
3.さて、ZabbixのメディアタイプとしてPagerDutyを追加しましょう。Administrationタブをクリックします。
4.Media typesタブをクリックします。
5.Create Media Typeボタンをクリックします。
6.次の画面で、Descriptionに「PagerDuty」と入力します。
7.Typeとして「Script」を選択します。
8.Script nameに「pd-zabbix」と入力します。
9.Saveをクリックして、PagerDutyメディアタイプを作成します。
10.この新しいメディアタイプをユーザーで使用してみましょう。このガイドでは、Zabbixで新しいユーザーを作成してやってみましょう。
注:既存のユーザを変更し、PagerDutyメディアを追加することもできます(ステップ18を参照してください)。
Administrationタブをクリックします。
11.Usersタブをクリックします。
12.ドロップダウンリストからUsersを選択し、Create Userボタンをクリックします。
13.この新しいユーザーの詳細を記入し、「PagerDuty User」という名前を付けてください。 このユーザはZabbixにログインしないので、PagerDuty Userのデフォルト設定のままで十分です。
14.下部にあるAddボタンをクリックします。
15.次のポップアップウィンドウで、Typeとして「PagerDuty」を選択します。
16.PagerDutyのService keyをSend toテキストフィールドに貼り付けます。
17.StatusをEnabledに変更します。
18.Addボタンをクリックします。
19.以上の設定が完了したら、変更を保存してください。 セットアップした内容を見るには、下記のスクリーンショットを参照してください。
20.Administration > Usersに戻ります。Create Groupをクリックしてください。
21.Group nameの名前(例えばPagerDuty Serviceなど)を入力します。
22.PagerDutyサービスユーザーを選択し、<<ボタンをクリックしてこのグループに追加します。
23.Read onlyの下にある「Add」ボタンをクリックして、PagerDutyによって監視されるホストのグループを選択します。
24.監視のためにPagerDutyに読み取りアクセスを許可するホストグループを選択し、Selectボタンをクリックします。
25.Create Groupをクリックして、新しいユーザーグループを保存します。
26.Configuration > Actionsに移動し、Create Actionをクリックします。
27. アクションにPagerDuty NotificationsなどのNameを付けてから、Default subject をtriggerに設定し、Recovery subjectをresolveに設定します。 この名前に設定できるのは単一の単語のtriggerまたはresolveだけで、ほかに設定できません。Default messageとRecovery messageにあるすべての内容を削除してから、それらを両方とも次のように設定します。
28.Newをクリックして、新しいAction操作を追加します。
29.Send messageをシングルユーザに設定し、(訳注:先ほど名付けた)PagerDuty Serviceを選択します。 次にAdd.をクリックします。
30.Actionを保存します。
おめでとう!あなたのZabbixはPagerDutyに統合されたはずです!
よくある質問
ネットワークがダウンしているときにZabbixイベントが発生するとどうなりますか?
サイトの外部接続を監視するために、外からのpingチェックサービスも設定する必要があります。もちろん、PagerDutyを使ってこれらのサービスからアラートを転送することもできます。
Zabbixを複数のPagerDutyサービスと連携するように設定するにはどうすればよいですか?
これは現在のインテグレーションでは簡単です。別々のアクション条件とアクション操作で複数のアクションを設定するだけです。また、別のユーザーグループ、ユーザー、およびメディアを設定する必要があります。追加のメディアは、追加のサービスのサービスキーを使用し、PagerDutyタイプになります。
インテグレーションが機能していないようです。何が起きているのでしょう?
まず、PagerDutyエージェントをインストールしていること(訳注:https://www.pagerduty.com/docs/guides/agent-install-guide/ 英文です)と、PagerDutyエージェントをインストールしようとするときにパッケージマネージャからエラーが出ていないことを確認してください。インストールが失敗している場合(CentOS 5などの互換性のないディストリビューションによる)は、インテグレーションが機能しない場合の最も一般的にありうる原因です。
その他のトラブルシューティングのヒントについては、Zabbixトラブルシューティングガイドを参照してください。