Elastic Stack · 4 min read · Nov 25, 2025

Ubuntu 18.04 LTSにElastic Stackをインストールする方法

Elasticsearchは、Javaで開発されたLuceneに基づくオープンソースの検索エンジンです。HTTPダッシュボードWebインターフェース(Kibana)を備えた分散型マルチテナントの全文検索エンジンを提供します。データはJSONドキュメントスキームでクエリされ、取得され、保存されます。Elasticsearchは、ログファイルを含むあらゆる種類のテキストドキュメントを検索するために使用できるスケーラブルな検索エンジンです。Elasticsearchは「Elastic Stack」またはELK Stackの中心です。

Logstashは、イベントとログを管理するためのオープンソースツールです。データ収集のためのリアルタイムパイプラインを提供します。Logstashは、ログデータを収集し、データをJSONドキュメントに変換し、Elasticsearchに保存します。

Kibanaは、Elasticsearch用のオープンソースデータ可視化ツールです。Kibanaは美しいダッシュボードWebインターフェースを提供します。Elasticsearchからのデータを管理し、可視化することができます。それは美しいだけでなく、強力でもあります。

このチュートリアルでは、サーバーログの監視のためにUbuntu 18.04サーバーにElastic Stackをインストールおよび構成する方法を示します。次に、Ubuntu 18.04およびCentOS 7クライアントサーバーに「Elastic beats」をインストールおよび構成する方法を示します。

前提条件

  • 3台のサーバー - 4GB RAM/メモリを持つUbuntu 18.04を「elk-master」として - 10.0.15.10
  • 512MB/1GB RAM/メモリを持つUbuntu 18.04を「elk-client01」として - 10.0.15.21
  • 512MB/1GB RAM/メモリを持つCentOS 7.5を「elk-client02」として - 10.0.15.22
  • ルート権限

何をするか?

  1. Elastic Stackをインストールする 1. Javaをインストールする
  2. ElasticSearchをインストールおよび構成する
  3. Kibanaをインストールおよび構成する
  4. KibanaのリバースプロキシとしてNginxをインストールおよび構成する
  5. Logstashをインストールおよび構成する
  6. Ubuntu 18.04にFilebeatをインストールおよび構成する
  7. CentOS 7.5にFilebeatをインストールおよび構成する
  8. テスト

ステップ1 - Elastic Stackをインストールする

この最初のステップでは、「elk-master」サーバーに「Elastic Stack」をインストールおよび構成します。このステップのすべてのコマンドとステージを「elk-master」サーバーでのみ実行します。Elasticsearch、Logstashシッパー、Nginx Webサーバーを使用したKibanaダッシュボードを含むElastic Stackの各コンポーネントをインストールおよび構成します。

Javaをインストールする

Elastic Stackの展開にはJavaが必要です。ElasticsearchはJava 8を必要とします。Oracle JDK 1.8を使用することをお勧めし、PPAリポジトリからJava 8をインストールします。

「software-properties-common」と「apt-transport-https」パッケージをインストールし、次にPPA「webupd8team」Javaリポジトリを追加します。以下の「apt install」と「add-apt-repository」コマンドを実行します。

sudo apt install software-properties-common apt-transport-https -y  
sudo add-apt-repository ppa:webupd8team/java -y

次に、java8-installerをインストールします。

sudo apt install oracle-java8-installer -y

インストールが完了したら、Javaのバージョンを確認します。

java -version

システムにJava 1.8がインストールされました。

次に、Java環境を構成します。以下のコマンドを使用してJavaバイナリファイルを確認します。

update-alternatives --config java

そして、あなたはJavaバイナリファイルが「 /usr/lib/jvm/java-8-oracle 」ディレクトリにあることを確認します。

次に、「profile.d」ディレクトリの下に「java.sh」というプロファイルファイルを作成します。

vim /etc/profile.d/java.sh

以下のJava環境構成を貼り付けます。

#Set JAVA_HOME
JAVA_HOME="/usr/lib/jvm/java-8-oracle"
export JAVA_HOME
PATH=$PATH:$JAVA_HOME
export PATH

