Fluentd + Zabbix + Grafana でグラフィカルなログ監視・分析システムを構築してみよう！
2016年7月29日

SRA OSS, Inc. 日本支社
マーケティング部 OSS技術グループ

Copyright © 2016 SRA OSS, Inc. Japan All rights reserved.

1

アジェンダ•••••

Fluentdについて
Zabbixについて
GrafanaとはFluentd + Zabbix + Grafana 構成の利点
デモ

Copyright © 2016 SRA OSS, Inc. Japan All rights reserved.

2

Fluentd について• Fluentd ログを取得して転送してくれるミドルウェア
 ログの加工や構造化ができる いろんなデータベースにデータを保存できる• URL
http://fluentd.org/• 開発
 米国Treasure Data社の開発者
 コミュニティベース
 言語：Ruby + C言語• ライセンス Apache License Version 2.0
Copyright © 2016 SRA OSS, Inc. Japan All rights reserved.

3

イメージ
データ入力：Input
アプリケーションのログ
Webサーバのログ
データベースのログ
Sysloghttp入力Unixドメインソケット入力
コマンド実行結果

データ出力：Output
DB
ファイル
フィルタ・バッファ・ルーティング

Copyright © 2016 SRA OSS, Inc. Japan All rights reserved.

コマンド

4

データ入力

物理構成イメージ
データ転送
データ出力
••
•
•
•
•
•

Elasticsearch
MongoDB
HadoopAWS
MySQL
PostgreSQL
Zabbix

データ集約
syslog(aggregator)
Copyright © 2016 SRA OSS, Inc. Japan All rights reserved.

5データ入力

物理構成イメージ
データ転送同じプログラム
設定が異なるだけ

データ出力
••
•
•
•
•
•

Elasticsearch
MongoDB
HadoopAWS
MySQL
PostgreSQL
Zabbix

データ集約
syslog(aggregator)
Copyright © 2016 SRA OSS, Inc. Japan All rights reserved.

6

Zabbixについて• Zabbix システムの異常を検知し通知を行う統合監視システム
 ネットワーク機器、OS、プロセス、性能、ログ監視ができる
 監視結果の確認は専用のWEB画面から

エージェントサーバ
SNMP

Copyright © 2016 SRA OSS, Inc. Japan All rights reserved.

7

Zabbixのアーキテクチャ
Zabbix CLI(API)

ZabbixWeb Interface(Apache + PHP)

クライアントZabbix Server

DB(MySQL, PostgreSQL,Oracle, etc.)

監視対象

監視サーバ
• WebインタフェースはDBに直接アクセス• WebサービスAPIはWebサーバ経由でアクセス• インタフェースと監視サーバで処理を分散する
アーキテクチャ
Copyright © 2016 SRA OSS, Inc. Japan All rights reserved.

8

Zabbix 分散監視
ZabbixWeb Interface

Zabbix Server

設定同期

収集データ転送

Zabbix Proxy••••

1つのZabbix Serverが複数のZabbix Proxyを管理
監視対象ホストごとにどのServerまたはProxyで監視するかを設定
Server-Proxy間で設定および収集データは定期的に同期される
Zabbix Serverがボトルネックになるケースもあり、Serverを複数台使うケースもある
Copyright © 2016 SRA OSS, Inc. Japan All rights reserved.

監視対象
9FluentdとZabbixを一緒にFlunetdで収集したデータから問題があればZabbixへ通知
Zabbix機能で実現が難しいデータ収集をFlunetdで収集
 複数行ログ 加工が必要なログ
 外部システムとの連携(AWS CloudWatchなど）
 データ収集時刻を合わせて複数の監視メトリックスをZabbixに届けたい

Copyright © 2016 SRA OSS, Inc. Japan All rights reserved.

10ツールを使い分ける ?

ここで
Copyright © 2016 SRA OSS, Inc. Japan All rights reserved.

11

Grafanaとは 複数のいろんなDBからデータを取得してデータの可視化ができるOSSダッシュボード
 ライセンス Apache License V2

Copyright © 2016 SRA OSS, Inc. Japan All rights reserved.

12基本的な特徴 データソース
 グラフ描画に必要なデータは、複数の外部データベースからデータを取得することができる→ データソースと呼ばれる対応データソース✓✓✓✓✓

Graphite
ElasticsearchAmazon Cloud Watch
BosunHeroic✓ InfluxDB✓ OpenTSDB✓ Zabbix✓ Prometheos✓ KariosDB など

ユーザ/設定DBとデータDBを分離させ、一つのGrafanaから複数のデータソースに接続できるためデータを分散化させやすい Grafanaはユーザ管理、設定データ保存などのデータを保存するためのRDBが必要→ SQLite(デフォルト), PostgreSQL MySQL
Copyright © 2016 SRA OSS, Inc. Japan All rights reserved.

13基本的な特徴 構成• JavaScriptのフロントエンド(ブラウザ)とGo言語で書かれたバックエンド構成• ブラウザから直接データソースにアクセスするDirect
モードとバックエンド経由でデータソースにアクセスする
proxyモードの選択ができる
proxyモード

データソースGrafanaサーバ経由でデータ取得
オンプレ環境へアクセス

Directモード
ブラウザから直接データソースへアクセス
クラウドなどへアクセス
Copyright © 2016 SRA OSS, Inc. Japan All rights reserved.

14基本的な特徴 描画機能
• 線グラフ、棒グラフ、積み上げグラフ
y左, y右軸サポート、negative-Y軸、単位(センサー系も豊富)• World map• Table(表)• Singlestat +ゲージ表示 +SparkLine表示• text html markdown• Pieチャート

Copyright © 2016 SRA OSS, Inc. Japan All rights reserved.

15

基本的な特徴 Annotation機能• データストアに入っているイベントを元にダッシュボード内のグラフに注釈として表示する機能
Copyright © 2016 SRA OSS, Inc. Japan All rights reserved.

16

特徴 その他機能
 テンプレート機能
 例) ホスト名だけを変更してダッシュボードの再利用

 Repeat Panel テンプレート変数を使って変数を変えたパネル(グラフ)を繰り返し設定

 mix データソース
 複数のデータソースから取得したデータを1枚のグラフへ描画

 表示時間のスライドがキーボード(← →)で可能 時間をスライドさせつつグラフの確認が容易

 シェア機能とスナップショット機能
 チーム内で、同じ画面のシェア (URLで連絡) 問題があったときのスナップショットの保管

 組み込み機能
 Grafanaで作成したグラフをHTMLから呼び出してグラフの再利用

 マルチテナント対応
 組織別ユーザ管理が可能
