pagerdutyでMackerelのアラート通知を管理する

2019.07.07

こんばんわ、札幌のヨシエです。
本日は弊社の誕生日ということで多機能でシステム運用に導入されることでインシデントなどの管理が容易になるpagerdutyに関する記事を共有します。

pagerdutyとは?

サービスを運用されると、避けられないのがサービス運用におけるイベント(インシデントなど)の対応です。

イベント発生時はアラート内容によってはSlackなどのチャットサービス通知や電話連絡通知が発生し、 運用のカイゼンを随時行っているようなサービスではアラート情報の集約/分析を行っていると思います。

このようなシステム運用を集中的に管理、いかにしてシステム運用にコストをかけず、 サービスを提供するかという面で役に立つツールとしてpagerdutyを試してみました。

今回の概要

今回は通知までの最低作業を確認することを目的としたので大まかな設定のみ入れております。

  • pagerduty基本設定
    • SMS
    • 電話通知
    • モバイルアプリ設定
  • アラート通知設定
  • Mackerelからpagerdutyへの通知設定

pagerduty基本設定

pagerdutyのまず一歩として基本設定を行います。 右上のアイコンボタンを押下して、My Profileを選択します。

Contact Informationではログインユーザーに関するプロファイル情報が表示されます。 今回はアラートがpagerdutyに通知された時にSMS,電話,モバイルアプリ通知を入れたいので3箇所を登録します。

モバイルアプリ通知(Mobile App)は、pagerdutyのアプリケーションをiPhoneへダウンロードしてからSettingにて変更出来ます。

NOTIFICATIONSPush Notificationsを有効にし、Doneを押下することでモバイルアプリへのPush通知が有効になります。

アラート通知設定

次にアラート受信設定を行います。
pagerdutyではServicesという単位でアラート通知を受けることができるので、上部のConfigurationからServicesを選択して設定を行います。
今回はテストなのでサービス名、使用するイベントAPIバージョンのみを変更しております。

サービスを作成後、Mackerelのアラート通知先で使用するIntegration Keyが発行されますので、こちらは控えておきます。

Mackerelからpagerdutyへの通知設定

通知設定はEmailやSlackでのアラート通知設定と同様で、通知チャンネル設定から通知チャンネルを追加します。 ※いつの間にか左ペインにChannelsが増えていました、基本Updateは頑張ってみてたのですが見逃してしまったみたいです

pagerdutyを選択し、それぞれの情報を入力します。

pagerdutyに情報を入力し、チャンネル設定が完了したあとに通知テストを実施します。
Mackerelでは通知テストボタンを使用してテストを行います。

アラート通知設定に誤りがなければ、以下のようにpagerdutyへアラートが通知されます。

iPhoneの方では以下のように電話通知とショートメール通知、モバイルアプリ通知が一斉に飛んできました。

最後に

今回の検証ではだいたい30分程度で一通りの通知までが出来るようになりましたが、いろいろと課題はありました。 電話通知が全て英語音声で英語を聞き取れる高級耳を持っていない私には何を言っているのか分からなかったり、今回の検証では試しきれていない運用チームでの時間帯通知設定が出来てませんでした。

また、監視サービスやその他通知を行うようなサービスとpagerdutyの連携方法を整理出来るとハードルが上がりがちな連携部分を考慮せずに自動復旧対応に注力も出来るのではないかと考えました。
もともと興味があった分、このあたりは別途整理してご連絡したいと思います。