ログ分析基盤に Elasticsearch / Kibana を追加してみる(運用編)
はじめに
前回までの設計編、構築編、実践編では Elasticsearch / Kibana の導入と利用方法を紹介しました。
本記事では運用に焦点を当てます。
対象:
- 障害対応
- バックアップ
- 再投入
- 容量管理
- 将来拡張
シリーズ構成
- 設計編
- 構築編
- 実践編
- 運用編(本記事)
運用アーキテクチャ
重要なポイントは
Iceberg = 正本
Elasticsearch = キャッシュ
という考え方です。
障害発生時の考え方
今回の構成では Elasticsearch が壊れてもデータ損失はありません。
理由
正本はIceberg
だからです。
Elasticsearch障害時
例
Index破損
Disk障害
誤削除
対応
Index削除
↓
再投入
で復旧可能です。
データ手動削除
確認
curl http://elastic1:9200/_cat/indices?v
削除
curl -X DELETE \
"http://elastic1:9200/_data_stream/logs-syslog-yyyy.mm.dd"
Icebergから再投入
前日分(こちらについて本シェルを動かすだけで再投入可能。)
/opt/elastic/bin/export_syslog_to_es.sh
/opt/elastic/bin/export_authlog_to_es.sh
任意日の投入
例
2026-05-28のデータを再投入する場合
実行
/opt/elastic/bin/export_syslog_to_es.sh 2026-05-28
/opt/elastic/bin/export_authlog_to_es.sh 2026-05-28
今使用しているシェルを使用する場合、必ず戻すか別名ファイルを作成して動かすこと。
Elasticsearch容量確認
サイズ確認
curl \
"http://elastic1:9200/_cat/indices?v&s=store.size:desc"
elastic1ホスト容量確認
df -h
推奨
70%以下
Kibana障害対応
確認
docker ps
再起動
docker restart kibana
ログ
docker logs kibana
Elasticsearch障害対応
状態確認
curl http://elastic1:9200
ログ
docker logs elasticsearch
再起動
docker restart elasticsearch
Index Template確認
確認
curl \
http://elastic1:9200/_index_template/logs_template
再作成
elastic1で実施。
cd elastic-kibana/
curl -X PUT \
"http://elastic1:9200/_index_template/logs_template" \
-H "Content-Type: application/json" \
-d @logs_template.json
バックアップ方針
今回の構成では
Icebergが正本
のため Elasticsearch のバックアップは必須ではありません。
運用方針
障害時は再投入
を推奨します。
Indexローテーション確認
手動実行
/opt/elastic/bin/delete_old_es_indices.sh
確認
curl \
http://elastic1:9200/_cat/indices?v
Kibana運用例
Dashboard
認証失敗件数
ホスト別ログ件数
program別件数
severity別件数
Discover
Failed password
sshd
CRON
容量増加時
対応順
- 保持期間短縮
- メモリ増加
- SSD増設
- Elasticsearchクラスタ化
TLS化
将来的には
http://
↓
https://
を推奨します。
対象
Kibana
Elasticsearch
認証追加
現在
xpack.security.enabled=false
将来的には
xpack.security.enabled=true
へ変更します。
Elasticsearchクラスタ化
現在
single-node
将来
Kafkaリアルタイム化
現在
Iceberg
↓
日次投入
将来
も可能です。
Grafanaとの運用分担
Grafana
監視
アラート
定点観測
Kibana
ログ検索
障害調査
インシデント解析
まとめ
今回の構成では
Iceberg = 正本
Elasticsearch = 検索専用
Kibana = 調査画面
という役割分担になります。
Elasticsearch は障害時に再投入できるため、シンプルな運用が可能です。
まずは日次バッチ構成で運用し、必要に応じて TLS、認証、クラスタ化、リアルタイム化を検討すると良いでしょう。