
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のリポジトリ導入
リポジトリを無効化しておきます。(OS標準以外は無効化ポリシーのため)
1 | sudo yum-config-manager --disable labs_consol_stable |
Thrukインストール
1 | sudo yum install thruk --enablerepo=labs_consol_stable |
ThrukマスターWebUIの設定
Apacheの設定(Cookie認証を無効化)
Cookie認証を使わないので、無効化しておきました。(お好みで。)
1 | sudo cat /dev/null > /etc/httpd/conf .d /thruk_cookie_auth_vhost .conf |
Thruk起動
1 | sudo systemctl start thruk |
これで、画面が表示されるはずです。 http://サーバー名 or IPアドレス/thruk/

Livestatusのインストール(CentOS7)
1 2 | 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
1 | broker_module= /usr/lib64/check_mk/livestatus .o /var/run/nagios/live .sock event_broker_options=-1 |
Sockの位置はあとで使うのでメモしておく
/var/run/nagios/live.sock
Nagios リロード
1 | 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の場合
1 2 3 | sudo yum install check-mk-livestatus ls -l /usr/lib64/check_mk/livestatus .o |
- CentOS6の場合
1 2 3 4 | 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
1 | broker_module= /usr/lib64/check_mk/livestatus .o /var/tmp/live .sock event_broker_options=-1 |
Sockの位置はあとで使うのでメモしておく(位置はどこでもいいとは思う)
/var/tmp/live.sock
Nagios リロード(CentOS5,6)
1 | sudo service nagios reload |
統合される側 backend設定(Livestatus編)
以下のパスに設定ファイルがインストールされているので、最低限以下を設定- /etc/xinetd.d/livestatus
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | # アクセス制御 # 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のpath |
統合する側 ThrukUIのbackend設定(Livestatus編)
設定値 | 値 |
---|---|
Name | ホスト名とか |
Type | livestatus |
Connection | サーバーのIP or 名前:ポート番号(6557など) |
Hidden | No |
Section | 何でもいい(拠点名とか) |

統合される側 backend設定(http編)
httpのバックエンドも可能です!その際はThrukをインストールする必要があります。httpsで通信できないので、httpで!
ハマりポイントなので、間違えないようにw(Thruk 2.14現在)
Thrukインストール
1 | 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設定し忘れた」とか
減るかと思います~
