icinga2
今月の気になるオープンソース情報(2019年3月号)
OSS研究室 森 彰吾
今回は、icinga2について紹介します。
概要
icinga2は、システム監視のためのソフトウェアです。GPLv2で公開されています。
元々icingaは、Nagiosという監視ツールから派生して開発されています。icingaのversion 1は、NagiosからAPIやWEBインタフェースなど、いくつかの変更が加わえられましたが、設定方法などNagiosの特長が色濃く残っていました。
icinga2では、開発言語レベルでソフトウェアが刷新され、Nagios的な考え方だけを残して、新しいソフトウェアとして生まれ変わっています。
icinga2の特長は次の通りです。
監視種別の豊富さ
icinga2では、様々な監視を行うことができます。pingやhttp、smtp、dns等の基本的なプロトコルや、CPUやメモリ、ディスク容量等のリソース監視はもちろんできます。さらにElasticsearchやredisのような比較的新しいソフトウェアの監視も対応しています。
これらの監視は、すべてプラグイン化されて配布されています。つまりプラグインを作成することで、独自の監視を実装することも可能です。プラグインと言っても簡単なスクリプトで対応が可能なため、実装のハードルが低いのも特長のひとつです。
美しいWEBインタフェース
Nagios/icinga version1にもWEBインタフェースも存在しましたが、お世辞にも綺麗と言えるものではありませんでした。
icinga2では、icingaweb2という非常に綺麗なWEBインタフェースが用意されています。監視による状態がリアルタイムで反映されていくため、状態が把握しやすくなっています。
監視設定用のWEBインタフェース
Nagios/icinga version1は、基本的に設定ファイルで設定を行うコマンドラインを前提としたソフトウェアでした。WEBインタフェースでは、基本的に状態の確認しか行うことができませんでした。
icingaweb2では、Directorと呼ばれる設定用のプラグインが実装されています。Directorを利用することで、WEBインタフェースで、監視の設定を行うことができるようになり、ユーザビリティが向上しています。
監視した情報のグラフ化
icinga2/icingaweb2には、データをグラフ化するためのプラグインも存在します。グラフ化はレガシーなrrdtoolから脱却し、モダンな時系列データベースを利用できるようになっています。
どのようにグラフ化するかは利用者の裁量に任されていますが、例えばGrafanaと呼ばれるグラフ化のツールとicingaweb2を組み合わせて使う方法などがあります。Grafanaを利用することで、icinga2で取得した情報をicingaのWEBUIでグラフを参照したり、Grafanaの高機能ダッシュボードで情報を閲覧することができます。
分散構成
icinga2は、サーバとしても、エージェントとしても動作することができます。それだけでなく、監視の権限を委譲されたサテライトとしても動作が可能です。サテライトを導入することで、異なるネットワークや異なる環境の監視情報の統括をサテライトが行うことができます。
マスターとは、サテライトのみが通信を行うため、マスターの監視負荷を下げることができます。
また、アクセス制御ポリシーが異なる環境で、マスターとエージェントのアクセス許可を行う場合、エージェントが増えるたびに許可設定が必要になったり、そもそも許可ができない可能性があります。マスターとサテライトのみが通信を行う構成の場合、無駄なアクセス許可設定を減らすことができます。
他の監視ツールとの違い
- icinga2 vs Cacti
Cactiは古くから存在する監視ツールです。Cactiの主な機能は、SNMPによる機器の情報取得とグラフ化です。CactiはWEBインタフェースから全て設定が可能で、最近のバージョンでは分散構成も可能なソフトウェアになっています。ただ、監視の種類が少なかったり、WEBインタフェースが非常にレガシーという難点があります。
対してicinga2は、Cactiで可能な監視やグラフ化の機能はすべて持っています。さらに監視の種別の豊富さやインタフェースの美しさなど、Cactiに勝るポイントが多くなっています。
- icinga2 vs Zabbix
Zabbixは、現在OSSの監視ツールとしては、デファクトスタンダードになりつつある存在です。監視項目の豊富さはもちろんのこと、オートディスカバリやWEBのシナリオなど、非常に便利な機能が揃っています。設定はWEBインタフェースから行うことができます。Zabbixは非常に多機能ですが、設定時にWEBインタフェースの様々な画面を横断的に設定しなければいけないので、設定時に混乱を招きやすくなっています。またコマンドライン上での設定は基本的にできません。設定用のAPIは存在しますが、日常的に使えるようになるためには、それなりの時間と準備が必要です。
icinga2は、機能面ではまだZabbixより劣っています。特にZabbixのオートディスカバリやローレベルディスカバリの機能に対応するような機能がありません。一方でicinga2は、WEBインタフェースがわかりやすい構成になっています。また設定方法もWEB/コマンドライン/APIと自由度が高く、利用者のやり方に合わせた利用ができます。
icinga2の課題
icinga2の特長は枚挙に暇がありませんが、やはりいくつかの課題があります。
初期導入時の利用方法の習得が難しいということです。これはicingaに限ったことではなく、監視ツール全般に言えることです。多くの場合、独自の概念や設定方法を覚えていく必要があります。
icinga2はこの課題をマニュアルと概念のわかりやすさで補っています。icinga2には、非常に詳細なマニュアルが存在することと、ひとつひとつの専門用語がわかりやすく定義されています。そのため、他の監視ツールに比べて、修得はしやすくなっています。
またWEBUIの日本語化の問題があります。現在、icingaweb2は日本語に対応していません。この点は利用時の障壁になると考えられます。
最後に
デージーネットでは、icingaweb2の日本語化ができることを確認し、日本語化を進めています。またシステムに合わせた監視プラグインの開発も行っています。
新しく監視システムを導入する際には、icinga2を検討してはいかがでしょうか。
関連ページ
Icinga2〜コマンドでも使える監視OSS〜
Icinga2は、Nagiosという監視ツールから派生して開発されたシステム監視のためのオープンソースソフトウェアです。Icinga2では、WEBインタフェースだけでなくコマンドラインでも監視の設定を行うことができ、大量の監視も行うことができます。
Cacti〜監視とグラフ生成のOSS〜
Cactiとは、ネットワーク監視、グラフ生成のソフトウェアです。CactiはraXnetにより開発され、OSSとして公開されています。Cactiを導入することで、サーバやネットワーク機器のネットワークトラフィック、CPU使用率、空きメモリ量、ディスク使用率などを監視し、グラフ化することができます。
Zabbix〜ログ監視も可能なOSSの監視ツール〜
Zabbixとは、サーバ、ネットワーク、アプリケーションを集中監視するための統合監視ソフトウェアです。Zabbixは、Zabbix SIA社が開発したOSSです。OSSですので誰でもインストールし導入できます。