2017年4月20日木曜日

Thruk monitoring 使った、多拠点Nagiosの統合をして管理を楽しよう!!


Nagiosもけっこう便利!って思っている、 なのまるです!

Nagiosの困るところを解消するツール「Thruk」を使って、多拠点Nagiosを統合しました。


もくじ



Thruk とは。

複数のNagios、またはNagios互換監視製品を統合する「GUI」です。
Nagiosの他に「Icinga, Shinken, Naemon」をサポート

Nagios互換製品などとの通信に、「livestatus」を利用しています。

メリット

以下に、メリットを提示します。
  • 複数のNagiosが統合管理出来る!(NagiosのGUIで出来ることはすべてできる)
  • Nagiosより、結果の画面反映が早い
  • 今の画面URLが共有できる!
  • 画面を戻った時に、画面位置がリセットされない!
  • オープンソース
  • 無料で使える
※ 下の2つはNagiosも同じように使えるので、一般的なメリットです。

いちいちすべて説明しないですけど、Nagios使ったことある人なら上記メリットに心当たりあると思います!

デメリット

  • UIがすべて英語(いい方法あったら知りたい!)
  • セットアップが若干面倒
  • アイテムが多くなると、表示が遅くなる(事があるらしい)
  • バージョンの差異で動作しないことがある(thruk間のバージョン差異で動かなかった)

前提条件

ざっと、以下の前提で進めました。
役割
Thrukマスター(統合WebUI)のOSCentOS7
Thrukに設定するbackendlivestatus or http
Livestatusを導入するOSCentOS 5,6,7
Nagios3.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とか)
Typelivestatus
Connection/var/run/nagios/live.sock(さっきのPATH)
HiddenNo
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
TCP Wrapperやiptablesで、denyにハマらないように・・・。

統合する側 ThrukUIのbackend設定(Livestatus編)

設定値
Nameホスト名とか
Typelivestatus
ConnectionサーバーのIP or 名前:ポート番号(6557など)
HiddenNo
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ホスト名とか
Typehttp
Connectionhttp://サーバーのIP or 名前/thruk/
Auth-Key統合される側の「/var/lib/thruk/secret.key」の値
Proxy使わなければ空欄
Remote Name使わなければ空欄
HiddenNo
Section何でもいい(拠点名とか)

まとめ

ざっとこんな感じで、5台のNagiosを統合管理できるようにしました!
このサーバーはあのNagios!?とか、
一時downtime設定しよう!「あ、あっちのNagios設定し忘れた」とか
減るかと思います~

参考

MK Livestatus

共有

Clip to Evernote
0follow