fluentdでElasticsearchへデータを投入する手順

schedule 2018/09/07  refresh 2023/11/08

 

 

こんにちは、セシオスサポートチームです。

 

以前にご紹介した記事「fluentdを利用してJournaldのログを取得する方法」から、取得したログを可視化するためにElasticsearchにデータを投入するまでの手順をご紹介したいと思います。

これから導入を検討されている皆様のご参考になれば幸いです。

 

 

やること

fluentdで取得したログをElasticsearchへ投入しログを可視化する

 

 

環境

CentOS 7.4 ※仮想マシン
fluentd(td-agent) 1.1.0
Elasticsearch 6.2.4
※fluentd(td-agent)とElasticsearchは同じ環境に導入している想定で記事を記載しています。

 

 

手順

 

1. 導入

fluentd(td-agent)の導入手順は前回の記事「fluentdを利用してJournaldのログを取得する方法」を参考にしてください。

 

2. プラグインのインストール

導入した素のtd-agentだとElasticsearchへのデータ投入は難しいためプラグインを追加します。
td-agentを導入した際に追加される”fluent-gem”コマンドでプラグインを追加可能です。

 

# /opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-elasticsearch

 

3. configファイルの調整

前回の記事で変更した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>

 

 

4. 動作確認

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で可視化するなどの利用が可能です。
ぜひ活用してみてください。