はじまりはじまり
みんなAdagiosって知ってる?nagiosのフロントエンドなんだけど!これこれ!
http://adagios.org/
超モダンでかっこいいWebUIを持ってて、もう「え?nagios?ダサくない?」なんて言わせないぜ!
バックエンドにはicingaとかshinkenを使うことも出来るので、nagiosおよび互換監視エンジン向けWebフロントエンドと言う認識で良いと思います。
構成
トポロジ
|
|
Ansible
|
|
Adagios
|
|
from django.conf.urls.defaults import *
という表記が
Django 1.6で廃止されて、とりあえず現状はAdagiosが修正されるまで待とうかな、と思ってUbuntu 12.04.4を使うことにしています。インストール
インストール手順はおおよそ公式の通りです: https://github.com/opinkerfi/adagios/wiki/Installing-Adagios-from-source-on-Debian
また、監視エンジンとの組み合わせは以下の通りです。(つまり、公式のインストール方法におおよそ準拠します)
- Adagios
- Nagios3
例によって、Ansible playbookを書いたので、インストールはこれで済ませます。
|
|
インストールが完了したら、 http://192.168.122.152/adagios/
にアクセスし、BASIC認証(playbookではadagios/adagios)を抜けたらこんな画面に出会える…はずですがどうでしょう。
adagios_ansible_001.png
この時点で、既に完成度の高いNagiosフロントエンドっぽく見えませんか?見えませんか、そうですか。
外観を散歩する
まずは、ホストの状態を確認していきます。左サイドバーからHostsを選択。
adagios_ansible_002.png
全ホストの状態を確認することが出来ます。(もちろん、ここではlocalhostだけです)
localhostの横の矢印をクリックすると、配下のサービスの監視結果も確認することが出来ます。
adagios_ansible_003.png
次に、localhostを選択すると、監視ホストのサマリ画面に移動します。
adagios_ansible_004.png
ホストの監視はpingによって実現されており、localhostは当然応答を返すので、Statusはオールグリーンです。
Check outputでは最後に実施したコマンドの出力が確認でき、同時にPerformance Metricsも取得しているため、応答時間も確認することが出来ます。
Performance Metricsは、pnp4nagiosを経由してグラフ描画をしており、pnp列のグラフボタンをマウスオーバーすることで、Adagiosの画面からも確認することが出来ます。
adagios_ansible_005.png
Informationタブは、設定情報などを確認することができます。
adagios_ansible_006.png
Historyは、実際にサービスがUp/Downしたり、監視値がTriggerを引いた場合のログを確認することが出来ます。
adagios_ansible_007.png
しかもだよ、AdagiosはGraph専用タブまであるんだよ!
adagios_ansible_008.png
一応、デフォルトでは4h/25h/7day/1month/1yearで分かれてる。
pnp4nagiosのページを見ると、初期設定がそうなってるぽい ので、変更は効くかもしれない(未検証)。
あとは変数設定の画面。
adagios_ansible_009.png
と、デバッグ用のデータ取得画面(全データが出力されてるので、設定がおかしいと思ったら確認できるます)
adagios_ansible_010.png
下の方
adagios_ansible_011.png
次に、Servicesの画面も見てみよう。なかなか見やすい一覧画面だと思う。
adagios_ansible_012.png
例えばHTTPのページはこんな感じ。
adagios_ansible_013.png
HTTPレスポンスのグラフも描けるのでかなり見やすい。
adagios_ansible_014.png
REPORTSのLog画面では、ステートの変化以外にもシステムログも一部確認できる。
adagios_ansible_015.png
後は、ホストグループの一覧とか。
adagios_ansible_016.png
まだ開発中だけど、Performance Dataの一覧ページもある(グラフはマウスオーバーしないと出ない)
adagios_ansible_017.png
監視ノードの追加
先日見ていたmuninやShinkenはWebUI上から監視設定が出来なかったが、Adagiosは余裕で出来る。
上のバーからConfigure、または左サイドバーからConfigurationを選択すると、設定画面になる。
adagios_ansible_018.png
設定方法自体は、nagiosと同様なので、
- ホストの追加
- コマンドの作成
- サービスの追加
が基本パターンになる。
例えばこんな感じでホストを追加する(日本語も割と普通に扱える)
adagios_ansible_019.png
adagios_ansible_020.png
もう一度上のバーからConfigureを選んで、今度はServiceにSSHを設定してみる。
adagios_ansible_021.png
adagios_ansible_022.png
Host nameのところでさっき追加したホストを追加する。
adagios_ansible_023.png
Save changesを押して設定は完了だ。
adagios_ansible_024.png
後は右上のnagios再起動ボタンを押す。
adagios_ansible_025.png
Nagios Successfully reloadedと表示されたら、設定は問題なく適用されているだろう。
Hostsの画面を見に行こう。しばらくしたら結果が取得できるはずだ。
adagios_ansible_026.png
さて、ここで問題になるのは、localhostのSSHがサービス監視対象から消えていることだ。
/etc/nagios3/conf.d/services_nagios2.cfg
のグルーピングと監視ノード設定変更時の折り合いが悪い。というか。
デフォルトではnagios3のService監視は全てのノードに対応することになるのだけど、先程のようにノードを追加するとhost_nameが追加されて、Serviceが全体適用から単体適用に変わってしまう。
(一応、SSHのService画面右上にもそうWARNINGが表示されている)
なので、nagios3のデフォルト設定が悪いと割り切って、収まりのいいように全てを設定し直すか、新しく追加したノードをssh-serversに収容し、Service側には触れないか、と言う2択になると思う。
まぁ、SSHは動いていて当然と言う認識も無いではないので、後者で良いかもしれない。
今回の場合であれば、先の設定を削除した後 Configuration -> Hosts -> Show hostgroups(Commandsの下側にあるやつ) -> ssh-servers -> Members
から新規ノードを追加するのが正道かと思う。
ちなみに、設定をテキストで、と言う場合、各設定画面の右側にある「Geek Edit」を使用することで、コピペによる設定の流し込みも可能である。至れり尽くせりであるな。
adagios_ansible_027.png
コマンドの方は長くなるので省略するけど、きっと画面の指示に従っていけば簡単…だといいなぁ。
でもまぁ、普通のnagios同様、新しいコマンド作るのはちょっと面倒だよ…。
OKConfigを使ってみる
OKConfigと言うのは、Adagiosと同じところが作っているコンフィグサポート用のツールのようだ。
https://github.com/opinkerfi/okconfig
とは言え、Adagios側でほとんどの設定がこなせてしまうので、何が出来るのと言う感じなので、Network Scanだけ紹介してみる。
adagios_ansible_029.png
で、スキャンネットワークを指定してScan Network。
adagios_ansible_030.png
結果が出てくると、こんな感じになる。
adagios_ansible_031.png
Addボタンを押すと、そこから監視ホストを追加することが出来ます。
adagios_ansible_032.png
ただ、OkConfigから見える形でGroupが作成されていないと、設定必須で怒られます(そしてOkConfig経由でGroupを設定していないと、Group nameに何も出ないという…)
adagios_ansible_034.png
まぁその、ある程度名前解決やサービススキャンをしてくれるので、追加すべきホストの判別はかなり容易だと思う。
残念ながら自動監視設定はしてくれないが、本来のnagiosに関するcfgファイルを自分で変更することになるだろう。
設定のバージョン管理とかサービス状態とか
ここで、右上の歯車から、Object Historyを見てみよう。
adagios_ansible_035.png
adagios_ansible_036.png
今までの設定や、適当にこねくり回したログを見ることが出来る。
右側のdiffを押すと、どのような変更が行われたかを見ることが出来るため、CUIベースでの設定変更に必要な学習にも役立つ。
adagios_ansible_037.png
そのほか、設定の健康度確認や、
adagios_ansible_038.png
adagios_ansible_039.png
Nagiosの明示的な停止、再起動などが実施できる。
adagios_ansible_040.png
総評
見た目や操作性はかなり良いので、単なるnagiosフロントエンドとして使う分には、現状最強ではないかと思う。
少なくとも、icinga-webやnagiosの標準的なWebUIよりは見やすく、かつpnp4nagiosを通じたグラフ描画機能のお陰で、リソース部分も一部カバーすることが出来る。
厳しいのは、adagiosとnagiosとOkConfigの設定が微妙に噛み合っていないので、片方で設定してあるGroupがもう片方では設定されていないなど、コンフィグファイルの影響範囲が不明瞭なことがある。
その点については、必要な設定をしてみて、探っていく必要がある。
残念ながら可視化(グラフ化)については最低限提供されているという状態で、カスタマイズにはおぼつかない部分があるものの、UI的には綺麗に繋がっているため、今後の発展に期待している。
Roadmapを見ると Future releases には
|
|
と言う表記があり、かなり期待できるのではないかと思う。
また、コンフィグの管理やNagiosの状態確認にも気を配っており、過去の変更点を追って変更箇所を探ることが出来るなど、変更履歴としても十分機能する可能性がある。
って言うかカバー範囲が超広くて紹介しきれんぞこれ。
Nagiosから離れられないけど、UIを何とかしたい方がもし居るようであれば、是非調査して欲しいプロダクトでした。
いいよー、adagiouカッコいいよー。
おしまい。