テンプレートのアイテムのキーにおけるユーザマクロの展開
はじめまして
業務でZabbixを使用するようになり3ヶ月ほどあれやこれやと勉強しております。
そこで一点教えて頂きたいことがございますので、宜しくお願い致します。
内容は表題の通りなのですが、具体的に記載いたしますと、、、
1.ベースとなるテンプレートAにてユーザマクロを含む以下の様なアイテムを作成します。
●テンプレートA
アイテム名: test[{$MACRO}]
キー: test.sh[{$MACRO}]
2.これをテンプレートB、Cにてネストし、それぞれマクロにて別の値を設定します
●テンプレートB
{$MACRO}: macro1
●テンプレートC
{$MACRO}: macro2
3.この時点で私が期待する結果は、以下を想定しています。
●テンプレートB
アイテム名: test[macro1]
キー: test.sh[macro1]
●テンプレートC
アイテム名: test[macro2]
キー: test.sh[macro2]
4.ですが、結果は次の様になりました。
●テンプレートB
アイテム名: test[macro1]
キー: test.sh[{$MACRO}]
●テンプレートC
アイテム名: test[macro2]
キー: test.sh[{$MACRO}]
簡単に申しますと、アイテム名でもキーでもユーザマクロが同じように展開されることを期待していたのですが、
アイテム名だけ展開され、キーではユーザマクロとして残りました。
最終的にテンプレートB,Cともに同じホストにテンプレートして与えるような設定を行いたいと考えていますので、
4ではなく、3の様に動作する方法はないのでしょうか?
無理でしたら「そんなの無理!」とのご回答でも大変ありがたいです。
まとまりのない書き方になり申し訳ございませんが、
ご教示頂けましたら幸いです。
宜しくお願い致します。
fripper - 投稿数: 495
マクロを利用している場合、最終的に、ホストに適用されるアイテムキー文字列は、
そのマクロ文字列を含むモノ( test.sh[{$MACRO}]) となってしまいます
取得処理の際のキー評価段階で、はじめてマクロが展開され、実際の macro1 等の文字列となったような
値取得動作が為されるだけとなります
よって、マクロ部分の評価結果が異なるだけの、同一のキーを、1つのホストへ適用することは
できません‥
残念ながら、zabbix のマクロ展開に関わる部分での仕様です
fripper - 投稿数: 495
かなり無理やりですが、ローレベルディスカバリアイテムを併用する方法が考えられます
設定内容が少々複雑で、コード記載や設定ファイル記載等も含むので、
添付ファイルにさせてください‥ごめんなさい
fripper - 投稿数: 495
簡単な仕組みは、こんな感じです‥
・LLDディスカバリルールをユーザパラメータとして作成する
・そこに、ホストマクロ経由で、空白区切りの文字列を、任意の数だけ与える
・LLDディスカバリ実行の結果、半角空白区切りで与えたものが、それぞれ、個別アイテムとして
ディスカバリルールからのアイテムプロトタイプで、湧いて出てくる
→思った項目を、思っただけ設定できる、魔法の出来上がり‥
otesrk - 投稿数: 6
fripperさん、ありがとうございます!
ご提案の方法で実現したいことの大凡の動作が確認できました!
>取得処理の際のキー評価段階で、はじめてマクロが展開され、実際の macro1 等の文字列となったような値取得動作が為されるだけとなります
>
>よって、マクロ部分の評価結果が異なるだけの、同一のキーを、1つのホストへ適用することはできません‥
>残念ながら、zabbix のマクロ展開に関わる部分での仕様です
通常はそうですよね・・・^^;
アイテム名ではマクロが展開されていましたので、何か方法はあるのかなぁ~と思っていましたが、
できないというお答えだけでも十分ありがたかったです。
LLDを使った方法で改めて実装を考えてみます。
この度はありがとうございました。