Alertmanagerとは
Alertmanagerとは、OSSのアラート管理システムである。Apache License Version 2のもとでオープンソースソフトウェアとして公開されている。またAlertmanagerは、監視システムであるPrometheusのアラート管理コンポーネントとして提供されている。Prometheusとは、DockerやKubernetesといったコンテナ/クラスタ管理ツールとの連携機能も持っている監視システムである。Alertmanagerは、独立したソフトウェアとして作成されており、AlertmanagerのAPIに接続できればPrometheus以外のソフトウェアのアラート管理システムとしての使用も可能である。
システム管理者はシステムの異常をいち早く検知し、対応を行う必要がある。その友好的な手段の方法として監視システムのアラート機能がある。アラート機能を利用することで、システムの異常があった時にシステム管理者にアラートを送信し、この通知によりシステム管理者は内容を検索しそれに応じてしかるべき処理をすることができる。そのため監視システムのアラート機能は、システム管理者にとって、とても重要な役割がある。
Alertmanagerには監視システムからのアラート(alert)により、複数の重複したアラートを集約したり、条件にマッチしたアラートをまとめて通知する機能がある。Alertmanagerを導入することで、監視システムからのアラートのデータを効率よく受け取ることができ、アラート管理を強化することが可能となる。この記事ではAlertmanagerの特徴について記述している。
アラート管理の重要性
システム管理者にとって、監視システムのアラート機能はとても重要な役割を果たす。しかし、大規模なシステム障害が発生した場合、監視システムから大量のアラートが発行されることがある。また、長時間障害が復旧しない状態になった場合には監視システムから同じアラートを何度も発行通知することがある。こうした重複するアラートが大量に届いてしまうと、システム管理者がアラートの内容を把握するまでに時間がかかってしまい、障害対応の遅れが生じてしまう可能性がある。
Alertmanagerを利用することで、こうした監視システムの問題を解決し、監視システムからのアラートを無駄なく、効率よく取得することが可能となる。これによりシステム障害対応がスムーズに行うことができる。
Alertmanagerの特徴
Alertmanagerの主な特徴は以下である。
重複した内容のアラートを排除する
長時間システム障害が発生した際、監視システムが何度も同様のアラートを通知することがあるが、事前に登録しておくことでAlertmanagerは監視システムから発行される同じ内容のアラートを排除することができる。
条件にマッチしたアラートをグルーピング
Alertmanagerを利用することで、特定の条件にマッチしたアラートをグルーピングし、同一グループのアラートをまとめて通知することができる。例えば、ラベル(labels)の名前(alertname)とインスタンス(instance)が一致するアラートを同一グループとして扱う等のルールをAlertmanagerの設定ファイル内から指定する。大量の同一アラートが発生した場合にも、Alertmanagerからシステム管理者への通知は1つのアラートとして通知されるため、大量のアラートを1つずつ確認する必要がない。
アラートの静観設定
Alertmanagerを利用すると、特定の条件にマッチしたアラートを指定した日時まで無視することが可能となる。そのため、メンテナンス等、計画的に特定のアラートを無視する必要があるような場合に便利な機能となる。アラート静観は、発生したアラートの内容からアラート静観設定を作成する方法と新規にアラート静観設定を作成する方法がある。さらに、作成したアラート静観について指定した有効期限を待たずに強制終了することができる。
WEBユーザインタフェース
Alertmanagerは、発生しているアラートの一覧表示・詳細表示やアラート静観の設定など、WEBインタフェースからアラートの管理を実行できる。
アプリケーションへの通知
Alertmanagerは、受信したアラートを様々な方法で通知することが可能となる。通知可能なアプリやツールは以下である。
- 電子メール送信
- webhook
- PagerDuty
- Pushover
- Slack
- OpsGenie
- VictorOps
Zabbixとの連携
Zabbixとは、サーバ、ネットワーク、アプリケーションを集中監視するための統合監視ソフトウェアである。Zabbixの通知機能ではZabbixで管理している1000台のサーバが接続されているスイッチに障害が発生した場合、1000個のアラートが発行されるという問題があった。しかし、Zabbix4.4以降から、アクションに設定可能なメディアタイプにWebhookが追加された。このZabbixのメディアタイプWebhookを使って、Alertmanagerと連携が可能となった。Alertmanagerと連携することによって大量のアラートを効率よく管理したり、同一アラートを抑制することが可能となる。AlertmanagerでWebhookを受け取るには、設定ファイルに設定を行う。そして、receiverに[web.hook]を指定し、Webhookからの受信設定を行う。
Prometheusとの連携
Prometheusとは、オープンソースソフトウェアの監視システムで、Kubernetesに続く2番目のホストプロジェクトとしてCloud Native Computing Foundationに参加している。Prometheusは、監視対象の数が多いシステムや動的に監視対象が変化するシステムに対応できる監視ソフトウェアとして知られている。Prometheusには、サービス検知機能という機能で一定のルールに従ってサービスを自動的に検知し、監視対象として自動的に追加・削除することができる。PrometheusとAlertmanagerを連携することで、PrometheusのウェブUIで追加したアラートルールやアラートの状態を確認することができる。Prometheusはアラート発行を行う際にAlertmanagerにAPIを使用してリクエストを送信する。Alertmanagerは受信したリクエストをルールに従って処理する。
デージーネットの取り組み
デージーネットでは、調査検証の結果、ソースコードにパッチを適用すれば、日本時間(JST)へ表示の変更、インタフェースの日本語化を行うことができることがわかった。今回、デージーネットはこのAlertmanagerの日本語対応を行った。日本語対応の言語ファイルは以下のURLからダウンロードが可能である。(Alertmanager-0.21.0のパッチ)
(https://www.designet.co.jp/open_source/download/alertmanager-0.21.0.patch)
Alertmanagerオリジナルは時刻がUTCで表示されるが、このパッチを適用すると、日本時間のJSTで表示することができる。インストール方法や詳しい内容については「Alertmanager調査報告書」からダウンロードが可能である。
また、デージーネットでは、サーバを効率的に管理するために欠かせない様々な監視サーバを多くの企業に構築している。監視サーバにアラート管理システムを連携させるなどお客様の要望に合わせてカスタマイズすることも可能である。デージーネットで構築サービスを提供したお客様には、導入後支援サービスとして、Open Smart Assistanceを提供している。これは、ソフトウェア単体のサポートではなく、Linuxなどを含む全体に対するサポートである。保守サポートでは、Q&A対応やインストールしたOSSやソフトウェアに対するセキュリティ情報提供し、障害の発生時に障害の回避、原因の調査を行っている。必要な場合にはOSSソースコードレベルの調査やOSSコミュニティとの連携なども行う。オプションとして、年2回のシステムの定期点検や構築したシステムに対して、弊社が必要と判断したセキュリティアップデートを適用し、お客様に要望にあわせたシステム運用を行っている。(導入をご検討の方には、Webでの打ち合わせも可能)
【カテゴリ】:オープンソースソフトウェア  システム監視  
【Webセミナー】Rocket.Chatだけじゃない!OSSビジネスチャットの最新情報
日程: | 12月19日(木)Webセミナー「BigBlueButton」を使用します。 |
内容: | Rocket.Chatの機能制限でお困りの方も必見!ライセンスフリーで利用できるOSSのビジネスチャットを紹介します。 |
ご興味のあるかたはぜひご参加ください。 |