劇場 版 ブラック ジャックk8 カジノWebサーバの24×365監視を実現する ~その3 NagiosのコンフィグファイルとICMPを設定する~仮想通貨カジノパチンコポータブル wifi レンタル

劇場 版 ブラック ジャックk8 カジノWebサーバの24×365監視を実現する ~その3 NagiosのコンフィグファイルとICMPを設定する~仮想通貨カジノパチンコポータブル wifi レンタル

劇場 版 ブラック ジャックk8 カジノWebサーバの24×365監視を実現する ~その3 NagiosのコンフィグファイルとICMPを設定する~仮想通貨カジノパチンコポータブル wifi レンタル

sbivc トレード メンテナンスk8 カジノ

10 ベット ジャパン ボーナス Nagiosによる監視の設定は、コンフィグファイルに必要な設定を記述する方式である。ところが、前回の記事(Webサーバの監視?監視ツールの導入)の掲載後に寄せられた質問の中には、このコンフィグの設定に戸惑われている方が多かった。そこで、今回はNagiosのコンフィグファイルについて、もう少し踏み込んだ解説をしたうえで、最も基本的なICMP(ping)による監視を実現するところまでを解説することにした。

Nagiosのコンフィグファイル

 Nagiosには複数のコンフィグファイルがある。Nagiosのコンフィグファイル群は、大きく次の5種類に分けられる。

(1)メインコンフィグファイル

(2)リソースファイル

(3)オブジェクトコンフィグファイル

(4)CGIコンフィグファイル

(5)拡張コンフィグファイル

 コンフィグファイルのサンプルは、Nagiosをインストールしたディレクトリ配下の/etcディレクトリ(標準は/usr/local/nagios/etc)に保存されている。これらのサンプルファイルを利用して、必要な部分だけを変更するようにしよう。

●メインコンフィグファイル(nagios.cfg)

 Nagios実行時に参照されるメインのコンフィグファイルで、Nagiosの実行に必要な環境を設定する。Nagiosの実行モジュール、CGIはともにこのファイルを参照する。また、ほかに使用するコンフィグファイルがある場合には、この「nagios.cfg」内に定義しなければならない。

 メインコンフィグファイルには非常に多くの設定項目があるが、多くはデフォルトの設定のままで利用できる。監視を設定する場合に、注意して確認しなければならない項目には、ログファイル、コンフィグファイルなどの監視結果や実行時のエラーが出力されるファイルと、監視を実行するユーザーなどの指定個所。各設定項目には英語でコメントが記述されているので、変更する前に確認すること。

# LOG FILENagiosが実行されている間のイベントをロギングするファイルをここで指定する。デフォルトは「/usr/local/nagios/var/nagios.log」である。フルパスでファイル名を指定することで、任意のファイルへログを出力する(例)log_file=/usr/local/nagios/var/nagios.log

# OBJECT CONFIGRATION FILE(S)監視対象の情報を保管するファイルのパスを指定する。標準で/usr/local/nagios/etc/以下のディレクトリに格納されるコンフィグファイル群(拡張子がcfgのファイル)のすべてのパスが記述されていることを確認しよう(例)cfg_file=/usr/local/nagios/etc/hosts.cfgcfg_file=/usr/local/nagios/etc/checkcommands.cfg

# RESOURCE FILEプラグインをインストールしているディレクトリへのパスを指定する(例)resource_file=/usr/local/nagios/etc/resource.cfg

# STATUS FILEすべての監視対象のステータスを記録するファイルを指定する。Nagiosを起動するたびにこのファイルの内容はクリアされるので、ファイルの参照には注意が必要だ(例)status_file=/usr/local/nagios/var/status.log

# NAGIOS USER# NAGIOS GROUP Nagiosを実行するときのユーザ名およびグループ名を指定する。ユーザ名、グループ名の文字列もしくはUID、GIDのいずれかで指定する(例)nagios_user=nagiosnagios_group=nagios

