Elasticsearch Logstash Kibanaの環境構築

2018年5月10日(木)
石井 葵
【誰でも簡単にログ分析!OSSのBIツールElastic Stack解説書!】 株式会社インプレスR&Dより発行された「Elastic Stackで作るBI環境 誰でもできるデータ分析入門」の立ち読みコーナー第2回です。

Logstashのインストール

 LogstashもElasticsearchと同様、インストール方式を選択することが可能です。ただ、ツールごとにインストール方式を分けるやり方ではディレクトリ構造が異なってしまいますので、Elasticsearchと同じインストール方法を採るようにしましょう。

とにかく使ってみたい場合(Linux):zipファイル

 こちらもElasticsearchと同様、zipファイルを展開するだけでインストールが終了します。サービス起動用コマンドは付属しません。

ちゃんと運用もしたい場合(rpmパッケージを利用するLinux):rpmパッケージ

 こちらもサービス起動用コマンドの存在や、ディレクトリ構成が自動で割り当てられる点などもElasticsearchと同様です。

ちゃんと運用もしたい場合(debパッケージを利用するLinux):debパッケージ

 こちらもLinux種別によって使うパッケージが違うだけ、という点でElasticsearchと同様です。

とにかく使ってみたい、かつDocker実行環境がある場合:Dockerコンテナ

 Elasticsearchと同様、Elastic社からDockerコンテナが提供されています。ただし、Elasticsearchとは別のコンテナのため、同時にコンテナを複数起動する必要があります。

 LogstashはRubyで作成されていますが、起動にJavaを必要とします。こちらもヒープメモリもかなり消費するツールなので注意が必要です。

Puppet、Chef、Ansibleの実行環境がある場合:GitHubのレシピを利用

 公式にElasticから各ツールのレシピが提供されているので、GitHubからクローンして利用することも可能です。

Windows/Mac上に構築する場合:zipファイル

 Windowsの場合、インストール方法はzipファイル一択となります。Macはbrewコマンドを用いることでインストールすることもできますが、Elastic公式ではサポートされていないようなので、今回はインストール方法から除外しています。

zipファイルを用いたインストール(Logstash)

 Elasticsearchと同様、OSごとに使用するzipファイルが違う以外、インストール手順に差はありません。

公式サイトからzipファイルをダウンロード

 Elasticの公式サイトにアクセスし、zipファイルをダウンロードします。

 https://www.elastic.co/jp/downloads/logstash

zipファイルの解凍

 Elasticsearchをインストールする際に作成したディレクトリに、ダウンロードしたzipファイルを解凍します。

zipファイルの解凍

# 必要であれば
$ unzip logstash-5.4.0

rpm パッケージを用いたインストール(Logstash)

インストール用PGP Keyの入手

 LogstashもElasticsearchと同様にPGPにより暗号化されています。そのため公式リポジトリから公開されている署名された鍵を入手し、保存する必要があります。Elasticsearchと同じサーバーにLogstashをインストールする場合はこの手順は不要ですが、別サーバーにインストールする場合は鍵の保存を行って下さい。

PGP鍵の入手(rpmパッケージを使用する場合)

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

PGP鍵の入手(debパッケージを使用する場合)

$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

RPMリポジトリからインストールする場合

 /yum/repos.d/配下にlogstash.repoを新規作成し、yumコマンド(Red Hat系Linuxの場合)を用いてインストールします。バージョン指定しない場合、最新版がインストールされます。このインストール方法はCentOS5よりも下のバージョンでは動作しませんので注意して下さい。

 また、rpmパッケージからインストールする方法はLogstashでは公式サポートされていません。合わせて注意して下さい。

/etc/yum.repos.d/logstash.repoの作成

$ sudo touch /etc/yum.repos.d/logstash.repo
$ sudo vi /etc/yum.repos.d/logstash.repo
# 下記を記載する
[logstash-5.x]
name=Elastic 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

Logstashのインストール

$ sudo yum install logstash

debパッケージを用いたインストール(Logstash)

必要パッケージのインストール

 Logstashを起動するためにはapt-transport-httpsパッケージが必要となります。こちらもElasticsearchと同じサーバーにLogstashをインストールする場合、既にインストールされているため手順を省略することが可能です。別サーバーにLogstashをインストールする場合のみ必要な手順となります。

