CentOS 5.9
elasticsearch 0.90.5
kibana3
fluentd 0.10.39
のインストールは事前済ませておいてください
今回は/var/log/messagesを解析してみたいと思います
elasticsearch 0.90.5
kibana3
fluentd 0.10.39
のインストールは事前済ませておいてください
今回は/var/log/messagesを解析してみたいと思います
■/etc/fluent/fluent.confの設定
1. ログ送信側(クライアント側)設定
vim /etc/fluent/fluent_elasticsearch_client.conf
<source>
type tail
format syslog
path /var/log/messages
tag log.messages
</source>
<match log.messages>
type forward
flush_interval 5s
<server>
name server_host_name
host server_host_name
port 24224
weight 60
</server>
</match>
2. ログ受信側(サーバ側)設定
vim /etc/fluent/fluent.conf
<source>
type forward
port 24224
</source>
<match log.messages>
index_name messages
logstash_format true
type elasticsearch
host server_host_name
port 9200
include_tag_key true
tag_key _key
flush_interval 10s
</match>
include_tag_key を true にするとelasticsearchにログを突っ込む際にmatchに合致したタグ情報を自動で付与してくれます■fluent-plugin-elasticsearchのインストール
fluent-gem install fluent-plugin-elasticsearch
■各種デーモンの起動
1. elasticsearch起動
各種起動が完了しエラーが表示されていないければkibana3を開きデータが入っていることを確認します
kibana3 サンプル画像
elasticsearch -f
2. kibana3起動(apache起動)service httpd start
3. サーバ側fluentd起動fluentd
4. クライアント側fluentd起動fluentd --conf /etc/fluent/fluent_elasticsearch_client.conf
各種起動が完了しエラーが表示されていないければkibana3を開きデータが入っていることを確認します
kibana3 サンプル画像
■Tips
syslogをelasticsearchに送る場合は素直に「format syslog」を使って下さい
以下にあるようにmappingを手動で設定してもダメでした
なので「format syslog」を使うのが定石になるのですが、ポイントとしてはサーバ側のfluent.confに「logstash_format true」を必ず入れて下さい
これを入れることでdynamic mappingもちゃんと働くので自分でmappingを登録する必要がなくなります
format /^(?<timestamp>\w{3} \d{2} \d{2}:\d{2}:\d{2}) (?<host>[^ ]*) (?<body>.*)$/こんな感じで自分でパースしてelasticsearchに渡すとうまくtimestampをパースしてくれません
以下にあるようにmappingを手動で設定してもダメでした
なので「format syslog」を使うのが定石になるのですが、ポイントとしてはサーバ側のfluent.confに「logstash_format true」を必ず入れて下さい
これを入れることでdynamic mappingもちゃんと働くので自分でmappingを登録する必要がなくなります
●elasticsearchにindexの登録とmappingの設定(今回は実施しなくて大丈夫です)
1. indexの登録
2. mapping登録
curl -X POST 'http://server_host_name:9200/messages'サーバ側のfluent.confに記載してあるindex_nameと同じindexを作成してください
2. mapping登録
curl -X PUT http://server_host_name:9200/messages/fluentd/_mapping -d '{ "app_log" : { "properties" : { "host" : {"type" : "string"}, "body" : {"type" : "string"}, "timestamp": {"format" : "MMM dd HH:mm:ss","type" : "date", "locale" : "ja_JP"} } } }'
0 件のコメント:
コメントを投稿