# LOG ROTATION METHODログローテーションの方法を指定する。毎時間、毎日、毎週、毎月、およびローテーションしないの5種類のうちいずれかを指定する(例)log_rotation_method=d

# LOG ARCHIVE PATHログローテーションによりアーカイブしたファイルを保管するディレクトリを指定する(例)log_archive_path=/usr/local/nagios/var/archives

# TIMEOUT VALUESNagiosが実行するコマンドのタイムアウト値を秒単位で指定する(例)service_check_timeout=60host_check_timeout=30

# INTERVAL LENGTH監視間隔を秒単位で指定する。標準は60秒(例)interval_length=60

 ここまでの設定はnagios.cfgの一例である。ICMPによる疎通監視程度であれば、この程度の設定項目を確認すれば十分だろう。しかし、設定可能なオプションには、監視中のflapping(疎通が取れたり取れなかったりする現象)を認知するか、認知させる場合のしきい値はどうするかなどといった項目も設定できる。より細かい設定をしたい場合には、Nagiosのドキュメントを参照してほしい。

●リソースファイル(resource.cfg)

 情報を保管するためのファイルで、ユーザ作成のマクロの定義や、データベースとの接続に必要な情報を設定するために使用する。

●オブジェクトコンフィグファイル

 オブジェクトコンフィグファイルは、次のような複数のファイルから形成される。

hosts.cfg

hostgroups.cfg

services.cfg

checkcommands.cfg

contacts.cfg

contactgroups.cfg

dependencies.cfg

escalations.cfg

misccommands.cfg

timeperiods.cfg

 これらのファイルに監視対象のホスト情報、サービス、通知先、実行コマンド等を定義する。Nagiosへの監視設定は、主にこれらのコンフィグファイルに記述する。

  多くのオブジェクトコンフィグファイルは、共通設定のテンプレートと、それを補完する個別設定という2重構造になっている。最初にファイル全体へ有効となるパラメータ設定をテンプレートとして定義し、その後に個別の設定を記述する構成になっている。テンプレートで定義したパラメータの設定値は個別設定の定義の中に継承できるので、これらの設定値を有効に活用すると設定が楽になる。

・hosts.cfg

監視対象機器の情報を指定する。

(テンプレートの記述)

 ファイル全体で共通な(もしくはたいていの監視対象で共通に使うと思われる)パラメータを記述したテンプレートで、define host{ }で囲まれた範囲にパラメータと設定値を記述する。ここで記述されたパラメータは、オブジェクトに定義された名前で識別できる。後に記述される各監視対象の設定では、このテンプレートに定義された名前を指定することで、テンプレートで記述したパラメータを各監視対象で継承することができる。

 オブジェクトパラメータファイルの2重構造がわかりにくいことも考えられるので、記述例を以下に示す。この例ではテンプレートとして設定するオブジェクトの名前を「name」という名前で定義する。このname内で記述したパラメータは、各監視対象用のオブジェクトで“use”パラメータにより値を継承できる。なるべく監視対象全体に共通するパラメータを選んで定義し、各監視項目向けのオブジェクトで有効活用できるようにしたい。

  また、register パラメータは標準で“1”が設定され、Nagiosプログラムがそのオブジェクトが実行されるべきオブジェクトであると認識する。設定したオブジェクトをテンプレートとして使いたいときは、register

パラメータに“0”を明示的に設定する必要がある。

【例】

# Generic host definition templatedefine host{name generic-host ; The name of this host template – referenced in other host definitions, used for template recursion/resolutionnotifications_enabled 1 ; Host notifications are enabledevent_handler_enabled 1 ; Host event handler is enabledflap_detection_enabled 1 ; Flap detection is enabledprocess_perf_data 1 ; Process performance dataretain_status_information 1 ; Retain status information across program restartsretain_nonstatus_information 1 ; Retain non-status information across program restarts register 0 ; DONT REGISTER THIS DEFINITION – ITS NOT A REAL HOST, JUST A TEMPLATE!}

