こんにちは、セシオスサポートチームです。
以前にご紹介した記事「fluentdを利用してJournaldのログを取得する方法」から、取得したログを可視化するためにElasticsearchにデータを投入するまでの手順をご紹介したいと思います。
これから導入を検討されている皆様のご参考になれば幸いです。
fluentdで取得したログをElasticsearchへ投入しログを可視化する
CentOS 7.4 ※仮想マシン
fluentd(td-agent) 1.1.0
Elasticsearch 6.2.4
※fluentd(td-agent)とElasticsearchは同じ環境に導入している想定で記事を記載しています。
fluentd(td-agent)の導入手順は前回の記事「fluentdを利用してJournaldのログを取得する方法」を参考にしてください。
導入した素のtd-agentだとElasticsearchへのデータ投入は難しいためプラグインを追加します。
td-agentを導入した際に追加される”fluent-gem”コマンドでプラグインを追加可能です。
# /opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-elasticsearch
前回の記事で変更したconfigファイルに設定を追加します。
/etc/td-agent/td-agent.conf
<source>
@type systemd
tag journald.log
path /var/run/log/journald
read_from_head false
<storage>
@type local
persistent false
path journald.pos
</storage>
<entry>
field_map {"MESSAGE": "log", "_PID": ["process", "pid"], "_CMDLINE": "process", "_COMM": "cmd"}
fields_strip_underscores true
fields_lowercase true
</entry>
</source>
<match journald.log>
@type elasticsearch_dynamic
host localhost
port 9200
index_name fluentd
type_name log
</match>
td-agentをリスタートして動作確認
# systemctl restart td-agent
確認用データを投入してtd-agentがログを取得しElasticsearchへデータを投入できているか確認します。
# logger test
Elasticsearchへデータが投入されたか確認します。
# curl localhost:9200/fluentd/_search?pretty
確認用データが投入されていれば検索結果が取得できます。
"hits" : [
{
"_index" : "fluentd",
"_type" : "log",
"_id" : "SkprXGUBnd5DaZnB9BaS",
"_score" : 1.0,
"_source" : {
"log" : "test",
"process" : "29105",
"pid" : "29105",
"uid" : "0",
"gid" : "0",
"boot_id" : "d6335d73fabd479685f9a5b279d74bf1",
"machine_id" : "9b9103cd518647e781d576e9b6c60704",
"hostname" : "test.secioss.local",
"transport" : "syslog",
"priority" : "5",
"selinux_context" : "unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023",
"syslog_facility" : "1",
"syslog_identifier" : "root",
"source_realtime_timestamp" : "1999999999999999"
}
}
configファイルの設定を変更することでログの取捨選択や整形も行えます。ぜひ試してみてください。
以上がデータ投入までの手順になります。
今回はログを投入するまでの手順をご紹介しました。
投入したデータはKibanaで可視化するなどの利用が可能です。
ぜひ活用してみてください。