運用しているサーバや常時稼働しているマシンを監視したいという願望はあったのだが、偶然Nagiosというものを知ったので、取り敢えず使ってみることにした。
長くなってしまった気がするので、導入編と利用編で分けようと思う。こちらは導入編。
環境はArch Linux(ただしsystemd-nspawnでコンテナ立ててその上に設置する。ホイホイ実験できて便利だね)
基本的にはいつもの通りNagios - ArchWikiで。
Nagiosは本来はWebサーバは必要としないのだが、Webフロントエンドがあるので、Webサーバを用意しておいた方が便利に使えるだろう…ということで、ArchWikiではnginx, php, php-fpm, fcgiwrapが良いと思うよって書いてある
ただ、nginx全然使い慣れてないし、nginxで四苦八苦することは今回の趣旨から外れるので、ApacheでPHP使えるようにして…みたいな感じで。省略。ちなみにNagios入れたあとPHP動かなくて苦しんだけど、どうやって解決したのか全く覚えてないので、自宅サーバ新調してから手順をまたまとめ直します()
公式リポジトリにnagiosはいらっしゃらないので、nagios - aurのお世話になる。また、monitoring-pluginsが必要になるやろって書いてあるので、それもインストールしておく。
[bash]
$ yaourt -S nagios
$ sudo pacman -S monitoring-plugins
[/bash]
monitoring-pluginsをnagiosから使えるように設定する。具体的には、/etc/nagios/resource.cfgの$USER1$が向いている先をmonitoring-pluginsに変更する
[bash]
#$USER1$=/usr/share/nagios/libexec
$USER1$=/usr/lib/monitoring-plugins
[/bash]
コンフィグファイルをsampleをもとに作成する(つってもコピーするだけ)
[bash]
$ sudo cp /etc/nagios/cgi.cfg.sample /etc/nagios/cgi.cfg
$ sudo cp /etc/nagios/resource.cfg.sample /etc/nagios/resource.cfg
$ sudo cp /etc/nagios/nagios.cfg.sample /etc/nagios/nagios.cfg
$ sudo cp /etc/nagios/objects/commands.cfg.sample /etc/nagios/objects/commands.cfg
$ sudo cp /etc/nagios/objects/contacts.cfg.sample /etc/nagios/objects/contacts.cfg
$ sudo cp /etc/nagios/objects/localhost.cfg.sample /etc/nagios/objects/localhost.cfg
$ sudo cp /etc/nagios/objects/templates.cfg.sample /etc/nagios/objects/templates.cfg
$ sudo cp /etc/nagios/objects/timeperiods.cfg.sample /etc/nagios/objects/timeperiods.cfg
[/bash]
ファイル群のオーナー変更
[bash]
$ sudo chown -R nagios:nagios /etc/nagios
[/bash]
認証情報作成(ArchWiki通りにユーザ名はnagiosadminにしてみた)
[bash]
$ sudo htpasswd -c /etc/nagios/htpasswd.users nagiosadmin
[/bash]
/usr/share/nagiosがroot:rootだとまずいようなのでこれも変更しておく
[bash]
$ sudo chown -R nagios:nagios /usr/share/nagios
[/bash]
Apacheにnagiosを設定する。ArchWikiではPHP5使っているようだけどPHP7でもおkっぽい
[bash]
$ sudo vim /etc/httpd/conf/httpd.conf
〜略〜
LoadModule php7_module modules/libphp7.so
〜略〜
Include "conf/extra/nagios.conf"
〜略〜
Include "conf/extra/php7_module.conf
[/bash]
nagios.confを読み込ませるようにしているので、無いと死ぬ。作成する(サンプルからコピーする)
[bash]
$ sudo cp /etc/webapps/nagios/apache.example.conf /etc/httpd/conf/extra/nagios.conf
[/bash]
Apacheの実行ユーザ(http)がnagiosグループに入っていないとこれも死ぬので追加
[bash]
$ sudo usermod -G nagios -a http
[/bash]
PHPがnagiosのWebフロントエンドを実行できるようにopen_basedirを編集する
[bash]
$ sudo vim /etc/php/php.ini
open_basedir = /usr/share/nagios/share/
[/bash]
以上でセットアップ終了。起動してブラウザからhttp://localhost/nagiosにアクセスしよう。設定しておいた認証情報(nagiosadminとか)を使ってログインできる。
[bash]
$ sudo systemctl restart nagios
$ sudo systemctl restart httpd
[/bash]
[caption id=”attachment_434” align=”alignnone” width=”300”] 最近はあまり見なくなったフレームレイアウト[/caption]
以上。