こんにちは。サイオステクノロジー OSS サポート担当 山本 です。
今回は Zabbix の知っていると少し便利な機能「マクロ」と「値のマッピング」について、簡単に紹介してみたいと思います。
■値のマッピング
まずは「値のマッピング」についてです。
この機能は、「あるアイテムが」「特定の値を取得した場合」「別の特定な値に変換して表示する」もので、アイテム毎に設定することができるものです。
変換のルールは自由に設定することができ、例えば、「0」を「off」、「1」を「on」と表示するようにしたい…といったような場合に利用することができます。
「値のマッピング」は「管理 – 一般設定」画面の右上のプルダウンメニューから「値のマッピング」を選択すると確認することができます。
新規作成する場合は、画面右上の「値のマッピングの作成」ボタンから行うことができます。
「値のマッピング」登録画面では以下の項目を設定します。
・名前:<任意の名前>
・マッピング (複数登録可)
・値:<変換したい値>
・マッピング文字列:<変換後の文字列>
「値のマッピング」を使用する場合は、アイテムの設定画面から行います。
以下の箇所にある「値のマッピング」項目に適用したい値のマッピングの「名前」を設定します。
「値のマッピング」を設定したアイテムを「監視データ – 最新データ」画面などで確認してみると、「値のマッピング」で指定した<値>を取得した時の表示が「[<マッピング文字列>の設定値] ([<値>の設定値])」という形式の表示に変化していることが確認できるはずです。
この機能は、例えばステータスコードやリターンコードのような、意味はあるもののそれ自体から何を意味するかを読み取れない可能性のあるものに利用することで、勘違いや見落とし、再確認の手間を省くなどの効果が期待できます。
なお、値のマッピングは DB に保存される監視データを書き換えることはありません。
あくまで Zabbix のインターフェース上の表示を変更するためのものとなります。
■ユーザーマクロ
続いてユーザーマクロについてです。
「マクロ」というと「一定の操作を自動で実行してくれるもの」を想像する方も多いかと思いますが、
Zabbix のマクロ機能は「指定箇所の文字列を置き換える」というものです。
「ユーザーマクロ」はそんな Zabbix のマクロ機能の一つで、「{$<名前>}」という形式で登録・使用します。
まずはどんなものか確認してみましょう。
「管理 – 一般設定」画面の右上のプルダウンメニューで「マクロ」を選択すると表示される画面が、ユーザーマクロを設定できる画面の一つです。
ユーザーマクロはその名のとおりユーザーが任意で設定できるものなので、試しに一つ任意のものを登録してみましょう。
画面内の「追加」リンクをクリックすると表示される入力項目に以下を入力し、「更新」ボタンを押下します。
・マクロ:{$<任意の名前>}
・値:<置き換える文字列>
設定したユーザーマクロは「設定」の様々な箇所で使用することができます。利用できる箇所の詳細については、公式ドキュメントを参照してください。
今回は簡単な例として、アイテムの名前で確認してみましょう。適当なアイテムを作成し、「名前」の項目に先ほど作成したマクロを {$} の部分も含めて入力してみます。
そしてこのアイテムを作成してみると…
このとおり、マクロを設定した箇所が「値」に設定した文字列に変化しています。このように、「マクロ」を設定した箇所に、設定した値を代入してくれるのが Zabbix のマクロ機能です。
アイテムのキーにもこのマクロは使用できるので、例えば「{$LOG_FILE}」というマクロでログファイルのディレクトリを登録しておきアイテムのキーに設定しておけば、万が一ログファイルのディレクトリが変更されても「{$LOG_FILE}」マクロの値を書き換えるだけで対応できる……といった活用例が考えられます。
さて、このユーザーマクロですが、先の「管理 – 一般設定」画面以外にも「テンプレート」「ホスト」の設定画面の「マクロ」タブからも設定することができます。
これらの画面から登録する場合でも「マクロ」「値」を入力すればよいですが、マクロの適用範囲はホスト内 (テンプレートの場合は適用したホスト内) に限られます。また、同名のマクロが存在する場合、優先順位は「ホスト>テンプレート>一般設定」となります。
少し確認してみましょう。まず、確認用のホストを作成します。
適当なテンプレートを作成し、このテンプレートに先に「管理 – 一般設定」で作成したマクロを利用した名前を持つアイテムを登録します。続いて適当なホストを作成し、このホストに先のテンプレートを適用します。更に、このホストに「管理 – 一般設定」で作成したマクロを利用した名前を持つアイテムを追加で登録してみます。
この時点では、いずれのアイテムの名前も「管理 – 一般設定」でのマクロの値に変換されています。
では、試しにテンプレートの設定画面で、同名のマクロを登録してみましょう。再度このテンプレートを適用したホストのアイテム一覧画面を確認してみると…
このとおり、アイテム名のマクロ部分が、テンプレートで作成したユーザーマクロの値に置き換わっています。
続いて、ホストの設定画面で同名のマクロを登録してみましょう。再度ホストのアイテム一覧画面を確認してみると…
やはり、ホストで作成したアイテム、テンプレートで作成したアイテムいずれも、ホストで設定したユーザーマクロの値に置き換わっているのが確認できます。
この性質を利用すると、「同じテンプレートを適用したいけれど、一部のホストだけ少しだけ設定を変えなくてはならない」「テンプレートのアイテムにホスト毎の名前を設定したい」といった場合にユーザーマクロ機能を利用できそうですね。
■マクロ
最後に、ビルドインの「マクロ」についてです。
このマクロもユーザーマクロと同様に「指定箇所の文字列を置き換える」機能を提供するもので、
「{<名前>}」という形式で使用します。
こちらのマクロは Zabbix に予め登録されているもので、マクロ毎に決められた箇所でのみ使用することができます。通知のために使用するものが多く、例えば「ホストの情報を取得する」「イベント名を取得する」と言った通知の際に必要となる情報を取得する機能が、主だったものとなります。
このマクロは例えば、デフォルトで登録されている「設定 – アクション」のアクションで、実行内容タブ内で使用されていることが確認できます。
マクロの種類や使用可能な箇所については、公式ドキュメントを参照してください。
■最後に
今回は Zabbix で少し便利な機能について、いくつか見てきました。
どの機能も必須というものではないですが、使いこなすことで管理が少し楽になったり、監視が少し便利になったりする可能性があるかと思います。頭の片隅に置いておいて、使えそうなタイミングで使ってみてはいかがでしょうか。
Zabbix のマクロはもう一種類存在していますが、それはまた別の機会に。