nagiosをインストール【linux管理ツールを導入】

今回は、「管理するサーバが増えてきた。いちいちサーバの健康状態を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の中にディレクトリで分けて設定ファイルを設置。で、肝心のグループ分け設定は、

  1. ホスト別
  2. サービス別

に用途別にグループ分けできるようにする。

# 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

著者:bouya Imamura