・各監視対象の情報設定

 監視対象機器のホスト名、監視対象機器の説明、IPアドレス、監視に使用するコマンド、監視時のステータス確認実施回数、アラートに関する設定などを記述する。テンプレートで指定されているパラメータとこの個別の監視対象機器のパラメータが重複して指定された場合、個別の監視対象機器の定義の方が有効となる。

【例】

# 'hoge' host definitiondefine host{use generic-host ; Name of host template to use host_name hogealias Test Server #1address xxx.xxx.xxx.xxxcheck_command check-host-alive}

・hostgroups.cfg

hosts.cfgで設定した各監視対象をグループとして定義したものである。アラートの通知先が同じ監視対象機器を1つのグループとしてまとめて記述するファイルと考えるとわかりやすい。

・services.cfg

各監視対象機器に、どのような監視を実行するのかを指定する。

・checkcommands.cfg

Nagiosが監視対象に対して実行するコマンドを定義する。Nagiosをインストールした状態で実装されているコマンドは、監視に必要なコマンドの大多数を網羅しているため、hosts.cfgファイルもしくはservices.cfgファイルで指定しているcheck_commandパラメータには、このファイルから必要な任意のコマンドを指定するだけで十分だろう。

・contacts.cfg、contactgroups.cfg

Nagiosが障害を検知した場合に、アラートを通知する先を指定する。

・escalations.cfg

障害時に通知する先が、contactgroups.cfgで設定したどの通知先グループに属しているかを指定する。

・misccommands.cfg

アラート通知用のコマンドを指定する。command_nameで設定したパラメータ値は、contacts.cfgファイル内のservice_notification_commands、host_notification_commands で指定する。

・timeperiods.cfg

監視する時間帯を指定する。

●CGIコンフィグファイル(cgi.cfg)

 「cgi.cfg」は、CGI関連の設定を記述するコンフィグファイルである。

●拡張コンフィグファイル

 CGIで使われるホストおよびサービスに対する付加情報を定義するために使用するコンフィグファイル。アイコンの定義等に使う。

※ここでは言及しないが、NagiosのWebインタフェースを利用するには、Nagiosのコンフィグファイル以外にWebサーバプログラム(apacheなど)のコンフィグファイルの修正も必要である。CGIとHTMLファイルへのアクセスが可能になるよう、使用しているWebサーバプログラムごとに設定してほしい。

ICMP(ping)による疎通監視の設定≫

 実際にコンフィグファイルのパラメータの意味合いに注意しながら、システム監視の基本であるICMPによる疎通確認を定期的に実行するように設定してみよう。設定する監視対象の情報は次のとおり。

監視対象機器名www.yahoo.co.jp監視項目ICMP(ping)による疎通監視監視間隔1分異常と判断する条件5分間、pingによる応答が連続してないこと通知先[email protected]

●hosts.cfgの設定

 hosts.cfgには、監視対象機器のホスト設定を記述する。テンプレートとしてのオブジェクトは、デフォルトのまま。

# Generic host definition templatedefine host{name generic-host ; The name of this host template – referenced in other host definitions, used for template recursion/resolutionnotifications_enabled 1 ; Host notifications are enabledevent_handler_enabled 1 ; Host event handler is enabledflap_detection_enabled 1 ; Flap detection is enabledprocess_perf_data 1 ; Process performance dataretain_status_information 1 ; Retain status information across program restartsretain_nonstatus_information 1 ; Retain non-status information across program restarts register 0 ; DONT REGISTER THIS DEFINITION – ITS NOT A REAL HOST, JUST A TEMPLATE!}

 個別の監視対象機器の設定は次のとおり。テンプレートの設定を継承し、ホスト名、IPアドレス、実行するコマンド、監視対象が完全にダウンしていると認知するまでの値、アラート通知に関連する設定(再連絡までの時間、通知の時間帯、通知内容)を設定する。

# 'speech' host definitiondefine host{use generic-host ; Name of host template to use host_name www.yahoo.co.jpalias Yahoo Server #1address www.yahoo.co.jpcheck_command check-host-alivemax_check_attempts 5notification_interval 0notification_period 24x7notification_options d,u,r}

