Download - Zabbix study5lt
Zabbix 関連で最近やったこと
Zabbix 勉強会 5 LT
@mikeda
@sechiro さんの後ろはきついよ(;´Д ` ) ハァハァ
自己紹介@mikeda
→インフラエンジニアCROOZ 株式会社 → Zabbix は一部使用&検証中
Zabbix 関連で最近やったこと
その1バグ報告やってみた
こんなの
内容は• API経由でメディアタイプを変更したとき 変更した IDじゃなく真偽値が返ってくる
• ものすごくどうでもいいバグw
しかしToms:更新したよ!
Alexey : 1.8 系もお願い!
Toms: 1.8系も更新したよ!
Pavels : ChangeLog の更新忘れてるよ!
内容は• みんなかなり細かく見てるようですw
• Alexey と話したかったらバグ報告あげるといいよ!
※ Alexey は複数人いるっぽいので注意
その2Fluentd 使ってみた
前回話したサービスレベルのMetrics
• サーバ単位じゃなく、サービス単位なやつ
実はけっこうめんどくさかった
zabbix
・各サーバで定期的に集計・結果を Zabbix に突っ込む
・ホストグループを定義・ Agrigate アイテム集約
集計 集計 集計
Aggrigate
HostGroup1 WEBサーバ
Zabbix サーバ
WEBサーバ
Zabbix サーバ
Fluentd
• 構造化ロガー(すごい syslog )– ログを構造化– リアリタイムで転送 & 処理– Input 、 Output をプラグインでカスタマイズ
Fluent dを使って再構築
fluentd fluentd fluentd
fluentd
zabbix
転送するだけ
集約して Zabbix に突っ込む
WEBサーバ
集約サーバ
表示するだけZabbix サーバ
今回作ってみたMetrics
• レスポンスコードごとのアクセス数
今回使ったプラグイン• Input
– tail :ログファイルを tail– forward :他の Fluentd から受け取る
• Output– forward :他の fluentd に転送– datacounter :カウント & 定期的に出力– zabbix ( by @fujiwara ):結果を Zabbix に
転送
WEBサーバ側設定例<source> type tail format apache path /var/log/httpd/blog_access_log tag access.log.blog</source>
<match *.**> type forward …
<server> name aggrigate-server host 192.168.1.10 port 24224 weight 60 </server></match>
Input: ログを tail※構造化&バッファリング{"host":"127.0.0.1","user":"-","method":"GET","path":"/","code":"403","size":"5043","referer":"-","agent":"curl/7.15.5"}
Output: Agrigate サーバに転送
Agrigate サーバ設定例<source> type forward port 24224 bind 0.0.0.0</source>
<match access.log.*> type datacounter count_interval 300 count_key code tag access.count.code input_tag_remove_prefix access.log pattern1 2xx ^2\d\d$ pattern2 3xx ^3\d\d$ pattern3 4xx ^4\d\d$ pattern4 5xx ^5\d\d$</match>
<match access.count.code> type zabbix zabbix_server 192.168.1.100 port 10051 host webservice name_keys blog_2xx_count,blog_3xx_count,blog_4xx_count,blog_5xx_count</match>
Input: 他のサーバから受け取る
Output1: 定期的に条件付きカウント{"blog_unmatched_count":0,"blog_unmatched_rate":0.0,"blog_unmatched_percentage":0.0,"blog_2xx_count":130852,"blog_2xx_rate":436.17,"blog_2xx_percentage":86.49084539625883,...}
Output2: Zabbix に送信
Zabbix サーバの設定
• トラッパーアイテムを作るだけ
もちろん 1台ずつも集計可!
fluentd fluentd fluentd
zabbix
集計してホスト単位でZabbix に突っ込む
Fluentd & Zabbix
• ログの集計&メトリクス作成が簡単– 集計スクリプトをガツガツかかなくていい– 複数サーバの集約が簡単
• 実際は同時に mongodb に全データを突っ込んでいる– フローだけじゃなくストック。複雑な集計 &Metrics 化に– 事例としては Hadoop が多そう
• 柔軟な Input と Output– 例)アプリから直接 Input 、リアルタイムな売上グラフ
を作成、下がったら企画チームにアラート
その3Android 版ざびたん作ってみ
た
昨日リリースしました!
demo
ざびたんウィジェット
• 時代の斜め先を( ry
• Zabbix と連携してサーバを監視してくれる Android ウィジェット
• メールでいいよ!と思う人は @sechiro さんに説教されて下さい
• まだまだテスト版です
終わりです