
特集:システム管理の鉄則(後編)
NagiosでWebサーバを頑丈にする方法
2004/4/2
鳴滝光二
| 症状監視の設計 |
症状監視でまず考えるのはネットワークレベルでの到達性の監視です。このため、まずは以下に対してpingによる到達性の監視を行います。
- サーバA
- サーバB
- ファイアウォール
- ルータ
- DMZ用スイッチ
- 社内用スイッチ
ここで気を付けなければならないことは、監視ツールがDMZのセグメントに設置してあるため、ルータ、社内用スイッチはファイアウォール越しにpingによる到達性チェックをすることになります。従って、ファイアウォールの設定で、これらのパケットに対するフィルタを開けるようにしなければ正しく監視できないので注意してください。
もし、ファイアウォールの仕様上、どうしてもpingによる到達性チェックができない場合は、監視方法をSNMPによるポーリング監視に切り替えるなどの方法が考えられます。
Nagiosではホストに親子関係が指定でき、子のホストへの到達性がなくなった場合、親のホストへの到達性をチェックして、到達できない理由が、子のホストが停止したのか、それとも子のホストのあるネットワークへの到達性がなくなったのかを判断してくれます。
モデルシステムの場合、監視ツールは社内のセグメントに設置されているので、監視ツールが設置されているマシンから見て、ホストごとの依存関係は次のようなツリーになります。
![]() |
| 図2‐5 監視対象ホストの依存関係ツリー |
この設定を行うことで監視ツールから送信される障害の通知を劇的に減らすことができます。
例えばファイアウォールが落ちた場合、Nagiosからは以下のホストへの到達性が失われます。
- ルータ
- サーバA
- サーバB
- DMZ用スイッチ
この設定がない場合、管理者には上のすべてのホストに対する障害とファイアウォール自体の障害の検知が通知され、対応する管理者にとって「余計な」情報が伝達されることになり、障害対応の妨げになりかねません。
次にサーバA、サーバBに対しての症状監視ですが、これらのホストのリモートアクセス環境がSSHで提供されていることを前提に、SSHのサービス稼働監視を行います。
この設定には2つ意味があります。
- SSHの稼働監視と外形監視の監視の状況の組み合わせによって発生した障害 がプロセスレベルなのか、OSレベルなのか判断する。
- SSHの稼働監視をすることにより、障害対応にSSHによるリモートからのアクセスが可能かどうか障害発生時に知ることができる。
同一サーバ上の関連しない複数のプロセスを監視すれば、片方に障害が発生した場合は落ちたプロセスの障害であると判断できますし、両方に障害が発生した場合は、大抵の場合OS上の問題であると判断できます。
また、SSHは障害対応作業をするためのリモートアクセスを提供するサービスですから、これに障害が発生していた場合、OSが動いていてpingには反応したからといって、この時点でリモートからの障害対応が難しいことを意味することには変わりありません。
症状監視としてこれだけ監視しておけば、とりあえず、
- ネットワーク機器の障害を依存関係を踏まえて監視
- サーバの障害に対し、プロセス・OSレベルの切り分けが障害発生時にある程度可能
という監視ができますので、これらの設定をNagiosの設定ファイルに落としたものを例示します。
【hosts.cfg の例】
# テンプレート |
【hostgroups.cfg の例】
define hostgroup{ |
【contacts.cfg の例】
define contact { |
【contactgroups.cfg の例】
define contactgroup{ |
【services.cfg の例】
define service{ |
| さらに詳細な監視と運用 |
また、実際に設定可能かどうかは皆さんのシステムに依存するため、ここではアイデアだけを提示しますが、Nagiosが提供するHTTPのサービス稼働監視では、オプションで監視の対象とするURIとサーバからの応答に、一定の文字列が含まれているかどうかをチェック可能なため、テスト用のCGIなどを用意するなどで、監視ツールの一般的な利用ではできないような特殊な監視も実装可能です。
例として、以下のPerlスクリプトによるCGIを挙げます。
【disktest.cgi】
#!/usr/bin/perl |
このスクリプトは非常に単純ですが、サーバのファイルシステムへの書き込みのみを明示的に行っているため、このスクリプトへの監視を、その応答へのチェック付きで行うことにより、簡単なディスク監視を実装できます。
実はディスクへの監視は意外と難しく、通常はログ監視で、OSのエラーメッセージ中のディスクのエラーのパターンを検出するよう設定するのですが、ディスクのエラーはその性格上、一端で出すと大量にログを吐きます。このためログ監視で監視をすると大量に障害が検知してしまうため障害対応の妨げになりかねません。
もちろん上のスクリプト例は完全ではありませんし、ディスク監視に限らず、このような監視を実装するためにはある程度の開発が必要になるため、すべてのケースで有効だとは思えませんが、効率の良い症状監視の例として挙げてみました。
最後に、監視設計におけるもう1つの重要なポイントを挙げておきます。経験上どんなに詳細な監視を行ったとしても、監視では検知できない障害という最悪の状態は起こり得ます。このため、いったん監視ツールに設定を行った場合も、実際に起こった障害の経験や、システムへの変更などを踏まえて監視設計を再考して、より効率の良い監視運用に努めることが、当たり前の話ですがシステム監視の最も重要なポイントである点を忘れずに日々の運用に励んでください。
|
2/2 |
| Index システム管理の鉄則 | |
| 前編 Webサーバ周辺、これだけおさえれば、落ちても大丈夫? | |
| 後編 NagiosでWebサーバを頑丈にする方法 | |
| 外形監視の設計 モデルシステムについて 監視ツールについて どこから外形監視をするのか? 外形監視の設計 |
|
| 症状監視の設計 さらに詳細な監視と運用 症状監視の設計 |
|
| 関連記事 | |
| 連載:監視を自動化するSNMP ネットワークを管理するプロトコル 連載:24×365のシステム管理 運用管理に必須のツール/コマンド群 書評:SNMPを使ったネットワーク管理に役立つ3冊 |
|
| 「Master of IP Network総合インデックス」 |
TechTargetジャパン
- 「ネットワーク仮想化」がもたらすもの (2012/5/25)
キャリアイーサネット網で展開されているVPNサービスをSPBに置き換えると、どんな変化が起こるのか - 「Meteor」で来れ、1億総Webアプリ開発者の時代 (2012/5/16)
文系人間の筆者でも、「これならWebアプリ開発、できるかも」と思わせてくれるフレームワーク、Meteorの可能性を予想してみたい - ついに来た? 「真のIPv4アドレス在庫枯渇」 (2012/5/14)
IANAやAPNIC/JPNICが管理するIPv4アドレスの在庫が枯渇してから1年。いま、水面下で「真の枯渇」が始まりつつあります - SLB-PTでWebサーバをさくっとIPv6対応に (2012/4/26)
いくつか存在するIPv6移行ソリューションの中から、SLB-PTを用いて、さくっとWebサーバをv6対応させる方法を説明
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -

