Icinga2〜コマンドでも使える監視OSS〜
Icinga2は、Nagiosという監視ツールから派生して開発されたシステム監視のためのオープンソースソフトウェアです。Icinga2では、WEBインタフェースだけでなくコマンドラインでも監視の設定を行うことができ、大量の監視も行うことができます。Icinga2のWEBインタフェースはデージーネットで日本語対応を行っています。
Icinga2の歴史
Icinga2とはシステム監視のためのオープンソースソフトウェアです。
Icinga2はNagiosと呼ばれる監視ソフトウェアから派生し、開発されました。NagiosはOSSの監視ソフトウェアとして有名なソフトウェアの1つですが、商用版のNagiosも存在し、新機能の追加は主に商用版に行われています。このためコミュニティ版の開発が停滞し、開発者の一部がNagiosをフォークしてIcingaを開発しました。
Icingaプロジェクトは、非常に早いペースで開発が行われ、Icinga WebやAPIコンポーネント等の新しい機能の追加が行われました。Icingaのバージョン2(以下:Icinga2)では、Nagiosから引き継いでいたコアフレームワークを書き換えて、処理の効率化や新機能の追加が行われました。この時、Icinga2の開発言語はC++に変更されています。Icinga2では、Nagios的な「考え方」は残っていますが、ソフトウェアも設定方法もNagiosとは大きく変わっています。もはやIcinga2はNagios派生とは言い難いソフトウェアになっています。
Icinga2の特徴
柔軟に増やせる監視設定
Icinga2は、複数のホストの監視設定をサービス監視の設定から適用することができ、監視項目を柔軟に増やすことができます。そのためIcinga2は、多数監視を行いたい場合に適した監視ソフトウェアです。
Icinga2では監視の種類も、pingやhttp、smtp、dns等の基本的なプロトコルや、CPUやメモリ、ディスク容量等のリソース監視など様々な監視を行うことができます。また、ElasticsearchやRedisのような比較的新しいソフトウェアの監視も対応しています。
Icinga2の監視はすべてプラグイン化されて配布されており、プラグインで監視項目を柔軟に変更することができます。このプラグイン自体いくつかの引数を持つ単純なスクリプトのため、プラグインを作成することでIcinga2に独自の監視を実装することも可能になります。
また、Icinga2ではスクリプトを設定パラメータとして登録することができます。これを行うことで、自作のパラメータをテンプレート化したり、Icinga2のWEBインタフェースで選択・フォーム入力のみで監視設定ができるようになり、非常に便利です。
設定の自由度が高い
コマンドラインは、理解できている人間に取っては素早く操作可能で、設定の自動化がしやすいインタフェースです。ただ不慣れな人間には扱いにくいというデメリットがあります。WEBインタフェースは、見た目上わかりやすいですが、多くの設定を行うために時間を要するというデメリットがあります。
Icinga2は、どちらの方法でも設定が可能ですので、管理者の管理しやすい形態を選択できるようになっています。
コマンドラインで監視設定が可能
現在よく利用されているOSSの監視ソフトウェアにはZabbixがあります。Zabbixは非常に多機能ですが、監視設定をWEBインタフェースから行わなければならず、コマンドライン上での設定は基本的にできない仕様になっています。
一方Icinga2では、コマンドラインから監視の設定を行うことができます。多数監視を設定する場合には、コマンドラインを利用して設定を行うことで、簡単に設定を行うことができます。
WEBインタフェースで監視設定が可能
Icinga2では、「Icingaweb2」というという非常に綺麗なWEBインタフェースが用意されています。Icingaweb2では、Directorと呼ばれる設定用のプラグインが実装されています。Directorを利用することで、WEBインタフェースで監視の設定を行うことも可能です。
通知設定も管理しやすい形態で
Icinga2は、異常発生時や復旧時に通知を出すことができます。この通知設定もコマンドラインとWEBインタフェースのどちらでも設定を行うことができます。
また、Icinga2ではシステムのメンテナンス等で計画的にサービスを停止する場合、通知の一時停止はAPIを利用して設定することができます。しかし、APIをコマンドラインで操作するのは難しく習得に苦労します。このような場合には、WEBインタフェースから通知の調整を行うことができます。
このようにIcinga2では、管理者の利用しやすい形態で設定できるようになっています。
監視情報のグラフ化
監視のニーズは、OK/NGがわかれば良いというものから、可視化して細かい情報を残しておきたいなど様々です。
可視化できる監視ツールとして、古くから存在しているソフトウェアにCactiがあります。Cactiの主な機能は、SNMPによる機器の情報取得とグラフ化です。CactiはWEBインタフェースから全て設定が可能で、最近のバージョンでは分散構成も可能なソフトウェアになっています。ただ、監視の種類が少なかったり、WEBインタフェースが非常にレガシーという難点があります。
一方Icinga2では、グラフ作成の機能もモジュール化されており、コマンドラインやWEBインタフェースから追加した監視情報を必要に応じてグラフ化することが可能です。さらにGrafanaを利用することで、Icingaweb2だけでは実装できない高機能なダッシュボードを実現することもできます。Icinga2でのグラフ化設定は、Grafanaモジュールの設定が完了後すぐに表示され、個別のグラフを作るための特別な設定は不要です。Icinga2は、基本的なメトリクスであれば、監視の設定を追加するだけでグラフも自動的に作られるようになっています。
分散構成に対応
Icinga2は、サーバとしても、エージェントとしても動作することができます。それだけでなく、監視の権限を委譲されたサテライトとしても動作が可能です。
監視の対象になるシステムは1つのネットワークに収まっているとは限りません。多くの場合、ネットワークがわかれていたり、物理的にも離れた場所にいくつものシステムが存在する場合があります。例えば、社内のサーバラック上にあるシステムや、データセンターで稼働しているもの、クラウド上にあるものなど様々です。このようなアクセス制御ポリシーが異なる環境で、マスターとエージェントのアクセス許可を行う場合、エージェントが増えるたびに許可設定が必要になったり、そもそも許可ができない可能性があります。
このような障壁に阻まれた場合、Icinga2ではサテライトを導入することで、異なるネットワークや異なる環境の監視情報の統括をサテライトが行うことができます。サテライトのみがマスターと通信を行うため、無駄なアクセス許可設定を減らすことができます。また、マスターの監視負荷を下げることができるため、Icinga2では大量の監視も一元管理することが可能です。
デージーネットのIcinga2に対する取り組み
デージーネットでは、Icinga2を使った監視サーバの監視サーバの提案・構築を行っています。監視サーバは、システムの運用管理において、システムの状態を定常的に管理し、不具合を少しでも早く発見するため欠かすことのできないものです。デージーネットで利用している監視ソフトウェアは多岐にわたり、お客様に合った監視ソフトウェアで監視サーバの構築を行うことが可能です。また既存のソフトウェアだけで行うことができないような監視については、独自の監視プログラムを作成します。
また、デージーネットのOpen Smart Assistanceでは、ソフトウェアの利用方法に関するQ&A、障害発生時の障害調査、セキュリティ情報の提供など、ソフトウェア単独ではなく、システム全体に対するサポートを受けることができます。
Icinga2「情報の一覧」
Icinga2のWEBインタフェースを日本語化
デージーネットでは、Icinga2のWEBインタフェースである「Icingaweb2」の日本語対応を実施しました。デージーネットでIcinga2を構築する場合には、日本語対応したIcingaweb2のWEBインタフェースを提供しています。
Icinga2調査報告書
Icinga2はネットワークやシステムを監視するソフトウェアです。Icingaは、Nagiosと呼ばれる監視ソフトウェアから派生して開発されました。Icingaのバージョン2では、Nagiosから引き継いでいたコアフレームワークを書き換えて、処理の効率化や新機能の追加が行われました。本書は監視ソフトウェア「Icinga2」の調査報告書です。
監視サーバ構築
デージーネットの監視サーバ構築サービスについてご紹介します。デージーネットではオープンソースソフトウェア(OSS)を利用した監視サーバ構築を行います。ZabbixやCacti等、様々なOSSを使ってお客様の要望に合わせた監視サーバ構築を実現します。
Icinga2+Grafanaを利用した監視システム構築事例
教育機関のアクセスポイント等のネットワーク機器を監視する監視サーバをIcinga2+Grafanaを利用して構築しました。
OSSのおすすめ監視サーバ・監視ツール比較21選
監視サーバは、以前は製品を利用することが多い分野でしたが、最近ではオープンソースのソフトウェアの機能が向上し、オープンソースソフトウェアを使う場合も多くなりました。ここでは、OSSの監視サーバの選定ポイントを紹介し、いくつかの監視サーバソフトウェアの比較をしてみます。
Zabbix〜ログ監視も可能なOSSの監視ツール〜
Zabbixとは、サーバ、ネットワーク、アプリケーションを集中監視するための統合監視ソフトウェアです。OSSですので誰でもインストールし導入できます。Zabbixは、統合監視に必要な監視、障害検知、通知機能を備え、多数のプラットフォームに対応しています。そのため、Zabbixを導入することでシステム全体を監視することが可能です。
Cacti〜監視とグラフ生成のOSS〜
Cactiとは、ネットワーク監視、グラフ生成のソフトウェアです。CactiはraXnetにより開発され、オープンソースソフトウェアとして公開されています。Cactiをインストールし導入することで、サーバやネットワーク機器のネットワークトラフィック、CPU使用率、空きメモリ量、ディスク使用率などを監視し、グラフ化することができます。
OSSのアラート管理〜Alertmanager〜
監視システムの導入は、システムを正常に維持するために有効な手段となります。アラート機能は重要な役割を担っており、システム管理者に無駄なく、効率よく障害対応できるためのアラート管理の仕組みが必要になります。ここでは、オープンソースソフトウェアのアラート管理システムAlertmanagerを紹介します。
Prometheus〜大規模なシステムを監視可能なOSS〜
オープンソースの監視システムには、Zabbix、Icinga2、Cacti等がよく使用されていますが、Prometheusもオープンソースの監視システムの1つです。ここでは、監視システムのPrometheusについて紹介します。