LLD(ローレベルディスカバリ)を弄り倒せ、zabbix_senderを併用してらくらく可視化
- 7. cron での処理内容 -ディスカバリ部分-
• 前日のログを舐めて、ユーザ別・項目別に集計
AAA 20 0
BBB 120 337
CCC 0 78
• ruby で、ユーザIDのリストに相当する JSON を生成
senderでうまく扱うために、必ず1行の JSON データにする!改行含まないこと!
{“data”:[{“{#USRID}”:”AAA”}, {“{#USRID}”:”BBB”}, {“{#USRID}”:”CCC”}]}
• sender で、ディスカバリルールの項目値として投げ込む
投げ込む際には、標準入力に値を渡す。
ついでに –t オプションで昨日の0時のデータにしておく‥(捏造じゃないよ!)
ファイル or 標準入力だと、1行あたり1データと認識されるから、複雑なJSON値でもOK!
HOSTNAME user.log.count.discovery 1397051539 {“data”:[{“{#USRID‥ }
• ディスカバリルールの設定は [Zabbixトラッパー]に!
普通にアイテム値を投げ込む時と同じく、trapperタイプにしておけばOK!
- 8. cron での処理内容 -項目値の登録部分-
• sleepで少し待つ!(2分間)
待たなくても大丈夫かもしれない?
でも zabbix_server が重くても大丈夫かどうか心配 →とりあえず待っちゃえ
• 集計結果のリストから、sender へ渡す文字列を作る
やっぱり標準入力を使う。複数項目の値を複数行でまとめて送信!
もちろん、値のタイムスタンプは昨日の0時!
HOSTNAME user.log.count.get[AAA] 1397051539 20
HOSTNAME user.log.count.put[AAA] 1397051539 0
HOSTNAME user.log.count.get[BBB] 1397051539 120 ・・・(略)・・・
• ど~んと値を送信‥ 100ユーザなら200項目分‥
sender を1回実行すれば複数項目一括登録OKなんてチョー便利!
• アイテムのプロトタイプも、やっぱり[Zabbixトラッパー]
sender を使う場合のお約束ですね!