■はじめに
近年、インフラ・システム運用において、ログの一元管理と可視化は重要性を増しています。ZabbixやMTA、AD、Syslogといった多様なシステムから出力されるログを統合的に扱うことで、運用の効率化と障害対応の迅速化が実現できます。
本記事では、Elasticsearch、Kibana、Filebeat を使ったログ可視化基盤の構築手順について解説します。今回は、Ubuntuの検証サーバ上にElasticsearch、Kibana、Filebeatを導入し、転送したログがKibana上で表示されるところまでを目標としています。Elastic社の公式手順は情報が分散していたり、英語が多かったりで、最初はとっつきにくさもありますが、本記事では実際に動かしながら確認した検証内容をベースに、最短で構築できる手順をまとめています。 「一度ちゃんとログ基盤を作ってみたい」「Kibanaでグラフ化してチームに共有したい」「でも何から始めていいか分からない」という方は、ぜひ参考にしてみてください。
■前提と全体構成
1.前提
本検証では、以下のスペックを持つUbuntuサーバ上で構築を行っています。
※FW等による通信遮断が無いことを前提とします。
項目 | 内容 |
---|---|
OSバージョン | Ubuntu 22.04.5 LTS |
CPU | 8vCPU |
メモリ | 16GB |
ストレージ(VMDK) | 100GB |
ネットワーク | 社内検証環境接続、外部インターネット一部アクセス可能 |
その他 | 検証環境のプロキシサーバを経由し、APTでのパッケージ導入可能 |
2.導入ツールの詳細
導入ツール | バージョン | デフォルトポート | 機能・役割 |
---|---|---|---|
Elasticsearch | 8.18.1 | 9200 | ログやデータを保存・検索する「検索エンジン兼データベース」 |
Kibana | 8.18.2 | 5601 | Elasticsearchに保存されたデータを「可視化・分析」するダッシュボード |
Filebeat | 8.18.2 | - | 各サーバのログを収集して「ElasticsearchやLogstashに送信」するエージェント |
3.全体構成
➀Filebeat によるログの収集と転送
Ubuntuサーバ上の /var/log 配下にあるログファイル(例:syslog)を、Filebeat が監視・収集します。収集されたログは、Elasticsearch に向けて自動的に送信されます。
➁Elasticsearch によるログデータの蓄積
転送されたログは、Elasticsearch によって受信・解析され、検索可能な形式でインデックスとして保存されます。ここではデータベースのような役割を果たし、ログのフィルタや集計が可能になります。
➂Kibana によるログの可視化・分析
ユーザーはWebブラウザからKibanaのインターフェース(http://<サーバIP>:5601)にアクセスすることで、タイムライン表示や検索、ダッシュボードによるグラフ化など、柔軟なログの可視化が可能になります。
■構築手順
今回の検証作業で実施した手順についてご紹介します。
各工程でつまずいたポイントもありましたので、そちらについてもあわせてご紹介します。
📝ステップ➀:パッケージ準備
1.APTプロキシを設定する(必要な場合)
vi /etc/apt/apt.conf.d/95proxy
#以下を追記
Acquire::http::Proxy "http://<proxy_user>:<proxy_password>@<proxy_host>:<proxy_port>/";
Acquire::https::Proxy "http://<proxy_user>:<proxy_password>@<proxy_host>:<proxy_port>/";
Acquire::http::No-Proxy "localhost, 127.0.0.1, <test_host>";
proxy_user
:プロキシ認証に使用するユーザー名
proxy_password
:プロキシ認証に使用するパスワード
proxy_host
:プロキシサーバのIPアドレス
proxy_port
:プロキシサーバの待ち受けポート番号
test_host
:検証サーバのIPアドレス
2.APTを更新する
apt update
apt install apt-transport-https ca-certificates curl gnupg -y
つまずきポイント➀「apt installができない」
今回の検証環境は、プロキシサーバを経由してインターネットに出るため、1.で実施した設定が必ず必要でした。
3.GPGキーとAPTリポジトリを追加する
curl -x http://<proxy_user>:<proxy_password>@<proxy_host>:<proxy_port> -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | \ gpg --dearmor -o /usr/share/keyrings/elastic-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/elastic-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | \ tee /etc/apt/sources.list.d/elastic-8.x.list
apt update
📝ステップ➁:Elasticsearch のインストールと設定
1.Elasticsearchをインストールする
apt install elasticsearch -y
2.設定ファイルを編集する
vi /etc/elasticsearch/elasticsearch.yml
#以下を追記
network.host: 0.0.0.0
discovery.type: single-node
3.サービスの起動と有効化をする
systemctl enable elasticsearch
systemctl start elasticsearch
つまずきポイント➁「サービス起動ができない」
今回の検証ではサーバ1台のシングル構成だったので、elasticsearch.yml内のdiscovery.typeをsingle-nodeに設定する必要がありました。
冗長構成を組む場合は、cluster.initial_master_nodesを設定します。
デフォルトでは、cluster.initial_master_nodesが設定されています。
4.パスワードを初期化する
/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
5.動作確認をする
curl -u elastic:'<elastic_password>' --cacert /etc/elasticsearch/certs/http_ca.crt https://localhost:9200
elastic_password
:「4.パスワードを初期化する」実行後に自動生成されるパスワード
📝ステップ➂:Kibana のインストールと設定
1.Kibanaをインストールする
apt install kibana -y
2.設定ファイルを編集する
vi /etc/kibana/kibana.yml
#以下を追記
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]
i18n.locale: "ja-JP"
3.サービスの起動と有効化をする
systemctl enable kibana
systemctl start kibana
📝ステップ➃:Filebeat のインストールと設定
1.Filebeatをインストールする
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | \ gpg --dearmor -o /usr/share/keyrings/elastic.gpg
echo "deb [signed-by=/usr/share/keyrings/elastic.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | \ tee /etc/apt/sources.list.d/elastic-8.x.list
apt update
apt install filebeat
2.設定ファイルを編集する
vi /etc/filebeat/filebeat.yml
#以下を追記
output.elasticsearch:
hosts: ["https://localhost:9200"]
username: "elastic"
password: "<elastic_password>"
ssl.certificate_authorities: ["/etc/elasticsearch/certs/http_ca.crt"]
setup.kibana:
host: "http://localhost:5601"
filebeat.inputs:
- type: filestream
paths:
- /var/log/syslog
3.サービスの起動と有効化をする
filebeat setup --index-management -E setup.kibana.host="http://localhost:5601" -E output.elasticsearch.hosts=["https://localhost:9200"] -E output.elasticsearch.username=elastic -E output.elasticsearch.password='<elastic_password>' -E output.elasticsearch.ssl.verification_mode=none
filebeat setup --dashboards -E setup.kibana.host="http://localhost:5601" -E output.elasticsearch.hosts=["https://localhost:9200"] -E output.elasticsearch.username=elastic -E output.elasticsearch.password='<elastic_password>' -E output.elasticsearch.ssl.verification_mode=none
systemctl enable filebeat
systemctl start filebeat
📝ステップ➄:Kibanaへのアクセス
1.ブラウザを開き、以下のURLにアクセスする:
http://<検証サーバのIP>:5601
2.Kibanaのログイン画面が表示されるので、Elasticsearchで設定したユーザー名とパスワードを入力する
3.初回ログイン後、以下のセットアップ画面が表示されるので、案内に従ってセットアップを実施する

