13

Click here to load reader

Zabbix meeting 20101218_02-2 (Takanori Suzuki)

Embed Size (px)

Citation preview

Page 1: Zabbix meeting 20101218_02-2 (Takanori Suzuki)

鈴木 崇文(Takanori Suzuki)

Zabbix Sender のプロトコル解説

( 第 3 回 ZABBIX-JP 勉強会 )

Page 2: Zabbix meeting 20101218_02-2 (Takanori Suzuki)

自己紹介

● 鈴木 崇文 (Takanori Suzuki)● Zabbix­JP のメンバー

● 仕事も Zabbix + Linux  関係

● 時々パッチを作ってはポスト

● Zabbix­JP だと 1.6 での日本語イベントログ対応とか● 最近だと Porxy がデータ送らなくバグの修正とか

● 前回も発表しました http://www.slideshare.net/BlueSkyDetector/zabbixjp­study­20100730­2nd­session

● Twitter アカウントは BlueSkyDetector

Page 3: Zabbix meeting 20101218_02-2 (Takanori Suzuki)

本題に入る前に・・・

みなさん、 Zabbix でアプリの状態をどうやって監視してますか?

Page 4: Zabbix meeting 20101218_02-2 (Takanori Suzuki)

こんなやり方が思い浮かびます

● プロセスを監視

● ログを出力して監視

● zabbix_sender コマンドを使ってデータ送信して監視

Page 5: Zabbix meeting 20101218_02-2 (Takanori Suzuki)

アプリから直接データをZabbix へ送りたくないですか?

Page 6: Zabbix meeting 20101218_02-2 (Takanori Suzuki)

というわけで、Zabbix Sender のプロトコルを

アプリから送信できるように、プロトコルの解説をします

Page 7: Zabbix meeting 20101218_02-2 (Takanori Suzuki)

こんな感じになっています

Page 8: Zabbix meeting 20101218_02-2 (Takanori Suzuki)

JSON の中身は・・・

{"data": [

{"host":"hostA","value":"sent data0","key":"AppX_Logger"},{"host":"hostA","value":"sent data1","key":"AppX_Logger"}

],"request":"sender data"

}

サーバの負荷が大きくならない範囲でいくつでも増やせる

Page 9: Zabbix meeting 20101218_02-2 (Takanori Suzuki)

その他 JSON のオプション

timestamp, lastlogsize, mtime, source, severity, eventid とか

Page 10: Zabbix meeting 20101218_02-2 (Takanori Suzuki)

これを TCP で Zabbix サーバの 10051 ポートに送れば OK

Page 11: Zabbix meeting 20101218_02-2 (Takanori Suzuki)

例として、 Python でライブラリを作ってみました

https://github.com/BlueSkyDetector/code-snippet/tree/master/ZabbixSender

Page 12: Zabbix meeting 20101218_02-2 (Takanori Suzuki)

こんな感じになります

from ZabbixSender import ZabbixSendersender = ZabbixSender('127.0.0.1')sender.AddData(u'HostA', u'AppX_Logger', u'sent data')res = sender.Send()print res

Page 13: Zabbix meeting 20101218_02-2 (Takanori Suzuki)

おわり