Author Archive

  • eucalyptus
はてなブックマーク - CentOSでEucalyptusを構築してNagiosとGangliaで監視する(2)
このエントリーをはてなブックマークに追加

はじめまして或いはこんにちは。Fusic 仁井です。

タイトルからもわかりますように、今回は連続記事2回目となっております。
前回の記事ではCentOSにEucalyptusをインストールするところまで行きました。
続きまして今回はNagiosのインストールと設定、そしてEucalyptusの監視までとなります。

Nagiosで監視する

dagからYumでインストールできます。

# yum --enablerepo=dag -y install nagios nagios-plugins
# vim /etc/nagios/nagios.cfg
cfg_dir=/etc/nagios/servers # コメント解除
 
# mkdir /etc/nagios/servers
 
# chown nagios. /etc/nagios/servers
 
# vim /etc/nagios/objects/contacts.cfg
email hoge@hoge.hoge #ここで指定したメールアドレスに警告メール等が飛んできます
 
# htpasswd -c /etc/nagios/htpasswd.users nagiosadmin # ユーザ名とパスワードを設定する
New password: 
Re-type new password: 
Adding password for user nagiosadmin
# /etc/init.d/nagios start
# chkconfig nagios on
# /etc/init.d/httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

というわけで、これでNagiosインストール完了です。

ホストのIPアドレス/nagios/にアクセスすると、ユーザ名とパスワードを聞かれますので、先程設定したユーザ名とパスワードを入力します。ホラー映画のタイトルに使われそうなフォントでNagiosと書いてある画面がでたらOKです。

ここでちょっと監視設定のために画面を操作します。

Services画面を見ると、メガホンだかベルだかのマークが付いているものがありますので、そちらをクリックします。


「Enable notifications for this service」をクリックします。


「Commit」ボタンをクリックします。


「Done」をクリックします。


マークが消えます。これで通知設定が有効になりました。
この状態で、例えばSSHを止めると、コンフィグで設定したメールアドレスに異常通知のメールが飛んできます。

ちなみに、/var/www/html/にindex.htmlが存在しない場合、HTTPがWarningを吐き続けてそれはもう欝陶しい事になりますのでご注意下さい。

NagiosでEucalyptus

今回の目的はEucalyptusの状況を監視することですので、さらに続きが。

eucalyptus.linux4u.jp/wiki/index.php?EucalyptusMonitoring_v1.6

を読むと、

>NagiosとGanglia用のサンプルスクリプトを用意しています。Nagiosでサンプルスクリプトを使うことによって、Eucalyptusのコンポーネントおよび、そのコンポーネントが動作するマシンの状態を監視することができます。Gangliaでは各種リソースの使用状況を監視することができます。
>サンプルスクリプトの動作にはNagiosとGangliaが必要です。Debian/Ubuntuでは、まずNagiosをインストールしWebブラウザからモニタページを確認できるまでにします。その後、サンプルスクリプトを実行します(README.Monitoringファイルの内容に従って実行します)。Eucalyptus監視のためのルールが追加されます。その後Nagiosを再起動することでEucalyptusの基本的な監視ができるようになります。

とありますので、まずはREADME.Monitoringを読たいところです。が、これを読むためにはEucalyptusのソースファイルを落としてこなければなりません。こちらのページの下の方からダウンロードしましょう。
ファイル自体は、解凍したEucalyptusディレクトリ中の/extraディレクトリにあります(./eucalyptus-1.6.2/extras/)。中をみてみると、nagiosでEucalyptusを監視するためにはnagios.shを使用しろ、となっています。
このnagios.sh(と、今後使うganglia.sh)も、README.Monitoringと同じディレクトリの中に入っています。

スクリプトを使う前に少し修正を加えます。

# vim nagios.sh
# NAGIOS_PIPE="/var/lib/nagios3/rw/nagios.cmd"   #コメントアウト
NAGIOS_PIPE="/var/nagios/rw/nagios.cmd"

修正後、実際にシェルスクリプトを実行します。
引数one two three four にはホスト名を入れてください。

# ./nagios.sh -setup -nodes "two three four" -cc "one" -cloud one -walrus "one" > eucalyptus.cfg
# cp eucalyptus.cfg /etc/nagios/objects/
# vim /etc/nagios/nagios.cfg
34行目に追記
cfg_file=/etc/nagios/objects/eucalyptus.cfg
# /etc/init.d/nagios restart

