メンテナンス設定の有効期限について
はじめてzabbixの設定をしている初心者ですが、
どうぞよろしくお願いいたします。
質問は下記です。
Q:メンテナンス設定で「開始日時」と「終了日時」というのがありますが、
毎日定時にメンテナンスを行う設定にしたい場合、設定の有効期限である
「終了日時」をどのように設定すれば、メンテナンス設定が無期限で有効になるのでしょうか?
設定例)
毎日AM3:30~4:00までメンテナンスを行う用にメンテナンス設定に登録したい。
※特に「開始日時」、「終了日時」の設定の仕方で戸惑っています。
私のように毎日定時にメンテナンスを行っておられる方がおられましたら、
参考までにどのように設定しているのかご教示ください。
ちなみに特定機器にping監視を行っており、上記時間帯のみ監視を停止したいと考えております。
ホスト、トリガー、アクションは設定済みの想定です。
zabbixのバージョンは1.8.12で、アクションにはメンテナンス状態で「期間外」とトリガーで「障害」を設定しております。
よろしくお願いいたします。
wakaba - 投稿数: 228
広瀬です。
メンテ機能ですが、若干確かにわかり難い表現(?)というか構造だと思います。
■設定画面上の枠の違い
①左上部の「メンテナンス」枠と左下部の「メンテナンス」枠の違い
この解釈であっているのか私も自信はありませんが、「メンテナンス機能を有効にするため期間設定」だと考えて頂ければと思います。
たとえば、ここに開始日時・終了日時を入れますが、2013/1/1 00:00~2013/12/31 23:59まで入れたとします。
そうすることで、今年いっぱいの間は、左下部の「メンテナンス」枠で設定した、個別のメンテナンスが有効になると思ってください。
ひところで言うならば、「メンテナンス設定自体の有効期間」だと認識いただけるとわかりやすいのではと・・・。
この説明だと、その場限りのメンテ設定には不向きというか、意味があまり無いと言っても過言ではないのですが、個別のメンテナンス
期間を設定するための上位設定だとお考えください。
②「メンテナンス中のホスト」枠と「メンテナンス中のホストグループ」枠の違い
こちらははっきりわかりやすいですね。ホスト単位で1個づつメンテに指定するか、ホストグループでまとめて登録するかの違いでしか
ありません。なお、メンテ機能を有効にするには、この部分でいずれか1つを必ず指定する必要があります。
※メンテナンス機能とホストグループが結びついているためだと思います。
■参考例
私の会社のシステムの場合ですが、参考例としてDBスレーブバックアップ時のメンテ指定を取り上げます。
なお、時間指定などについては適当な値とさせていただきます。
①「メンテナンス期間の作成」ボタンを押す
②左上メンテナンス枠で、名前欄にメンテナンス種類がわかりやすい名称を入れておく(任意でマルチバイトOKです)
③メンテナンスタイプ:「データ収集あり」にします。
→メンテ期間中もZabbix内部ではデータを蓄積させるため、有効にしておくとベターだと思います。もしサーバなどが
この時間の間に停止など想定外の自体が起きた場合、メンテ解除後も気づかない場合があるからです。
④開始日時、終了日時にはこのDBスレーブバックアップは基本的にシステムが更新されないかぎり、または
システム的な要件が変わらない限り不動のものなので、2012/1/1のAM0時~2030/12/31のPM23:59まで指定してます。
この値は先にも説明したとおりなので、すでに2012年など過去の話なので、開始日時は現時点からでも問題はありません。
要はこのメンテ期間をいつまで存続させるかですので、終了日させ間違えなければ大丈夫です。
なお、入力欄の記載は「日」/「月」/「年」 「時」:「分」だったはずです。
⑤説明欄:ご自由に表記可能です
⑥左下メンテナンス枠の「新規」ボタンを押す
⑦「メンテナンス期間の作成」枠が新たにでますので、「期間のタイプ」「メンテナンス期間(時間)」を適宜入れます
→こちらが本来「個別にメンテナンス時間としたい期間、時間を入れる場所」とお考えください。
⑧事例としてあげているDBスレーブバックアップは毎日行うものとした場合、「期間のタイプ」を「毎日」にセレクト変えます。
⑨上記⑧のセレクトを変えることで、若干項目が変化します(アイテム等の画面と同じですね)。
追加で、「繰り返し間隔(週)」「曜日」「開始時刻」「メンテナンス期間」となります。
⑩今回の事例では、毎日を指定し、繰り返しは、1週毎なので、「1」を指定。曜日は全部チェックですね。
⑪開始時刻はDBスレーブバックアップを開始してもかまわない時間を入れます。夜間処理とかが終わって書き込みが無い
時間帯を狙うなどがベターではないでしょうか?参考値として6:00で入れます(AM6:00です。Zabbixは基本24H記述です)
⑫DBスレーブバックアップにかかる全体の時間がすでにわかっていることが前提ですが、1時間で終わるものならば、
「メンテナンス期間」に「0日」「1時間」「0分」と入れればよいだけです。
あとは、ホスト・ホストグループで対象となる、DBスレーブサーバを個別指定するだけでよいことになります。
こうすると、読み方としては、2012/1/1~2030/12/31のあいだ、毎日AM6:00から1時間の間DBスレーブサーバをメンテナンス
として設定が可能になります。
wakaba - 投稿数: 228
追伸
重要なこと書き忘れました。メンテ指定できるのはあくまでもホスト単位が最小です。アイテム単位はできませんので
その点ご認識のほど。
zabikun - 投稿数: 3
広瀬様
ご教示ありがとうございます。
初心者にとって、分かりやすくご説明いただき、恐縮です。
なお、一番不明な点は、メンテナンス設定を恒久的に有効にするためには、
「終了日時」で、どのように設定すればいいのかなと思っていたのですが、
この点は、有限にしか設定できないんだなと理解しました。
認識はあってますでしょうか?
もし、有限設定しかできないのであれば、10年や100年等、長く設定して、
失念しないように、運用ルールを決めることでカバーするしかないかなと
思っております。
それと、「データ収集あり」とありますが、どんなデータを収集するのでしょうか?
こちらも自分なりに調べたのですが、明確な回答が見つからず、できれば、
どんなデータの収集なのか分かればありがたいと思っております。
よろしくお願いいたします。
TNK - 投稿数: 4769
無期限を示す年号の指定方法はなかったと思います。
バックエンドで利用しているDBMSでの年の表現での制限もあるでしょうし、
OS自体でのunixtimeを取り扱う時点での制限もあるでしょうから、+10年とか
覚えやすい年にしておくとよいと思います。
データ収集のありなしは、ありにしておくと、トリガーに指定した条件での
処理が行われなくなるだけで、メンテナンス期間でもアイテムの値の取得だけ
は継続して行われます。
なしに設定すれば、アイテムの取得も行いません。
ありにしておくと、メンテナンス期間が終了する前でも、事前に値が取得でき
るような状態であることを確認できるので、私は、メンテナンス期間内でも
値を取得するように設定しています。
wakaba - 投稿数: 228
広瀬です。
TNKさんが先に返されているとおり、UNIXTIMEには2038年問題がありますので、
実際にやってみるとわかりますが、2037/12/31 23:59までが限界です。
http://ja.wikipedia.org/wiki/2038%E5%B9%B4%E5%95%8F%E9%A1%8C
こればかりは避けられない問題なので、致し方ないかと。
また、2999年などと指定してみると前回指定した2037年以下の値に強制置換されるようです。
この辺のロジックはわかりませんが、仕様と割り切ってください。
※2038年を入れると、以下のようなエラーが出ます。
Error in query [UPDATE maintenances SET name='ホゲサーバ 緊急メンテ用',maintenance_type=0,description='緊急メンテ用:ホゲサーバ',active_since=1325343600,active_till=2177420340,maintenanceid=27 WHERE maintenanceid=27] [Out of range value for column 'active_till' at row 1]
DBEXECUTE_ERROR
データ収集のあり・なしの説明が若干お粗末だったようで、申し訳ないです。
「あり」にしておいた方が無難なのは、先に説明頂いた通りになります。
※「あり」にしておくと、最新データやグラフなどでメンテ期間も情報がとれますので、メンテ時間中の異常なども
後々グラフや数値から判断する材料になるとお考えください。
zabikun - 投稿数: 3
広瀬様、TNK様
zabikunです。
返信が遅くなり、申し訳ありません。
ご教示いただき、ありがとうございます。
やはり、仕様で有限にしか設定できないのですね。
zabbix自体の仕様とUNIXタイムの仕様影響である旨、承知しました。
また、データ収集については、データ収集ありにしておくと、「トリガー」は発生しないが、
「アイテム」は動作しており、この点でのデータ収集が継続されるため、メンテ期間中も
データ(例:ping疎通が正常かどうか等)収集が可能なため、その間に意図したダウンだったか等の
確認が可能で、グラフ表示もできると理解しました。
そのため、メンテ期間中も基本的には「データ収集あり」の方がいいと認識しました。
以上の点は、スッキリしました。
ちなみに、「データ収集なし」って、必要な場合があるのでしょうかね?
それほどサーバ負荷を与えるとも思えず、あえて「データ収集なし」を選択する想定がなければ、
そもそも必要ない気がしますが、「データ収集なし」を選択するシチュエーションがあれば、
ご教示いただけますでしょうか?
ご丁寧なご説明で、とても分かりやすかったです。
みなさまには本当に感謝いたします。
TNK - 投稿数: 4769
「データ収集なし」を選択する場合として、異常時の値を記録した
くない場合が考えられます。
例えば、メンテナンス期間内に負荷テストを行うなどした場合、そ
の間もデータ収集してしまうと、その高負荷やトラフィック増大の
値まで記録されてしまうことになります。
そうすると、あとでグラフやトレンドの平均や最大値、最小値など
が通常の運用時の値とずれてしまう場合も考えられます。
つまり、そういった異常値は運用時の数値として記録したくないと
いう考え方を優先するのであれば、メンテナンス期間内には値を取
らないようにするのではないでしょうか。