⛳
ELKスタックを使ったログ分析の完全ガイド
はじめに
現代のシステム運用では、ログデータの収集と分析が不可欠です。サーバーやアプリケーションが生成する膨大なログを効率的に管理し、リアルタイムで可視化できるツールが求められています。そこで登場するのがELKスタック(Elasticsearch、Logstash、Kibana)です。
本記事では、ELKスタックを使ってログ分析環境を構築し、可視化するまでの手順を詳しく解説します。
1. ELKスタックとは?
ELKスタックは、次の3つの主要コンポーネントで構成されます。
- Elasticsearch: 分散型検索エンジン。ログデータの検索・分析を行う。
- Logstash: データ収集・処理・変換を担当。
- Kibana: データの可視化・分析を提供するダッシュボード。
また、最近ではFilebeatを追加し、軽量なログ収集を実現するElastic Stackとして利用されることも増えています。
2. ELKスタックの構築
ここでは、Dockerを用いてELK環境を構築する方法を紹介します。
2.1 前提条件
- DockerおよびDocker Composeがインストールされていること
- LinuxまたはMac環境(Windowsでも可能)
2.2 Docker Composeファイルの作成
docker-compose.yml
version: '3.7'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.0.0
container_name: elasticsearch
environment:
- discovery.type=single-node
- ES_JAVA_OPTS=-Xms512m -Xmx512m
ports:
- "9200:9200"
volumes:
- elasticsearch_data:/usr/share/elasticsearch/data
logstash:
image: docker.elastic.co/logstash/logstash:8.0.0
container_name: logstash
volumes:
- ./logstash.conf:/usr/share/logstash/pipeline/logstash.conf:ro
depends_on:
- elasticsearch
ports:
- "5044:5044"
- "9600:9600"
kibana:
image: docker.elastic.co/kibana/kibana:8.0.0
container_name: kibana
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
ports:
- "5601:5601"
depends_on:
- elasticsearch
volumes:
elasticsearch_data:
driver: local
2.3 Logstashの設定ファイル
次に、logstash.conf
を作成し、ログデータの取り込みルールを定義します。
input {
beats {
port => 5044
}
}
filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}" }
}
}
output {
elasticsearch {
hosts => ["http://elasticsearch:9200"]
index => "logstash-%{+YYYY.MM.dd}"
}
stdout { codec => rubydebug }
}
3. ログの収集(Filebeatの導入)
より軽量なログ収集ツールとしてFilebeatを導入します。
3.1 Filebeatのインストール
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.0.0-linux-x86_64.tar.gz
tar xzvf filebeat-8.0.0-linux-x86_64.tar.gz
cd filebeat-8.0.0-linux-x86_64
3.2 Filebeatの設定変更
filebeat.yml
を編集します。
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
output.logstash:
hosts: ["localhost:5044"]
3.3 Filebeatの起動
./filebeat -e
4. Kibanaでログを可視化
4.1 Kibanaにアクセス
ブラウザで http://localhost:5601
にアクセスします。
4.2 インデックスパターンの作成
- 「Stack Management」 → 「Index Patterns」 へ移動
- 「Create Index Pattern」 をクリック
-
logstash-*
を指定 - 「@timestamp」を時間フィールドとして設定
4.3 ダッシュボードの作成
- 「Discover」 タブでログを確認
- 「Visualize Library」 でグラフ作成
- 「Dashboard」 で可視化
5. まとめ
本記事では、ELKスタックを使ったログ分析環境の構築方法を紹介しました。
おさらい
- Docker Composeを使ってELKスタックをセットアップ
- Logstashを設定してログデータを処理
- Filebeatを使ってログを収集
- Kibanaでデータを可視化
これにより、リアルタイムでログを監視し、異常検知やパフォーマンス分析が可能になります。
ぜひ、あなたのシステムでもELKスタックを導入し、ログ分析を効率化してみてください!
Discussion