実行後、生成されたファイルをeucalyptusのインストールディレクトリの指定の場所にコピーし、nagios.cfgにファイルの指定を追記します。
そしてnagiosを再起動させると、動きませんでした。ログ(/var/log/nagios/nagios.log )を見ると必要なものが入っていないと怒られてます。

プラグインその他まとめてすべてインストール

# yum --enablerepo=dag install nagios*

そして再びNagiosを再起動をかけると動きません。今度はコマンドがないと怒られます。
コマンドを定義する必要があるので、エラーログを見ながらコマンドを追加していきます。

以下、Errorログの例。

Error: Service check command 'check_load' specified in service 'eucalyptus-nc' for host 'four' not defined anywhere!
Error: Service check command 'check_load' specified in service 'eucalyptus-nc' for host 'four' not defined anywhere!
Error: Service check command 'check_load' specified in service 'eucalyptus-cc' for host 'one' not defined anywhere!
Error: Service check command 'check_load' specified in service 'eucalyptus-cloud' for host 'one' not defined anywhere!
Error: Service check command 'check_load' specified in service 'eucalyptus-walrus' for host 'one' not defined anywhere!
Error: Service check command 'check_load' specified in service 'eucalyptus-nc' for host 'three' not defined anywhere!
Error: Service check command 'check_load' specified in service 'eucalyptus-nc' for host 'two' not defined anywhere!

というわけで、エラーを解決するためにコマンドを追加します。
コマンドの追加はcommands.cfgファイルに追記することで可能です。

詳細なエラーを見る
# nagios -v /etc/nagios/nagios.cfg
 
# vim /etc/nagios/objects/commands.cfg
define command{
command_name    check_local_load
command_line    /usr/lib/nagios/plugins/check_load -w $ARG1$ -c $ARG2$
}
 
define command{
command_name    check_local_users
command_line    /usr/lib/nagios/plugins/check_users -w $ARG1$ -c $ARG2$
}
 
define command{
command_name    check_local_procs
command_line    /usr/lib/nagios/plugins/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$
}
 
# 'check_ssh' command definition
define command{
command_name    check_ssh
command_line    /usr/lib/nagios/plugins/check_ssh -t $ARG1$ $HOSTADDRESS$
}
 
# 'check_local_swap' command definition
define command{
command_name    check_local_swap
command_line    /usr/lib/nagios/plugins/check_swap -w $ARG1$ -c $ARG2$
}
 
 
# vim /etc/nagios/objects/eucalyptus.cfg
#check_command           check_load
check_command           check_load!1,1,1!2,2,2
 
nagiosを再起動
# /etc/init.d/nagios start
nagios は停止しています
nagios を起動中:                                           [  OK  ]

ということで起動しました。

ここまで終わると、Services画面に情報が追加されているかと思います。
基本的にログの情報を見て、コマンドが足りていなかったり引数が足りていなかったりという情報を読取り、対応をする、の繰り返しで対処することになるかと。
また、[nagios -v /etc/nagios/nagios.cfg]を使うと、いちいちログを開かなくて良いので楽です。

ということでここまでで今回の内容は終わりです。
次回はGangliaのインストールとEucalyptusの監視……ですが、まあ、README.Monitoringを読めば解決しちゃいます。
それでは。

おまけ

Nagiosがエラーを検出した祭、異常通知を複数に送りたい場合は、contact.cfgファイルを編集します。

# vim /etc/nagios/objects/contacts.cfg
define contact{
        contact_name                    newcontact
        use                             generic-contact
        alias                           New Contact 
 
        email                           hogehoge@hogehogel.com
        }
 
 
define contactgroup{
        contactgroup_name       admins
        alias                   Nagios Administrators
        members                 nagiosadmin, newcontact    #membersに追加したcontactのcontact_nameを追加
        }

defineでcontactを新たに定義し、contactgroupのmembersに加えていくだけです。

  • eucalyptus
はてなブックマーク - CentOSでEucalyptusを構築してNagiosとGangliaで監視する(1)
このエントリーをはてなブックマークに追加

はじめまして。Fusic 仁井です。

