Click here to load reader
Upload
takanori-suzuki
View
5.759
Download
1
Embed Size (px)
Citation preview
鈴木 崇文(Takanori Suzuki)
Zabbix Sender のプロトコル解説
( 第 3 回 ZABBIX-JP 勉強会 )
自己紹介
● 鈴木 崇文 (Takanori Suzuki)● ZabbixJP のメンバー
● 仕事も Zabbix + Linux 関係
● 時々パッチを作ってはポスト
● ZabbixJP だと 1.6 での日本語イベントログ対応とか● 最近だと Porxy がデータ送らなくバグの修正とか
● 前回も発表しました http://www.slideshare.net/BlueSkyDetector/zabbixjpstudy201007302ndsession
● Twitter アカウントは BlueSkyDetector
本題に入る前に・・・
みなさん、 Zabbix でアプリの状態をどうやって監視してますか?
こんなやり方が思い浮かびます
● プロセスを監視
● ログを出力して監視
● zabbix_sender コマンドを使ってデータ送信して監視
アプリから直接データをZabbix へ送りたくないですか?
というわけで、Zabbix Sender のプロトコルを
アプリから送信できるように、プロトコルの解説をします
こんな感じになっています
JSON の中身は・・・
{"data": [
{"host":"hostA","value":"sent data0","key":"AppX_Logger"},{"host":"hostA","value":"sent data1","key":"AppX_Logger"}
],"request":"sender data"
}
サーバの負荷が大きくならない範囲でいくつでも増やせる
その他 JSON のオプション
timestamp, lastlogsize, mtime, source, severity, eventid とか
これを TCP で Zabbix サーバの 10051 ポートに送れば OK
例として、 Python でライブラリを作ってみました
https://github.com/BlueSkyDetector/code-snippet/tree/master/ZabbixSender
こんな感じになります
from ZabbixSender import ZabbixSendersender = ZabbixSender('127.0.0.1')sender.AddData(u'HostA', u'AppX_Logger', u'sent data')res = sender.Send()print res
おわり