こんにちは Zabbix 3.4の革新を引き続き取り上げます。 今日は、更新間隔およびその他の期間でのマクロの使用について説明します。
マクロに関するいくつかの言葉
ユーザーマクロは、Zabbixの至る所で使用されている確立されたメカニズムであり、監視システムに必要な柔軟性を与えます。 これらは基本的に、グローバルレベルの可視性、パターン、またはホストで割り当てることができる変数です。 たとえば、テンプレートでマクロを使用することを強くお勧めします。これにより、他の環境や他のユーザーがマクロをカスタマイズできるようになります。
ユーザーマクロは次のようになります。おそらく既にご存じでしょう。
{$MACRO}
履歴を更新および保存する間隔
Zabbixでは、メトリックのポーリングにかかる時間を柔軟に設定できます。各メトリックには独自の間隔を設定できます。
各メトリックの更新は「柔軟」( ユーザー間隔を参照)にすることもできます。これは、特定のスケジュール(「1日1回夜間」または「平日の午前9時」)に従って発生することを意味します。
同様に、各データ項目の履歴と傾向が保存される期間を個別に決定できます。
このような微妙なチューニングは常に必要とはほど遠いため、マクロを使用すると、これらのパラメーターを設定するためのいくつかの新しいアイデアが得られます。
ユースケース
収集されたデータの更新間隔と保存期間
まず、前述のように、メトリック更新間隔(定期的間隔とユーザー定義の間隔の両方)でカスタムマクロがサポートされるようになりました。 第二に、履歴と傾向を保存するための間隔でマクロを使用できます。 最終的には、次のようになります。
これらのマクロの値をグローバルに設定し、必要に応じてテンプレートまたはホストレベルで再割り当てします。
一般に、 更新間隔については、タイプと重要度に応じて、すべての新しいデータ項目にデフォルトで使用できるマクロの小さなグローバルセットを作成できます。 例:
これにより、毎回「このメトリックを60秒ごとに収集するのか、61秒ごとに収集するのか、それとも5分ごとにそれで十分なのか」と考える時間を費やすことができなくなります。グローバルマクロでキャプチャされたデータ。 おそらく、このオプションはすべての人に適しているわけではありません:)
低レベルの発見
マクロコンテキストもサポートされており、たとえばLLDで非常に便利です。
複数のデバイスでネットワークインターフェイストラフィックを収集するとします。 Zabbixをロードしないために、次のようにします。
- 主要なインターフェース、トランク、その他のアップリンク-1分ごとにデータを取得し、 30日間の履歴を保持し、1年間の傾向を保持します。
- 他のインターフェース-5分ごとに1回問い合わせ、 3日間の履歴を保持し、1か月の傾向を保持します。
最初に、グローバルマクロ{$ DELAY_IF}、{$ HISTORY_IF}、{$ TREND_IF}を定義します。
次に、インターフェイスデータ要素のプロトタイプで使用しますが、コンテキストを使用します(この場合、ifNameインターフェイスの名前になります)。
すでにホストレベルで、キーインターフェイスのコンテキストを持つ新しいマクロ値を示します(たとえば、Gi0 / 0.114を取得します)。
ここで、「最近のデータ」でさまざまなインターフェースのリフレッシュレートとストレージ時間を見てみましょう。 ご覧のとおり、非常に重要なGi0 / 0.114には独自のストレージおよびコレクションルールがあります。
全体の間隔を変更したり、ポーリング頻度や別のインターフェイスの保存時間を増やしたい場合は、ホストレベルでマクロを再割り当てするだけです。 テンプレート、プロトタイプを変更して検出を待つ必要はありません。すべてがすぐに適用されます。 実際、テンプレートへの書き込みアクセスも必要ありません。
他にどこ?
マクロは、時間または期間を指定する必要がある他の状況でも使用できるようになりました。 たとえば、アクションでは:
または、マクロを介してエンジニアが自動通知を利用できる時間を指定します。
マクロを使用できる場所の正確なリストは、 ここにあります 。
最後に
3.4の新しいマクロ機能は、いくつかの優れた機能を提供します。一方では、微調整(LLDの場合)、および他方では、ポーリングとストレージの時間を集中化および制御します。 ちなみに、サフィックスs、m、h、d、wのサポートは時間間隔で現れました-些細なことですが、便利です:)
じゃあね!
PS記事は英語でもブログで入手できます。