●hostsgroups.cfg

 hostsgroups.cfgには、監視対象のホストのグループを設定する。監視対象のwww.yahoo.co.jpは、test-serversというホストグループに属し、通知先のグループにtest-adminsを設定する。

# 'test' host group definitiondefine hostgroup{hostgroup_name test-serversalias Test Serverscontact_groups test-adminsmembers www.yahoo.co.jp}

●escalations.cfg

 escalations.cfgには、アラートの通知方法を設定する。次の例では、5回目、6回目のping疎通不可で、contact_groupsへ通知をするように設定している。

# Serviceescalation definitiondefine serviceescalation{host_name www.yahoo.co.jpservice_description PINGfirst_notification 5last_notification 6contact_groups test-adminsnotification_interval 0}

●services.cfg

 services.cfgには、各監視対象機器にどのような監視を実行するのかを指定する。hosts.cfgと同様、まずテンプレートオブジェクトを定義するが、今回は標準のまま利用することにした。

# Generic service definition templatedefine service{name generic-service ; The 'name' of this service template, referenced in other service definitionsactive_checks_enabled 1 ; Active service checks are enabledpassive_checks_enabled 1 ; Passive service checks are enabled/acceptedparallelize_check 1 ; Active service checks should be parallelized (disabling this can lead to major performance problems)obsess_over_service 1 ; We should obsess over this service (if necessary)check_freshness 0 ; Default is to NOT check service 'freshness'notifications_enabled 1 ; Service notifications are enabledevent_handler_enabled 1 ; Service event handler is enabledflap_detection_enabled 1 ; Flap detection is enabledprocess_perf_data 1 ; Process performance dataretain_status_information 1 ; Retain status information across program restartsretain_nonstatus_information 1 ; Retain non-status information across program restarts register 0 ; DONT REGISTER THIS DEFINITION – ITS NOT A REAL SERVICE, JUST A TEMPLATE!}

 次に、今回の監視対象、www.yahoo.co.jpを個別の監視対象機器として定義する。テンプレートの設定を継承し、ホスト名、監視対象が完全にダウンしていると認知するまでの回数、正常であることを認知する回数、検知した異常を確認する回数、通知グループ、アラート通知に関連する設定(再連絡までの時間、通知の時間帯、通知内容)、実行コマンドを設定する。

# Service definitiondefine service{use generic-service ; Name of service template to use host_name www.yahoo.co.jpservice_description PINGis_volatile 0check_period 24x7max_check_attempts 5normal_check_interval 5retry_check_interval 1contact_groups test-adminsnotification_interval 0notification_period 24x7notification_options c,rcheck_command check-host-alive}#

 notification_intervalは、ステータス異常を通知後、一定の時間を置いてから再度そのステータス異常を通知する設定である。今回は“0”に設定して、一度通知されたステータス異常は再度送信しない。

●timeperiods.cfg

 ステータス異常を検知したときに、アラートを通知する時間帯を定義する。監視したい時間帯をこのファイルで定義し、timeperiod_nameで定義した名前をほかのファイルで呼び出して使用する。

# '24×7' timeperiod definitiondefine timeperiod{timeperiod_name 24x7alias 24 Hours A Day, 7 Days A Weeksunday 00:00-24:00monday 00:00-24:00tuesday 00:00-24:00wednesday 00:00-24:00thursday 00:00-24:00friday 00:00-24:00saturday 00:00-24:00}

●contactgroups.cfg

 ほかのコンフィグファイルで「contacts_group」として定義されている設定を記述するコンフィグファイル。メンバーとして定義されたパラメータ値は、contacts.cfgで定義する。

# 'test-admins' contact group definitiondefine contactgroup{contactgroup_name test-adminsalias Test Administratorsmembers nagios}

●contacts.cfg

「contactgroups.cfg」から、コンフィグファイルのメンバーとして呼び出される設定を定義する。

