SUSE + Nagios で Linux の管理

SUSE 11 に nagios をインストール で nagios core をインストールした後、SUSE + nagios でプリンタ管理もできるようになりました。Windows サーバーも管理できるようになりました。

それでは Linux サーバも管理できるようにしてみましょう。

-objectディレクトリに管理対象サーバの設定ファイルを作る-

/tec/nagios/object/template.cfg をコピーして mydns.cfg というファイルを作ります。このファイルを元に不要な部分を削除して dns サーバーを監視対象にしてみます。

nagios:/etc/nagios # cat objects/dns2.cfg
#
define contact{
# name generic-contact
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r,f,s
host_notification_options d,u,r,f,s
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-emai
# register 0
}

# Linux host definition template - This is NOT a real host, just a template!

define host{
# name linux-server
host_name dns2 ; 監視対象名(大抵ホスト名)を追加します
address 192.168.1.2 ; 監視対象のホストアドレス、ここでは ip を直接指定していますが、 DNS 名でも構いません。
use generic-host
check_period 24x7
check_interval 5
retry_interval 1
max_check_attempts 10
check_command check-host-alive
notification_period workhours
notification_interval 120
notification_options d,u,r
contact_groups admins
# register 0
}


# Generic service definition template - This is NOT a real service, just a template!

define service{
# name generic-service
active_checks_enabled 1
passive_checks_enabled 1
parallelize_check 1
obsess_over_service 1
check_freshness 0
notifications_enabled 1
event_handler_enabled 1
flap_detection_enabled 1
failure_prediction_enabled 1
process_perf_data 1
retain_status_information 1
retain_nonstatus_information 1
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 10
retry_check_interval 2
contact_groups admins
notification_options w,u,c,r
notification_interval 60
notification_period 24x7
# register 0
}


# Local service definition template - This is NOT a real service, just a template!

define service{
# name local-service
use generic-service
max_check_attempts 4
normal_check_interval 5
retry_check_interval 1
# register 0
}

-ついでに2台目(myserver)を追加してみます-

nagios:/etc/nagios # cat objects/myserver.cfg
#
define contact{
# name generic-contact
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r,f,s
host_notification_options d,u,r,f,s
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-emai
# register 0
}

# Linux host definition template - This is NOT a real host, just a template!

define host{
# name linux-server
host_name myserver ; この行追加
address myserver.intra ; この行追加、DNS名です。
use generic-host
check_period 24x7
check_interval 5
retry_interval 1
max_check_attempts 10
check_command check-host-alive
notification_period workhours
notification_interval 120
notification_options d,u,r
contact_groups admins
# register 0
}


# Generic service definition template - This is NOT a real service, just a template!

define service{
# name generic-service
active_checks_enabled 1
passive_checks_enabled 1
parallelize_check 1
obsess_over_service 1
check_freshness 0
notifications_enabled 1
event_handler_enabled 1
flap_detection_enabled 1
failure_prediction_enabled 1
process_perf_data 1
retain_status_information 1
retain_nonstatus_information 1
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 10
retry_check_interval 2
contact_groups admins
notification_options w,u,c,r
notification_interval 60
notification_period 24x7
# register 0
}


# Local service definition template - This is NOT a real service, just a template!

define service{
# name local-service
use generic-service
max_check_attempts 4
normal_check_interval 5
retry_check_interval 1
# register 0
}

nagios:/etc/nagios #


※ さて name と register の値がコメントアウトされています。

name myhost-template ; テンプレートとしての宣言
register 0  ; 0:テンプレートとして使用する 1:オブジェクトとして使用する(Default)

ということになります。このファイルはテンプレートではなくオブジェクトとして定義しているため、この二つの定義は不要です。コメントアウトします。大抵この部分のチェックでエラーが出ます。

-nagios.cfg の修正とチェック、再起動-

/etc/nagios/nagios.cfg ファイルに監視対象のオブジェクトファイルを加えます。

cfg_file=/etc/nagios/objects/dns2.cfg
cfg_file=/etc/nagios/objects/dns3.cfg
cfg_file=/etc/nagios/objects/my-www.cfg
cfg_file=/etc/nagios/objects/my-ftp.cfg


# nagios -v nagios.cfg

を実行して、エラーがなければ

# /etc/init.d/nagios restart を実行します。ブラウザをリロードすると
SUSE + Nagios で Linux の管理_a0056607_13335350.jpg

監視対象の Linux サーバーが現れました。

-さて-

ここでは、最低限の設定を行いましたが、 nagios 自体は「複雑怪奇」なほど豊富な機能を持っているようです。単純な死活管理、snmp 管理、システム内部の負荷管理などです。これらは nagios の標準、あるいは拡張パッケージを追加導入することで実現することができます。

またサーバーやプリンタ、ルータやスイッチなどをホストグループとして定義することもできます。

例えばXEN や KVM ハイパーバイザーが動作しているサーバーの場合なら、ディスクIOやCPU負荷などが気になるでしょう。DNSやwww の場合、サービスの監視が重要になります。このような場合はサービスを定義して command.cfg に適切なプラグインを指定する必要があるようです。

これらのサービスを監視するには通常「ウン百万円」の管理システムを導入する必要があるのでしょうが、 nagios は SUSE Linux Enterprise Server (SLES11) の標準管理ツールとして利用できるために、他のハイパーバイザーのように新たな予算申請も必要ありません。これは大変大きなメリットとなります。

ただし、設定はかなり複雑で、nagios 全体を理解するにはかなり時間がかかることも事実です。 SUSE ならYaST の標準コマンドでプラグインや監視対象ホストの指定などができるようになると大変うれしいと思いますし、簡単でもいいから CUI の設定ツールなどないかなとも思ってしまいます。(お前が作れよ、と言われそうですが)この点では「高額な管理ツール」が優れている点かもしれません。

一応 SLES11 には pipet という APL ライセンスのツールも含まれています。でも自動生成するためにスクリプトを書くのもなぁ、という疑問もあります。

もっとも「ウン百万円」のシステムを導入しても、「何を監視し、どのようなシュレッシュホルド」を作り、どのようなアラートから復旧に至るかと言った、システム運用のマニュアル」が必要となります。これは nagios だけではなく、他の運用管理ツールにも言える事でしょう。

以前、Java で動作する「監視アプライアンス」を使ってみたことがあるのですが、mib の情報だけで、自動マップ生成、アラート、検出などを行いましたが、日々変化する構内ネットワークの中でどこにポイントを持って管理するかの目標がなければ、ただマップを眺めて「美しい」と感じるだけでした。

しかし、「紙ベース」でネットワークを把握し、問題点を一つ一つ洗い出して解決するよりも、「今起きていること」を「見える化」するツールの入門としては nagios は良いツールであるし、使い方次第では「深いツール」であるともいえます。

まず、簡単な死活管理から初めて、プラグインや監視対象のサービスを追加して徐々にカスタマイズして、自分たちのネットワークの管理ツールとして育てていく、といった作業は出来合いの「管理ツール」ではできません。

ということで nagios はネットワークの統合監視ツールとしては今後も高い可能性を秘めたツールであると思います。


islandcenter.jp

-Keyword-

nagios SUSE SLES Windows ルータ スイッチ プリンタ 統合管理ツール 無償 オープンソース
by islandcenter | 2013-03-03 14:06 | SUSE | Comments(0)