fluentd/Elasticsearch/kibanaを試す: (1)インストール

#はじめに
ログ収集、可視化などに良く使われているらしいfluentd, Elasticsearch, kibanaを試してみた時のメモです。
色々と応用が利きそうなので、これらを中心に色々と試してみたいと思います。
冗長化とかは置いておいて、とりあえず1環境内で動作検証を行うための最低限の構成で動作検証することを目指します。

##関連記事

[fluentd/Elasticsearch/kibanaを試す: (1)インストール](https://qiita.com/tomotagwork/items/6c8e7ad59095bce9a21e)
[fluentd/Elasticsearch/kibanaを試す: (2)基本構成/起動/停止](https://qiita.com/tomotagwork/items/572d46d59c3eb5723a4d)

#全体像/概要

fluentdでログを収集-加工し、Elasticsearchに蓄積します。蓄積されたデータをkibanaを使って可視化するという流れを想定します。

##[fluentd](https://www.fluentd.org/)
ログ収集のためのミドルウェアです。
様々な場所にある様々なフォーマットのログを収集、加工するための各種サポート機能が提供されています。
開発: TreasureData Inc.
ライセンス: Apache License 2.0

##[Elasticsearch](https://www.elastic.co/jp/products/elasticsearch)
収集したデータを蓄えるデータストアとしての機能、および、そのデータを検索する機能を提供するミドルウェアです。
Apache Luneneという全文検索のライブラリを利用しています。
開発: Elastic社
ライセンス: Apache License 2.0

##[kibana](https://www.elastic.co/jp/products/kibana)
データを分析、可視化するためのツールです。
Webのユーザーインターフェースを通して、集計処理やグラフ化、ダッシュボード作成などを行えます。
開発: Elastic社
ライセンス: Apache License 2.0

#環境情報
とりあえずなるべく新しいバージョンで。
REHL V7.5
fluentd V1.0 (td-agent V3)
Elasticsearch V6.2
kibana V6.2

#インストール

## fluentd

参考: [Installing Fluentd Using rpm Package](https://docs.fluentd.org/v1.0/articles/install-by-rpm)

上のリンクの指示に従い、curl経由でインストール用のシェルスクリプトを入手して実行！

```
[root@test06 ~]# curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent3.sh | sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   849  100   849    0     0   1862      0 --:--:-- --:--:-- --:--:--  1865
==============================
 td-agent Installation Script
==============================
This script requires superuser access to install rpm packages.
You will be prompted for your password by sudo.
読み込んだプラグイン:langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
treasuredata                                                                                       | 2.9 kB  00:00:00
読み込んだプラグイン:langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ td-agent.x86_64 0:3.1.1-0.el7 を インストール
--> 依存性の処理をしています: redhat-lsb-core のパッケージ: td-agent-3.1.1-0.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ redhat-lsb-core.x86_64 0:4.1-27.el7 を インストール
--> 依存性の処理をしています: redhat-lsb-submod-security(x86-64) = 4.1-27.el7 のパッケージ: redhat-lsb-core-4.1-27.el7.x86_64
--> 依存性の処理をしています: spax のパッケージ: redhat-lsb-core-4.1-27.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ redhat-lsb-submod-security.x86_64 0:4.1-27.el7 を インストール
---> パッケージ spax.x86_64 0:1.5.2-13.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

==========================================================================================================================
 Package                                 アーキテクチャー    バージョン                   リポジトリー               容量
==========================================================================================================================
インストール中:
 td-agent                                x86_64              3.1.1-0.el7                  treasuredata               44 M
依存性関連でのインストールをします:
 redhat-lsb-core                         x86_64              4.1-27.el7                   rhel-dvd                   37 k
 redhat-lsb-submod-security              x86_64              4.1-27.el7                   rhel-dvd                   15 k
 spax                                    x86_64              1.5.2-13.el7                 rhel-dvd                  260 k

トランザクションの要約
==========================================================================================================================
インストール  1 パッケージ (+3 個の依存関係のパッケージ)

総ダウンロード容量: 44 M
インストール容量: 148 M
Downloading packages:
警告: /run/media/root/RHEL-7.5 Server.x86_64/Packages/redhat-lsb-core-4.1-27.el7.x86_64.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID fd431d51: NOKEY
redhat-lsb-core-4.1-27.el7.x86_64.rpm の公開鍵がインストールされていません
td-agent-3.1.1-0.el7.x86_64.rpm                                                                    |  44 MB  00:00:14
--------------------------------------------------------------------------------------------------------------------------
合計                                                                                      3.1 MB/s |  44 MB  00:00:14
file:///run/media/root/RHEL-7.5%20Server.x86_64/RPM-GPG-KEY-redhat-release から鍵を取得中です。
Importing GPG key 0xFD431D51:
 Userid     : "Red Hat, Inc. (release key 2) <security@redhat.com>"
 Fingerprint: 567e 347a d004 4ade 55ba 8a5f 199e 2f91 fd43 1d51
 From       : /run/media/root/RHEL-7.5%20Server.x86_64/RPM-GPG-KEY-redhat-release
Importing GPG key 0x2FA658E0:
 Userid     : "Red Hat, Inc. (auxiliary key) <security@redhat.com>"
 Fingerprint: 43a6 e49c 4a38 f4be 9abf 2a53 4568 9c88 2fa6 58e0
 From       : /run/media/root/RHEL-7.5%20Server.x86_64/RPM-GPG-KEY-redhat-release
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : spax-1.5.2-13.el7.x86_64                                                                  1/4
  インストール中          : redhat-lsb-submod-security-4.1-27.el7.x86_64                                              2/4
  インストール中          : redhat-lsb-core-4.1-27.el7.x86_64                                                         3/4
  インストール中          : td-agent-3.1.1-0.el7.x86_64                                                               4/4
adding 'td-agent' group...
adding 'td-agent' user...
Installing default conffile...
prelink detected. Installing /etc/prelink.conf.d/td-agent-ruby.conf ...
Configure td-agent to start, when booting up the OS...
THANK YOU FOR USING TREASURE DATA’s PACKAGED VERSION OF FLUENTD (TD-AGENT). IF YOU ARE NOT A TREASURE DATA CUSTOMER AND NEED HELP TROUBLESHOOTING OR THE ENTERPRISE VERSION VISIT https://fluentd.treasuredata.com
rhel-dvd/productid                                                                                 | 1.6 kB  00:00:00
  検証中                  : redhat-lsb-core-4.1-27.el7.x86_64                                                         1/4
  検証中                  : redhat-lsb-submod-security-4.1-27.el7.x86_64                                              2/4
  検証中                  : spax-1.5.2-13.el7.x86_64                                                                  3/4
  検証中                  : td-agent-3.1.1-0.el7.x86_64                                                               4/4

インストール:
  td-agent.x86_64 0:3.1.1-0.el7

依存性関連をインストールしました:
  redhat-lsb-core.x86_64 0:4.1-27.el7    redhat-lsb-submod-security.x86_64 0:4.1-27.el7    spax.x86_64 0:1.5.2-13.el7

完了しました!

Installation completed. Happy Logging!

```

シェル・スクリプト中では、fluentdのインストールを行うためにyum repositoryを新たに追加し、yumによりインストールされるようです。つまり、インターネットへの接続が必要です。
実行後は以下のリポジトリ定義が追加されています。

```td.repo
[treasuredata]
name=TreasureData
baseurl=http://packages.treasuredata.com/3/redhat/$releasever/$basearch
gpgcheck=1
gpgkey=https://packages.treasuredata.com/GPG-KEY-td-agent
```

以下の辺りにファイルが展開されます。

* モジュール類： /opt/td-agent/
* 構成ファイル： /etc/td-agent/td-agent.conf
* ログ： /var/log/td-agent/


以下からrpmパッケージをダウンロードしてインストールすることもできるっぽい。
[download fluentd](https://www.fluentd.org/download)

## Elasticsearch

参考: [Install Elasticsearch with RPM - Download and install the RPM manually](https://www.elastic.co/guide/en/elasticsearch/reference/6.2/rpm.html#install-rpm)

zipをダウンロードして展開するという方法もあるようですが、systemdでの起動/停止管理ができたりするのでRPMでのインストールがお勧め。
ここではrpmパッケージをダウンロードしてrpmコマンドでインストールするやり方をやってみます。

```
[root@test06 /Inst_Image/elasticsearch624]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.rpm
--2018-05-22 10:49:06--  https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.rpm
artifacts.elastic.co (artifacts.elastic.co) をDNSに問いあわせています... 107.21.237.188, 107.21.253.15, 107.21.237.95, ...
artifacts.elastic.co (artifacts.elastic.co)|107.21.237.188|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 28992177 (28M) [binary/octet-stream]
`elasticsearch-6.2.4.rpm' に保存中

100%[================================================================================>] 28,992,177   694KB/s 時間 26s

2018-05-22 10:49:33 (1.06 MB/s) - `elasticsearch-6.2.4.rpm' へ保存完了 [28992177/28992177]

[root@test06 /Inst_Image/elasticsearch624]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.rpm.sha512
--2018-05-22 10:49:39--  https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.rpm.sha512
artifacts.elastic.co (artifacts.elastic.co) をDNSに問いあわせています... 184.73.245.233, 107.21.253.15, 107.21.237.188, ...
artifacts.elastic.co (artifacts.elastic.co)|184.73.245.233|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 153 [application/octet-stream]
`elasticsearch-6.2.4.rpm.sha512' に保存中

100%[================================================================================>] 153         --.-K/s 時間 0s

2018-05-22 10:49:40 (11.0 MB/s) - `elasticsearch-6.2.4.rpm.sha512' へ保存完了 [153/153]


[root@test06 /Inst_Image/elasticsearch624]# shasum -a 512 -c elasticsearch-6.2.4.rpm.sha512
elasticsearch-6.2.4.rpm: OK


[root@test06 /Inst_Image/elasticsearch624]# rpm -ivh elasticsearch-6.2.4.rpm
警告: elasticsearch-6.2.4.rpm: ヘッダー V4 RSA/SHA512 Signature、鍵 ID d88e42b4: NOKEY
準備しています...              ################################# [100%]
Creating elasticsearch group... OK
Creating elasticsearch user... OK
更新中 / インストール中...
   1:elasticsearch-0:6.2.4-1          ################################# [100%]
### 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
```

以下の辺りにファイルが展開されます。

* モジュール類： /usr/share/elasticsearch/
* 構成ファイル： /etc/elasticsearch/elasticsearch.yml
* ログ： /var/log/elasticsearch/

## kibana

参考: [Install Kibana with RPM - Download and install the RPM manually](https://www.elastic.co/guide/en/kibana/current/rpm.html#install-rpm)

ここではrpmパッケージをダウンロードしてrpmコマンドでインストールするやり方をやってみます。
流れはelasticsearchと同様。

```
[root@test06 /Inst_Image/kibana]# wget https://artifacts.elastic.co/downloads/kibana/kibana-6.2.4-x86_64.rpm
--2018-05-22 13:11:26--  https://artifacts.elastic.co/downloads/kibana/kibana-6.2.4-x86_64.rpm
artifacts.elastic.co (artifacts.elastic.co) をDNSに問いあわせています... 107.21.253.15, 107.21.237.188, 23.23.109.100, ...
artifacts.elastic.co (artifacts.elastic.co)|107.21.253.15|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 87218216 (83M) [binary/octet-stream]
`kibana-6.2.4-x86_64.rpm' に保存中

100%[================================================================================>] 87,218,216  1.43MB/s 時間 72s

2018-05-22 13:12:39 (1.16 MB/s) - `kibana-6.2.4-x86_64.rpm' へ保存完了 [87218216/87218216]


[root@test06 /Inst_Image/kibana]# shasum -a 512 kibana-6.2.4-x86_64.rpm
4a8d9c262da1679ba15b323f3eaedbd9d6f3dab9f74b326c8f17442ad23692f0bd2a81a396691e3c1627017923e14bba40bc24b7349003cfdd127c9492829105  kibana-6.2.4-x86_64.rpm

[root@test06 /Inst_Image/kibana]# rpm -ivh kibana-6.2.4-x86_64.rpm
警告: kibana-6.2.4-x86_64.rpm: ヘッダー V4 RSA/SHA512 Signature、鍵 ID d88e42b4: NOKEY
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:kibana-6.2.4-1                   ################################# [100%]
```

以下の辺りにファイルが展開されます。

* モジュール類： /usr/share/kibana/
* 構成ファイル： /etc/kibana/kibana.yml


一通りインストールはこれで完了。割とスムーズにいきました。