4.左側メニューから「Discover」を選択すると、以下のように転送されたログが表示される
つまずきポイント➂「KibanaのUIが日本語で表示されない」
デフォルトでは、Kibanaは英語表示になっています。
以下の設定をkibana.yml内に入れることで、日本語で表示されるようになります。
vi /etc/kibana/kibana.yml
#以下を追記
i18n.locale: "ja-JP"
※Kibanaのバージョンが7.6 以降であることが条件です。
4.まとめ
いかがだったでしょうか?今回は、Ubuntu 22.04 環境における Elasticsearch + Kibana + Filebeat を使ったログ可視化基盤の構築手順をご紹介しました。実際に構築してみると、Elasticsearch の柔軟なデータ処理能力と、Kibana の優れた可視化機能、そして Filebeat による軽量かつ簡単なログ収集の組み合わせが非常に強力であることを実感しました。
本記事の構成はシンプルな導入にフォーカスしていますが、今後は以下のような展開も可能です。
・セキュリティを強化した本番運用向けのTLS/認証構成
・Filebeat モジュールの活用による多様なログ形式への対応
・Winlogbeat などを使った Windows 環境からのログ収集
・Logstash を活用したログ加工・ルーティングの強化
・Watcher 機能(X-Pack)によるアラートの自動化
「まずは試してみたい」「ログを視覚的に分析したい」という方にとって、本記事がその第一歩となれば幸いです。次回の記事では、転送されたログがKibana上でどのように表示されるか、どのような機能があるかにフォーカスする予定です!
We Are Hiring!