【実践編】GitHubから取得してすぐ使える!Elixir製ログ検索サイトでElasticsearchを検索する
はじめに
前回の記事では Elasticsearch と Kibana を利用したログ分析環境を構築しました。
- IcebergからElasticsearchへログを保存
- Kibanaで検索・分析
という構成です。
今回は Kibana とは別に、Elixir製のシンプルなログ検索サイトを利用してブラウザからログ検索を行います。
利用するソースコードは以下です。
画面は以下になります。
このアプリは Phoenix ではなく、Plug + Cowboy を利用した軽量なWebアプリとして実装されています。
システム構成
アプリの特徴
本アプリでは以下の検索が可能です。
- Syslog検索
- Authlog検索
- Host指定検索
- Program指定検索
- メッセージ検索
- 時刻範囲指定検索
検索対象は Elasticsearch の
logs-syslog-*
logs-authlog-*
インデックスです。
前提条件
以下が利用可能であることを前提とします。
- Docker
- Docker Compose Plugin
- Elasticsearch
Elasticsearch疎通確認
curl http://elastic1:9200
ソース取得
git clone https://github.com/naritomo08/elixir_elastic.git
cd elixir_elastic
起動
READMEの通り以下を実行します。
docker compose up --build
起動確認
docker compose ps
ブラウザアクセス
以下へアクセスします。
http://localhost:5002
ログ検索画面が表示されます。
Elasticsearch確認
検索前にインデックスを確認します。
curl http://elastic1:9200/_cat/indices?v
例
logs-syslog-2026.06.01
logs-authlog-2026.06.01
ログ検索
Syslog検索
timeout
Authlog検索
Failed password
sudo検索
sudo
sshd検索
sshd
検索結果は新しいログ順で表示されます。
API利用
本アプリはREST APIも提供しています。
検索例
curl -X POST http://localhost:5002/api/logs \
-H "Content-Type: application/json" \
-d '{
"message":"timeout",
"log_type":"syslog"
}'
ヘルスチェック
curl http://localhost:5002/health
Kibanaとの使い分け
| 機能 | Kibana | 本アプリ |
|---|---|---|
| ログ検索 | ○ | ○ |
| 可視化 | ◎ | △ |
| ダッシュボード | ◎ | △ |
| 利用者向け検索画面 | △ | ◎ |
| 軽量運用 | △ | ◎ |
Kibanaは分析用途、
本アプリは運用担当者向けの検索ポータルとして利用できます。
まとめ
今回は GitHub で公開している Elixir製ログ検索サイトを利用し、Elasticsearch に保存されたログを検索してみました。
Plug + Cowboy を利用したシンプルな構成のため導入が容易であり、Kibanaとは別に利用者向け検索画面を提供できます。
本サイトについてPython/Flask版も作成しています。
言語によるパフォーマンス比較にも使用ください。
続きの記事として、リアルタイムデータも参照できるアプリも作成しています。
