Elastic Stack · 3 min read · Nov 11, 2025
Ubuntu 20.04 LTSにElastic Stackをインストールする方法

Elastic Stack(以前のELK Stack)は、Elasticによって開発されたオープンソースソフトウェアのグループで、さまざまなソースからデータを収集します。これにより、中央のElastic Stackプラットフォーム上で、さまざまなソースからのデータを収集、保存、処理、分析、視覚化することができます。
Elastic Stackは、データを保存するための「Elasticsearch」、データにアクセスして視覚化するためのダッシュボード「Kibana」、任意のデータを処理するための拡張可能なプラグインを持つ動的データ収集パイプライン「Logstash」、エッジマシンからデータを送信する軽量データ輸送プラットフォーム「Beats」で構成されています。
Elastic Stackは、サーバー上のプロミスにデプロイすることも、SaaS(Software as a Service)公式Elastic Cloudを購入することもできます。
このチュートリアルでは、Ubuntu 20.04サーバーにElastic Stackをインストールする方法を示します。同じサーバーにElasticsearchとKibanaをインストールし、別のサーバーに「Filebeat」をインストールして設定し、ログを直接Elasticsearchサーバーに送信します。
要件
このチュートリアルでは、Ubuntu 20.04を実行している2つのサーバーを使用します。Elastic Stackソフトウェアは4GBのRAMを持つサーバーにインストールされ、1GBのRAMを持つ別のサーバーをFilebeatのクライアントとして使用します。
何をしますか?
- Elastic Stackリポジトリを追加
- Elasticsearchをインストールして設定
- Kibanaをインストールして設定
- KibanaのリバースプロキシとしてNginxを設定
- Filebeatをインストールして設定
- Kibanaユーザーの新しいロールを設定
- Filebeatの新しいインデックスパターンを作成
ステップ1 - Elastic Stackリポジトリを追加
まず、両方のUbuntuサーバーにElastic StackソフトウェアのGPGキーとリポジトリを追加します。
さらに進む前に、HTTPSセキュア接続を介してソフトウェアインストールを保護するために「apt-transport-https」をインストールします。
sudo apt install apt-transport-https次に、以下のコマンドを使用してElastic StackのGPGキーとリポジトリを追加します。
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list次に、Ubuntuシステム上のすべての利用可能なリポジトリを更新します。
sudo apt updateこれで、両方のサーバーにElasticソフトウェアスタックをインストールする準備が整いました。

ステップ2 - Elasticsearchをインストールして設定
このステップでは、内部IPアドレス「172.16.0.3」を持つ単一ノードサーバー「ELK20」にElasticsearchをインストールして設定します。
Elasticsearchをインストールする前に、vimエディタを使用して「/etc/hosts」ファイルを編集します。
vim /etc/hosts次に、以下のように内部IPアドレスとホスト名を入力します。
172.16.0.3 ELK20保存して閉じます。
次に、以下のaptコマンドを使用してElasticsearchパッケージをインストールします。
sudo apt install elasticsearchすべてのインストールが完了したら、「/etc/elasticsearch」ディレクトリに移動し、設定「elasticsearch.yml」設定ファイルを編集します。
cd /etc/elasticsearch/
vim elasticsearch.yml「node.name」のコメントを外し、サーバーのホスト名を入力します。
node.name: ELK20「network.host」行に、Elasticsearchサービスが実行されるサーバーのIPアドレスを入力します。内部IPアドレスのみを使用することをお勧めします。
network.host: 172.16.0.3「http.port」行のコメントを外し、デフォルトのままにします。Elasticsearchサービスはデフォルトポート「9200」で実行されます。
http.port: 9200「cluster.initial_master_nodes」行のコメントを外し、サーバーのホスト名を入力します。
cluster.initial_master_nodes: ["ELK20"]最後に、以下の設定を行ってElasticsearchのセキュリティを有効にします。
xpack.security.enabled: true保存して閉じます。
次に、systemdサービスマネージャーをリロードし、Elasticsearchサービスを開始してシステムブートに追加します。
systemctl daemon-reload
systemctl start elasticsearch
systemctl enable elasticsearchElasticsearchサービスはUbuntu 20.04サーバーで稼働しています。

