karakaram-blog

Fluentd + Elasticsearch5 + Kibana5構築(1) インストール編

 ツイート 0  シェア 0  Google+1 0  Hatena 5

Fluentd + Elasticsearch5 + Kibana5のインストール方法

ログ可視化ツールの 3 点セット、Fluentd + Elasticsearch5 + Kibana5 をインストールしてみたのでメモ。全部で 6 回くらいを予定しています。バージョンは以下の通り。

  • CentOS 7.2
  • Fluentd 2.3.4
  • Elasticseach 5.2.0
  • Kibana 5.2.0

目次

  1. 構成
  2. Ansible Playbook
  3. client マシンに Fluentd をインストール
  4. elasticsearch マシンに Elasticsearch インストール
  5. elasticsearch マシンに Fluentd をインストール
  6. kibana マシンに Kibana をインストール

構成

VirtualBox で仮想マシンを 3 台立ち上げます。

マシン名 IPアドレス ミドルウェア
client 192.168.33.11 Apache, Fluentd
elasticsearch 192.168.33.12 Fluentd, Elasticsearch
kibana 192.168.33.13 Kibana

Vagrantfile はこんな感じ

Vagrant.configure(2) do |config|

  config.vm.box = "bento/centos-7.2"

  config.vm.define "client" do |vm|
  vm.vm.hostname = "client"
  vm.vm.network "private_network", ip: "192.168.33.11"
  vm.vm.provider "virtualbox" do |vb|
    vb.gui = false
    vb.memory = "1024"
    vb.cpus = "2"
    end
  end

  config.vm.define "elasticsearch" do |vm|
  vm.vm.hostname = "elasticsearch"
  vm.vm.network "private_network", ip: "192.168.33.12"
  vm.vm.provider "virtualbox" do |vb|
    vb.gui = false
    vb.memory = "2048"
    vb.cpus = "2"
    end
  end

  config.vm.define "kibana" do |vm|
  vm.vm.hostname = "kibana"
  vm.vm.network "private_network", ip: "192.168.33.13"
  vm.vm.provider "virtualbox" do |vb|
    vb.gui = false
    vb.memory = "1024"
    vb.cpus = "2"
    end
  end

end

Ansible Playbook

コマンドラインでの導入方法を紹介していきますが、Ansible Playbook もあります。ご利用はご自由にどうぞ。
karakaram/ansible/elastic-stack | GitHub

client マシンに Fluentd をインストール

client マシンにログイン

$ vagrant ssh client

準備

公式サイト Before Installing Fluentd | Fluentd を参考に client マシンに Fluentd(td-agent) をインストールする準備をします。

chrony(ntp) をインストール

$ sudo yum install chrony

ファイルディスクリプタの上限を増やす

root soft nofile 65536
root hard nofile 65536
* soft nofile 65536
* hard nofile 65536

設定確認

$ ulimit -n

65536

Fluentd インストール

公式サイトの Installing Fluentd Using rpm Package | Fluentd を参考に Fluentd 本体をインストールします。

インストール

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

起動

$ sudo systemctl start td-agent.service

自動起動設定

$ systemctl enable td-agent.service

動作確認

$ curl -X POST http://localhost:8888/debug.test -d 'json={"action":"login","user":2}'

/var/log/td-agent/td-agent.log にログが出力されていれば OK。

$ tail /var/log/td-agent/td-agent.log

2017-01-26 21:42:41 +0900 debug.test: {"action":"login","user":2}

elasticsearch マシンに Elasticsearch インストール

elasticsearch マシンにログイン

$ vagrant ssh elasticsearch

JDK インストール

Setup Elasticsearch > Java(JVM) Version にある通り、Elasticsearch には Java8 が必要です。OracleJDK と OpenJDK どちらにも対応しているとのこと。

今回は OpenJDK1.8 をインストール。

$ sudo yum install java-1.8.0-openjdk

Elasticsearch インストール

Install Elasticsearch with RPM を参考に Elasticsearch をインストールします。

GPG KEY登録

$ sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

リポジトリ登録

[elasticsearch-5.x]
name=Elasticsearch repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

インストール

$ sudo yum install elasticsearch

他のホストから接続できるように設定変更

デフォルトの状態だと localhost からしか繋がらないので、network.host パラメータを編集して他のホストから接続できるようにします。

network.host: _local_, _site_

参考サイト

Network Settings

起動

起動

$ sudo systemctl start elasticsearch.service

自動起動設定

$ systemctl enable elasticsearch.service

動作確認

$ curl -XGET 'localhost:9200/?pretty'

{
"name" : "a78HTlj",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "Jk0g3BCPTfSCv2xLAiw88A",
"version" : {
"number" : "5.1.2",
"build_hash" : "c8c4c16",
"build_date" : "2017-01-11T20:18:39.146Z",
"build_snapshot" : false,
"lucene_version" : "6.3.0"
},
"tagline" : "You Know, for Search"
}

elasticsearch マシンに Fluentd をインストール

elasticsearch マシンにログイン

$ vagrant ssh elasticsearch

Fluentd をインストール

elasticsearch マシンに client マシンと同じ手順で Fluentd をインストール します。

fluent-plugin-elasticsearch をインストール

Fluentd から Elasticsearch にデータを登録するためのプラグインをインストールします。

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

kibana マシンに Kibana をインストール

kibana マシンにログイン

$ vagrant ssh kibana

Install Kibana with RPM を参考に、kibana マシンに Kibana をインストールします。

GPG KEY登録

$ sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

リポジトリ登録

[kibana-5.x]
name=Kibana repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

インストール

$ sudo yum install kibana

/etc/kibana/kibana.yml 編集

$ sudo vi /etc/kibana/kibana.yml

ホストマシンから接続できるように server.host を設定

server.host: 0.0.0.0

elasticsearch に接続できるように elasticsearch.url を設定

elasticsearch.url: "http://192.168.33.12:9200"

起動

$ sudo systemctl start kibana.service

自動起動設定

$ systemctl enable kibana.service

動作確認

ホストマシンのブラウザから http://192.168.33.13/status にアクセスして Status: Green の画面が表示されれば OK です。

Kibana status

次回は Fluentd から Elasticsearch にデータを転送するあたりをやります。

 ツイート 0  シェア 0  Google+1 0  Hatena 5