apt-transport-httpsのインストール

$ sudo apt-get install apt-transport-https

aptリポジトリからインストールする場合

 次にElastic Stackのaptリポジトリを/etc/apt/sources.list.d/に登録し、apt-getコマンドを用いてインストールします。バージョン指定しない場合、最新版がインストールされます。

 こちらも、既にElasticsearchをインストールしている場合、リポジトリ登録は不要です。インストールコマンドのみ実施して下さい。

リポジトリの登録

$ echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list

Logstashのインストール

$ sudo apt-get update && sudo apt-get install logstash

Logstash起動前の設定項目

動作確認用のlogstash.conf作成

 この後の章で詳しく述べますが、Logstashはconfファイルを読み込むことでファイルの取り込み元などを指定します。コンフィグファイルの名前は任意の名前を指定することができます。この本ではファイル名を「logstash.conf」として説明を行います。

 まずは動作確認用に次のコードをconfファイルへ記述します。confファイルはパッケージインストールを使用した場合/etc/logstash/conf.d/配下に作成します。

# logstash.confの編集

$ vim /etc/logstash/conf.d/logstash.conf
# 下記の通り編集
-----------------------------------------------------
# 標準入力を受け付ける
input {
  stdin { }
}
# 標準出力を行う
output {
  stdout { codec => rubydebug }
}

Logstashの動作確認

Logstashの起動(zipファイルでインストールした場合)

 bin下にあるlogstashスクリプトから、Logstashを起動します。OSがWindowsの場合、同階層にlogstash.batが配置されているのでそちらを起動します。-fオプションでlogstash.confの名前を指定して起動する必要があります。

Logstashの起動(zipファイルからインストールした場合)

$ bin/logstash -f logstash.conf

Logstashの起動(パッケージからインストールした場合)

 こちらもサーバのOSによって起動コマンドが違います。Logstashは/etc/init.d配下のlogstashスクリプトを使用するか、systemctlコマンドを使用する場合に分かれます。

 起動スクリプトを使用する場合、次のコマンドでLogstashサービスを起動します。

Logstashの起動・停止(起動スクリプト)

$ sudo /etc/init.d/logstash start | status | stop | restart


 プロセスの自動起動・自動停止設定は次のコマンドを用いて行います。

サーバ起動時にElasticsearchサービスが自動で立ち上がるように設定

$ sudo update-rc.d elasticsearch defaults 95 10

 systemctlコマンドを使用する場合、次のコマンドでLogstashサービスを起動します。

Logstashの起動・停止(systemdコマンド)

$ sudo systemctl start logstash.service

サーバ起動時にLogstashサービスが自動で立ち上がるように設定

sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable logstash.service

動作確認

 logstash.confにタイプミスがない場合、“Logstash startup completed”と出力されます。コマンドプロンプトに好きな文字列を打ち込んでみましょう。文字列がそのまま返り値として出力された場合、正しくセットアップできています。

Logstashの動作確認

# Logstash起動後、標準入力で"hello world"を入力
hello world
{
    "@timestamp" => 2017-03-05T07:22:40.899Z,
      "@version" => "1",
          "host" => "hostname",
       "message" => "hello world"
}

Kibanaのインストール

 KibanaもElasticsearchなどと同様に、インストール方法が複数準備されています。インストール方法の種類はElasticsearch・Logstashと同様のため、紹介は省略します。

 KibanaもElasticsearch・Logstashとインストール方式を合わせておきましょう。

zipファイルを用いたインストール

 OSごとにzipファイルが異なる以外、インストール手順に差はありません。

公式サイトからzipファイルをダウンロード

 Elasticの公式サイトにアクセスし、zipファイルをダウンロードします。ElasticsearchやLogstashと違い、OSの種類によってzipファイルが異なります。環境に合わせてファイルを選択して下さい。

https://www.elastic.co/jp/downloads/kibana

zipファイルの解凍

 Elasticsearchをインストールする際に作成したディレクトリに、ダウンロードしたzipファイルを解凍します。

zipファイルの解凍

# 必要であれば
$ unzip kibana-5.4.0-darwin-x86_64.tar.gz

rpm パッケージを用いたインストール(Kibana)

