Fluentd + Elastichsearch + Kibana(4)Fluentdでホスト名を追加する

Fluentdでログを転送する際、ホスト名も付加したい。そんなときは、標準のfilterプラグインを使って、以下の設定を加える。

sudo vi /etc/td-agent/td-agent.conf

<filter **>
  @type record_transformer
  <record>
    hostname ${hostname}
  </record>
</filter>

このときに、matchタグよりも上位に記述しないと動作しないので注意が必要である。

Fluentd + Elastichsearch + Kibana(3)FluentdからElasticsearchへの転送

Fluentdの設定

前回までにFluentd + Elastichsearch + Kibanaの環境設定と、ログの送信元となるMacの設定を行った。

今回は、受信したデータをElasticsearchに転送する処理を扱う。設定は以下の通り。

sudo vi /etc/td-agent/td-agent.conf

<source>
  @type forward
</source>

<match example.app>
  type elasticsearch
  host localhost
  port 9200
  type_name exampleapp
  logstash_format true
</match>

type_nameは、Elasticsearchタイプ名を指定する。識別できる文字列なら好きに指定して良いようだ。logstash_formatは、logstashフォーマットで出力するオプションで、とりあえず今回はtrueにしておく。

Fluentdの再起動

Fluentdを再起動する。

sudo systemctl restart td-agent

Kinabaにアクセス

Kibanaにアクセスすると、データの受信に伴って、インストール直後とは表示が変わっている。ログインすると受信データが確認できる。

https://XXX.XXX.XXX.XXX:5601

  • インストール直後
    Kibana
  • データ入力完了後
    Kibana

Fluentd + Elastichsearch + Kibana(1)CentOS7で環境構築する

Fluentdで収集したログをElastichsearch + Kibanaに入れて可視化する。ここを参考にしながら、まずはCentOS7に環境構築してみる。

Elastichsearch

OpenJDKのインストール

Elasticsearchは、インストールにJAVA7以降(Java8 Update 20以降、もしくはJava7 Update 55以降)のJDKを必要とする。Oracle JavaもしくはOpen JDKがサポートされているようなので、今回はOpenJDK8をインストールする。

sudo yum -y install java-1.8.0-openjdk

Elastichsearch のインストール

RPMからElastichsearchをインストールする。

sudo rpm -ivh https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/rpm/elasticsearch/2.3.5/elasticsearch-2.3.5.rpm

インストールが終わると以下のように忠告されるので、

### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd
 sudo systemctl daemon-reload
 sudo systemctl enable elasticsearch.service
### You can start elasticsearch service by executing
 sudo systemctl start elasticsearch.service

言われた通りにコマンドを実行し、Elastichsearchを起動。

sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch

Fluentd

Fluentdをインストール

自動インストールスクリプトが用意されているので、これを実行する。現在、Fluentdは2.X系で開発が進められているので、td-agent2を指定してインストールを行う。

sudo curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh

FluentdとElastichsearchとの連携

FluentdからElastichsearchへデータを受け渡すためのプラグインをインストールする。

sudo yum -y install gcc libcurl-devel
sudo td-agent-gem install fluent-plugin-elasticsearch

Fluentdを起動

sudo systemctl enable td-agent
sudo systemctl start td-agent

Kibana

Kibanaのインストール

Elastichsearchのリポジトリを追加する。

sudo vi /etc/yum.repos.d/elastic.repo

[kibana-4.4]
name=Kibana repository for 4.4.x packages
baseurl=https://packages.elastic.co/kibana/4.4/centos
gpgcheck=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

yumからインストールする。

sudo yum install kibana -y

Kibanaを起動

sudo systemctl enable kibana
sudo systemctl start kibana

Kibanaを起動

これでインストール作業が全て完了。
インストールしたサーバの5601ポートにアクセスするとこんなページが見れるはず。

https://XXX.XXX.XXX.XXX:5601

Kibana