次に、Elasticsearchの組み込みユーザーのパスワードを生成します。
「/usr/share/elasticsearch」ディレクトリに移動し、以下のようにelasticsearchユーティリティコマンド「elasticsearch-setup-passwords」を実行します。
cd /usr/share/elasticsearch/
bin/elasticsearch-setup-passwords auto -u "http://172.16.0.3:9200"‘y’を入力して確認し、パスワードを生成します。
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.
The passwords will be randomly generated and printed to the console.
Please confirm that you would like to continue [y/N] y以下は得られる結果です。
Changed password for user apm_system
PASSWORD apm_system = DP5RpFfbCyL6UpIFO8Q3
Changed password for user kibana_system
PASSWORD kibana_system = U6gDLoJCqqChqcbD1IY
Changed password for user kibana
PASSWORD kibana = U6gDLoJCqqChqcbD1IYV
Changed password for user logstash_system
PASSWORD logstash_system = KrHaGvHGfkAz12dcSeWo
Changed password for user beats_system
PASSWORD beats_system = VnUUOtShQoFAGEZ62G7m
Changed password for user remote_monitoring_user
PASSWORD remote_monitoring_user = xgaLXw6jp3Ses6CZ2hEB
Changed password for user elastic
PASSWORD elastic = elu2ZlMm4mOkM7fgCeUMご覧のとおり、Elasticsearchのいくつかの組み込みユーザーのパスワードが生成されました。
Gambar
Elasticsearchのインストールをテストするために、デフォルトユーザー「elastic」でcurlコマンドを実行します。
curl -X GET -u elastic "http://172.16.0.3:9200/?pretty"「elastic」ユーザーのパスワードを入力すると、以下の結果が得られます。

その結果、Elasticsearchサーバーは稼働しており、認証が有効になっています。
ステップ3 - Kibanaをインストールして設定
このステップでは、Elasticsearchと同じサーバーにKibanaをインストールして設定します。KibanaをElasticsearchサーバーに接続し、デフォルトユーザー「kibana_system」と上記で生成されたパスワードを使用します。
以下のaptコマンドを使用してKibanaをインストールします。
sudo apt install kibanaすべてのインストールが完了したら、「/etc/kibana」ディレクトリに移動し、vimエディタを使用して設定「kibana.yml」を編集します。
cd /etc/kibana/
vim kibana.yml以下の行のコメントを外し、自分の値に変更します。Kibanaをローカルネットワークで実行することをお勧めします。なぜなら、KibanaのリバースプロキシとしてNginxを使用するからです。
server.port: 5601
server.host: "172.16.0.3"
server.name: "ELK20"その後、「elasticsearch.url」をElasticsearchのIPアドレスに変更します。
elasticsearch.url: "http://172.16.0.3:9200"以下の「elasticsearch.username」と「elasticsearch.password」行のコメントを外し、自分のユーザーとパスワードに変更します。
elasticsearch.username: "kibana_system"
elasticsearch.password: "N88VBkkelfSV3mBfO6Vh"保存して閉じます。
次に、以下のコマンドを使用してsystemdマネージャーをリロードします。
systemctl daemon-reloadその後、Kibanaサービスを開始し、システムブートに追加します。
systemctl start kibana
systemctl enable kibanaKibanaサービスはUbuntu 20.04システムで稼働しています。

次に、Kibanaダッシュボードにログインするために使用される新しいユーザーを作成します。
「hakase」という名前の新しいユーザーを作成し、パスワード「hakasepasskibana」を「kibana_admin」ロールで作成します。
curl -X POST -u elastic "http://172.16.0.3:9200/_security/user/hakase?pretty" -H 'Content-Type: application/json' -d'
{
"password" : "hakasepasskibana",
"roles" : [ "kibana_admin" ]
}
'「elastic」ユーザーのパスワードを入力すると、以下の結果が得られます。

