前回、vmstatのログをFluentdで解析するところまでをやりました。
今回は、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でグラフ表示まで出来たらいいなと思います。