Tweet about this on TwitterShare on FacebookShare on Google+

お問い合わせ

会社名任意
ご担当者様氏名必須
メールアドレス必須
お問合せ内容必須

個人情報保護方針

BLOG

Kibana+Elasticsearch+Fluentdによるログ解析サーバーの構築

Kibana

■ Kibanaとは?

Kibanaはオープンソースのログ監視・解析ソフトウェアでブラウザから操作する事ができます。
類似したソフトウェアにGraylog2がありますが、syslogサーバーとしては動作しません。

syslogとfluentdを組み合わせて得た情報をElasticsearchへ保存し、
Kibanaで表示するという使い方をする事により、ログをブラウザで管理する事が可能です。
またfluentdはApacheのログ送信だけでなく、各種アプリケーションログを監視する事も可能です。
Graylog2と同様、Elasticsearchをバックエンドストレージと全文検索エンジンに利用しています。

Graylog2と異なりメモリの負荷は少ないですが、
Elasticsearchで50~60%程度の1コアCPU負荷があります。

 

■ ファイアウォールの設定

以下のポートを解放する必要があります。
【グローバル側】 TCP: 5601、ソースIPアドレスを制限推奨 (ログ表示用)
【ローカル側】 TCP:9200 (ElasticSearchで使用)

 

■ 前提ソフトウェア(ElasticSearch)のインストール

・前提パッケージのインストール

yum -y install rubygems java-1.7.0-openjdk java-1.7.0-openjdk-devel ruby ruby-devel nc

・rubygemsのアップデート

gem install bundle
gem update --system

・elasticsearchのインストール
※/opt/elasticsearchにインストールされます。

cd /opt
wget http://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.20.4.tar.gz
tar -xvzf elasticsearch-0.20.4.tar.gz
mv elasticsearch-0.20.4/ elasticsearch
curl -k -L http://github.com/elasticsearch/elasticsearch-servicewrapper/tarball/master | tar -xz
mv elasticsearch-elasticsearch-servicewrapper-ae5417e/service elasticsearch/bin/
/opt/elasticsearch/bin/service/elasticsearch install
ln -s `readlink -f elasticsearch/bin/service/elasticsearch` /usr/bin/elasticsearch_ctl
sed -i -e 's|# cluster.name: elasticsearch|cluster.name: kibana|' /opt/elasticsearch/config/elasticsearch.yml
mkdir /opt/elasticsearch/logs

・elasticsearchの起動

 /etc/init.d/elasticsearch start

・elasticsearchの動作確認

curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'

 

■ FluentdとElasticsearchプラグインのインストール

・vi /etc/yum.repos.d/td.repo (fluentdのリポジトリ追加)

[treasuredata]
name=TreasureData
baseurl=http://packages.treasure-data.com/redhat/$basearch
gpgcheck=0

・fluentd本体のインストール

yum -y install td-agent

・Elasticsearchプラグインのインストール

/usr/lib64/fluent/ruby/bin/fluent-gem install fluent-plugin-elasticsearch

・vi /etc/td-agent/td-agent.conf (サンプル)

<source>
type unix
</source>

<source>
type forward
</source>

<match *.syslog.**>
index_name adminpack
type_name syslog
type elasticsearch
include_tag_key true
tag_key @log_name
host _サーバーのIPアドレス_
port 9200
logstash_format true
flush_interval 10s
</match>

<match *.apache.**>
index_name adminpack
type_name apache
type elasticsearch
include_tag_key true
tag_key @log_name
host _サーバーのIPアドレス_
port 9200
logstash_format true
flush_interval 10s
</match>

・fluentdの起動

 /etc/init.d/td-agent start

 

■ Kibanaのインストール

・ソースの取得

git clone --branch=kibana-ruby https://github.com/rashidkpc/Kibana.git

・インストールフォルダに移動後以下を実行

gem install bundler
gem install eventmachine -v '1.0.3'
bundle install

・設定ファイルの編集
vi ./KibanaConfig.rb

Elasticsearch = "localhost:9200"

#Set the Net::HTTP read/open timeouts for the connection to the ES backend
ElasticsearchTimeout = 500

# The port Kibana should listen on
KibanaPort = 5601

# The adress ip Kibana should listen on. Comment out or set to
# 0.0.0.0 to listen on all interfaces.
#KibanaHost = '127.0.0.1'
KibanaHost = '0.0.0.0'

・Kibanaの起動

ruby kibana.rb

・動作確認
http://SERVER_IPADDR:5601/へアクセス
syslogを表示する場合、ホストとmessageを+で表示対象にしておくと分かりやすいです。

ページの先頭へ