インストール用PGP Keyの入手

 Kibanaパッケージも他パッケージと同様、PGP(Pretty Good Privacy)を用いて暗号化されています。使用にはPGP鍵の入手が必要なため、Elastic社が提供する公開されている署名された鍵をダウンロードします。Elasticsearch・Logstashと同じサーバーにインストールする場合、この手順は省略します。


PGP鍵の入手

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

RPMリポジトリからインストールする場合

 /etc/yum.repos.d配下にkibana.repoを登録し、yumコマンドを用いてインストールします。バージョン指定しない場合、最新版がインストールされます。リポジトリの追記はElasticsearch・Logstashどちらかがインストールされていれば不要です。

kibana.repoの作成

# リポジトリファイルの作成
$ touch /etc/yum.repos.d/kibana.repo
# 下記を追記
[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

Kibanaのインストール

$ sudo yum install kibana

rpmパッケージをダウンロードしてインストールする場合

 wgetコマンドを用いてパッケージをダウンロードし、rpmコマンドでインストールを行います。明示的にバージョン指定したい場合、rpmパッケージからインストールすると良いでしょう。

 サーバーが32bitの場合と64bitの場合ではrpmパッケージが別となっているため、注意して下さい。

rpmパッケージからKibanaをインストール(64bit)

# Kibanaのダウンロード
$ wget https://artifacts.elastic.co/downloads/kibana/kibana-5.4.0-x86_64.rpm
# パッケージの完全性を検証し、Kibanaをインストール
$ sha1sum kibana-5.4.0-x86_64.rpm 
$ sudo rpm --install kibana-5.4.0-x86_64.rpm

rpmパッケージからKibanaをインストール(32bit)

# Kibanaのダウンロード
$ wget https://artifacts.elastic.co/downloads/kibana/kibana-5.4.0-i686.rpm
# パッケージの完全性を検証し、Kibanaをインストール
$ sha1sum kibana-5.4.0-i686.rpm 
$ sudo rpm --install kibana-5.4.0-i686.rpm

debパッケージを用いたインストール(Kibana)

インストール用PGP Keyの入手

 debパッケージもElasticsearchなどと同様にPGPを用いて暗号化されています。使用にはPGP鍵の入手が必要なため、Elastic社が提供する公開されている署名された鍵をダウンロードします。同じサーバーにElasticsearch・Logstashをインストールしている場合、この手順は不要です。

PGP鍵の入手

$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

必要パッケージのインストール

 Kibanaを起動するためにapt-transport-httpsパッケージをインストールする必要があります。こちらもPGP鍵の登録と同様に、ElasticsearchかLogstashが既にインストールされているサーバーであれば手順の実施は不要です。

apt-transport-httpsパッケージのインストール

$ sudo apt-get install apt-transport-https

aptリポジトリからインストールする場合

 /etc/apt/sources.list.dにElastic Stack用のリポジトリを登録し、apt-getコマンドを用いてインストールします。バージョン指定しない場合、最新版がインストールされます。既にリポジトリ登録されている場合、リポジトリの登録は不要です。

リポジトリの登録

$ echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list

Kibanaのインストール

$ sudo apt-get update && sudo apt-get install kibana

debパッケージをダウンロードしてインストールする場合

 wgetコマンドを用いてdebパッケージをダウンロードし、dpkgコマンドでインストールを行います。明示的にバージョン指定したい場合、debパッケージからインストールすると良いでしょう。

 サーバーが32bitの場合と64bitの場合でパッケージが変わる点はrpmパッケージを利用する場合と同じです。

Kibanaのインストール(64bitの場合)

# Kibanaのダウンロード
$ wget https://artifacts.elastic.co/downloads/kibana/kibana-5.4.0-amd64.deb
# パッケージの整合性を確認し、インストール
$ sha1sum kibana-5.4.0-amd64.deb 
$ sudo dpkg -i kibana-5.4.0-amd64.deb

Kibanaのインストール(32bitの場合)

# Kibanaのダウンロード
$ wget https://artifacts.elastic.co/downloads/kibana/kibana-5.4.0-i386.deb
# パッケージの整合性を確認し、インストール
$ sha1sum kibana-5.4.0-i386.deb 
$ sudo dpkg -i kibana-5.4.0-i386.deb

Kibana起動前の設定項目

kibana.ymlの編集

 前にも述べた通り、KibanaはElasticsearchからデータを取得するためElasticsearchのURLを指定する必要があります。URLの指定はkibana.ymlから行います。

 kibana.ymlのパスはインストール方法によって異なりますが、パッケージからインストールした場合は/etc/kibana配下に配置されています。

kibana.ymlにElasticsearchのURLを記載

sudo vim /etc/kibana/kibana.yml
# 21行目の下にURLを追記(ElasticsearchのURLが10.0.0.100:9200の場合)
-----------------------------------------------------------------
20 # The URL of the Elasticsearch instance to use for all your queries.
21 #Elasticsearch.url: "http://localhost:9200"
   Elasticsearch.url: "http://10.0.0.100:9200"
-----------------------------------------------------------------

 また、Kibana自体のURLはデフォルトで「http://localhost:5601」となっています。こちらを変更したい場合、kibana.ymlの7行目を指定します。合わせてKibanaがインストールされているサーバーのホスト名も指定しておくと良いでしょう。

kibana.ymlでKibanaのURLを指定(ホスト名dev_webserver01、IPアドレス10.0.0.100の場合)

-----------------------------------------------------------------
6 # To allow connections from remote users, set this parameter to a non-loopback addr    ess.
7 #server.host: "localhost"
8 server.host: "10.0.0.100"
~~~~~~~省略~~~~~~~~~~~~~~
18 # The Kibana server's name.  This is used for display purposes.
19 #server.name: "your-hostname"
20 server.name: "dev_webserver01"
-----------------------------------------------------------------

Kibanaの動作確認

Kibanaの起動

 zipファイルでインストールを行った場合、binフォルダ下にあるkibanaスクリプトから起動します。Kibanaを起動する前にElasticsearchを起動しておいてください。(Windowsはkibana.batから起動します。)

kibana-5.4.0-darwin-x86_64 mofumofu$ bin/kibana

 パッケージからインストールした場合、serviceコマンドかsystemctlコマンドから起動することができます。パッケージからインストールした場合、OS起動時に自動的にKibanaサービスを立ち上げる設定ができますので実施しておくと良いです。

Kibanaの起動コマンド(serviceコマンドで起動する場合)

sudo -i service kibana start | stop | status |restart

Kibanaの自動起動設定(serviceコマンド使用の場合)

sudo chkconfig --add kibana

Kibanaの起動コマンド(systemctlコマンドで起動する場合)

# 停止時はstart部分をstopに変更する
sudo systemctl start kibana.service

Kibanaの自動起動設定(systemctlコマンド使用の場合)

sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable kibana.service

動作確認

 起動後、ブラウザにhttp://localhost:5601(kibana.ymlでURLを編集している場合はそのURL)と入力します。Kibanaの画面が閲覧できればインストールは完了です。参考画像を載せますので、こちらと同じような画面が見えているか確認して下さい。

Kibana画面(インストール直後)

(次回へつづく)

Elasticsearch、Kibana、Logstashを使用したデータ分析基盤の設計・構築をメインに行なうインフラエンジニアだったが、最近配属が変わって新卒なエンジニアの教育を実施している。新卒エンジニアと一緒にプログラミングやアプリケーション開発手法を学ぶ日々を過ごしている。

連載バックナンバー

運用・管理書籍・書評
第8回

トラブルシューティング

2018/6/14
【誰でも簡単にログ分析!OSSのBIツールElastic Stack解説書!】 株式会社インプレスR&Dより発行された「Elastic Stackで作るBI環境 誰でもできるデータ分析入門」の立ち読みコーナー第8回です
運用・管理書籍・書評
第7回

Dashboard画面を使ってグラフを一覧表示する

2018/6/7
【誰でも簡単にログ分析!OSSのBIツールElastic Stack解説書!】 株式会社インプレスR&Dより発行された「Elastic Stackで作るBI環境 誰でもできるデータ分析入門」の立ち読みコーナー第7回です。
運用・管理書籍・書評
第6回

Visualize画面でデータを可視化する

2018/5/31
【誰でも簡単にログ分析!OSSのBIツールElastic Stack解説書!】 株式会社インプレスR&Dより発行された「Elastic Stackで作るBI環境 誰でもできるデータ分析入門」の立ち読みコーナー第6回です。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています