こんにちは、cloudpack今岡 です。

日本では(世界でも?)あんまり話題になっていない nagios互換の統合監視ツール icinga2 をインストールしてみた。icinga(読みは wikipediaより アイシンガ or イッティンガ)はもともとは nagios の forkらしく、icinga 1は互換性を重視、 icinga 2はそこまで互換性重視じゃないけど、nagios plugin は使いまわせるそうです。

この記事はわかってらっしゃる方向けです。

なんでそんなもの使うの?

僕の趣味だからですw 今 OSSでこの手のソフトウェアは

とかありますが、全部一長一短があります。各種の長短は置いといて、nagiosの長短について書くと

イケてるところ

  • 軽い!
  • 歴史が長い、pluginが多く(個人の印象)、安定している

イケてないところ

  • UIがダサい!
  • 監視ノードを追加するのに、いちいち設定ファイルの書き直し&restartとか、クラウド時代にありえない!
  • きょうびAPIとか無いとかありえない!
  • なんでAgent型じゃないの? NAT超えとか考えてないの?

「安定してて軽いのはいいが、古すぎて最近の情勢に合っていない。」
ってことです。ココらへんのイケてないところを何とかしてやろうというのがicingaの理念らしい。nagiosのいいところはそのままに

インストールする

正直言って、結構面倒です。zabbixよりも面倒と感じました。

ドキュメントはしっかりしています。ので、読みましょう。
ある程度わかってらっしゃる方向けに書きますと

  • パッケージはyumでいける
  • mysqlかpostgres など、バックエンドにDBは必要
  • webインターフェースは別途入れる (gitでcloneのみ)
  • phpが要る
  • 機能毎に rpmが分かれている

zabbixのように一枚岩のてんこ盛りを想像していると、若干だるいです。それでも初見でも30分ぐらいで、サーバは立てられるはず!一部マニュアルどおりでうまく行かなかったのは

# mysql -u root -p icinga < /usr/share/icinga2-ido-mysql/schema/mysql.sql

ここは -u icinga で -D icinga とする必要がありそう。

icingaweb2のインストール

gitからのコピーと実行ユーザーの追加を行うと、ブラウザで初期設定が行えます。Imagemagicの拡張がないとWarningと言ってくるので yum install php-pecl-imagick

全部通らないと最後にちゃんとコケるので、安心

インストール直後

なんということでしょう~。あんなにダサかったnagiosの画面がこんなに今風のデザインに!
nagios pulgin互換 icinga2 インストールしてみた: インストール直後
正直なところ、UIはちょっと癖があって使いにくいかも?それでもzabbixよりマシかなー。

Notificationのトグルが効かないトラブルシュート

Notificationだけ飛ばさないとか、Webからやるとエラーになる。 /var/run/icinga2/cmd/icinga2.cmd のパーミッションが無いとかでてるので、付けてやる。centosの場合は apacheユーザーで実行となるから、vigrで icingacmdグループにapacheも突っ込んでやる。コマンドでやる方法でもいいはず。ubuntuだけど、動作確認方法とかもここにあるので、参照してね。

監視対象ノードの追加

ここからが本番。と言ってもマニュアルどおりですが、これもわかってらっしゃる方向けに概要だけ。

  • マスターサーバとして建てるなら、それ専用の設定が必要で、ここでAPIを有効化する
  • クライアント側のもiciga2が必要。(普通の動かし方としては)
  • そこら辺の細々した設定は、cli のウィザードがあり、そいつに従えば結構楽にできる。(けど、自動化は,,)
  • ノードの登録は、クライアント側からマスターに投げつける。でも、投げつけて終わりじゃない
  • クライアントから投げつけられた状態のままだと、反映されない。マスター側での設定更新が必要
  • 設定ファイルをマスターのレポジトリ(ただのディレクトリ)に溜め込んでいるっぽい。こいつを起動時やサーバリロード時にDBに同期してるっぽい
  • 設定ファイル自体は、nagiosのそれに酷似しているが、互換性はなさ気。変換スクリプトで一発行けそうだけど。

正直、思ってたのと違う。結局のところ、nagiosの思想がベースなので、設定ファイル自体は確かにDB保存だが、ノード側の処理一切なしで登録と思ってたんだけど、そうではないみたい。ただ、クライアントから設定ファイルを投げつけられた状態は多分拾えるのではないかと思うので、マスター側が自動でクライアント登録分を処理することは可能ではないかと踏んでいる。

まとめ

  • サイトがしゃれオツで(流行ってなくても)使ってみようという気にさせてくれる Icinga | Open Source Monitoring
  • ドキュメントが秀逸、この内容であれば、インストール手法とかを日本語で誰かが書くより、和訳するほうがよっぽど建設的
  • 思ったより煩雑
  • 安定性は正直分からないが、nagiosの設定ファイルがDBに変わっただけと思えば比較的安心
  • その他、触れてない機能多数。クラスタ化? zabbixのproxyぽいやつとか。
  • icingaって最初は打ちにくかったけどスグ慣れるよ。

元記事はこちらです。
nagios pulgin互換 icinga2 インストールしてみた