続 カッコの付け方

AWSを始めとしたクラウドコンピューティング全般と、唯一神emacsにおける()の付け方についてだらだら書きます

nagios pulgin互換 icinga2 インストールしてみた

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

Icinga | Open Source Monitoring

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

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

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

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

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

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

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

インストールする

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

http://docs.icinga.org/icinga2/latest/doc/module/icinga2/toc#!/icinga2/latest/doc/module/icinga2/chapter/getting-started#installing-icinga2

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

  • パッケージは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の画面がこんなに今風のデザインに! f:id:iga-ninja:20150321124515p:plain 正直なところ、UIはちょっと癖があって使いにくいかも?それでもzabbixよりマシかなー。

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

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

dev.icinga.org

監視対象ノードの追加

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

http://docs.icinga.org/icinga2/snapshot/doc/module/icinga2/chapter/icinga2-client#certificates-manual-creation

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

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

まとめ

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