今回は、「管理するサーバが増えてきた。いちいちサーバの健康状態をSSHとかコマンドで確認するのは面倒だ」「障害があったときの対応として、その切り分けをしたい」というわけで、巷で有名なnagiosをインストールすることにしました。
まず、ソースダウンロード。「http://www.nagios.org/download」ここから、
- coreの最新バージョン
- pluginの最新バージョン
- 日本語対応パッチ
以上をダウンロードします。
前準備などをします
nagiosユーザとグループを作成
# useradd -m -s /sbin/nologin nagios
# groupadd nagcmd
# usermod -a -G nagcmd nagios
# usermod -a -G nagcmd apache
ダウンロードしたソースを解凍
# tar -zxvf nagios-3.2.3.tar.gz
# mv nagios-3.2.3 nagios
# cd nagios
# gunzip ../nagios-jp-3.2.3.patch.gz
# patch -p1 < ../nagios-jp-3.2.3.patch
インストール
# ./configure –with-command-group=nagcmd –sysconfdir=/etc/nagios
# make all
# make install
# make install-init
# make install-config
# make install-commandmode
# make install-webconf
プラグインインストール
# tar -zxvf nagios-plugins-1.4.15.tar.gz
# ./configure –with-nagios-user=nagios –with-nagios-group=nagios –sysconfdir=/etc/nagios
# make
# make install
設定
viエディタを開きます。
# vi /etc/nagios/navios.cfg
・ログ出力先変更
#log_file=/usr/local/nagios/var/nagios.log
log_file=/var/log/nagios.log
・サーバ別に設定ファイルを作るので、その保存先を指定
#cfg_dir=/etc/nagios/servers
cfg_dir=/etc/nagios/servers
・警告や緊急ステータスになったときのメール通知先の設定
# vi objects/contacts.cfg
email ○○○@imamura.biz ; <<***** CHANGE THIS TO Y
OUR EMAIL ADDRESS ******
・nagiosログインアカウント作成
# htpasswd -c /etc/nagios/htpasswd.users nagiosadmin
で、任意でパスワード入力します。ここまでで、とりあえず動くけど監視対象のサーバの設定をしないといけない。
監視用サーバ設定ファイルは「/etc/nagios/servers」に格納されるので、この中で作成。
例:
define host{
use linux-server
host_name imamura1.inner
alias imamura1.inner
address 192.168.101.191
}
define service{
use generic-service
host_name imamura1.inner
service_description HTTP
check_command check_http
}
define service{
use generic-service
host_name imamura1.inner
service_description SMTP
check_command check_smtp!-t 5
}
define service{
use generic-service
host_name imamura.inner
service_description POP3
check_command check_pop
}
define service{
use generic-service
host_name imamura1.inner
service_description SSH
check_command check_ssh
}
define service{
use generic-service
host_name imamura1.inner
service_description PING
check_command check_ping!100,10%!200,20%
##平均RTTが100ミリ秒以上の場合、またはパケットロス率が10%以上の場合にWarning
##平均 RTTが200ミリ秒以上の場合、またはパケットロス率が20%以上はCritical
}
監視対象はHTTP,POP3,SMTP,PING,SSHでとりあえずよし。ここで、pingのcheck_commandのだけ忘れずにメモっとく。
グループ設定
一つのサーバについてそれぞれ外部、内部のネットワークがあると想定して、外部、内部とserversの中にディレクトリで分けて設定ファイルを設置。で、肝心のグループ分け設定は、
- ホスト別
- サービス別
に用途別にグループ分けできるようにする。
# vi /etc/nagios/servers/hostgroup.cfg
を作成。
##
# Host Group
##
define hostgroup{
hostgroup_name imamura.inner
alias imamura.inner
}
define hostgroup{
hostgroup_name imamura.outer
alias imamura.outer
members imamura1.outer,imamura2.outer,imamura3.outer → ホスト名を追加
}
##
# Service Group
##
define servicegroup {
servicegroup_name HTTP
alias HTTP Services
members imamura1.outer,HTTP
members imamura2.outer,HTTP
members imamura3.outer,HTTP
・・・ → これもホスト名追加 一例で、HTTPのサービスグループを分けたい場合だけ掲載してます。
}
設定終了、WEBから閲覧
これでひとまず設定は終了したので、WEBからアクセス。「https://www.imamura.biz/nagios/(仮なんで何もありません)」Basic認証がかかるんで、ID,PASSを入力。nagiosのトップページが見えればとりあえず大丈夫。
あとは、今まで作ったファイル等のパーミッション、所有者がnagiosでないとログファイルなど読み込めないので、これは適宜変更をする必要があります。
ということで、またまた自分しかわからない投稿になりましたが、要はnagiosでサーバ監視するための設定その他、って感じで忘れそうなところだけ書いておきました。
参考URL
ほとんどそのまま参考にさせていただきました。ありがとうございます・・・!
- http://www.kurobuti.com/blog
- http://www.momo-i.org/chapter5/nagios-3x.html
このページを共有する