ヒトリ歩き

愚痴とかいろいろ書きます

Fluentdで解析したデータをElasticSearchに登録する

前回、vmstatのログをFluentdで解析するところまでをやりました。

kotapontan.hatenablog.com


今回は、vmstatのログをFluentdで解析したデータをElasticsearchに登録してみます。

Elasticsearch用のプラグインをインストールしよう

Elasticsearchにデータを登録するため、FluentdにElasticsearchのプラグインをインストールする必要があります。
docs.fluentd.org

インストールには、fluent-gemコマンドでインストールします。

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

コンフィグファイルを変更する

前回の記事からmatchディレクティブをElasticsearch用に変更します。

パラメータ 役割
@type Elasticsearch プラグインの種類を指定する。ここでは、elasticsearchを指定。
host 192.168.56.10 Elasticsearchが動作しているIPアドレスまたはホスト名を指定。
port 9200 Elasticsearchのポート番号を指定。
logstash_format true インデックス名にlogstash-%Y.%m.%dを使用。
<match vmstat>
  @type elasticsearch
  host 192.168.56.10
  port 9200
  logstash_format true
  <buffer tag,time>
    timekey 1m
  </buffer>
</match>

コンフィグファイルの全体

コンフィグファイルの内容は下記の通りです。

<source>
  @type tail
  path /tmp/vmstat.log
  pos_file /tmp/vmstatlog.pos
  <parse>
    @type regexp
    expression /^([ ]*)(?<r>[^ ]+)([ ]*)(?<b>[^ ]+)([ ]*)(?<swpd>[^ ]+)([ ]*)(?<free>[^ ]+)([ ]*)(?<buff>[^ ]+)([ ]*)(?<cache>[^ ]+)([ ]*)(?<si>[^ ]+)([ ]*)(?<so>[^ ]+)([ ]*)(?<bi>[^ ]+)([ ]*)(?<bo>[^ ]+)([ ]*)(?<in>[^ ]+)([ ]*)(?<cs>[^ ]+)([ ]*)(?<us>[^ ]+)([ ]*)(?<sy>[^ ]+)([ ]*)(?<id>[^ ]+)([ ]*)(?<wa>[^ ]+)([ ]*)(?<st>[^ ]+)/m
  </parse>
  tag vmstat
</source>

<filter vmstat>
  @type grep
  <exclude>
    key r
    pattern /[^0-9]+/
  </exclude>
</filter>

<filter vmstat>
  @type record_transformer
  enable_ruby true
  <record>
    timestamp ${time.strftime('%Y-%m-%d %H:%M:%S')}
  </record>
</filter>

<match vmstat>
  @type elasticsearch
  host 192.168.56.10
  port 9200
  logstash_format true
  <buffer tag,time>
    timekey 1m
  </buffer>
</match>

コンフィグファイルの再ロード

systemctl コマンドでコンフィグファイルを再読み込みさせます。

systemctl reload agent.service

curlコマンドを実行し、Elasticsearchに登録されているインデックスの一覧を取得します。
インデックスの一覧に「logstash-%Y.%m.%d」(%Y.%m.%dは、年月日が設定されます)というインデックスが存在すれば、データが投入されています。

curl -X GET "192.168.56.10:9200/_cat/indices"
green  open .kibana_task_manager_1   -jJ608RsS7iUs12ictqQqg 1 0    2 1  26.5kb  26.5kb
yellow open my-index                 Qm0U07INShOudh9ETs-Khw 1 1    0 0    283b    283b
green  open .apm-agent-configuration gVpD7FXKTjWehXgGoE_vZw 1 0    0 0    283b    283b
yellow open logstash-2020.03.10      ibjavSzwQ3uYzvj_eFbiTw 1 1 1848 0 634.4kb 634.4kb
green  open .kibana_1                BFeKbCqCS5GG6hChzIz2cQ 1 0   21 4  33.1kb  33.1kb

まとめ

Fluentdのマニュアルを参考にコンフィグファイルを変更しました。
データ投入まで出来たので、次回はKibanaでグラフ表示まで出来たらいいなと思います。