Copyright © 2016 SRA OSS, Inc. Japan All rights reserved.

17注目度と人気度?
• エンジニアの注目度 Githubから2016/7/26の情報
Watch数 648 ★Star数 10969 Fork数 1642
(参考) kibana Watch数485 ★Star数 5694 Fork数 2095

• Googleトレンドによる人気度

Copyright © 2016 SRA OSS, Inc. Japan All rights reserved.

18

Grafana 3.0 リリース
• 最新版のメジャーバージョン3.0が2016/5/11リリース• 3.0からプラグイン仕様の整備とGrafana.netで誰でもプラグインを開発・公開できるようになった 今後プラグイン開発が盛んになりそう・・• 3.0で入らなかった大きな機能
 通知機能 (4.0で入る予定 10月末ごろ? )Copyright © 2016 SRA OSS, Inc. Japan All rights reserved.

19

Fluentd+Zabbix+Grafana 構成の利点• ケース１
 Fluentdを使ってログ収集
 問題があるログはZabbixに届けてZabbixから通知
 生ログはデータベースに格納して解析

xN• 利用者は管理画面を切り替えて運用• 管理者は管理画面ごとにユーザ設定
Copyright © 2016 SRA OSS, Inc. Japan All rights reserved.

20管理画面の統合
ユーザ情報を管理
チーム内で問題発生時の情報を共有しやすく

クラウド

オンプレ

Copyright © 2016 SRA OSS, Inc. Japan All rights reserved.

21

• ケース２
長期間運用すると
 FluentdもZabbixもデータの取集が得意
DBの肥大化が問題
データは捨てたいけど重要なイベントのデータは残したい

は古いデータをDBから削除しても大切なデータを残すことができる
Copyright © 2016 SRA OSS, Inc. Japan All rights reserved.

22

• スナップショット機能
 重要なイベントのダッシュボードをスナップショットとしてGrafanaの内部DBに保存できる
 保存したスナップショットをダッシュボードへリンク

Copyright © 2016 SRA OSS, Inc. Japan All rights reserved.

23

• スナップショットから過去イベントを確認
スナップショット

スナップショットからデータのCSVエクスポートも可能！
Copyright © 2016 SRA OSS, Inc. Japan All rights reserved.

24• ケース 3
専用のツール(例えばkibanaやZabbix)で深掘りしたいとき
Drilldown/detail link機能で指定したURLへジャンプ

detail link
Drilldown

Copyright © 2016 SRA OSS, Inc. Japan All rights reserved.

25• ケース4
Zabbixが障害を検知したときにFluentdで取得したデータと関連づけさせたい
GrafanaのAnnotaion機能を使って問題の事象確認が迅速に!

Annotaion

Zabbix通知内容

マウスのカーソルを合わせると表示

Copyright © 2016 SRA OSS, Inc. Japan All rights reserved.

26

おまけ• Zabbixの利用例

Template機能
グループの取得・表示
ホストの取得・表示

Anotation機能
Zabbixの通知をグラフに表示

Zabbixデータソース機能
Item名の部分一致でまとめてデータの取得・表示

Copyright © 2016 SRA OSS, Inc. Japan All rights reserved.

27

データソースとDBについて
 現在GrafanaとFluentd共通で対応しているDB(データソース)✓✓✓

Graphite
Elasticsearch
Prometheus✓ InfluxDB✓ Zabbix

 RDBMSは?
• アプリケーションや社内システムで利用しているDBはRDBMSなんだけど解析にGrafanaは使えないの？
• MySQLやPostgreSQLなら知っているけど、新しいDBの導入・運用の敷居は高い・・

 GrafanaコミュニティでもRDBMS対応の要望が多いということでCopyright © 2016 SRA OSS, Inc. Japan All rights reserved.

28

SRA OSSのGrafanaの取り組み• MySQLとPostgreSQL対応プラグインを作ってみました• 状況
githubにpullリクエストを出したところ(2016/5/25 ~ )https://github.com/grafana/grafana/pull/5364
https://github.com/sraoss/grafana-sqldb-datasource

Copyright © 2016 SRA OSS, Inc. Japan All rights reserved.

29• Sunburstパネルプラグインを作りました
https://github.com/sraoss/grafana-sunburst-panel

階層が表示可能な円グラフ

Copyright © 2016 SRA OSS, Inc. Japan All rights reserved.

30

デモ
VMware Player
VMwarePlayer
CentOS7
CPU 1個Memory1GByteZabbix
エージェントGrafanaのデータソース

Flunetd• Apacheアクセスログ• dstat 性能メトリックス• PostgerSQLを利用
Zabbix• 4台の監視ホストを登録• Linuxテンプレートを適用

Copyright © 2016 SRA OSS, Inc. Japan All rights reserved.

31