保存して終了します。

ファイルを実行可能にし、構成ファイルを読み込みます。

chmod +x /etc/profile.d/java.sh  
source /etc/profile.d/java.sh

次に、以下のコマンドを使用してJava環境を確認します。

echo $JAVA_HOME

そして、あなたはJavaディレクトリが「 /usr/lib/jvm/java-8-oracle 」ディレクトリにあることを確認します。

Javaの構成

Elasticsearchをインストールする

Javaをインストールした後、Elastic Stackの最初のコンポーネントであるelasticsearchをインストールします。

Elastic Stackキーを追加し、Elasticリポジトリをシステムに追加します。

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

次に、リポジトリを更新し、以下のコマンドを使用してelasticsearchパッケージをインストールします。

sudo apt update  
sudo apt install elasticsearch -y

インストールが完了したら、「/etc/elasticsearch」ディレクトリに移動し、構成ファイル「elasticsearch.yml」を編集します。

cd /etc/elasticsearch/  
vim elasticsearch.yml

「network.host」行のコメントを外し、値を「localhost」に変更し、elasticsearchポート構成のために「http.port」行のコメントを外します。

network.host: localhost
http.port: 9200

保存して終了します。

次に、elasticsearchサービスを起動し、システム起動時に毎回起動するように有効にします。

systemctl start elasticsearch  
systemctl enable elasticsearch

elasticsearchは現在稼働中です。netstatコマンドとcurlコマンドを使用して確認します。

netstat -plntu  
curl -XGET 'localhost:9200/?pretty'

これで、elasticsearchバージョン「6.2.4」がデフォルトポート「9200」で実行されていることがわかります。

elasticsearchポートの確認

elasticsearchのインストールが完了しました。

Kibanaダッシュボードのインストールと構成

2番目のコンポーネントはKibanaダッシュボードです。ElasticリポジトリからKibanaダッシュボードをインストールし、Kibanaサービスをlocalhostアドレスで実行するように構成します。

以下のaptコマンドを使用してKibanaダッシュボードをインストールします。

sudo apt install kibana -y

次に、「/etc/kibana」ディレクトリに移動し、構成ファイル「kibana.yml」を編集します。

cd /etc/kibana/  
vim kibana.yml

「server.port」、「server.host」、および「elasticsearch.url」の行のコメントを外します。

server.port: 5601
server.host: "localhost"
elasticsearch.url: "http://localhost:9200"

保存して終了します。

次に、kibanaサービスを起動し、システム起動時に毎回起動するように有効にします。

sudo systemctl enable kibana  
sudo systemctl start kibana

Kibanaダッシュボードは現在「localhost」アドレスとデフォルトポート「5601」で稼働しています。以下のnetstatコマンドを使用して確認します。

netstat -plntu

Kibanaのインストール

Kibanaダッシュボードのインストールが完了しました。

KibanaのリバースプロキシとしてNginxをインストールおよび構成する

このチュートリアルでは、KibanaダッシュボードのリバースプロキシとしてNginx Webサーバーを使用します。

システムにNginxと「apache2-utils」パッケージをインストールします。

sudo apt install nginx apache2-utils -y

インストールが完了したら、「/etc/nginx」構成ディレクトリに移動し、「kibana」という名前の新しい仮想ホストファイルを作成します。

cd /etc/nginx/  
vim sites-available/kibana

以下のNginx仮想ホスト構成を貼り付けます。

