Stackdriver のアラート ポリシーを管理、自動化する新しい方法
Google Cloud Japan Team
皆さんの組織が Google Stackdriver(モニタリング、ロギング、診断機能を提供するハイブリッド ツール スイート)をお使いなら、Stackdriver のアラート機能についてもよくご存じでしょう。DevOps チームはこの機能を使用して、クラウドで動作するアプリケーションに影響を与えるインシデントをモニタリングし、それらに対応します。
Stackdriver のアラート機能については、これまでたくさんのすばらしいフィードバックをいただきました。その最たるものが、アラートのポリシーを管理するためのプログラマティック インターフェースと、複数のクラウド プロジェクトにわたってそれらのポリシーを自動化する手段の必要性に関するフィードバックです。
Google はこのほど、Stackdriver Monitoring v3 API において、アラート ポリシーと通知チャネルを管理するための新しいエンドポイントをベータ リリースしました。これにより、Stackdriver のアラート ポリシーと通知チャネルの作成、読み取り、書き込み、管理が可能になりました。
こうした管理作業は、サポートされている言語(Java または C#。さらに多くの言語が追ってサポートされます)のいずれかのクライアント ライブラリを使って、あるいはサポート言語の API(gRPC と HTTP / JSON REST の両プロトコルをサポート)を直接呼び出すことで行えます。また Google Cloud SDK には、gcloud alpha monitoring policies、gcloud alpha monitoring channel-descriptors、gcloud alpha monitoring channels といったコマンドが用意されています。
アラート ポリシーと通知チャネルへのプログラマティックなアクセスは、次のような一般的なタスクを自動化することに役立ちます。
- 異なるプロジェクト間でポリシーと通知チャネルをコピーする。たとえば、テスト、開発、本番環境の各プロジェクト間でコピーを行う。
- 大量のアラートが発生したときにポリシーと通知チャネルを無効にし、後で再び有効にする。
- ユーザー ラベルを利用して通知チャネルとポリシーの整理やフィルタリングを行う。
- チームに新しい SMS 番号が追加されたら、プログラマティックに SMS チャネルを検証する。
ポリシーの整理
1 つの Google Cloud プロジェクト内に、さまざまなチームによって作成された多くのアラート ポリシーがある場合は、それらのポリシーの操作や整理が難しくなることがあります。Stackdriver Alerting API を使用すると、“ユーザー ラベル” を追加して、ポリシーにメタデータで注釈を付けることができます。そうすれば、ポリシーを見つけたり操作したりするのが容易になります。たとえば、すべてのポリシーを一覧表示するには、次のようにします。特定のポリシーに自分のチームの名前でタグを付けるには、次のようにします。
これで、自分のチームの名前が付いたポリシーを簡単に検索できます。
チャネルの更新
DevOps チームに新メンバーが加わったときに、新メンバーが適切な通知をすべて受け取れるようにすべてのポリシーを更新しようとすると、非常に冗長な作業を強いられることがあります。そこで Alerting API を使用すれば、チームが所有するすべてのアラート ポリシーに新メンバーをすばやく追加できます。最初に、新メンバーが持っている通知チャネルを調べます。
まだ通知チャネルを持っていない場合は作成できます。
次に、該当するポリシーに通知チャネルを追加します。
ポリシーを一覧表示するコマンドと組み合わせて、チーム内のすべてのポリシーに通知チャネルを追加する作業は、シンプルな BASH スクリプトを活用すれば簡単です。単調なポイント&クリックによる構成を何度も繰り返し行う必要はありません。
特定のエンドポイントへのアラートを無効化
ポケベルがひっきりなしに鳴り、アラートが際限なく届くときは、既存のすべてのポリシーからチャネルを削除するのではなく、チャネルへの通知を無効にするのが簡単です。まとめ
Stackdriver Monitoring v3 API で提供されるアラート ポリシーと通知チャネルの管理機能は、さまざまなタスクの簡素化や自動化に役立ちます。この機能が時間の節約につながることを私たちは願っています。そして皆さんのフィードバックをお待ちしています。フィードバックは google-stackdriver-discussion@googlegroups.com にお送りください。
* この投稿は米国時間 4 月 3 日、Google Stackdriver の Software Engineer である Michael Safyan と、Product Manager である Amir Hermelin によって投稿されたもの(投稿はこちら)の抄訳です。
- By Michael Safyan, Software Engineer and Amir Hermelin, Product Manager, Google Stackdriver