メインコンテンツへスキップ

Ubuntu 18.04.4 LTSにElasticsearch、Logstash、Kibanaを導入

·☕5分
#テック系 #Elastic #環境構築
Rakuichi
著者
Rakuichi
ヴィッセルサポのIT屋

今回はUbuntuにElastic Stackを導入する手順について記録も兼ねて書いていこうと思います。

Elastic Stackは、Elasticsearch、Kibana、Beats、Logstashの4つのツールの総称です。 公式サイトに書かれている各ツールの説明は以下のとおりです。

  • Elasticsearch

    特定のIPアドレスによるアクティビティを確認する、あるいはトランザクションリクエストのスパイクを分析する、または半径2キロ以内にある牛丼店を探す… データを使って解くあらゆる"課題"は、最終的に検索の課題です。Elasticsearchなら、データを手軽に、スケーラブルに格納、検索、分析することができます。

  • Kibana

    Kibanaでデータを美しく可視化して、探索をはじめてみましょう。ワッフルチャートやヒートマップ、時系列分析など、豊富な機能が揃います。多様なデータソースに対応する事前構成済みのダッシュボードを使って、KPIに注目したプレゼンテーションを作成したり、1つの画面ですべてのデプロイを管理したりすることもできます。

  • Beats

    Beatsは、データシッピングに特化した無料かつオープンなプラットフォームです。何百、何千ものマシンからLogstashやElasticsearchにデータを転送できます。

  • Logstash

    Logstashは、オープンソースのサーバーサイドデータ処理パイプラインです。膨大な数のソースから同時にデータを取り込み、変換して、お好みの格納庫(スタッシュ)に送信します。

この中でもElasticsearch、Kibana、Logstashの3つをインストールしていきます。

環境 #

今回導入する環境と、インストールしたバージョンは以下のとおりです。

  • Ubuntu 18.04.4 LTS
  • Java 1.8.0_252
  • Elasticsearch 7.8.0
  • Kibana 7.8.0
  • Logstash 7.8.0

インストールの手順 #

インストールの手順は以下になります。

  1. Javaのインストール
  2. Elasticsearchのインストール
  3. Kibanaのインストール
  4. Logstashのインストール

1. Javaのインストール #

ElasticStackはJavaを入れておかないと動かないので入れておきます。

add-apt-repository ppa:webupd8team/java
sudo apt install openjdk-8-jre-headless

確認

$ java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-8u252-b09-1~18.04-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)

2. Elasticsearch #

2.1. インストールと自動起動設定 #

Javaが正しくインストールできたら、下記コマンドでElasticsearchのインストールをします。

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo apt install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt update && sudo apt install elasticsearch

自動で立ち上がるように設定します。

sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service

2.2. 外部接続用に設定の変更 #

外部PCからアクセスするための設定を行います。まずはじめにポートの開放を行います。

sudo ufw allow 9200
sudo ufw allow 9300

下記コマンドで、Elasticsearchの設定を書き換えます。

sudo nano /etc/elasticsearch/elasticsearch.yml

以下の内容を加えます。

network.bind_host: 0
discovery.seed_hosts: ["127.0.0.1", "[::1]"]

2.3. 再起動、状態と接続の確認 #

設定を書き換えたら、Elasticsearchの再起動を行います。

再起動後、起動状態の確認も行います。Activeのところに「active」と書かれていれば正しく動いています。

$ sudo systemctl restart elasticsearch.service
$ sudo systemctl status elasticsearch.service

 ●elasticsearch.service - Elasticsearch
   Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled; vendor preset: ena
   Active: active (running) since Sun 2020-06-21 15:50:49 JST; 2h 1min ago
     Docs: https://www.elastic.co
 Main PID: 3447 (java)
    Tasks: 110 (limit: 4915)
   CGroup: /system.slice/elasticsearch.service
           ├─3447 /usr/share/elasticsearch/jdk/bin/java -Xshare:auto -Des.networkaddress.cach
           └─3642 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/contro

<サーバのIPアドレス>:9200で外部からアクセス可能か確認することができます。接続すると以下のような内容が表示されるはずです。

{
  "name" : "<サーバ名>",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "<cluster_uuid>",
  "version" : {
    "number" : "7.8.0",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "<build_hash>",
    "build_date" : "2020-06-14T19:35:50.234439Z",
    "build_snapshot" : false,
    "lucene_version" : "8.5.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

3. Kibana #

3.1. インストールと自動起動設定 #

インストールと自動起動設定は下記コマンドで可能です。

sudo apt install kibana

Kibanaの自動起動設定

sudo systemctl daemon-reload
sudo systemctl enable kibana.service

3.2. 外部接続用に設定の変更 #

Elasticsearchと同様に外部PCからアクセスするための設定を行います。

まずはじめにポートの開放を行います。

sudo ufw allow 5451

下記コマンドで、Kibanaの設定を書き換えます。

sudo nano /etc/kibana/kibana.yml

以下のよう一部を書き換えます。

server .host : "0.0.0.0"

3.3. 再起動、状態と接続の確認 #

設定を書き換えたら、Kibanaの再起動を行います。

再起動後、起動状態の確認も行います。Activeのところに「active」と書かれていれば正しく動いています。

$ sudo systemctl restart kibana.service
$ sudo systemctl status kibana.service

 ● kibana.service - Kibana
   Loaded: loaded (/etc/systemd/system/kibana.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2020-06-21 15:42:32 JST; 3h 5min ago
 Main PID: 860 (node)
    Tasks: 11 (limit: 4915)
   CGroup: /system.slice/kibana.service
           └─860 /usr/share/kibana/bin/../node/bin/node /usr/share/kibana/bin/../src/cli

ここまでくれば、「<サーバのIPアドレス>:5601」でKibanaの画面を確認できます。

Kibana画面

4. Logstash #

4.1. インストールと自動起動設定 #

インストールと自動起動設定は下記コマンドで可能です。

sudo apt install logstash

自動起動設定

sudo systemctl daemon-reload
sudo systemctl enable logstash.service

4.2. Logstashの設定書き換え #

Web上の解説サイトでは /etc/logstash/conf.d/ 配下に .conf ファイルを置くと、設定が読み込まれてデータの投入ができると書いているところもありますが、どうやら現在のバージョンでは、自ら明示的に書いてやらないといけないようです。

変更部分はLogstash本体の設定ファイル/etc/logstash/logstash.yml内のpath.config:の部分を以下のように書き換えます。

sudo nano /etc/logstash/logstash.yml
# 元の状態
# path.config:
# ↓書き直した後
path.config: /etc/logstash/conf.d

まとめ #

今回は、Elasticstackのインストール方法についてまとめました。

今後、自分が持っているテキストデータなどをElasticでインデクシングして、活用していこうと思います。

スポンサードリンク

Related

Windows(Python Launcher)のPipenvでバージョンを指定して仮想環 …
·☕3分
#テック系 #Python #Pipenv #環境構築
Pipenv、Docker(マルチステージビルド)、devcontainerで開発環境と本 …
·☕4分
#テック系 #Python #Pipenv #Streamlit #Docker #環境構築
脱chromeしてedgeに移行してみた
·☕5分
#テック系 #環境構築 #アプリ
脱AnacondaしてPipenvでPython環境作り
·☕8分
#テック系 #Python #Pipenv #環境構築