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
- ルート権限
何をするか?
- Elastic Stackをインストールする 1. Javaをインストールする
- ElasticSearchをインストールおよび構成する
- Kibanaをインストールおよび構成する
- KibanaのリバースプロキシとしてNginxをインストールおよび構成する
- Logstashをインストールおよび構成する
- Ubuntu 18.04にFilebeatをインストールおよび構成する
- CentOS 7.5にFilebeatをインストールおよび構成する
- テスト
ステップ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 」ディレクトリにあることを確認します。

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 elasticsearchelasticsearchは現在稼働中です。netstatコマンドとcurlコマンドを使用して確認します。
netstat -plntu
curl -XGET 'localhost:9200/?pretty'これで、elasticsearchバージョン「6.2.4」がデフォルトポート「9200」で実行されていることがわかります。

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 kibanaKibanaダッシュボードは現在「localhost」アドレスとデフォルトポート「5601」で稼働しています。以下のnetstatコマンドを使用して確認します。
netstat -plntu
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 passwordKibana仮想ホストを有効にし、すべてのnginx構成をテストします。
ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/
nginx -tエラーがないことを確認し、Nginxサービスを起動し、システム起動時に毎回起動するように有効にします。
systemctl enable nginx
systemctl restart nginxKibanaダッシュボードのリバースプロキシとしての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.crtLogstash用の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
以下のnetstatおよびsystemctlコマンドを使用してlogstashサービスを確認します。
netstat -plntu
systemctl status logstashlogstashサービスは現在稼働中です。パブリック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 .
次に、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: truelogstashサーバーに送信されるシステムログファイルを定義します。このガイドでは、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.crtFilebeatのインストールと構成が完了しました。次に、filebeatサービスを起動し、システム起動時に毎回起動するように有効にします。
systemctl start filebeat
systemctl enable filebeat以下のコマンドを使用してfilebeatサービスを確認します。
systemctl status filebeat
tail -f /var/log/filebeat/filebeatfilebeatシッパーはUbuntu 18.04サーバーで稼働しています。

ステップ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 .
次に、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: truelogstashサーバーに送信されるシステムログファイルを定義します。このガイドでは、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.crtFilebeatのインストールと構成が完了しました。次に、filebeatサービスを起動し、システム起動時に毎回起動するように有効にします。
systemctl start filebeat
systemctl enable filebeat以下のコマンドを使用してfilebeatサービスを確認します。
systemctl status filebeat
tail -f /var/log/filebeat/filebeatfilebeatシッパーはCentOS 7.5サーバーで稼働しています。

ステップ4 - テスト
Webブラウザを開き、Elastic Stackのドメイン名を入力します。私のは「elastic-stack.io」です。
Kibanaダッシュボードへの基本認証のためのユーザー名とパスワードが求められます。

ユーザー名「elastic」とパスワードを入力します。
これで美しいKibanaダッシュボードが表示され、「Set up index patterns」ボタンをクリックします。

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

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

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

次に、各クライアントサーバー「elk-client01」Ubuntuシステムと「elk-client02」CentOSシステムのSSHログイン失敗に関するログ情報を取得してみます。
Kibanaダッシュボード内で「Discover」メニューをクリックしてすべてのサーバーログを取得します。
「beat.hostname」を「elk-client01」サーバーに設定し、「source」を「/var/log/auth.log」ファイルに設定すると、以下のような結果が得られます。

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

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

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

Elastic StackとElastic Beat「Filebeat」のインストールおよび構成が正常に完了しました。
参考
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。