yum install git openssl-devel java-1.8.0-openjdk java-1.8.0-openjdk-develgit clone https://github.com/sstephenson/rbenv.git ~/.rbenv
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
exec $SHELL -lrbenv install -v 2.2.2
rbenv rehashrbenv install jruby-1.7.19rbenv shell jruby-1.7.19
gem install norikra --no-ri --no-rdoc
mkdir /etc/norikra
mkdir /var/log/norikra
mkdir /var/run/norikranorikra start --stats=/etc/norikra/norikra.json -l /var/log/norikra --daemonize- Norikra WEBUI http://(IPアドレス):26578/
- targetはログ送信側のtagに合わせるがtagに「.」が入っているとNorikraがエラーを吐くので「_」に変更する
- 「.」が含まれるtagは自動的に「_」に変換されてNorikraに格納されるので問題無し
norikra-client target open httpd_accesslog- ログ送信側のformatに合わせてコマンドラインからテストデータを送信する
- 型は文字列を送ればstringに、数値を送ればintegerとして自動的に定義される
echo '{"host":"string", "ident":"string" , "user":"string" , "request_time":100 , "request_first_line":"string" , "response_status":100 , "response_size":100 , "refer":"string" , "user_agent":"string" , "cookie":"string" }' | norikra-client event send httpd_accesslog- Norikra WEBUIで、作成したTargetsのFieldsに上記が設定されたことを確認する
/usr/lib64/fluent/ruby/bin/fluent-gem install fluent-plugin-norikravi /etc/td-agent/td-agent.conf<source>
type secure_forward
shared_key fluentd_pre
self_hostname ${hostname}
cert_auto_generate yes
authentication yes
port 24224
<user>
username fluentd
password fluentdpassword
</user>
</source>
<match httpd.accesslog>
type norikra
norikra localhost:26571
retry_limit 3
target_map_tag true
</match>
<source>
type norikra
norikra localhost:26571
<fetch>
method sweep
tag query_name
tag_prefix norikra.query
interval 10s
target out
</fetch>
</source>
<match norikra.query.*>
type elasticsearch
host localhost
port 9200
include_tag_key true
tag_key @log_name
type_name norikra.httpd.accesslog
logstash_format true
logstash_prefix norikra
flush_interval 10s
</match>
-
1つ目の
ディレクティブ - ログ受信用設定
-
1つ目のディレクティブ
- 受信したhttpd.accesslogタグが付与されているログをNorikraに渡す
-
2つ目の
ディレクティブ - Norikraでoutグループに属するクエリにより抽出されたログを10秒置きに取得する
- 上記設定の場合タグ名はnorikra.query.(query名)となる
-
2つ目のディレクティブ
- norikra.query.(query名)のタグが付与されたログを10秒置きにelasticsearchに渡す
- インデックス名をnorikra-*に変更
- ログを受信すると自動的にNorikraに送られるが、クエリ設定をしないと何も処理をしない
- 以下の様にsqlライクにクエリ設定を行う
- elasticsearchに送る場合はgroupをoutにすること
yum install -y readline-devel
rbenv install -l
rbenv install jruby-9.1.12.0
rbenv versions
rbenv shell jruby-9.1.12.0
gem install norikra --no-ri --no-rdoc