server {
    listen 80;
 
    server_name elastic-stack.io;
 
    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/.kibana-user;
 
    location / {
        proxy_pass http://localhost:5601;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

保存して終了します。

次に、Kibanaダッシュボードにアクセスするための新しい基本認証Webサーバーを作成します。以下のようにhtpasswdコマンドを使用して基本認証を作成します。

sudo htpasswd -c /etc/nginx/.kibana-user elastic  
Type the elastic user password

Kibana仮想ホストを有効にし、すべてのnginx構成をテストします。

ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/  
nginx -t

エラーがないことを確認し、Nginxサービスを起動し、システム起動時に毎回起動するように有効にします。

systemctl enable nginx  
systemctl restart nginx

KibanaダッシュボードのリバースプロキシとしてのNginxのインストールと構成が完了しました。

Nginxの構成

Logstashをインストールおよび構成する

このガイドのElastic Stackの最後のコンポーネントは「Logstash」です。クライアントソースからのサーバーログを集中管理するためにLogstashをインストールおよび構成し、すべてのデータ(Syslog)をフィルタリングおよび変換し、それをストレージ(Elasticsearch)に転送します。

Logstashをインストールする前に、サーバーのOpenSSLバージョンを確認してください。

openssl version -a

このガイドでは、OpenSSL「1.0.2o」を使用します。OpenSSLバージョン1.1.2をまだ使用している場合、logstashとfilebeatのSSL接続でエラーが発生します。

以下のaptコマンドを使用してlogstashをインストールします。

sudo apt install logstash -y

インストールが完了したら、クライアントfilebeatからlogstashサーバーへのログデータ転送を安全にするためにSSL証明書キーを生成します。

vimを使用して「/etc/hosts」ファイルを編集します。

vim /etc/hosts

以下の構成を追加します。

10.0.15.10  elk-master  elk-master

保存して終了します。

次に、logstash構成ディレクトリ「/etc/logstash」の下に新しいSSLディレクトリを作成し、そのディレクトリに移動します。

mkdir -p /etc/logstash/ssl  
cd /etc/logstash/

以下のようにopensslコマンドを使用してLogstash用のSSL証明書を生成します。

openssl req -subj '/CN=elk-master/' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout ssl/logstash-forwarder.key -out ssl/logstash-forwarder.crt

Logstash用のSSL証明書ファイルが「/etc/logstash/ssl」ディレクトリに作成されました。

次に、logstash用の新しい構成ファイルを作成します。「filebeat-input.conf」という入力ファイルからfilebeatを作成し、「syslog-filter.conf」をsyslog処理用に作成し、「output-elasticsearch.conf」ファイルを作成してElasticsearch出力を定義します。

logstash構成ディレクトリに移動し、「conf.d」ディレクトリに「filebeat-input.conf」という新しい構成ファイルを作成します。

cd /etc/logstash/  
vim conf.d/filebeat-input.conf

以下の構成をそこに貼り付けます。

input {
  beats {
    port => 5443
    type => syslog
    ssl => true
    ssl_certificate => "/etc/logstash/ssl/logstash-forwarder.crt"
    ssl_key => "/etc/logstash/ssl/logstash-forwarder.key"
  }
}

保存して終了します。

Syslog処理ログデータには、「grok」という名前のフィルタープラグインを使用してsyslogファイルを解析します。

新しい構成「syslog-filter.conf」を作成します。

vim conf.d/syslog-filter.conf

以下の構成をそこに貼り付けます。

filter {
  if [type] == "syslog" {
    grok {
      match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
      add_field => [ "received_at", "%{@timestamp}" ]
      add_field => [ "received_from", "%{host}" ]
    }
    date {
      match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
    }
  }
}

保存して終了します。

Elasticsearch出力用の構成ファイルを「output-elasticsearch.conf」という名前で作成します。

vim conf.d/output-elasticsearch.conf

以下の構成をそこに貼り付けます。

output {
  elasticsearch { hosts => ["localhost:9200"]
    hosts => "localhost:9200"
    manage_template => false
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
    document_type => "%{[@metadata][type]}"
  }
}

保存して終了します。

これが完了したら、logstashサービスを起動し、システム起動時に毎回起動するように有効にします。

sudo systemctl enable logstash  
sudo systemctl start logstash

logstashを有効にして起動する

以下のnetstatおよびsystemctlコマンドを使用してlogstashサービスを確認します。

netstat -plntu  
systemctl status logstash

logstashサービスは現在稼働中です。パブリックIPアドレスでポート「5443」で実行されています。

ポートの確認

Elastic Stackのインストールが完了しました。

ステップ2 - Ubuntu 18.04にFilebeatをインストールおよび構成する

このステップでは、Elastic Beatsデータシッパー「Filebeat」をインストールして、Ubuntu 18.04クライアント「elk-client01」を構成します。

Filebeatをシステムにインストールする前に、「/etc/hosts」を編集し、「logstash-forwarder.crt」証明書ファイルを「elk-client01」サーバーにダウンロードする必要があります。

vimエディタを使用して「/etc/hosts」ファイルを編集します。

vim /etc/hosts

以下の構成をそこに貼り付けます。

10.0.15.10      elk-master      elk-master

保存して終了します。

scpコマンドを使用して「logstash-forwarder.crt」証明書ファイルをコピーします。

scp root@elk-master:/etc/logstash/ssl/logstash-forwarder.crt .

Filebeatのインストール

次に、Elastic Beats「Filebeat」をインストールします。Elasticキーを追加し、Elasticリポジトリを追加します。

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

リポジトリを更新し、以下のaptコマンドを使用して「filebeat」パッケージをインストールします。

sudo apt update  
sudo apt install filebeat -y

インストールが完了したら、「/etc/filebeat」ディレクトリに移動し、構成ファイル「filebeat.yml」を編集します。

cd /etc/filebeat/  
vim filebeat.yml

次に、filebeatプロスペクターを有効にするために「enabled」行の値を「true」に変更します。

  enabled: true

logstashサーバーに送信されるシステムログファイルを定義します。このガイドでは、sshログファイル「auth.log」とsyslogファイルを追加します。

  paths:
    - /var/log/auth.log
    - /var/log/syslog

デフォルトの「elasticsearch」出力をコメントアウトし、以下のようにlogstash出力行のコメントを外してlogstashへの出力を設定します。

output.logstash:
  # The Logstash hosts
  hosts: ["elk-master:5443"]
  ssl.certificate_authorities: ["/etc/filebeat/logstash-forwarder.crt"]

保存して終了します。

次に、「filebeat.reference.yml」ファイルを編集してfilebeatモジュールを有効にし、「syslog」モジュールを有効にします。

vim filebeat.reference.yml

以下のようにfilebeatのsyslogシステムモジュールを有効にします。

- module: system
  # Syslog
  syslog:
    enabled: true

保存して終了します。

logstash証明書ファイル「logstash-forwarder.crt」を「/etc/filebeat」ディレクトリにコピーします。

cp ~/logstash-forwarder.crt /etc/filebeat/logstash-forwarder.crt

Filebeatのインストールと構成が完了しました。次に、filebeatサービスを起動し、システム起動時に毎回起動するように有効にします。

systemctl start filebeat  
systemctl enable filebeat

以下のコマンドを使用してfilebeatサービスを確認します。

systemctl status filebeat  
tail -f /var/log/filebeat/filebeat

filebeatシッパーはUbuntu 18.04サーバーで稼働しています。

Filebeatが稼働中

ステップ3 - CentOS 7.5にFilebeatをインストールおよび構成する

このステップでは、Elastic Beatsデータシッパー「Filebeat」をインストールして、CentOS 7.5クライアント「elk-client02」を構成します。

Filebeatをシステムにインストールする前に、「/etc/hosts」を編集し、「logstash-forwarder.crt」証明書ファイルを「elk-client02」サーバーにダウンロードする必要があります。

vimを使用して「/etc/hosts」ファイルを編集します。

vim /etc/hosts

以下の構成をそこに貼り付けます。

10.0.15.10      elk-master      elk-master

保存して終了します。

scpコマンドを使用して「logstash-forwarder.crt」証明書ファイルをコピーします。

scp root@elk-master:/etc/logstash/ssl/logstash-forwarder.crt .

CentOSにFilebeatをインストール

次に、Elastic Beats「Filebeat」をインストールします。Elasticキーを追加し、Elasticリポジトリを追加します。

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch  
   
cat < /etc/yum.repos.d/elastic.repo  
[elasticsearch-6.x]  
name=Elasticsearch repository for 6.x packages  
baseurl=https://artifacts.elastic.co/packages/6.x/yum  
gpgcheck=1  
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch  
enabled=1  
autorefresh=1  
type=rpm-md  
EOF

以下のyumコマンドを使用してfilebeatをインストールします。

yum install filebeat -y

インストールが完了したら、「/etc/filebeat」ディレクトリに移動し、構成ファイル「filebeat.yml」を編集します。

cd /etc/filebeat/  
vim filebeat.yml

次に、filebeatプロスペクターを有効にするために「enabled」行の値を「true」に変更します。

  enabled: true

logstashサーバーに送信されるシステムログファイルを定義します。このガイドでは、sshログファイル「auth.log」とsyslogファイルを追加します。

  paths:
    - /var/log/secure
    - /var/log/messages

デフォルトの「elasticsearch」出力をコメントアウトし、以下のようにlogstash出力行のコメントを外してlogstashへの出力を設定します。

output.logstash:
  # The Logstash hosts
  hosts: ["elk-master:5443"]
  ssl.certificate_authorities: ["/etc/filebeat/logstash-forwarder.crt"]

保存して終了します。

次に、「filebeat.reference.yml」ファイルを編集してfilebeatモジュールを有効にし、「syslog」モジュールを有効にします。

vim filebeat.reference.yml

以下のようにfilebeatのsyslogシステムモジュールを有効にします。

- module: system
  # Syslog
  syslog:
    enabled: true

保存して終了します。

logstash証明書ファイル「logstash-forwarder.crt」を「/etc/filebeat」ディレクトリにコピーします。

cp ~/logstash-forwarder.crt /etc/filebeat/logstash-forwarder.crt

Filebeatのインストールと構成が完了しました。次に、filebeatサービスを起動し、システム起動時に毎回起動するように有効にします。

systemctl start filebeat  
systemctl enable filebeat

以下のコマンドを使用してfilebeatサービスを確認します。

systemctl status filebeat  
tail -f /var/log/filebeat/filebeat

filebeatシッパーはCentOS 7.5サーバーで稼働しています。

Filebeatが稼働中

ステップ4 - テスト

Webブラウザを開き、Elastic Stackのドメイン名を入力します。私のは「elastic-stack.io」です。

Kibanaダッシュボードへの基本認証のためのユーザー名とパスワードが求められます。

ユーザー名「elastic」とパスワードを入力します。

これで美しいKibanaダッシュボードが表示され、「Set up index patterns」ボタンをクリックします。

Kibanaダッシュボード

「filebeat-*」インデックスパターンを定義し、「Next step」ボタンをクリックします。

filebeatを定義

「time filter field name」には「@timestamp」を選択し、「Create index pattern」をクリックします。

インデックスを作成

そして、filebeatインデックスパターンが作成されました。

filebeatインデックスパターンが作成されました

次に、各クライアントサーバー「elk-client01」Ubuntuシステムと「elk-client02」CentOSシステムのSSHログイン失敗に関するログ情報を取得してみます。

Kibanaダッシュボード内で「Discover」メニューをクリックしてすべてのサーバーログを取得します。

「beat.hostname」を「elk-client01」サーバーに設定し、「source」を「/var/log/auth.log」ファイルに設定すると、以下のような結果が得られます。

ログ結果

以下は「auth.log」ファイルからのSSH失敗パスワードのサンプルログ詳細です。

SSHログイン失敗

「elk-client02」CentOSサーバーの場合、「beat.hostname」を「elk-client02」サーバーに設定し、「source」を「/var/log/secure」ファイルに設定すると、以下のような結果が得られます。

サーバー2のレポート

以下は「secure」ファイルからのSSH失敗パスワードのサンプルログ詳細です。

ログインレポート

Elastic StackとElastic Beat「Filebeat」のインストールおよび構成が正常に完了しました。

参考

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。