今日から使える！
Zabbix監視設定ノウハウの共有～ 進化に合わせた監視設定 ～2023年11月17日

NTTコム エンジニアリング株式会社© NTT Com Engineering Corporation All Rights Reserved.

アジェンダ◼ はじめに◼ 事例1: 複数データ集計に苦労した話◼ 事例2: SNMPトラップ監視の汎用的な監視設定◼ まとめ© NTT Com Engineering Corporation All Rights Reserved.

2

はじめに

© NTT Com Engineering Corporation All Rights Reserved.

3

会社紹介
NTTコムエンジニアリング株式会社
・ NTTコミュニケーションズの１００％子会社
・ 2008年より、Zabbix社と連携したZabbix関連事業を開始
・ ZABICOMソリューションとしてZabbixを用いた構築から運用までの様々なサービスを提供(https://www.nttceng.com/)© NTT Com Engineering Corporation All Rights Reserved.

(https://www.zabicom.com/zabbix/index.html)

4

自己紹介
2014年頃～Zabbixと出会い、Zabbixに関連した業務を開始する
2016年9月～
Zabbixを中心とした監視運用部隊にて数百～数千の監視設定を行う毎日を過ごす(手動での作業を嘆き、Zabbix APIを利用したコードを書く趣味に目覚める)
吉田(よしだ剛太こうた)2019年7月～

ZABICOMチームに合流。Zabbixを中心としたソリューション業務を開始する
2020年2月
Zabbix認定エキスパート資格試験に挑戦、一発合格する

そして2023年現在～
ZABICOMチームのサポートエンジニア、R&DエンジニアとしてZabbix業務に携わりながら、2023年8月よりZabbix認定講師として認定ユーザートレーニングの講師業務を開始© NTT Com Engineering Corporation All Rights Reserved.

5

サブタイトル(進化に合わせた監視設定)について© NTT Com Engineering Corporation All Rights Reserved.

6

Zabbixの監視設定の進化についていこう
Zabbixはバージョンアップを重ね、日々進化していますが、監視設定も進化しているのでしょうか？
7.0
6.0

3.0

4.0

5.0※画像はイメージです。(深い意図はありません)© NTT Com Engineering Corporation All Rights Reserved.

7

Zabbixの監視設定の進化についていこう
はい、Zabbixの監視設定も勿論一緒に進化しています！
インストール時に同梱されている監視テンプレート数も増え、そのテンプレート内の監視設定方法も常に進化をしています。
同梱されるテンプレート数の推移
400342350300218250

200

150

10091
45500

3.0
© NTT Com Engineering Corporation All Rights Reserved.

4.0

5.0

6.0
8

Zabbixの監視設定の進化についていこう
では、私たちの使っている監視テンプレートは・・・？
・標準テンプレートを3.0の時に作って標準化しているよ！
あれ？3.0って７年前・・・？もうすぐ7.0が出る・・・？

私を含めた多くの監視設定者↓

・使っている監視設定でも困っていない・・・
・監視設定の変更には承認フローを通す必要があって・・・
・新しい機能なんて使わなくても困っていないし・・・・そもそも何が変わっているのかよく知らないし・・・

etc...

© NTT Com Engineering Corporation All Rights Reserved.

9

Zabbixの監視設定の進化についていこう
同じ悩みを持っている方に向けて、私が実際に悩んで解決してきた監視設定の実例を踏まえたナレッジ、ノウハウの一部を共有します。
保存前処理
SNMPDiscovery
集計関数© NTT Com Engineering Corporation All Rights Reserved.

マクロ関数

今回は大体これらの機能を使います。

10

事例1: 複数データ集計に苦労した話© NTT Com Engineering Corporation All Rights Reserved.

11

経緯説明 (Zabbix 3.0時代)
Zabbix 3.0を利用されているお客様からこんなお問い合わせをいただきました。

受信トラフィックの全体平均値を出したいんだ
けど、どう設定したらいいの？

Interface 0/1 受信トラフィック

Interface 0/2 受信トラフィック

受信トラフィックの全体平均値

Interface 0/3 受信トラフィック© NTT Com Engineering Corporation All Rights Reserved.

12

経緯説明 (Zabbix 3.0時代)
いただいたお問い合わせに対して、社内で議論を行いました。
Zabbix 3.0時代の社内会議

IFごとのアイテムはあるからZabbixアグリゲートで集計したらいいんじゃないですかね？

確かに・・・でもZabbixアグリゲートはホストグループ単位だから、ホスト毎にグループ作るのは妥当じゃないよね
アイテムのヒストリを取得して計算した結果を返す
Zabbix APIを使用した外部スクリプトを用意したらいいんじゃないですかね？
それが一番いいけど、お客様自身が設定をされる前提での相談だから、標準機能の中で解決できるほうがいいと思うんだよね© NTT Com Engineering Corporation All Rights Reserved.

13

経緯説明 (Zabbix 3.0時代)
色々な方法、ご提案をした中で最終的には計算アイテムでの設定が採用されました。
(お客様のご要件、設定対象を絞られるという条件からこの設定が採用されました。)
ホスト単位での設定が可能だし、お客様自身での設定も可能。
ただメンテナンス性に難があるのが課題・・・(last(//net.if.in[ifInOctets.2])+last(//net.if.in[ifInOctets.3])+last(//net.if.in[ifInOctets.4]))/3①②① IF数に合わせて計算式の記載内容のメンテナンスが必要 (マクロ使用不可)② 割り算する値もIF数に合わせてメンテナンスが必要© NTT Com Engineering Corporation All Rights Reserved.

14

経緯の説明 (Zabbix 6.0時代)
時は流れ2022年、Zabbix 6.0 LTSがリリースされ、自社の監視サーバーを更改(4.0→6.0)することになった際に、この事例を思い出し改めて挑戦してみようと考えました。
Zabbix 6.0時代の脳内会議

Zabbix 3.0で悩んだあの監視を自社NW監視でも使用したいな。
自社用だからスクリプトを書いてもいいけど、せっかくだからZabbix 6.0までに追加された機能が使えないかな？

SNMP DiscoveryのLLDルールで使用されているdiscovery[]キーと保存前処理うまく活用している監視設定をZabbix社公式テンプレートなどで見たことがありますよ？
3.0時代になかった保存前処理の有効活用設定例か。
確かにそれを使えば要件を満たせるかもしれない。
まずは試してみよう！

© NTT Com Engineering Corporation All Rights Reserved.

15

保存前処理について© NTT Com Engineering Corporation All Rights Reserved.

16

保存前処理について
保存前処理とは、LTSでは4.0から使用することが出来る機能です。
監視対象から収集したデータを保存する前に加工処理等を行うことが可能です。
■一部のデータを抽出して保存する
凄い大変なエラー (ErrorID: 10000)

抽出

凄い大変なエラー (ErrorID: 10000)■データを乗数で増やして保存する (byte → bitへの変換等に使用)
10000

８倍

80000

■データを置換して保存する
凄い大変なエラー (ErrorID: 10000)© NTT Com Engineering Corporation All Rights Reserved.

変換

凄い大変なエラー (ErrorID: Critical)

17

保存前処理についてバージョンアップと共に増えていく保存前処理の設定
■テキスト
正規表現
前後文字列削除
末尾文字列削除
先頭文字列削除
置換■構造化データ
XML Path
JSON Path
CSVからJSON

■計算乗数
■変化
差分
1秒あたりの差分■数値変換
論理値から10進数
8進数から10進数
16進数から10進数■カスタムスクリプト
JavaScript■バリデーション
値の範囲
正規表現と一致する正規表現と一致しない
JSON内のエラーチェック
XML内のエラーチェック
正規表現使用時のエラーチェック
サポートしていない値のチェック■絞り込み
変化がなければ破棄指定秒内に変化がなければ破棄■Prometheus
Prometheusパターン
PrometheusからJSON

4.0 LTSで追加
5.0 LTSで追加
6.0 LTSで追加

Zabbixが保存前に行える処理がバージョンアップ毎に増えている！
© NTT Com Engineering Corporation All Rights Reserved.

18

【改善案1】discovery[]キー ＋ JSONPath© NTT Com Engineering Corporation All Rights Reserved.

19

【改善案1】discovery[]キー ＋ JSONPathdiscovery[]キーは、指定したOIDのデータを取得しJSON形式のデータに加工して保存するため、JSONデータをPath式を使用して処理が可能な、JSONPathという保存前処理と連携させてみました。
[{"{#SNMPINDEX}":"1","{#IFTYPE}":"24","{#IFIN}":"673503672"},{"{#SNMPINDEX}":"2","{#IFTYPE}":"6","{#IFIN}":"1982022179"

取得データ

①},
{
"{#SNMPINDEX}":"3","{#IFTYPE}":"6","{#IFIN}":"1269244555"

②},
{

①②

"{#SNMPINDEX}":"4","{#IFTYPE}":"6","{#IFIN}":"1269244195"

IF-MIB::ifTypeでインターフェースのタイプのデータを取得

IF-MIB::ifInOctetsでインターフェースの受信バイト数を取得© NTT Com Engineering Corporation All Rights Reserved.

}
]

20

【改善案1】discovery[]キー ＋ JSONPath
設定する保存前処理としては下記となります。

①②$..[?(@.iftype != ’24’)].ifin.avg()③①

LLDマクロ{#MACRO}がJSONPathで書式エラーになりやすいので、扱いやすいキー名に置換②

JSONPathで条件に合うifInOctetsの取得値の平均(avg)を算出 (例はifType:24を除外)③

ifInOctetsの値はカウンター型のByteデータなので、bps(bit per sec)に変換© NTT Com Engineering Corporation All Rights Reserved.

21

【改善案1】discovery[]キー ＋ JSONPath
計算アイテムで集計した結果と比較すると、discovery[]キー + JSONPathで集計した結果は、ほぼ同一であることが確認できます。

作り終わった直後の私↓

計算アイテムの集計と同じデータを取得出来ているし、機器のインターフェース構成に合わせて変更する必要がない監視設定ができた。
これは改善できたといえるんじゃないか！！

© NTT Com Engineering Corporation All Rights Reserved.

22【改善案1】discovery[]キー ＋ JSONPath
少し経って落ち着いた私の中の脳内会議

この設定も素晴らしいけど、元々思ってたより複雑な監視設定になっているな。(フィルターしなければ想定通りだけど)保存前処理を節約した設定方法があるともっといい気がするな。

Zabbix 5.0からは保存前処理にJavaScriptが追加されましたよ
ね？あれ使ってみたかったんですけど、うまく使えないですかね？

確かに・・・コードを書く必要があるけど、これなら標準機能の範囲だし挑戦してみるのも面白いかもしれないな・・・
一回書いて設定を試してみてもいいかもしれないな。

© NTT Com Engineering Corporation All Rights Reserved.

23

【改善案2】discovery[]キー ＋ JavaScript© NTT Com Engineering Corporation All Rights Reserved.

24【改善案2】discovery[]キー ＋ JavaScript
JavaScriptはその名の通り、JavaScript形式でデータを処理できる保存前処理です。
外部スクリプトの連携と異なり監視設定上でコードを記載することが可能なことが特徴です。

改善案1で実施していた置換、乗数、JSONPathの処理をコード内で対応することで、保存前処理の数を削減© NTT Com Engineering Corporation All Rights Reserved.

25【改善案2】discovery[]キー ＋ JavaScript
これまでの2つの手法(計算アイテム、JSONPath)の結果と比較すると、discovery[]キー + JavaScriptの結果に関しても、ほぼ同一であることが確認できます。

作り終わった直後の私↓

JavaScriptの処理の中で、複数の保存前処理でやっていた処理をまとめることが出来たので、保存前処理が5→2つに削減できた！
JavaScriptを使用した監視設定事例も出来たし、すごく良い改善だったんじゃないか！？

© NTT Com Engineering Corporation All Rights Reserved.

26

【改善案2】discovery[]キー ＋ JavaScript
少し経って落ち着いた私の中の脳内会議 (Part 2)

標準機能の範囲だし、このコードを利用した監視設定には有用性があるけど、他の人への引継ぎは考えないといけないな。
他に方法がないか、マニュアルを調べてみようかな？

ZabbixManual
※6.0公式マニュアル： 7.設定 -> 2.アイテム -> 7.計算アイテム -> 集計計算より抜粋

あれ、Zabbix 6.0の集計関数のページに、似た設定例がある。
6.0から追加されたforeach関数を使うのか・・・
保存前処理に拘っていたけど、集計関数も試してみよう！ということで、この事例の改善案の検討は集計関数に続きます。
© NTT Com Engineering Corporation All Rights Reserved.

27集計関数に入る前に少し余談© NTT Com Engineering Corporation All Rights Reserved.

28

集計関数に入る前に少し余談
ここまでdiscovery[]キーでJSONデータを取得し、保存前処理と連携させる方法を紹介してきました。
しかし、6.4以降では、discovery[]キーよりも処理性能が向上したwalk[]キーが追加されており、下記の参考例のように、snmpwalkコマンドを打った時のようなデータが取得できます。

.1.3.6.1.2.1.2.2.1.10.1 = Counter32: 678674499.1.3.6.1.2.1.2.2.1.10.2 = Counter32: 2021190926.1.3.6.1.2.1.2.2.1.10.3 = Counter32: 1272431518.1.3.6.1.2.1.2.2.1.10.4 = Counter32: 1272431158.1.3.6.1.2.1.2.2.1.3.1 = INTEGER: 24.1.3.6.1.2.1.2.2.1.3.2 = INTEGER: 6.1.3.6.1.2.1.2.2.1.3.3 = INTEGER: 6.1.3.6.1.2.1.2.2.1.3.4 = INTEGER: 6© NTT Com Engineering Corporation All Rights Reserved.

29集計関数に入る前に少し余談
6.4ではwalkコマンドの結果をJSONデータに加工できる、「SNMP walkからJSON」という保存前処理が追加されています。
現在作成中の新バージョン用のテンプレートでは、walkキーを使用した監視設定が採用され、既存テンプレートも置き換わっていることを確認していますので、今後こちらの監視設定が主流になってくると思われます。
そのため、もし6.4以降で今回のような連携を活用する場合は、walkキーを使用することを検討してみてください。

© NTT Com Engineering Corporation All Rights Reserved.

30

集計関数 - foreach関数について© NTT Com Engineering Corporation All Rights Reserved.

31

集計関数 - foreach関数について
Zabbix 6.0 LTSから、従来の集計関数(アイテム個別の履歴を使った集計)とは別に、複数のアイテム履歴から集計値を返却できるforeach関数が追加されています。
この関数を用いることで、以前のバージョンで集計しづらかったアイテム間の集計を容易かつ高度に実施することが可能になっています。

アイテムA

集計関数

アイテムA
アイテムB

アイテムB

※6.0公式マニュアル： 21.付録 -> 6.サポートされている関数 -> 1. 集計関数 -> 1. foreach関数より抜粋© NTT Com Engineering Corporation All Rights Reserved.

32

【改善案3】foreach関数© NTT Com Engineering Corporation All Rights Reserved.

33

【改善案3】foreach関数
事例1の複数データの集計を集計関数を用いてやってみましょう。
今回、ホスト内のnet.if.inの最新値の平均値を出したいので、last_foreach関数を使ってnet.if.in最新値を集計し、その値をavg関数で平均値を算出してみます。

※保存前処理は設定不要(各アイテムで実施済のため)

avg(last_foreach(//net.if.in[*]))
net.if.inの最新値を集計 [*]のようにワイルドカードが使用可能
last_foreach関数で集計した値の平均値を算出© NTT Com Engineering Corporation All Rights Reserved.

34

【改善案3】foreach関数
これまでの3つの手法(計算アイテム、JSONPath、JavaScript)の結果と比較すると、foreach関数を使用した結果に関しても、ほぼ同一であることが確認できます。

今回の要件は、Zabbix 6.0 LTSではforeach関数を活用することが最も簡単！
その他データ集計でも活用できると感じるので、チャレンジしてよかった！

© NTT Com Engineering Corporation All Rights Reserved.

35

事例1のまとめ
今回1つの監視要件に対して4つの手法をご紹介しました。
～3.0
計算

4.0

5.0

JSONPath※

6.0
計算(foreach)※置換はZabbix 5.0以降で使用可能

JavaScript

各手法、設定開始可能なバージョンは上記の通りとなります。
そのため、バージョンによる最適解は変動します。
Zabbixの進化により監視設定の幅は広がっていきますので、色んな監視設定方法にチャレンジすると面白いのでお勧めです。
© NTT Com Engineering Corporation All Rights Reserved.

36

事例2: SNMPトラップ監視の汎用的な監視設定© NTT Com Engineering Corporation All Rights Reserved.

37

経緯説明 (今も昔も)SNMPトラップの監視設定に関して、このような期待を要件定義時に受けたことはないでしょうか？
期待いただいているお客様
弊社の監視対象には複数のSNMP対応機器があって、SNMPトラップの監視を行いたいんです。

ただ、どのようなSNMPトラップが飛ぶかは把握できていなくて・・・
でも御社には豊富な実績があると思うので、その実績を使った監視設定テンプレートの作成をお願いしたいんです。

個人的体感、案件中8割の要件確認時に言われるこの期待ですが、こんな悩みを抱えていないでしょうか。
期待に比例して悩みを抱える私
SNMPトラップって、ベンダー毎に飛んでくるトラップ内容も違うし、ベンダーが一緒でも機種やOSが違えばトラップ内容変わるんだよな・・・
だから過去作成したテンプレートを使いまわしづらいから、一から調査する必要があって、実績を活用しづらいんだよな・・・© NTT Com Engineering Corporation All Rights Reserved.

38

経緯説明 (今も昔も)このような悩みから、初期導入時に使えるベンダー、機種などに依存しない汎用設定が欲しいと考えました。
何かいい案がないか考える私の脳内会議

何かいい方法がないか、一般公開ナレッジ・ノウハウや、公式マニュアルを見てみよう。いい案が思いつくかもしれない。

ZabbixManual
※6.0公式マニュアル： 7.設定 -> 11.マクロ -> 1.マクロ関数より抜粋

そうだ、マクロ関数を使えば取得したトラップの一部を切り出してイベント名とかタグ名に使用できるんじゃないか？
上手く行けば汎用的なトラップ監視設定ができるかもしれない！ということで、マクロ関数を利用したSNMPトラップの汎用設定に挑戦してみたというのが事例2です。
© NTT Com Engineering Corporation All Rights Reserved.

39

マクロ関数について© NTT Com Engineering Corporation All Rights Reserved.

40

マクロ関数について
マクロ関数とは、マクロから引き渡されるデータを下記例のようにカスタマイズする関数です。
書式：{<macro>.<func>(<params>)}■小数点以下に表示される桁数を制御する (LTSでは6.0以降で使用可能)
24.3413523{{ITEM.VALUE}.fmtnum(2)}24.341352

24.3413523{{ITEM.VALUE}.fmtnum(0)}24.341352■データのうち正規表現に一致する一部データのみを抽出する
凄い大変なエラー (ErrorID: 10000){{ITEM.VALUE}.regsub(“.*ErrorID:¥s([0-9]+)”, ¥1)}

© NTT Com Engineering Corporation All Rights Reserved.

10000

41

【改善案】マクロ関数によるデータ活用© NTT Com Engineering Corporation All Rights Reserved.

42

【改善案】マクロ関数によるデータ活用※注意
今回、ZabbixのSourceに同梱されているzabbix_trap_receiver.plを使用します。
その他ツール(SNMPTT、Zabbix Japan提供のZabbix用SNMPトラップフォーマッタツールなど)を使う場合は、設定を調整する必要があるので、その点はご注意ください。

■zabbix_trap_receiver.plの入手方法
・ZabbixのSourceを取得
URL: https://www.zabbix.com/download_sources

・Source入手し解凍後、 misc/snmptrap/ディレクトリ配下からファイルを取得可能
・設定方法
URL: https://www.zabbix.com/documentation/6.0/en/manual/config/items/itemtypes/
snmptrap#configuring-perl-trap-receiver© NTT Com Engineering Corporation All Rights Reserved.

43

【改善案】マクロ関数によるデータ活用■実際に収集されるトラップサンプルと抽出して使用したい値 (OID表記)
2023/09/14 15:32:44 ZBXTRAP 127.0.0.1
PDU INFO:
requestid
504716776
receivedfrom
UDP: [127.0.0.1]:54001->[127.0.0.1]:162
messageid
0community
publictransactionid
1
errorstatus0
snmpTrapOID (.1.3.6.1.6.3.1.1.4.1.0)
version1のvalue値をマクロ関数で抽出して使用する
notificationtypeTRAPerrorindex
0
VARBINDS:.1.3.6.1.2.1.1.3.0
type=67 value=Timeticks: (0) 0:00:00.00.1.3.6.1.6.3.1.1.4.1.0
type=6 value=OID: .1.3.6.1.4.1.8072.2.3.0.1.1.3.6.1.4.1.8072.2.3.2.1
type=2 value=INTEGER: 60© NTT Com Engineering Corporation All Rights Reserved.

44

【改善案】マクロ関数によるデータ活用■アイテム設定
シンプルなsnmp.fallback (snmptrap[regex]に一致しないトラップが全て対象)のアイテムを用意。
アイテムタグはお好みで設定。

© NTT Com Engineering Corporation All Rights Reserved.

45

【改善案】マクロ関数によるデータ活用■トリガー設定
イベント名とタグ値にマクロ関数を設定。その他は一般的な全検知の監視設定を用意。

ｃ© NTT Com Engineering Corporation All Rights Reserved.

46

【改善案】マクロ関数によるデータ活用
マクロ関数は下記のような設定を用意。

{{ITEM.VALUE}.regsub("1¥.3¥.6¥.1¥.6¥.3¥.1¥.1¥.4¥.1.*value=OID:¥s+(.*)(¥s|$)", ¥1)}①②③①

マクロ関数が処理する対象マクロとして{ITEM.VALUE}を指定②{ITEM.VALUE}からデータを抽出するための正規表現を記載③

正規表現の1つ目の()内のデータを抽出するように指定© NTT Com Engineering Corporation All Rights Reserved.

47

【改善案】マクロ関数によるデータ活用■実際に収集されるトラップサンプルと抽出して使用したい値 (OID表記)
2023/09/14 15:32:44 ZBXTRAP 127.0.0.1～省略～
VARBINDS:.1.3.6.1.2.1.1.3.0.1.3.6.1.6.3.1.1.4.1.0.1.3.6.1.4.1.8072.2.3.2.1

type=67 value=Timeticks: (0) 0:00:00.00
type=6 value=OID: .1.3.6.1.4.1.8072.2.3.0.1
type=2 value=INTEGER: 60{{ITEM.VALUE}.regsub("1¥.3¥.6¥.1¥.6¥.3¥.1¥.1¥.4¥.1.*value=OID:¥s+(.*)(¥s|$)", ¥1)}※¥1 = regsubの正規表現内の一つ目の()内のデータを取得。(今回であれば.1.3.6.1.4.1.8072.2.3.0.1)© NTT Com Engineering Corporation All Rights Reserved.

48

【改善案】マクロ関数によるデータ活用
実際にトラップを出力してみると、下記のようにイベント名、タグ名にOIDが記載されます。

© NTT Com Engineering Corporation All Rights Reserved.

49

【改善案】マクロ関数によるデータ活用
その他トラップを出力すると、違うOIDとして表示されることが確認できる© NTT Com Engineering Corporation All Rights Reserved.

50

【改善案】マクロ関数によるデータ活用
タグは障害画面でのフィルタリングの活用は勿論、メンテナンス時の条件設定としても活用することが可能。
snmpTrapOIDが一致するトラップだけをメンテナンスとしてアラート抑止が可能。

※.1.3.6.1.6.3.1.1.5.4.0.33のsnmpTrapOIDを持つトラップをメンテナンスに設定© NTT Com Engineering Corporation All Rights Reserved.

51

【改善案】マクロ関数によるデータ活用
今回の設定ではsnmptrap.fallbackを使用したアイテム設定としていますので、もし個別のSNMPトラップに関する監視設定を行いたい場合は、正規表現をで保存先アイテムを分岐できるsnmptrap[regex]と連携すると良いと思います。
分岐させたアイテム側に専用トリガーを用意し、個別設定(障害条件設定、深刻度変更など)が可能です。
また、アイテムのヒストリ保存期間を”ヒストリを保存しない”とすることで取得データの除外も可能です。
正規表現に一致しない
トラップ

snmptrap.fallback

汎用トリガー

正規表現1に一致する
トラップ

snmptrap[正規表現1]

専用トリガー

正規表現2に一致する
トラップ

snmptrap[正規表現2]※ヒストリの保存期間を”ヒストリを保存しない”に設定© NTT Com Engineering Corporation All Rights Reserved.

ヒストリ保存されないため、消える52

事例2のまとめ？

これで飛んでくるトラップ内容が分からなくても、イベント名、タグで判別できる汎用的なSNMPトラップ設定が出来た！

実際にお客様にも導入して満足いただけたし、良い監視設定が出来た！

これで事例2に対する監視設定の改善案は終了です！!といいたいですが・・・この例を見せると多くの方にいただく意見があります。

© NTT Com Engineering Corporation All Rights Reserved.

53

【補足】マクロ関数によるデータ活用 (MIB)
ちょっと待って！！
うちの環境はMIBファイルでの変換を有効にしているから、MIBファイルを使った設定例を教えて欲しい！

I💛
MIB※以下の理由から個人的にはMIBファイルを使用しないSNMPトラップ設定を推奨しています。
・ MIBファイルを使用しないほうが処理性能が良い・ MIBファイルの配置自体が難易度が高く、エラーなく運用することが難しい(エラー発生させたまま運用している場合、処理性能に影響がある)・ 全てのトラップに対応するMIBをロードしておかないと、不完全な変換処理となってしまうとはいえMIBファイルを使用した環境が大半なので、そちらの例は次のページから紹介します。
© NTT Com Engineering Corporation All Rights Reserved.

54

【補足】マクロ関数によるデータ活用 (MIB)■トリガー設定※アイテムは変わらないので割愛

OID表記の時との違いは、マクロ関数の正規表現をMIB変換後の文字列に合わせるだけです。

{{ITEM.VALUE}.regsub("SNMPv2-MIB::snmpTrapOID.*value=OID:¥s+(.*)(¥s|$)", ¥1)}

OIDからMIB変換後の記載に変更する© NTT Com Engineering Corporation All Rights Reserved.

55

【補足】マクロ関数によるデータ活用 (MIB)■実際に収集されるトラップサンプルと抽出して使用したい値 (MIB変換後の表記)
2023/09/14 16:52:15 ZBXTRAP 127.0.0.1
PDU INFO:～～省略～～VARBINDS:DISMAN-EVENT-MIB::sysUpTimeInstance type=67 value=Timeticks: (0) 0:00:00.00
SNMPv2-MIB::snmpTrapOID.0
type=6 value=OID: NET-SNMP-EXAMPLES-MIB::netSnmpExampleHeartbeatNotification
NET-SNMP-EXAMPLES-MIB::netSnmpExampleHeartbeatRate type=2 value=INTEGER: 60{{ITEM.VALUE}.regsub("SNMPv2-MIB::snmpTrapOID.*value=OID:¥s+(.*)(¥s|$)", ¥1)}※¥1 = regsubの正規表現内の一つ目の()内のデータを取得。
(今回であればNET-SNMP-EXAMPLES-MIB::netSnmpExampleHeartbeatNotification)© NTT Com Engineering Corporation All Rights Reserved.

56

【補足】マクロ関数によるデータ活用 (MIB)
実際にトラップを出力してみると、下記のようにイベント名、タグ名にOID(MIB変換後)が記載されます。

© NTT Com Engineering Corporation All Rights Reserved.

57

まとめ

© NTT Com Engineering Corporation All Rights Reserved.

58

まとめ
Zabbixは常に進化するソフトウェアです。
監視設定に関しても振り返ってみると、より良い監視設定が必ずできます。
そこを探しているとき、また気付けて改善案を出せることが、Zabbix監視設定の楽しいところであり、醍醐味だと思います。
是非皆さんにもこの機会にチャレンジしてみていただければと考えています。
また、個人的に色々な監視設定方法に関する共有、議論を出来たら嬉しいので、お会いする機会などあれば是非お声がけください。

一緒にZabbixの監視設定を楽しみましょう!!
Let‘s enjoy Zabbix monitoring setting together!!
© NTT Com Engineering Corporation All Rights Reserved.

59

ご清聴ありがとうございました© NTT Com Engineering Corporation All Rights Reserved.

60