Nagios 2.0で何が新しくなった?
重要: 質問をメーリングリストに送る前に、ドキュメント(特にFAQ)を必ず読み通して下さい。
更新履歴
Nagiosの更新履歴はオンラインからhttp://www.nagios.org/changelog.php 、またはソースコードのルートディレクトリにあるChangelogを参照する事で確認できます。
既知の問題
FreeBSDシステム上で動作するNagios 2.0には、既知の問題があります。
うまくいけば、この問題はNagios 2.xのリリース中に修正されます…
- FreeBSD と スレッド.
FreeBSDでは'Pスレッド'と呼ばれるネイティブユーザレベルで実装されたスレッドと
portsコレクションからカーネルフックを使う'linuxthreads'があります。
Yahoo!にいる人々からPスレッドライブラリによりNagiosが高 I/O 負荷で止まり、サービスチェック結果がなくなってしまうという報告があった。
linuxthreadsに切替える事がこの問題への対処に見えるが、それでは改善されない。
liblthreadの__pthread_acquire()でロックが起こります - これではspinlockを入手できません。
アクティブチェックを実行されメインスレッドがフォークされる際にこれが起こります。
2番目にフォークされる子プロセスが生成されると、子プロセスがfockで生成されるが、
liblthreadのforkラッパが何も返さない。__pthread_acquire()がスタックされている為です。
たぶん何人かのFreeBSDユーザがこの問題を解決してくれます。
変更点と新機能
- マクロの変更点 - マクロ 大幅な見直しが行われました。
新しいマクロに適合するようコマンド定義の多くを更新する必要があります。
たくさんのマクロが環境変数として使えます。
また、 "オンデマンド" ホストやサービスマクロが追加されました。詳細はマクロのドキュメントを見てください。
- ホストグループの変更点
- ホストグループエスカレーションの削除 - ホストグループエスカレーションが削除されました。ホストグループ定義のhostgroup_nameと機能的に重複している為です。
- メンバー設定の変更 - ホストグループ定義で複数のメンバー設定を含める事が可能で、たくさんのホストメンバーがある時に編集が容易になりました。
- コンタクトグループの変更 - contact_groups設定がホストグループ定義からホスト定義へ移行しました。
これはサービス通知を指定する方法に一貫性を持たせる為です。設定ファイルを更新してくださいね!
- 認証の変更 - CGIにおけるホストグループアクセス認証が変わりました。
今、あなたはホストグループで認可される為に全てのホストグループのメンバーにならなくてはなりません。
- ホストの変更点
- ホストチェックの変更点
- 定期的スケジュールチェック - ホスト定義でcheck_interval設定が使われているホストの定期的チェックがスケジュールできます。
注意: よく聴いて下さい! かなり控えめに定期的にスケジュールホストチェックすべきです。
通常運用では必須ではありません(必要な時にオンデマンドチェックが実行される)そして不適切に使われるとパフォーマンスに悪影響を及ぼします 。注意すべし。
- パッシブホストチェック -
メイン設定ファイルのaccept_passive_host_checks
とホスト定義のaccept_passive_host_checks設定
を有効にすることでパッシブホストチェックが使えるようになります。
パッシブホストチェック で冗長化
または 分散監視環境を簡単に作る事ができます。
注意: パッシブホストチェックにおけるいくつかの問題はここを見た方がいいでしょう。
- 状態保存の変更
- スケジューリング情報の状態保存 -
ホストとサービスのチェック予定情報(次のチェック時間)は再起動を行ってもuse_retained_scheduling_info 設定を使って状態保存されるようになりました。
- よりスマートな状態保存 -
再起動しても状態が保存されているいろんなホストとサービス設定の値は外部コマンドによって稼動中に変更があった時のみ状態保存されます。
これは、ホストやサービス設定の値を変更し、Nagiosを再起動している時に人々が混乱するのを最小限にし、幾分かの変化が予想できます。
- より多くの状態保存 - プログラム再起動時により多くの情報が状態保存されるようになり、フラップ検知 履歴をも含んでます。万歳(Hoorah)!
- 追加情報の変更
- 新たな場所New location - 追加ホスト情報 とサービス情報 定義がホスト定義などの設定ファイルで保有されます。結果的に、追加情報定義はNagiosデーモンが起動する前に解析され検証される。
- 新たな設定 - 追加ホスト情報 とサービス情報 定義は2つの新たな設定が加わった:notes とaction_url
- 埋め込みPerlの変更
- p1.pl の場所 - p1_file 設定を使って"ヘルパー"ファイル(p1.pl)の場所が指定できます。
- 通知の変更
- フラッピング通知 - ホストやサービスがフラップしたり、やんだりした時に通知できます。この機能は通知者、 ホスト やサービスでnotification_optionsをfオプションにすることで利用できます。
- より良いロジック - 通知ロジックが少し賢くなりました。はじめに問題通知を全くされなかった際は回復通知も出さないようにするべきです。
- サービス通知 - サービス通知がされる前に、ホストの通知依存 がチェックされます。ホスト通知が可能でないと認識すると、サービスの通知は送信されません。
- エスカレーションオプション - 時間帯と状態オプションがホスト とサービス エスカレーションに追加されました。これでエスカレーション利用を定義する事でより制御する事が出来ます。エスカレーションの詳細はここにあります。
- サービスグループの追加 - サービスグループ が追加されました。グループサービスによってCGIとサービス依存やサービスエスカレーション定義の設定を簡単に参照する目的を簡単にします。
- トリガーダウンタイム - "トリガー"ダウンタイムと呼ばれる機能がホストとサービスのダウンタイム用に追加されました。
トリガーダウンタイムは別のダウンタイムが始まると同時にダウンタイムを始めるように定義が可能です
(親ホストのフレキシブルダウンタイムがスケジュールされた時の子ホストのダウンタイムなどで有効です)。
トリガーダウンタイムの詳細はここにあります。
- 新たな統計ユーティリティ - 'nagiostats'と呼ばれる新しいユーティリティがNagiosディストリビューションの中に含まれています。
Nagiosのプロセス稼動中に現在の統計情報の参照を可能にするコマンドラインユーティリティです。
MRTG互換のデータを生成し、グラフ情報統計情報を作成できます。
ユーティリティの使い方の詳細はここにあります。
- 適応型監視 - ホストとサービスのチェックに関する属性を外部コマンド(チェックコマンド、チェック間隔、最大チェック試行回数など) を適切に使う事によって稼動中に変える事が出来ます。
この種の適応型監視はたぶん多くのユーザにとって役には立たないでしょうが、少数のきっちりユーザの為に提供されています。適応型監視に関する詳細はここです。
- パフォーマンスデータの変更 - パフォーマンスデータの処理方法が僅かに変更となりました。
外部コマンドを実行し、Nagiosを再コンパイルする事なくパフォーマンスデータを処理できます。
パフォーマンスデータ の詳細についてはドキュメントを参照してください。
- ネイティブDBサポートの削除 - MySQLやPostgreSQLで様々なデータ(ステータス、状態保存、コメント、ダウンタイムなど)を保存するネイティブサポートが削除されました。 まあ愚痴らずに。誰かが近い将来新しいイベントブローカーをしようする事で代替手段を開発すると予想しています。
その上 DBサポートがインプリメントされず、ネイティブDBサポートが無くなる事で初学者にとっては敷居が下がる事になるでしょう(把握する事がひとつ減る)。
- イベントブローカーAPI - 隠れた開発者がNagiosディストリビューションに統合するアドオンを作る為のAPI が作成されました。
イベントブローカーAPIに関するドキュメントは2.xのコードが熟した時には作られ、Nagios のウェブサイトから利用可能になるでしょう。
- その他の変更
- 全てのコマンドに引数を持てるようになりました - 全てのコマンドタイプ(ホストチェック、通知、パフォーマンスデータ処理、 イベントハンドラなど)で引数を含める事が出来ます(コマンド名を!文字で区切ります)。
引数はコマンドラインで$ARGx マクロを使います。
- 設定ディレクトリの再帰 - Nagiosはcfg_dir directiveで指定されたサブディレクトリも全て再帰的に処理するようになりました。
- 古い設定ファイルの削除 - 古い(テンプレート無し)スタイルのオブジェクトと追加情報設定ファイルは削除されました。
- すばやい検索 - すばやく検索する為にチェインハッシュでオブジェクトが保存されます。これでCGIのパフォーマンスは飛躍的に向上しました。
- ワーカースレッド - サービスチェック結果を処理する外部コマンドファイルと内部パイプ用の人工的なバッファデータの為にワーカースレッドが採用されました
大規模利用における実質的なパフォーマンス向上になっています。
- ロギングの変更 - ホストとサービスの初期状態がちょっと違った形でログされるようになりました。
また、すべてのホストとサービスの初期状態がログローテーションの後にも保存されまる。
利用率およびトレンドCGIにおいて全ての"未定義時間"障害への助けになります。
- キャッシュオブジェクト設定ファイル - オブジェクトキャッシュファイル がNagiosの起動時に作成されます。CGIがほんの少しスピードアップし、CGI出力に影響なくNagiosの設定ファイルを編集できるようになります。
- 初期チェック制限 - Nagiosの起動後に全てのホストとサービスの初期チェックの時間枠を指定できます。
時間枠はmax_host_check_spreadとmax_service_check_spread 変数で指定します。
- "スティッキー" 認知 - ホストとサービスの認知が"スティッキー"か否か、指定できます。
スティッキー認知はホストまたはサービスが全てUPまたはOK状態になるまで通知を抑制出来ます。
スティッキーでない認知はホストやサービスの状態が変化するまで通知を抑制するだけです。
- クラスタチェックの変更 - サービスとホストの"クラスタ"の監視方法が変更され、以前よりも信頼できるようになりました。
これはオンデマンドマクロと新たなプラグイン(check_cluster2)が加わった為です。
クラスタチェックの詳細はここです。
- 正規表現マッチ - use_regexp_matching とuse_true_regexp_matching 変数を有効にする事で様々なオブジェクト設定で正規表現が使えます。
どこでどのように正規表現が使えるかという事に関する詳細はテンプレートとトリックドキュメントを見てください。
- サービス擬似ステート - 冗長サービスの擬似ステートがCGIから削除されました。
CGIでservicestatustype=XというパラメータでハードコードされたURLなどが影響します。
利用可能な新しいサービス状態はinclude/statusdata.h を参照して下さい。
- フレッシュネスチェックの変更 - フレッシュネスチェックロジックが僅かに変わってます。
フレッシュネスチェックは現在時刻がホストまたはサービスのcheck_timeperiodが有効でない時は動作しない。
また、フレッシュネスチェックはホストやサービスのcheck_intervalとfreshness_threshold変数両方ともがゼロ(0)にセットされている時も動作しない。