DOCS
インテグレーションガイド / SaltStack
PagerDutyでの設定
SaltStack用のすべてのPagerDuty PlugInsには、pagerdutyサブドメインとapi_key、および統合を設定する必要があります。
-
ConfigurationメニューからServices を選択します。
-
Serviceページで:インテグレーションのために新しいサービスを作成する場合は、 +Add New Service をクリックします。既存のサービスにインテグレーションを追加する場合は、追加するサービスのName をクリックし ます。 その後、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をコピーします。
-
Configurationメニューから、 API Accessを選択します。
-
APIアクセスページで、+Create New API Key ボタンをクリックします。
-
ポップアップするダイアログで、キーのDescriptionを入力し、API versionを選択するよう求められます。キーをRead-onlyとして作成するオプションもあります。このボックスをチェックしないままに置くと、フルアクセスキーが作成されます。
バージョンに関する注記:API v2.0は、新しいインテグレーションがPagerDutyと簡単に通信できるように設計されています。既存のPagerDutyのインテグレーションには、API v1.0キーが必要です。 使用するAPIバージョンについて質問がある場合は、[email protected] までご連絡ください。
-
オプションを入力し終わったら、Create Key をクリックします 。
-
Create Keyをクリックすると、キーを表示したダイアログが表示され、前の手順で記入したオプションが確認されます。このステップの後ではキーにアクセスできなくなりますので、今すぐ必要なアプリケーションにこのキーをコピーしてください。以前に作成したキーを失くしてしまい再びアクセスする必要がある場合は、キーを削除して新しいキーを作成する必要があります。 キーを正常にコピーした後、 Closeをクリックします。
SaltStackでの設定:
Saltの2014.7.0リリースでは、PagerDutyはネイティブサポートされており、追加のプラグインは必要ありません。ただし、SaltはPagerDutyモジュールを使用続けるように構成する必要があります。 現在はMinion側の機能だけがサポートされています。
Minion構成ファイル
- 上記の手順を含め、
/etc/salt/minion
ファイルを編集します。 あなたのPagerDutyアカウントがhttp://myaccount.pagerduty.com/ と上記の設定を使用するように設定されていることを仮定し、設定スタンザは次のようになります:my-pagerduty-config: pagerduty.subdomain: myaccount pagerduty.api_key: K42pPqY75U1Qr7e9
ピラー構成
PagerDutyは、Saltのピラーシステムから設定することもできます。
- 上記の手順を含め、
/srv/pillar/pagerduty.sls
ファイルを作成します。 あなたのPagerDutyアカウントがhttp://myaccount.pagerduty.com/と上記の設定を使用するように設定されていると仮定し、設定スタンザは次のようになります:my-pagerduty-config: pagerduty.subdomain: myaccount pagerduty.api_key: K42pPqY75U1Qr7e
/srv/pillar/top.sls
ファイルを編集して、PagerDuty設定に必要なミニオンを合わせます。すべてのミニオンがPagerDutyを使用するようになると、次のようになります。base: ‘*’: - pagerduty
Salt’s Event ReactorでPagerDutyの使用
PagerDutyは実行モジュールとして使用できます。つまり、SaltのEvent Reactorシステムからも使用できます。 このガイドには、基本event
実行モジュールの使用例があります。リアクターシステムの詳細については、 http://docs.saltstack.com/en/latest/topics/reactor/ を参照してください。
-
master上の
/etc/salt/master
ファイルを編集します。 まだ存在しない場合は、reactor
というセクションを追加します。 このセクションでは、使用するカスタムタグの名前と、使用されるリアクターファイルの場所を追加します。reactor: - ‘my/custom/tag’: - /srv/reactor/my-custom.sls
-
リアクターファイルを
/srv/reactor/my-custom.sls
で作成します。このファイルは、PagerDutyのインシデントをトリガーするために、alertminionというミニオンを指示します。service_key
は、上記のintegration key と同じ意味であることを注意してください。new_custom_alert: cmd.pagerduty.create_event: - tgt: alertminion - kwarg: description: “Custom alert from {{ data[‘name’] }}” details: This is a custom alert service_key: 8eb116b11626346239365c9651e profile: my-pagerduty-config
-
リアクター構成を有効するためにSaltのmasterサービスをリスタートしてください。
# On systems still using the legacy SysV init service salt-master restart # On systems using systemd systemctl restart salt-master
-
masterから、ミニオンにSalt’s Event Busでイベントを発動するよう指示します。
salt myminion event.fire_master '{"data":"my event data"}' 'my/custom/tag'
SaltステートでPagerDutyの使用
状態実行中にインシデントを作成することもできます。次の例は、ステートツリーが今は存在しないことを示します。Saltステートの詳細については、http://docs.saltstack.com/en/latest/topics/tutorials/index.html#states でご覧ください。
-
全てのミニオンがload averageを監視するステートのファイルを
/srv/salt/top.sls
に作成します。base: ‘*’: - loadavg
-
load averageの監視を実行する
/src/salt/loadavg.sls
SLSファイルを作成します。 load averageが指定された範囲外になると、PagerDutyでインシデントがトリガーされます。check_load: status.loadavg: - maximum: 1.2 - minimum: 0.05 - onfail: - pagerduty: loadavg_trigger loadavg_trigger: pagerduty.create_event: - name: ‘Bad Load Average’ - details: ‘Load average is outside desired range’ - service_key: 8eb116b11626346239365c9651e - profile: my-pagerduty-config
-
各ミニオンに対してステータス表示ランを実行します。これはload averageをチェックし、必要に応じてインシデントをトリガーします。
salt myminion state.highstate
その他のPagerDuty機能
その他の機能は、PagerDuty実行モジュールを通じて使用することもできます。 これらの機能を使用するには、PagerDuty用に少なくとも1つのミニオンを設定する必要があります。 Saltの現在のリリースでは、インシデントと現在のサービスの一覧表示がサポートされています。
サービスの一覧表示
返された他の情報に加えて、この機能はインシデントをトリガーするために使用できるインテグレーションキーを返します。設定されたミニオンを使用して、masterからコールするには次のようにします:
salt myminion pagerduty.list_services my-pagerduty-config
インシデントの一覧表示
この機能は、オープン、確認、解決を含む、アカウントに関連付けられているすべてのインシデントを返します。設定されたミニオンを使用して、masterからコールするには次のようにします:
salt myminion pagerduty.list_incidents my-pagerduty-config