## 'nagios' contact definitiondefine contact{contact_name nagiosalias Nagios Adminservice_notification_period 24x7host_notification_period 24x7service_notification_options w,u,c,rhost_notification_options d,u,rservice_notification_commands notify-by-emailhost_notification_commands host-notify-by-emailemail nagios@localhost}

  ここで、service_notification_optionsの記述には、次のような意味がある。

wwarninguunreachableccriticalrrecoverey

 また、host_notification_optionsの記述には、次のような意味がある。

ddownuunreachablerrecoverey

 service_notification として定義されているアラートの通知は、関連するhostが監視時間外の場合には省略される。また、何らかの異常ステータスを通知してきた場合のみ、復旧ステータスの送信を行うように設定されている。(つまり、復旧ステータスのみの通知は行わない)通知先は、emailオプションへ直接記述し、通知内容と実際に発行するコマンドは「service_notification_commands」および「host_notification_commands」から参照される「misccommands.cfg」に記述する。

●misccommands.cfg

 異常を検知した場合に、そのアラートを通知するためのコマンドを定義する。command_nameで定義したオブジェクトの名前で、command_lineに記述したコマンドを実行する。       

 contacts.cfg内で、service_notification_commandsやhost_notification_commandsから、ここで定義されたコマンドオブジェクトの名前を使用する。

# 'notify-by-email' command definitiondefine command{command_name notify-by-emailcommand_line /usr/bin/printf "%b" "***** Nagios 1.0b6 *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $DATETIME$\n\nAdditional Info:\n\n$OUTPUT$" | /bin/mail -s "** $NOTIFICATIONTYPE$ alert – $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$} # 'host-notify-by-email' command definitiondefine command{command_name host-notify-by-emailcommand_line /usr/bin/printf "%b" "***** Nagios 1.0b6 *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $OUTPUT$\n\nDate/Time: $DATETIME$\n" | /bin/mail -s "Host $HOSTSTATE$ alert for $HOSTNAME$!" $CONTACTEMAIL$}

●checkcommands.cfg

 監視のために発行するコマンドを定義する。commandとして定義したオブジェクトの名前はcheck-host-aliveで、この名前をcheck_commandで定義すると、command_lineのように実行される。

# 'check-host-alive' command definitiondefine command{command_name check-host-alivecommand_line $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 1}

 check-host-aliveは、pingコマンドを発行するcheck_pingコマンドを修正したもので、3秒間に80%のパケットロスを検知した場合にWarning、5秒間に100%のパケットロスを検知した場合にCriticalエラーと認識する。ここで、-wオプションや-cプションにおける単位は、ms(ミリ秒)である。また、-pオプションによって、1回に発行するICMPパケットの数を定義でき、このコマンドでは、“1”である。

コンフィグファイルの整合性確認

 監視に必要なすべての設定をコンフィグファイルへ指定した後、コンフィグファイルの整合性を確認する。コンフィグファイルのチェックは、Nagiosの実行コマンドに-vオプションをつけてメインコンフィグファイルを指定して実行する。

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

 これによって、メインコンフィグファイルであるnagios.cfgを読み込み、さらに指定されているすべてのコンフィグファイルの整合性を確認することが出来る。

 -v オプションによって確認される点は、次のとおりである。

すべての通知先が少なくとも一つの通知先グループに含まれている各通知先グループに設定されたすべての通知先が、有効な設定であるすべてのホストが少なくとも一つのホストグループに含まれている各ホストグループに設定されたすべてのホストが、有効な設定であるすべてのホストが、関連する少なくとも一つのサービスを持っているサービスおよびホストを確認するためのコマンドが、有効な設定であるサービスおよびホストのイベントハンドラに使われているコマンドが、有効な設定であるサービスおよびホストの通知に使われているコマンドが、有効な設定であるサービス、ホスト、および通知先に対して関連付けられた通知時間が、有効な設定であるサービスに対して関連付けられたサービスの確認時間間隔が、有効な設定である

 -vオプション実行後にエラーが出た場合、これらのポイントを念頭に置いて各コンフィグファイルを確認しよう。