今回、Eucalyptusの導入とNagiosとGanglia監視環境の構築を行ないましたのでその話をば。
NagiosとGangliaはどちらも監視ツールですが、それぞれサービスの監視とプロセスの監視をしてくれます。
どちらも表やグラフなどで状況を表示してくれますので視覚的にわかりやすく、また、設定によって複数サーバの監視も可能となっています。
ちなみに、監視ツールと聞いて色々と思い浮かべる人もいるかとおもいますが、これらはEucalyptusが公式に対応しています。なのでEucalyptusを監視する場合、この組み合わせがよろしいのではないかと。

今回はCentOSにEucalyptusをインストールするところまでを解説します。
Eucalyptusについてはこちらの記事等に説明やコマンドがありますので、細かい部分についてはそちらを。
OSが違いますがコマンドに違いはありません。

まずは環境説明から。
今回構築した環境の組み合わせは以下のようになります。

192.168.24.203:監視用
192.168.24.202:Eucalyptus CLC,CC
192.168.24.201:Eucalyptus NC
OSはすべてCentOS5.5を使用しています。

さて、それでは構築手順を。

Eucalyptusのインストール

Eucalyptusのインストールについて、今回はリポジトリを追加してyumでやってしまいます。楽ですので。
まずは、192.168.24.202のマシンにEucalyptusCLCとCCを入れます。

# vi /etc/yum.repos.d/euca.repo
[euca]
name=Eucalyptus
baseurl=http://www.eucalyptussoftware.com/downloads/repo/eucalyptus/1.6.2/yum/centos/
enabled=1
# export ARCH=x86_64
# yum install eucalyptus-cloud.$ARCH eucalyptus-cc.$ARCH eucalyptus-walrus.$ARCH eucalyptus-sc.$ARCH --nogpgcheck

ARCHの値は、32bit時には「i386」としてください

CLC起動

# /etc/init.d/eucalyptus-cloud start

CC起動

# /etc/init.d/eucalyptus-cc start

NCのインストール
次に、192.168.24.201のマシンにEucalyptusNCをインストールします。

# export ARCH=x86_64
# yum install eucalyptus-nc.$ARCH --nogpgcheck

ARCHについては同上です。

ちなみに注意点としまして、EucalyptusはXendが動いていないと動かないので、起動時にXenKernelを使うようにしておいてください。

次に、Eucalyptusの環境的な設定をしていきます。これ以降の作業はすべて192.168.24.202で行ないます。
クラスタの追加

# /usr/sbin/euca_conf --register-walrus 192.168.24.202
# /usr/sbin/euca_conf --register-cluster LOCALCL 192.168.24.202
# /usr/sbin/euca_conf --register-sc LOCALCL 192.168.24.202

確認してみます。

# /usr/sbin/euca_conf --list-walruses
registered walruses:
walrus  192.168.24.202
# /usr/sbin/euca_conf --list-clusters
registered clusters:
LOCALCL  192.168.24.202
# /usr/sbin/euca_conf --list-scs
registered storage controllers:
LOCALCL  192.168.24.202

ノードの追加

# /usr/sbin/euca_conf -addnode 192.168.24.201

また確認してみます。

# /usr/sbin/euca_conf --list-nodes
registered nodes:
192.168.24.201  LOCALCL

euca2oolsのインストール

# wget http://www.eucalyptussoftware.com/downloads/repo/eucalyptus/1.6.2/yum/centos/i386/euca2ools-1.2-0.1.rc1.i386.rpm
# rpm -Uvh euca2ools-1.2-0.1.rc1.i386.rpm

あとはインスタンスを立ち上げればOKです。
インスタンスの状態は以下のコマンドで確認できます。

# euca-describe-instances 
RESERVATION	r-4CCD07DE	admin	default
INSTANCE	i-4D0D0940	emi-40321247	192.168.24.73	192.168.24.73	running 	mykey 	0 	m1.small 	2010-09-01T08:54:10.856Z 	LOCALCL 	eki-5DF61296 	eri-1B10156F
RESERVATION	r-46D108E5	admin	default
INSTANCE	i-403D074E	emi-40321247	192.168.24.89	192.168.24.89	running 	mykey 	0 	m1.small 	2010-09-01T02:27:01.583Z 	LOCALCL 	eki-5DF61296 	eri-1B10156F

このように、INSTANCEのステータスがrunningに成っていたらOKです。これがすぐにterminatedになるようでしたら、前述の「Kernelの指定がきちんと出来ているか」等確認してみるのが良いかと。

今回はここまでとなります。次回はNagiosのインストール〜設定、Eucalyptusの監視までを行ないます。