序論
Nagiosの起動(再起動)に使われる時間に減少できる幾つかの方法が有ります。 これらのスピードアップには、設定ファイルを処理するの煩わしさのいくつかを緩和することを含んでいます。
以下の1つ以上があるとき、これらのテクニックを使うのは特に役に立ちます:
- 大きな設定
- 複雑な設定 (テンプレートの特徴の猛烈な利用)
- 最も度々リスタートが必要なインストール
バックグラウンド
Nagiosの開始、または再起動ではいつも、監視が機能を果たす前に、設定ファイルを処理しなければなりません。 この設定起動過程には以下の多くのステップがあります:
- 設定ファイルを読みます。
- テンプレート定義を解決
- あなたのオブジェクトをRecombobulating (様々なタイプのやるべき事)
- オブジェクト定義をコピー
- オブジェクト特性の引き継ぎ
- オブジェクト定義を分類
- オブジェクト関係保全の確認
- 循環パスチェック
- など。
大きいか複雑な設定があるき、これらのステップの幾つかはかなり手間がかかる場合があります。 これらのステップのどれかを早くする方法がありますか? はい!
起動時間を評価
事態をより速くすることを始める前に、何が可能であるか、また全体に患わされるべきかどうかを検討する必要があります。 これは簡単にできます。-- 単にNagiosを -s コマンドライン・スイッチで起動し、タイミングとスケジュール情報を得ます。
出力(関連部分をだけ簡略に示す)の例は以下に示されています。 この例は、私が使っている10000以上のサービスを定義した25のホストのNagios設定です。
/usr/local/nagios/bin/nagios -s /usr/local/nagios/etc/nagios.cfg
Nagios 3.0-prealpha
Copyright (c) 1999-2007 Ethan Galstad (http://www.nagios.org)
Last Modified: 01-27-2007
License: GPL
Timing information on object configuration processing is listed
below. You can use this information to see if precaching your
object configuration would be useful.
Object Config Source: Config files (uncached)
OBJECT CONFIG PROCESSING TIMES (* = Potential for precache savings with -u option)
----------------------------------
Read: 0.486780 sec
Resolve: 0.004106 sec *
Recomb Contactgroups: 0.000077 sec *
Recomb Hostgroups: 0.000172 sec *
Dup Services: 0.028801 sec *
Recomb Servicegroups: 0.010358 sec *
Duplicate: 5.666932 sec *
Inherit: 0.003770 sec *
Recomb Contacts: 0.030085 sec *
Sort: 2.648863 sec *
Register: 2.654628 sec
Free: 0.021347 sec
============
TOTAL: 11.555925 sec * = 8.393170 sec (72.63%) estimated savings
Timing information on configuration verification is listed below.
CONFIG VERIFICATION TIMES (* = Potential for speedup with -x option)
----------------------------------
Object Relationships: 1.400807 sec
Circular Paths: 54.676622 sec *
Misc: 0.006924 sec
============
TOTAL: 56.084353 sec * = 54.676622 sec (97.5%) estimated savings
承認して、何が起こったかを見させます。 合計を見て、監視を始める前におおよそ設定ファイルの処理に11.6秒かかり、他の56秒は設定の確認にかかっています。 準通常ベースでNagiosを再起動しなければならないのは許容できません。
私はこれについて何をしたらよいですか? 出力をまた見てみると、Nagiosが、私が設定処理時間で約8.4秒減らし、別に検証時間に54.7秒減らせたと見積もっているのがわかります。 合計で、Nagiosは、いくつかの最適化方を使うなら通常の始動時間の63秒節約できると思います。
ワオ! 68秒からちょうど5秒に? うん、読み続けて、どうするか。
オブジェクト設定をあらかじめキャッシュ
Nagiosはあなたの設定ファイルを分析するのにかなりの時間を費やします、継承などのテンプレートの機能を利用するなら特にです あなたの設定の分析にかかる時間を短縮するため、あなたは、Nagiosに今後の使用のための設定ファイルを前処理して、あらかじめキャッシュさせることができます。
Nagiosを -p コマンド・ライン・オプションで実行すると、Nagiosは、設定ファイルを呼んでそれらを処理し、あらかじめチェックされたオブジェクト・設定ファイルとして保存します。(precached_object_file 指示) このあらかじめキャッシュされた設定ファイルは、あらかじめ処理された設定のエントリーを含んでいます。それはNagiosが将来処理する事をより簡単に、より速くします。
以下の様に -vか-sコマンドラインのオプションのどちらかと一緒に -p コマンドラインのオプションを使わなければなりません。 これは、あらかじめキャッシュされたファイルが作成される前に、設定の確認を確実にします。
/usr/local/nagios/bin/nagios -pv /usr/local/nagios/etc/nagios.cfg
あらかじめキャッシュされた設定ファイルのサイズはたぶん元のオブジェクト・設定ファイルよりかなり大きくなります。 設計されたとおり正常です。
キャッシュ済みオブジェクト設定ファイルがいったん作成されると、Nagiosを開示時に、-u コマンドラインのオプションを使ってオブジェクト・設定ファイルの代わりにキャッシュ済み設定ファイルを使用するように指示する事ができます。
/usr/local/nagios/bin/nagios -ud /usr/local/nagios/etc/nagios.cfg
設定ファイルを変更すると、Nagiosを再起動する前にあなたの設定ファイルを再確認し、あらかじめキャッシュする必要があります。 あらかじめキャッシュされたオブジェクトファイルを作り直さないと、Nagiosは、現在あなたのソース設定ファイルよりむしろあらかじめキャッシュされたファイルを読むので、あなたの古い設定を使い続けます。
循環パス・テストを行いません。
設定開始フェーズの2番目、(最も時間がかかる)の部分は循環パス・チェックです。 上の例では、設定検証のこのステップを実行するにはおよそ1分かかりました。
循環パス・チェックとは何ですか、そして、それはなぜあまりに長くかかりますか? 循環パス・チェックは、あなたのホスト、ホストの依存、またはサービス依存定義でなんの循環パス定義存在しないことを保証するように設計されています。 循環パスがあなたの設定ファイルに存在しているなら、Nagiosはデッドロックで終わるかもしれないでしょう。 あまりに長くかかるチェックにの最も多くい理由は、私が効率的アルゴリズムを使用していないということです。 循環パスを検出するためのはるかに効率的なアルゴリズムが最も歓迎されるでしょう。 ヒント: それは全てのコンピュータサイエンスを卒業した生徒たちで、Nagiosにあなたの理論を使って貢献する何らかのコードを私宛に送ってもらいたい事を意味します。 :-)
Nagiosの開始時に循環パスチェックを行いたくなければ、このように-x コマンドラインのオプションを加えることができます:
/usr/local/nagios/bin/nagios -xd /usr/local/nagios/etc/nagios.cfg
巡回パスチェックをスキップする場合、Nagiosを開始/再起動する前に設定ファイルをチェックする事は、最も重要です。 そのようにするのに失敗すると、Nagios論理のデッドロックにつながるかもしれません。 注意されました。
一緒にします
あなたの設定をあらかじめキャッシュし、潜在的スピードアップを行い、循環パスチェックをスキップしたいなら、これらのステップに従います。
1. 設定について確かめ、以下のコマンドで「あらかじめ-キャッシュしたファイルを作成します:
/usr/local/nagios/bin/nagios -vp /usr/local/nagios/etc/nagios.cfg
2. 現在実行しているなら、Nagiosを止めます。
3. あらかじめキャッシュされた設定ファイルを使用して、循環パス・チェックをスキップし、Nagiosを起動:
/usr/local/nagios/bin/nagios -uxd /usr/local/nagios/etc/nagios.cfg
4. 将来、あなたのオリジナルの設定ファイルを変更して、それらの変更が反映されるようNagiosを再起動する必要がある場合、ステップ1から繰り返して設定ファイルを再確認し、キャッシュ・設定ファイルを作りなおします。 それがいったん終わると、ウェブ・インタフェースを通してか、SIGHUP信号を送ることでNagiosを再起動することができます。 あらかじめキャッシュされたオブジェクトファイルを作り直さないと、Nagiosは、現在あなたのソース設定ファイルよりむしろあらかじめキャッシュされたファイルを読んでいるので、あなたの古い設定を使いを続けます。
まさにそれです! 早くなった起動時間を楽しんでください。
参照: 性能調整, 大きいインストール微調整