【例】

  [nagios@nagios etc]$ /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg   Nagios 1.0b6  Copyright (c) 1999-2002 Ethan Galstad ([email protected])  Last Modified: 09-15-2002  License: GPL   Reading configuration data…   Running pre-flight check on configuration data…   Checking services…   Checked 3 services.  Checking hosts…   Checked 3 hosts.  Checking host groups…   Checked 2 host groups.  Checking contacts…   Checked 1 contacts.  Checking contact groups…   Checked 2 contact groups.  Checking service escalations…   Checked 3 service escalations.  Checking host group escalations…   Checked 0 host group escalations.  Checking service dependencies…   Checked 0 service dependencies.  Checking host escalations…   Checked 0 host escalations.  Checking host dependencies…   Checked 0 host dependencies.  Checking commands…   Checked 22 commands.  Checking time periods…   Checked 4 time periods.  Checking for circular paths between hosts…  Checking for circular service execution dependencies…  Checking global event handlers…  Checking obsessive compulsive service processor command…  Checking misc settings…   Total Warnings: 0  Total Errors: 0   Things look okay – No serious problems were detected during the pre-flight check  [nagios@nagios etc]$ Nagiosのリスタート

 コンフィグファイルの準備が終わったら、Nagiosに新しいコンフィグファイルを認識させるためにリスタートする必要がある。Nagiosを実行させていない場合には、普通に実行するだけで問題ない。

 基本的に監視ツールを停止することは稀である。そのため、監視ツールのプログラムはバックグラウンドで実行させるべきである。インストール時にinitスクリプトをインストールしたので、このスクリプトを使用して停止・起動・再起動するといいだろう。これらの作業はrootで実行すること。

Nagiosの停止/usr/rc.d/init.d/nagios stopNagiosの起動/usr/rc.d/init.d/nagios startNagiosの再起動/usr/rc.d/init.d/nagios restart

【例】

  [root@nagios etc]# /etc/init.d/nagios restart  Running configuration check…done  Stopping network monitor: nagios  Starting network monitor: nagios  PID TTY TIME CMD  21671 ? 00:00:00 nagios  [root@nagios etc]#

 ただし、コンフィグファイルを修正してソフトウェアの再起動を掛けたいときは、コンフィグファイルを読み込ませるためのオプションが用意されているので、そのオプションを利用しよう。

コンフィグファイルの再読み込み/usr/rc.d/init.d/nagios reload

 Nagiosを起動したら、実際に実行されているかどうかプロセスの実行で確認する。

ps axu | grep nagios 

 このコマンドを実行して得られたpidを使えば、killコマンドを使うことで、Nagiosを停止したり再起動をしたりすることができる。

killコマンドを使った Nagios プログラムの停止kill pidkillコマンドを使った Nagios プログラムの再起動kill -HUP pidまとめ

 次回はNagiosによる指定URLの監視を設定し、Webサーバの稼働を常に監視する運用について言及する予定である。

「次回」へ

「24×365のシステム管理」バックナンバー Webサーバの24×365監視を実現する ~その4 URL監視用のツールをインストールする~Webサーバの24×365監視を実現する ~その3 NagiosのコンフィグファイルとICMPを設定する~Webサーバの24×365監視を実現する ~その2 – URL監視用のツールをインストールする~Webサーバの24×365監視を実現する ~その1 – 何を監視すればいいのか?~24×365のシステム監視を実現するツール群Webサーバの障害をいかに切り分けるか運用管理に必須のツール/コマンド群仮想通貨カジノパチンコbg 身近 警護 人

コメントを残す

業界連盟:べら じ ょ カジノ パチスロ アラジン クラシック 無料 パチンコ k8 カジノ k8 カジノ k8 カジノ パチンコ k8 カジノ 入金方法 k8 カジノ 入金方法 | Feed | RSS | sitemap.html | Sitemap