Nagiosもけっこう便利!って思っている、 なのまるです!
Nagiosの困るところを解消するツール「Thruk」を使って、多拠点Nagiosを統合しました。
もくじ
Thruk とは。
複数のNagios、またはNagios互換監視製品を統合する「GUI」です。Nagiosの他に「Icinga, Shinken, Naemon」をサポート
Nagios互換製品などとの通信に、「livestatus」を利用しています。
メリット
以下に、メリットを提示します。- 複数のNagiosが統合管理出来る!(NagiosのGUIで出来ることはすべてできる)
- Nagiosより、結果の画面反映が早い
- 今の画面URLが共有できる!
- 画面を戻った時に、画面位置がリセットされない!
- オープンソース
- 無料で使える
いちいちすべて説明しないですけど、Nagios使ったことある人なら上記メリットに心当たりあると思います!
デメリット
- UIがすべて英語(いい方法あったら知りたい!)
- セットアップが若干面倒
- アイテムが多くなると、表示が遅くなる(事があるらしい)
- バージョンの差異で動作しないことがある(thruk間のバージョン差異で動かなかった)
前提条件
ざっと、以下の前提で進めました。役割 | 値 |
---|---|
Thrukマスター(統合WebUI)のOS | CentOS7 |
Thrukに設定するbackend | livestatus or http |
Livestatusを導入するOS | CentOS 5,6,7 |
Nagios | 3.5以上で検証 |
Thrukマスターのセットアップ
このサーバー自身にもNagiosをセットアップ済みです。。。Labs Repository - ConSol Labsのリポジトリ導入
sudo rpm -Uvh "https://labs.consol.de/repo/stable/rhel7/i386/labs-consol-stable.rhel7.noarch.rpm"
リポジトリを無効化しておきます。(OS標準以外は無効化ポリシーのため)
sudo yum-config-manager --disable labs_consol_stable
Thrukインストール
sudo yum install thruk --enablerepo=labs_consol_stable
ThrukマスターWebUIの設定
Apacheの設定(Cookie認証を無効化)
Cookie認証を使わないので、無効化しておきました。(お好みで。)
sudo cat /dev/null > /etc/httpd/conf.d/thruk_cookie_auth_vhost.conf
Thruk起動
sudo systemctl start thruk
これで、画面が表示されるはずです。 http://サーバー名 or IPアドレス/thruk/
Livestatusのインストール(CentOS7)
sudo yum install check-mk-livestatus --enablerepo=labs_consol_stable ls -l /usr/lib64/check_mk/livestatus.o # インストール確認
Nagiosに設定(CentOS7)
LivestatusでNagiosの状態が取れるように設定- /etc/nagios/nagios.cfg
broker_module=/usr/lib64/check_mk/livestatus.o /var/run/nagios/live.sock event_broker_options=-1
Sockの位置はあとで使うのでメモしておく
/var/run/nagios/live.sock
Nagios リロード
sudo systemctl reload nagios
Thruk UIでの設定
http://サーバー名 or IPアドレス/thruk/#cgi-bin/conf.cgi?sub=backends「Config Tool」 ⇒ 「Backends / Sites」から設定
設定値 | 値 |
---|---|
Name | 何でもいい(loclahostとか) |
Type | livestatus |
Connection | /var/run/nagios/live.sock(さっきのPATH) |
Hidden | No |
Section | 何でもいい(拠点名とか) |
権限とか、Pathとか間違えていなければこれでうまくいくはず。
統合される側に「Livestatus」をインストール
- CentOS5の場合
sudo rpm -Uvh "https://labs.consol.de/repo/stable/rhel5/i386/labs-consol-stable.rhel5.noarch.rpm" sudo yum install check-mk-livestatus ls -l /usr/lib64/check_mk/livestatus.o
- CentOS6の場合
sudo rpm -Uvh "https://labs.consol.de/repo/stable/rhel6/i386/labs-consol-stable.rhel6.noarch.rpm" sudo yum-config-manager --disable labs_consol_stable sudo yum install check-mk-livestatus ls -l /usr/lib64/check_mk/livestatus.o
Nagiosに設定(CentOS5)
LivestatusでNagiosの状態が取れるように設定- /etc/nagios/nagios.cfg
broker_module=/usr/lib64/check_mk/livestatus.o /var/tmp/live.sock event_broker_options=-1
Sockの位置はあとで使うのでメモしておく(位置はどこでもいいとは思う)
/var/tmp/live.sock
Nagios リロード(CentOS5,6)
sudo service nagios reload
統合される側 backend設定(Livestatus編)
以下のパスに設定ファイルがインストールされているので、最低限以下を設定- /etc/xinetd.d/livestatus
# アクセス制御 # only_from = 127.0.0.1 10.0.20.1 10.0.20.2 # These parameters are handled and affected by OMD # Do not change anything beyond this point. # Disable this services disable = no # サービス有効化 # TCP port number. port = 6557 # Paths and users. user = nagios # ユーザー server = /usr/bin/unixcat # unixcatのpath server_args = /var/tmp/live.sock # sockのpathTCP Wrapperやiptablesで、denyにハマらないように・・・。
統合する側 ThrukUIのbackend設定(Livestatus編)
設定値 | 値 |
---|---|
Name | ホスト名とか |
Type | livestatus |
Connection | サーバーのIP or 名前:ポート番号(6557など) |
Hidden | No |
Section | 何でもいい(拠点名とか) |
統合される側 backend設定(http編)
httpのバックエンドも可能です!その際はThrukをインストールする必要があります。httpsで通信できないので、httpで!
ハマりポイントなので、間違えないようにw(Thruk 2.14現在)
Thrukインストール
sudo yum install thruk --enablerepo=labs_consol_stable
統合する側 ThrukUIのbackend設定(http編)
設定値 | 値 |
---|---|
Name | ホスト名とか |
Type | http |
Connection | http://サーバーのIP or 名前/thruk/ |
Auth-Key | 統合される側の「/var/lib/thruk/secret.key」の値 |
Proxy | 使わなければ空欄 |
Remote Name | 使わなければ空欄 |
Hidden | No |
Section | 何でもいい(拠点名とか) |
まとめ
ざっとこんな感じで、5台のNagiosを統合管理できるようにしました!このサーバーはあのNagios!?とか、
一時downtime設定しよう!「あ、あっちのNagios設定し忘れた」とか
減るかと思います~
参考
MK LivestatusThruk - Monitoring Webinterface for Naemon, Nagios, Icinga and Shinken
Thruk is a Monitoring Webinterface for Naemon, Nagios, Icinga and Shinken