その結果、新しいユーザー「hakase」が作成され、Kibanaダッシュボードにログインできるようになります。
ステップ4 - KibanaのリバースプロキシとしてNginxを設定
このステップでは、KibanaのリバースプロキシとしてNginxをインストールして設定します。
以下のaptコマンドを使用してNginxパッケージをインストールします。
sudo apt install nginx -yすべてのインストールが完了したら、「/etc/nginx/sites-available/」ディレクトリに移動し、vimエディタを使用して新しい仮想ホストファイル「kibana」を作成します。
cd /etc/nginx/sites-available/
vim kibanaドメイン名と「proxy_pass」IPアドレスを自分のものに変更し、以下の内容を貼り付けます。
server {
listen 80;
server_name elk.hakase-labs.io;
location / {
proxy_pass http://172.16.0.3: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のためにNginxの仮想ホストを有効にし、Nginxの設定を確認します。
ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/
nginx -tエラーがないことを確認し、Nginxサービスを再起動します。
systemctl restart nginxその結果、KibanaのリバースプロキシとしてのNginxのインストールと設定が完了しました。Kibanaダッシュボードは、ドメイン名「elk.hakase-labs.io」を介してアクセス可能です。

ウェブブラウザを開き、アドレスバーにKibanaインストールのドメイン名を入力します。
すると、以下のようなKibanaログインページが表示されます。

ユーザー「hakase」とパスワード「hakasepass」を入力し、「ログイン」ボタンをクリックします。
ログインすると、サンプルデータをインポートするか、自分のデータを探索するように求められます。

「自分のデータを探索する」ボタンをクリックします。
これで、以下のようなKibanaダッシュボードが表示されます。

その結果、KibanaとNginxのインストールが完了しました。
ステップ4 - Filebeatをインストールして設定
このステップでは、ホスト名「client01」とIPアドレス「xxx.xxx.xxx.xxx」を持つクライアントマシンに「Filebeat」をインストールします。Filebeatは、ログを直接Elasticsearchサーバーに送信します。
「Filebeat」をインストールする前に、Elastic Stackリポジトリがシステムに追加されていることを確認してください。
次に、以下のaptコマンドを使用してfilebeatパッケージをインストールします。
sudo apt install filebeatすべてのインストールが完了したら、「/etc/filebeat」ディレクトリに移動し、vimエディタを使用して設定「filebeat.yml」を編集します。
cd /etc/filebeat/
vim filebeat.yml「filebeat.inputs」設定の上部で、「enabled: false」を「enabled: true」に変更します。
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log次に、Kibanaの設定に移動し、KibanaのIPアドレスとポートでホストを変更し、ユーザー名をデフォルトユーザー「kibana」、上で生成されたパスワードに変更します。
setup.kibana:
host: "172.16.0.3:5601"
username: "kibana"
password: "U6gDLoJCqqChqcbD1IYV"その後、「output.elasticsearch」設定に移動し、自分の詳細に変更します。
output.elasticsearch:
hosts: ["172.16.0.3:9200"]
username: "elastic"
password: "elu2ZlMm4mOkM7fgCeUM"保存して閉じます。
次に、systemdマネージャーをリロードし、filebeatサービスを開始してシステムブートに追加します。
systemctl daemon-reload
systemctl start filebeat
systemctl enable filebeatFilebeatサービスは「client01」マシンで稼働しています。

次に、以下のコマンドを使用してElasticsearchサーバーにfilebeatインデックステンプレートをロードする必要があります。
filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["http://172.16.0.3:9200"]'以下は得られる結果です。
その結果、filebeatインデックステンプレートがElasticsearchサーバーにロードされ、Kibanaダッシュボードで「filebeat-*」インデックスパターンとして利用可能になります。
ステップ5 - Kibanaユーザーの新しいロールを設定
このステップでは、ユーザー「hakase」がElasticsearch APIを介してElasticsearchサーバー上のすべてのインデックスにアクセスし管理できるようにする新しいElasticsearchロールを作成します。
ユーザーがElasticsearchサーバー上のインデックスを管理できるようにする「events_index」という名前の新しいロールを作成します。
curl -XPOST -u elastic 'http://172.16.0.3:9200/_security/role/events_index' -H "Content-Type: application/json" -d '{
"indices" : [
{
"names" : [ "*" ],
"privileges" : [ "all" ]
}
]
}'
その後、以下のコマンドを使用してロール「events_index」を確認します。
curl -X GET -u elastic "http://172.16.0.3:9200/_security/role/events_index?pretty"以下は得られる結果です。

ご覧のとおり、ロール「events_index」はインデックスを管理する権限のみを持ちます。
次に、以下のコマンドを使用して「hakase」ユーザーに「events_index」ロールを追加します。
curl -X POST -u elastic "http://172.16.0.3:9200/_security/user/hakase?pretty" -H 'Content-Type: application/json' -d'
{
"password" : "hakasepasskibana",
"roles" : [ "kibana_admin", "events_index" ]
}
'「elastic」ユーザーのパスワードを入力すると、ロール「events_index」が「hakase」ユーザーに割り当てられます。
以下のコマンドを使用して「hakase」ユーザーの下にあるすべての利用可能なロールを確認します。
curl -X GET -u elastic "http://172.16.0.3:9200/_security/user/hakase?pretty"以下は得られる結果です。

その結果、Elasticsearchサーバー上のインデックスを管理する新しいロールが作成されました。
ステップ6 - Filebeatの新しいインデックスパターンを作成
「events_index」という新しいロールを作成した後、「hakase」ユーザーを介してFilebeatの新しいインデックスパターンを作成します。
- インデックスパターンを作成
Kibanaダッシュボードで、左側のメニューオプションをクリックし、「管理」セクションに移動し、「スタック管理」をクリックします。
「Kibana」セクションで、「インデックスパターン」をクリックします。

「インデックスパターンを作成」ボタンをクリックして新しいインデックスパターンを作成します。
「インデックスパターン」フィールドに「filebeat-*」と入力し、「次のステップ」ボタンをクリックします。

「タイムフィルターフィールド名」で「@timestamp」を選択し、「インデックスパターンを作成」ボタンをクリックします。

「filebeat-*」インデックスパターンが作成され、デフォルトインデックスパターンとして選択されました(以前にインデックスパターンがない場合)。

- Kibanaでデータを表示
Filebeatによって収集されたデータを表示するには、左上のオプションメニューをクリックし、「発見」をクリックします。
すると、「client01」マシンから収集されたすべてのデータが表示されます。

フィルタに基づいてデータを表示するには、「KQL」またはKibanaクエリ言語を使用できます。
「KQL」フィールドに以下のクエリを入力します。
host.name : client01 and log.file.path: "/var/log/auth.log"すると、「client01」マシンのSSH認証に関するすべての情報が得られます。

その結果、Ubuntu 20.04でセキュリティが有効なElastic Stackのインストールが成功裏に完了しました。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。