Linux ServerのNICをLLDで検索してアイテムを作る方法
いつもお世話になっております
仮想環境上のLinux Server 10台の監視を行う予定でおります。
サーバごとにNICの名称や数が違うためローレベルディスカバリで
簡単に?アイテムを取得できないか検討しております。
【前提条件】
OS:CentOS7
Zabbix:3.0.8
※Zabbixサーバも監視するサーバも同じOSを利用しております
※Zabbixに関してはサーバもエージェントも同じバージョンです
①ディスカバリのルールで
名前:NIC
タイプ:Zabbixエージェント
更新間隔(秒):30
存在しなくなったリソースの保持期間(日):30
フィルタで
{#IFNAME} → Network interfaces for discovery
と設定しました。
②アイテムのプロトタイプでは2つ設定しており
1)
名前:受信トラフィック【$1】
タイプ:Zabbixエージェント
キー:net.if.in[{#ifname}]
データ型:数値(整数)
データの形式:10進数
単位:bps
乗数を使用:8
更新間隔(秒):60
以下はデフォルトの値をとっています
2)
名前
送信トラフィック【$1】
タイプ:Zabbixエージェント
キー:net.if.out[{#ifname}]
データ型:数値(整数)
データの形式:10進数
単位:bps
乗数を使用:8
更新間隔(秒):60
以下はデフォルトの値をとっています
どうしてもNICをディスカバリしないのですが何か設定に不備があるのでしょうか
ご存知の方や、同様のご経験をされた方がいらっしゃいましたらご教示願います
TNK - 投稿数: 4753
ディスカバリルールのキーには何を指定していますか?
net.if.discoveryを指定していますか?
フィルタの名前の前に「@」が記述されていませんが、設定はされ
ていますか?
あと、アイテムのキーで「#IFNAME」ではなく小文字で「#ifname」
にされているのも正常に動かない原因ではないでしょうか。
Zabbixサーバーのログも確認してみてください。
あと、Zabbix 3.0.8は、アクションでメール送信などを行う際に、
メールの後半部分が欠ける場合があるようですので、3.0.9へのア
ップグレードをお勧めします。
HERCULY - 投稿数: 37
TNKさま
いつもお世話になっております
ご指摘の通りでディスカバリルールのキーはnet.if.discoveryです。
あとフィルタの名前の前に「@」をつけておりませんでした。
アイテムキーの大文字小文字を大文字に統一しました。
その後うまくディスカバリーをしてくれました。
初めてLLDを使ったので多少認識違いのところもありましたが、うまくいきました。
ありがとうございました
HERCULY - 投稿数: 37
もうひとつこのLLDで質問させいていただきたいのですが、2点ほどよろしいでしょうか。
一つはLLDで作成したアイテムに対してAのアイテムとBのアイテムに対してトリガーの深刻度を別に設定することはできるのでしょうか。
同じ{#IFNAME}でなので分岐が出来そうにないと考えるのですが、分岐ができるのであればそれで深刻度を分けることができますでしょうか。
もう一つ、グラフのプロトタイプでエラーが発生してグラフが作成されないという問題です。
LLDでアイテムがディスカバリーされ、多くのアイテムが生成されました。
グラフを作成して経過を見てみたいのですが、「グラフのプロトタイプ」で作成したところ以下のようなメッセージが複数発生してグラフが
作成できませんでした。
Cannot create graph: graph with the same name "<グラフの名前>" already exists
まず「グラフのプロトタイプ」の設定ですが
名前を付け、アイテムのプロトタイプを追加しました。
そのほかの設定はデフォルトのままです。
何か不具合があるのかと思い、調査したところ同じテンプレート内で「グラフ」に同様の名前があったため、それを削除しましたが変化は
ありませんでした。何かまだ他にデータが残っているために影響が出ているのでしょうか。
追加の質問で申し訳ありませんがどなたかで同様のご経験をされた方がいらっしゃるとかございましたらご教示願いませんでしょうか。
よろしくお願いします
TNK - 投稿数: 4753
「{#IFNAME}」の値(例:eth0、eth1など)ごとに閾値を変えるとい
うことでよろしければ、以下のマニュアルの内容をご確認ください。
https://www.zabbix.com/documentation/3.0/manual/discovery/low_level_disc...
今回の場合、ネットワークのインターフェースに対するLLDであっ
たかと思いますので、eth0やeth1などで異なる閾値のマクロを登録
し、トリガーの条件式では「:"{#IFNAME}"」を付加したマクロを指
定するわけです。
ホストごとでも、各インターフェース用の閾値が異なるとなると、
自動的に設定することは難しいので、上記のマクロを指定したとし
ても、ホストマクロでさらにそれらの設定を上書きするなど、ホス
トごとに手で設定することが必要になると思います。
グラフの名前に、どのような名前を指定されましたか?
LLDで生成されるグラフは、インターフェースごとになりますので、
グラフの名前に「{#IFNAME}」を含むようにするなど、インターフ
ェースごとに異なるグラフ名になるようにしないと、同じ名前の
グラフを作成しようとしてしまいます。
固定の文字列のみをグラフの名前にしてしまうと、複数のインター
フェースがあった場合、2つ目以降のインターフェースのグラフを
生成することができなかったと思います。
「Template OS Linux」の設定内容を参考にしてみてください。
HERCULY - 投稿数: 37
TNKさま
お世話になっております
記述の通りの設定でうまく値を取れるようになりました。
お返事が遅くなり申し訳ありませんでした。