SlideShare a Scribd company logo
!
elasticsearch,fluentd,
Kibanaを使ったログ解析
July,13,2014
Tadayasu Yotsu
今回のゴール
よくブログなどで紹介されているfluentdを使ってログを収集し、
elastcisearchでデータの解析を行い、kibanaで可視化するということを
やってみる。
各softwareついては別途調べる。とりあえず動かして感覚をつかむことが今
回の目的。今回は1台だけで確認したので、fluentdはひとつ。
kibana
What is elasticsearch,fluentd,kibana ?
elasticsearch
オープンソースの検索エンジン。本家サイトでは「分散されたRestfulな検
索と分析のツール」と定義されている。よく比較されるのはApache
Solr。
Fluentd
オープンソースのログ収集ツール。イベントの受け取り、出力が全てプラグ
インとして実装しているため、柔軟にカスタマイズできるのが大きな特徴。
Kibana
elasticsearch内のデータを可視化するためのツール。洗練されたデザイ
ンが特徴。
動作環境
動作環境
AWS EC2
OS:RHEL6.5
ruby:2.1.2
nginx:1.6.0
elasticsearch:1.2.2
kibana3.1.0
fluentd:0.10.52
elasticsearchのインストール
$ wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.2.2.tar.gz	
$ tar zxvf elasticsearch-1.2.2.tar.gz
インストール
設定
config/elasticsearch.ymlが設定ファイルなのでこのファイルを修正
今回はとりあえず以下の設定だけ入れておく。
index.number_of_shards: 1 #シャードの数	
index.number_of_replicas: 0 #レプリカの数	
# Path to directory where to store index data allocated for this node.	
path.data: /home/ec2-user/elasticsearch-1.2.2/data	
# Path to log files:	
path.logs: /home/ec2-user/elasticsearch-1.2.2/logs
elasticsearchの起動と確認
$ ./elasticsearch	
[2014-07-16 08:12:29,980][INFO ][node ] [Conquest] version[1.2.2], pid[1590],
build[9902f08/2014-07-09T12:02:32Z]	
[2014-07-16 08:12:29,981][INFO ][node ] [Conquest] initializing ...	
[2014-07-16 08:12:29,989][INFO ][plugins ] [Conquest] loaded [], sites []	
[2014-07-16 08:12:34,817][INFO ][node ] [Conquest] initialized	
[2014-07-16 08:12:34,818][INFO ][node ] [Conquest] starting ...	
[2014-07-16 08:12:34,971][INFO ][transport ] [Conquest] bound_address {inet[/0:0:0:0:0:0:0:0:9300]},
publish_address {inet[/172.31.38.39:9300]}	
[2014-07-16 08:12:38,089][INFO ][cluster.service ] [Conquest] new_master [Conquest][2STmYQQfQ5Ssz4_9RJXXOQ]
[ip-172-31-38-39.us-west-2.compute.internal][inet[/172.31.38.39:9300]], reason: zen-disco-join (elected_as_master)	
[2014-07-16 08:12:38,247][INFO ][discovery ] [Conquest] elasticsearch/2STmYQQfQ5Ssz4_9RJXXOQ	
[2014-07-16 08:12:38,281][INFO ][http ] [Conquest] bound_address {inet[/0:0:0:0:0:0:0:0:9200]},
publish_address {inet[/172.31.38.39:9200]}	
[2014-07-16 08:12:38,320][INFO ][gateway ] [Conquest] recovered [0] indices into cluster_state	
[2014-07-16 08:12:38,320][INFO ][node ] [Conquest] started
起動
確認
9200番ポートに対してアクセスし、下記のようなレスポンスが返ってきたらOK
$ curl localhost:9200	
{	
"status" : 200,	
"name" : "Conquest",	
"version" : {	
"number" : "1.2.2",	
"build_hash" : "9902f08efc3ad14ce27882b991c4c56b920c9872",	
"build_timestamp" : "2014-07-09T12:02:32Z",	
"build_snapshot" : false,	
"lucene_version" : "4.8"	
},	
"tagline" : "You Know, for Search"	
}
Kibanaのインストール
$ wget https://download.elasticsearch.org/kibana/kibana/kibana-3.1.0.tar.gz	
$ tar zxvf kibana-3.1.0.tar.gz 	
$ mv kibana-3.1.0 /usr/locl
インストール
設定(config.jsを修正)
今回はとりあえず32行目あたりのelasticsearchの接続先指定の設定だけ入れておく。
elasticsearch: "http://ホスト名:9200",
$ wget http://nginx.org/download/nginx-1.6.0.tar.gz	
$ tar zxvf nginx-1.6.0.tar.gz 	
$ cd nginx-1.6.0	
$ ./configure —without-http_rewrite_module ; make ; sudo make install	
nginxをインストールし、kibanaにアクセスできるようにする。
$ sudo vi /usr/local/nginx/conf/nginx.conf	
server {	
listen 80;	
server_name localhost;	
#charset koi8-r;	
access_log /var/log/nginx.access.log;	
location / {	
root /usr/local/kibana-3.1.0/;	
index index.html index.htm;	
}
nginxのインストールと設定
$ wget http://nginx.org/download/nginx-1.6.0.tar.gz	
$ tar zxvf nginx-1.6.0.tar.gz 	
$ cd nginx-1.6.0	
$ ./configure —without-http_rewrite_module ; make ; sudo make install	
nginxをインストールし、kibanaにアクセスできるようにする。
$ sudo vi /usr/local/nginx/conf/nginx.conf	
http {	
・・・省略・・・	
   //以下を追記。 logのformatをltsv形式にする。fluetndでの記述を簡単にするため。	
log_format ltsv "host:$remote_addr"	
"tuser:$remote_user"	
"ttime:$time_local"	
"treq:$request"	
"tstatus:$status"	
"tsize:$body_bytes_sent"	
"treferer:$http_referer"	
"tua:$http_user_agent"	
"tforwardedfor:$http_x_forwarded_for"	
"treqtime:$request_time"	
"tapptime:$upstream_response_time";	
!
server {	
listen 80;	
server_name ホスト名;	
#charset koi8-r;	
access_log /usr/local/nginx/logs/nginx.access.log ltsv; ※ltsv形式で指定したパスにアクセスログを出力するように設定	
location / {	
root /usr/local/kibana-3.1.0/;	
index index.html index.htm;	
}
Kibanaの確認
$ sudo /usr/local/nginx/sbin/nginx
nginxの起動
ブラウザでhttp://<Nginxのサーバ接続先>/へアクセス
 EC2のSecurity Groupsでポート9200を開放していなかったので、アク
セスエラーに。。。開放したらアクセスOK。
fluentdのインストール
$ sudo yum install gcc zlib-devel openssl-devel libcurl-devel	
$ ./configure —prefix=/home/ec2-user/ruby	
$ make; make install ※インストール後にPATHは通しておく	
$ git clone https://github.com/fluent/fluentd.git	
$ cd fluentd	
$ gem install bundler	
$ bundle install	
$ rake build	
$ gem install pkg/fluentd-0.10.52.gem	
$ gem install fluent-plugin-elasticsearch
インストール
OS標準のrubyはバージョンが古かったのでソースからruby-2.1.2をインストールし、fluentd
もソースからインストールする。そして、fluentdからElasticsearchにログを転送するプラグイ
ンをインストールする。
fluentdの設定と起動
設定
access_logというタグを持ったログがElasticsearchに転送されるようにfluent.confに記載
<source>	
type tail	
path /usr/local/nginx/logs/nginx.access.log	
format ltsv	
time_format %d/%b/%Y:%H:%M:%S %z	
tag access_log	
pos_file /var/log/nginx.pos	
</source>	
!
<match access_log> 	
type elasticsearch	
host ホスト名	
port 9200	
type_name access_log	
logstash_format true	
logstash_prefix nginx_access	
logstash_dateformat %Y%m	
	
buffer_type memory	
buffer_chunk_limit 10m	
buffer_queue_limit 10	
flush_interval 1s	
retry_limit 16	
retry_wait 1s	
</match>
起動
$ fluetnd -c /home/ec2-user/fluentd/fluent.conf
動作確認
ブラウザでブラウザでhttp://<Nginxのサーバ接続先>/へアクセスし、Sample Dashboard
をクリックすると、access_logのデータが可視化されていることを確認できる。
感想
細かな動きはまだ把握できてないが、簡単にログを収集し、簡単に可視化
するところまでいけるのが魅力。
!
Webページへのアクセスだけではなく、ファイアウォールやsshのログを
解析し、可視化すれば、どこからのアタックが多いかなど容易に検知する
ことができそう。今度やってみる。

More Related Content

What's hot (20)

PDF
はてなのNagios - モニカジ#3
Shoichi Masuhara
 
PDF
WSL2+docker+JupyterとVS Codeリモート環境の構築
Saito5656
 
PDF
2日間Fabricを触った俺が
 色々解説してみる
airtoxin Ishii
 
KEY
Fabricでサーバー管理をDRYにしよう
max747
 
PDF
PaaSの作り方 Sqaleの場合
hiboma
 
PPTX
ラズパイ2で動く Docker PaaSを作ってみたよ
npsg
 
PDF
Elasticsearchで作る形態素解析サーバ
Shinsuke Sugaya
 
PPTX
initとプロセス再起動
Takashi Takizawa
 
PDF
20171106 ntt-tx-postgre sql-10
Toshi Harada
 
PDF
Fluentdへようこそ
Manabu Shinsaka
 
PDF
20171028 osc-nagaoka-postgre sql-10
Toshi Harada
 
PDF
Rancherで作る お手軽コンテナ運用環境!! ~ Kubenetes & Mesos 牧場でコンテナ牛を飼おう!~
Masataka Tsukamoto
 
PDF
今日から使い始めるChef
Masahiro NAKAYAMA
 
PPTX
それFluentdで! #fluentd
Atsuko Shibuya
 
PDF
マイクラ自動化枠第2回資料
Ryo Fujita
 
PDF
R以外の研究ツール
弘毅 露崎
 
PDF
コンテナ情報交換会2
Masahide Yamamoto
 
PDF
Apache Auroraの始めかた
Masahito Zembutsu
 
PPTX
オンプレ&HTTP Proxyな環境でRancherOS入れてみた話
YASUKAZU NAGATOMI
 
PDF
マイクラ自動化枠第1回資料
Ryo Fujita
 
はてなのNagios - モニカジ#3
Shoichi Masuhara
 
WSL2+docker+JupyterとVS Codeリモート環境の構築
Saito5656
 
2日間Fabricを触った俺が
 色々解説してみる
airtoxin Ishii
 
Fabricでサーバー管理をDRYにしよう
max747
 
PaaSの作り方 Sqaleの場合
hiboma
 
ラズパイ2で動く Docker PaaSを作ってみたよ
npsg
 
Elasticsearchで作る形態素解析サーバ
Shinsuke Sugaya
 
initとプロセス再起動
Takashi Takizawa
 
20171106 ntt-tx-postgre sql-10
Toshi Harada
 
Fluentdへようこそ
Manabu Shinsaka
 
20171028 osc-nagaoka-postgre sql-10
Toshi Harada
 
Rancherで作る お手軽コンテナ運用環境!! ~ Kubenetes & Mesos 牧場でコンテナ牛を飼おう!~
Masataka Tsukamoto
 
今日から使い始めるChef
Masahiro NAKAYAMA
 
それFluentdで! #fluentd
Atsuko Shibuya
 
マイクラ自動化枠第2回資料
Ryo Fujita
 
R以外の研究ツール
弘毅 露崎
 
コンテナ情報交換会2
Masahide Yamamoto
 
Apache Auroraの始めかた
Masahito Zembutsu
 
オンプレ&HTTP Proxyな環境でRancherOS入れてみた話
YASUKAZU NAGATOMI
 
マイクラ自動化枠第1回資料
Ryo Fujita
 

Similar to Log analysis by using elasticsearch,kibana and fluentd. (20)

PPTX
Cloudstack user group meeting in osaka
Naotaka Jay HOTTA
 
PDF
ElasticSearch+Kibanaでログデータの検索と視覚化を実現するテクニックと運用ノウハウ
Kentaro Yoshida
 
PDF
Lxc cf201207-presen
Kouhei Maeda
 
PPTX
Fluentd+elasticsearch+kibana(fluentd編)
Daisuke Kikuchi
 
KEY
Web Operations and Perl kansai.pm#14
Masahiro Nagano
 
PDF
成長を加速する minne の技術基盤戦略
Hiroshi SHIBATA
 
PDF
node-handlersocket
koichik
 
PDF
Hive undocumented feature
tamtam180
 
KEY
Alfrescoクラスタリング入門
Ashitaba YOSHIOKA
 
PDF
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
NTT DATA Technology & Innovation
 
PDF
SVNのすすめ&Redmineでプロジェクト管理
ina job
 
PDF
社内向けTech Talk資料~Fluentdの基本紹介~
Daisuke Ikeda
 
PDF
OpenStackでも重要な役割を果たすPacemakerを知ろう!
ksk_ha
 
PPTX
Rancher kubernetes storages
Tetsurou Yano
 
PDF
OpenWhisk - Docker action で MeCab を動かす
KUNITO Atsunori
 
PPT
Handlersocket etc. 20110906
akirahiguchi
 
PDF
OpenStack Object Storage; Overview
irix_jp
 
PDF
OSC 2011 Hokkaido 自宅SAN友の会(後半)
Satoshi Shimazaki
 
PDF
Hadoop on LXC
俊夫 森
 
PDF
No SSH (@nojima; KMC関東例会)
京大 マイコンクラブ
 
Cloudstack user group meeting in osaka
Naotaka Jay HOTTA
 
ElasticSearch+Kibanaでログデータの検索と視覚化を実現するテクニックと運用ノウハウ
Kentaro Yoshida
 
Lxc cf201207-presen
Kouhei Maeda
 
Fluentd+elasticsearch+kibana(fluentd編)
Daisuke Kikuchi
 
Web Operations and Perl kansai.pm#14
Masahiro Nagano
 
成長を加速する minne の技術基盤戦略
Hiroshi SHIBATA
 
node-handlersocket
koichik
 
Hive undocumented feature
tamtam180
 
Alfrescoクラスタリング入門
Ashitaba YOSHIOKA
 
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
NTT DATA Technology & Innovation
 
SVNのすすめ&Redmineでプロジェクト管理
ina job
 
社内向けTech Talk資料~Fluentdの基本紹介~
Daisuke Ikeda
 
OpenStackでも重要な役割を果たすPacemakerを知ろう!
ksk_ha
 
Rancher kubernetes storages
Tetsurou Yano
 
OpenWhisk - Docker action で MeCab を動かす
KUNITO Atsunori
 
Handlersocket etc. 20110906
akirahiguchi
 
OpenStack Object Storage; Overview
irix_jp
 
OSC 2011 Hokkaido 自宅SAN友の会(後半)
Satoshi Shimazaki
 
Hadoop on LXC
俊夫 森
 
No SSH (@nojima; KMC関東例会)
京大 マイコンクラブ
 
Ad

Recently uploaded (10)

PDF
生成AIパネルトーク(Interop25Tokyo APPS JAPAN M1-07,M2-07 嶋ポジショントーク)
嶋 是一 (Yoshikazu SHIMA)
 
PDF
ABC2025S LT講演「世界の窓から Androidこんにちは2025」アプリ自動生成の将来?ロボティクスの夢再び?
嶋 是一 (Yoshikazu SHIMA)
 
PDF
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
LFDT Tokyo Meetup
 
PDF
プライバシ保護のためのインターネットアーキテクチャの進化 (2025-07-11)
Jun Kurihara
 
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー SIG-Audioプレゼン資料_オーディオプラグイン開発_塩澤達矢.pdf
IGDA Japan SIG-Audio
 
PDF
20250630_aws_reinforce_2025_aws_sheild_network_security_director
uedayuki
 
PDF
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LFDT Tokyo Meetup
 
PDF
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
kataware
 
PDF
Hyperledger Fabric公式サンプル fabric-samples徹底解説
LFDT Tokyo Meetup
 
PDF
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
 
生成AIパネルトーク(Interop25Tokyo APPS JAPAN M1-07,M2-07 嶋ポジショントーク)
嶋 是一 (Yoshikazu SHIMA)
 
ABC2025S LT講演「世界の窓から Androidこんにちは2025」アプリ自動生成の将来?ロボティクスの夢再び?
嶋 是一 (Yoshikazu SHIMA)
 
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
LFDT Tokyo Meetup
 
プライバシ保護のためのインターネットアーキテクチャの進化 (2025-07-11)
Jun Kurihara
 
SIG-AUDIO 2025 Vol.02 オンラインセミナー SIG-Audioプレゼン資料_オーディオプラグイン開発_塩澤達矢.pdf
IGDA Japan SIG-Audio
 
20250630_aws_reinforce_2025_aws_sheild_network_security_director
uedayuki
 
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LFDT Tokyo Meetup
 
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
kataware
 
Hyperledger Fabric公式サンプル fabric-samples徹底解説
LFDT Tokyo Meetup
 
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
 
Ad

Log analysis by using elasticsearch,kibana and fluentd.