OpsGenieでアラート対応漏れゼロに

はじめに

こんにちは。入社2年目のゆうみです。

先日の大神の記事にもある通り、アトラスではサーバ監視・サービス監視プロセスを大きく見直し、様々なツールを導入しました。

今回はそのツールの1つである「OpsGenie」について、アトラスでの使い方を交えてご紹介いたします。

OpsGenieとは

OpsGenieはNewRelicやAWSなどからのアラートを集約・管理するWebサービスです。新着アラートを通知することはもちろん、一定時間反応がなければリマインドしたり、エスカレーションして異なる通知先に通知したりできます。

アトラスでは監視ツールからのアラートを全てOpsGenieに集約し、一元管理しています。また、全てのアラートに対して原因の調査と対策をしており、OpsGenieでは調査中なのか対策済みかなどのアラートの状況を見える化しています。

OpsGenieの機能とアトラスでのアラート管理紹介

OpsGenieには多くの機能が備わっています。公式ドキュメントのメニューの多さからも機能の多さが伝わると思います。

さっそくOpsGenieの機能の一部を、アトラスでのアラート管理の流れに沿って紹介します。

1. アラートの登録・通知

各監視ツールで発生したアラートはOpsGenieに登録されます。監視ツールについては大神の記事をご参照ください。登録されたアラートは次の画像のように詳細を確認できます:

アラートの詳細画面

OpsGenieでは各アラートに次のようなステータスが割り振られます:

  • Open
  • Ack’ed
  • Close

アトラスではこのステータスを順に「未確認のアラート」「原因調査中・対策中のアラート」「対策済みのアラート」という意味で利用しています。

OpsGenieはアラートが登録されると自動的にステータスをOpenに割り振り、登録された旨をSlackへ通知します。

またアラートを登録するときにその種類によってタグを追加して、過去のアラートを検索しやすくしたり、通知するSlackのチャンネルを振り分けたりしています。

ここでは、OpsGenieの次の機能を利用しています:

2. 原因調査・対策

監視担当者はSlackに来た通知を確認すると、アラートの原因を調査します。その際、調査を始めた目印としてアラートのステータスをAck’edに変更します。

原因を突き止め、対策が完了した時点でアラートのステータスをCloseにします。Closeにするとき、必ずアラートの原因と対策の内容を記録します。この記録は、似たようなアラートが発生したときに参照し、調査・対策を円滑に進めることを目的にしています。

OpsGenieでは各アラートの詳細ページにNoteが用意されているので、そこに記録します。

3. アラートの総ざらい

週に1度、システム管理チームのミーティングにて、1週間に発生したアラートを総ざらいします。これは、全てのアラートに対応できていることの確認と、アラート発生の原因と対応内容の共有を目的にしています。

OpsGenieでは指定した期間内のアラートを一覧表示する検索機能があります。

過去1週間分のアラート

この機能は便利ですが、アラートの詳細を見るたびに一覧のスクロールが一番上に戻ってしまうので、アラートを順番に見るのはとても面倒です。そこで、アトラスではOpsGenieのAPI Integrationを利用してGoogleスプレッドシートにアラートの詳細情報一覧を自動作成しています。アラートの詳細情報一覧はあくまでも確認用なので、ミーティング終了後に削除し、通常はOpsGenieでアラートの管理をしています。

Googleスプレッドシートによるアラートの詳細一覧

OpsGenieの良いところ・残念なところ

OpsGenieの良いところ

まずアトラスで利用して感じた、OpsGenieの良いところを紹介します。

連携できるサービスの種類が豊富である

公式ドキュメントの目次にあるINTEGRATIONSの欄を見ると分かりますが、標準で用意されている連携サービスの種類がとても多いです。ログの通知内容は自動で生成してくれるので、私たちは難しいことを考えることなく他のサービスと連携することができます。

他サービスとの連携の設定が簡単で、詳細な設定もできる

他サービスとの連携の設定にはSIMPLEモードとADVANCEDモードの2つがあります。SIMPLEモードでは、設定の名前やAPIキーなど、2〜3個の項目を設定するだけで連携でき、アラートの具体的な内容はOpsGenieが自動で生成してくれます。

一方ADVANCEDモードでは、SIMPLEモードでは変更できなかったアラートのタイトルや詳細の内容、タグなどを決めることができます。またフィルターを設定することにより、アラートの種類によってタグを振り分けたり、タイトルを変えたりすることもできます。

連携の設定については公式ドキュメントのINTEGRATIONS GENERALの欄で詳しく説明されています。(リンク先はINTEGRATIONS GENERALの最初の項目です。)

公式のドキュメントが丁寧で分かりやすい

これまで何度も公式ドキュメントの参照を促したり、リンクを張ったりしましたが、それだけ公式ドキュメントが役に立つのです。

残念ながら日本語のドキュメントは用意されておらず英語だけなのですが、難しい英語はほとんどないため多少英語が読める方なら苦労せずに読めると思います。私は英語がとても苦手なので翻訳サービスを使いながら読んでいます。

そして、このドキュメントでは他サービスとの連携の設定方法の説明がとても丁寧です。例えばAmazon CloudWatch Integrationのページでは、OpsGenieでの操作だけでなく、CloudWatchで必要な操作のスクリーンショットもあり分かりやすいです。

OpsGenieの残念なところ

OpsGenieはとても便利なのですが、不便なところもあります。

リマインドやエスカレーションの通知方法が限られている

アトラスではアラートへの対応漏れがないように、新着アラートに5分間反応がなければ監視担当者にリマインドし、その後さらに5分間反応がなければ別の人へエスカレーションするように設定しようとしました。

しかしその通知方法は次のいずれかに制限されます:

  • メール
  • SMS
  • OpsGenieからの電話
  • スマートフォンへのプッシュ通知

(参考:Escalate to NextNotification Settings)

アトラスではアラートに関連する通知は全てSlackに投稿したいため、リマインド・エスカレーションの機能は使わないことにしました。

アラートの詳細を全て見ようと思うと操作しにくい

「3. アラートの総ざらい」でも書きましたが、アラートの詳細ページを開くたびに、アラート一覧のスクロールが一番上に戻ってしまいます。そのため次のアラートを見るためにスクロールし直さなくてはなりません。これを解決するためにアトラスではGoogleスプレッドシートに自動転記しています。

しかしちょっとしたことですが、使っているとこういった些細なことにストレスを感じてしまいます。ここが改善されると良いなと思うと同時に、開発者としてユーザーがどういったことにストレスを感じるのかを知る良いきっかけになったなとも思います。

さいごに

以上、OpsGenieについて紹介しました。OpsGenieはお手軽にアラートの設定ができる一方、細かくカスタマイズして複雑なこともできるので調べれば調べるほど面白いです。

私はまだOpsGenieの機能の半分も理解していないと思うので、これからも試行錯誤を続けて、より効率的にアラート管理ができるようにOpsGenieを活用していきたいと思います。