Cuturnの適当日記

徒然なるままに適当に駄文を吐き出しております

SNMPTTのwildcard_expansion_separator

SNMPTTの設定ファイルsnmptt.iniの項目「wildcard_expansion_separator」を弄ってました。

このオプションの説明する前に、SNMPTTの変換についてちょっと書きます。

SNMPTTが受け取った時、SNMPトラップ自体のOIDとは別に、例えばifIndexが1、ifAdminStatusが2、ifOperStatusが2というようなデータを大概一緒に渡します。SNMPトラップは、例えばここのifIndexの値を使って、「インタフェース{ifIndexの値} が リンクダウンしました」とか書く訳です。

snmpttのconfファイル系にたとえば以下のように記入することで、リンクダウントラップがオペレータさんに読みやすいような形になります。

EVENT linkDown .1.3.6.1.6.3.1.1.5.3 "Status Events" Normal
FORMAT ZBXTRAP $aA $ar インタフェース $1 にてリンクダウンが発生しました。"$+*"
SDESC
Variables:
  1: ifIndex
  2: ifAdminStatus
  3: ifOperStatus
EDESC

さて、この末尾において"$+*"と書いてます。これは、「全部の渡されたオプションパラメータを出力する、ただし小さ目のMIB表示で(IF-MIB::ifIndexはifIndex)」という意味です。で、その「オプション名:パラメータ」がずらっと並ぶときに何で区切るか、というのが「wildcard_expansion_separator」です。

「wildcard_expansion_separator="/"」に設定するとこんな感じ。

2013/08/16-18:20:57 linkDown Normal "Status Events" testzabbix01 -
ZBXTRAP 172.31.93.182 172.31.93.98 インタフェース 1
にてリンクダウンが発生しました。"ifIndex.1:1/ifAdminStatus.1:up/ifOperStatus.1:down"

"オプション1:値/オプション2:値/..."という感じになってます。

「wildcard_expansion_separator=" / "」に設定するとこんな感じ。スペース入れて広げました。

2013/08/16-18:25:41 linkDown Normal "Status Events" testzabbix01 -
ZBXTRAP 172.31.93.182 172.31.93.98 インタフェース 1
にてリンクダウンが発生しました。"ifIndex.1:1 / ifAdminStatus.1:up /
ifOperStatus.1:down /"

なるほど見やすく・・・うん?何で最後に「/」が…。本気で意味わからないです。

「wildcard_expansion_separator="/ "」(後にスペース)

2013/08/16-18:27:28 linkDown Normal "Status Events" testzabbix01 -
ZBXTRAP 172.31.93.182 172.31.93.98 インタフェース 1
にてリンクダウンが発生しました。"ifIndex.1:1/ ifAdminStatus.1:up/
ifOperStatus.1:down/"

まだ「/」入ってるし。意味わかんない。

「wildcard_expansion_separator=" /"」(先にスペース)

2013/08/16-18:27:39 linkDown Normal "Status Events" testzabbix01 -
ZBXTRAP 172.31.93.182 172.31.93.98 インタフェース 1
にてリンクダウンが発生しました。"ifIndex.1:1 /ifAdminStatus.1:up /ifOperStatus.1:down
"

「wildcard_expansion_separator="ぬるぽ"」

2013/08/16-18:41:01 linkDown Normal "Status Events" testzabbix01 -
ZBXTRAP 172.31.93.182 172.31.93.98 インタフェース 1
にてリンクダウンが発生しました。"ifIndex.1:1ぬるぽifAdminStatus.1:upぬるぽifOperStatus.1:downぬる・

セパレータとして末尾まで含めて追加した後、1byte削るっていう実装なんじゃないかな、という結論。2文字以上を指定すべきじゃないが、削られるの前提で" /"は許容範囲かな、という気がする。