Linuxを使った総合監視Vol.2

こんばんは、GBSの孝至(こうじ)です。

本日は、Nagiosの設定について掲載していきたいと思います。

ちょっとその前に、おさらいです。
運用監視が必要なのか
サービスを提供する上で、必ず必要なことは
安定運用をするということです。
安定運用することで、利用されている方が安心して
サイトを利用することができます。

そこで、今回総合監視ツール(Nagios)を構築して
どういう事を監視すると安定運用につながっていくのかを
記載していくことにしました。

今回使用する、NagiosというMWについて
監視できるものとして
・ネットワークサービス
・SMTP、POP3、HTTP、NNTP、ICMP、SNMP、FTP、SSH
・リソース
・CPU、HDD、システムログ
・ブローブ監視
・温度など

その他にも、プラグイン(追加機能)を導入することにより
さまざまな監視をすることが可能になります。

前回の復習も終わったので、さっそく
Nagiosの設定に入っていきたいと思います。

#vi /usr/local/nagios/etc/nagios.cfg
※Nagiosの設定ファイルのnagios.cfgを編集します。

#cfg_dir=/usr/local/nagios/etc/servers
※先頭にある#を取り除きサーバ監視設定の有効化をします。

date_format=iso8601
※日付の書式を左記の様な書式に変更します(例:2015-12-29 00:00:00)

wq!
※編集を保存して終了します。

#mkdir /usr/local/nagios/etc/servers
サーバ監視設定ファイル格納用のディレクトリを作成します。

#vi /usr/local/nagios/etc/objects/contacts.cfg
※異常を検知した時にアラートを知らせる為にメールアドレスを設定します。

define contact{
contact_name nagiosadmin ; Short name of user
use generic-contact ; Inherit default values from generic-contact template (defined above)
alias Nagios Admin ; Full name of user

email メールアドレスを設定
}

#vi /usr/local/nagios/etc/objects/localhost.cfg
※通知対象設定するためlocalhost.cfgを編集していきます。

define service{
use local-service ; Name of service template to use
host_name localhost
service_description SSH
check_command check_ssh
notifications_enabled 1を指定するとSSH状態変化時に通知する設定になります
}

define service{
use local-service ; Name of service template to use
host_name localhost
service_description HTTP
check_command check_http
notifications_enabled 1を指定(HTTP状態変化時に通知する設定になります
}

wq!
※編集を保存して終了します。

#vi /usr/local/nagios/etc/objects/commands.cfg
nfkコマンドを使用するためcommands.cfgを編集していきます。
# ‘notify-host-by-email’ command definition
command_line /usr/bin/printf “%b” “***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState:
$HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n” | /usr/bin/nkf -j | /bin/mail -s “**
$NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **” $CONTACTEMAIL$
※nfkを設定するのは、メール通知をする上で文字化けを防ぐためです。
※実際は1行で記載してください。
# ‘notify-service-by-email’ command definition
command_line /usr/bin/printf “%b” “***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState:
$HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n” | /usr/bin/nkf -j | /bin/mail -s “**
$NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **” $CONTACTEMAIL$
※nfkを設定するのは、メール通知をする上で文字化けを防ぐためです。
※実際は1行で記載してください。

 
※続いては、Webページで表示ができるように設定していきます。

#usermod -G nagios apache
※apacheユーザーをnagiosグループに所属させていきます。

#vi /etc/httpd/conf.d/nagios.conf
※Nagios用Apache設定ファイル編集を編集していきます。

<Directory “/usr/local/nagios/sbin”>
# SSLRequireSSL
Options ExecCGI
AllowOverride None
Order allow,deny
※削除(Order句によるアクセス制限非推奨対応)

Allow from all
※削除(Order句によるアクセス制限非推奨対応)

# Order deny,allow
※削除(Order句によるアクセス制限非推奨対応)

# Deny from all
※削除(Order句によるアクセス制限非推奨対応)

# Allow from 127.0.0.1
※削除(Order句によるアクセス制限非推奨対応)

<RequireAll>
※追加(Require句によるアクセス制限対応)

<RequireAny>
※追加(Require句によるアクセス制限対応)

Require ip 127.0.0.1
※追加(自ホストからのアクセスを許可)

Require ip 192.168.1.0/24
※追加(内部ネットワーク(例:192.168.1.0/24)からのアクセスを許可)

</RequireAny>
※追加(Require句によるアクセス制限対応)
AuthName “Nagios Access”

AuthType Basic

AuthUserFile /usr/local/nagios/etc/htpasswd.users

Require valid-user

</RequireAll>
※追加(Require句によるアクセス制限対応)

</Directory>

<Directory “/usr/local/nagios/share”>
# SSLRequireSSL
Options None
AllowOverride None
Order allow,deny
※削除(Order句によるアクセス制限非推奨対応)

Allow from all
※削除(Order句によるアクセス制限非推奨対応)

# Order deny,allow
※削除(Order句によるアクセス制限非推奨対応)

# Deny from all
※削除(Order句によるアクセス制限非推奨対応)

# Allow from 127.0.0.1
※削除(Order句によるアクセス制限非推奨対応)

<RequireAll>
※追加(Require句によるアクセス制限対応)

<RequireAny>
※追加(Require句によるアクセス制限対応)

Require ip 127.0.0.1
※追加(自ホストからのアクセスを許可)

Require ip 192.168.1.0/24
※追加(内部ネットワーク(例:192.168.1.0/24)からのアクセスを許可)

</RequireAny>
※追加(Require句によるアクセス制限対応)

AuthName “Nagios Access”
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user

</RequireAll>
※追加(Require句によるアクセス制限対応)

</Directory>

# /etc/rc.d/init.d/httpd reload httpd
※Webサーバー設定反映

# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
※Nagios管理ユーザー(nagiosadmin)作成していきます。

New password:
※任意のパスワード応答

Re-type new password:
※任意のパスワード応答(確認)

Adding password for user nagiosadmin

#/etc/rc.d/init.d/nagios start
※Nagiosを起動させます。

#chkconfig –add nagios
※再起動がかかっても今の状態ではNagiosが自動起動しないためスクリプトを追加します。

#chkconfig nagios on
※再起動後でも、自動起動するように設定します。
ブラウザでhttp://サーバー名/nagios/を入力後、設定したnagiosadmin(管理者ユーザ名)とパスワードを入力すると表示されます。
デフォルトの監視項目は自ホストの「CPU負荷」、「ログインユーザー数」、「Webサーバー稼動状況」、「ネットワーク障害」、
「ディスク空き状況」、「SSHサーバー稼動状況」、「SWAP空き状況」、「プロセス数」が表示されます。
以上が総合監視をするためのツールNagiosの設定でした。
Nagiosにはいろいろなモジュールや監視できる対象を増やしたりすることができ小規模のサービスであれば
十分監視ツールとして稼動していけるツールになっています。

Linux
One comment on “Linuxを使った総合監視Vol.2

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です