【実践編】GitHubから取得してすぐ使える!Elixir製ログ検索サイトでIcebergを検索する
はじめに
以前公開した Elasticsearch版ログ検索サイトに続き、今回は Apache Iceberg を直接検索できる版を作成しました。
リアルタイムデータを保管しているTrino から参照できる、Iceberg の syslog_events / authlog_events テーブルを検索するログ検索アプリになります。
以前構築したElasticsearchでは定期バッチ保管している関係上、リアルタイムでのデータ参照できないため、
本アプリを使用することによりIcebergに保管しているリアルタイムデータも参照できるようにします。
GitHub
画面
このアプリを利用すると、ブラウザから Iceberg テーブルを検索できます。
特徴
- Apache Iceberg対応
- Trino経由で検索
- ブラウザから利用可能
- Dockerで簡単起動
- REST API対応
システム構成
前提条件
以下が利用可能であること。
- Trino
- Iceberg Catalog
- Docker
- Docker Compose Plugin
trinoは以下の記事の構成で作成済みのものを利用します。
また当日検索としているため、以下の記事を参考にリアルタイム収集環境を構築してください。
ソース取得
git clone -b iceberg https://github.com/naritomo08/elixir_elastic.git
cd elixir_elastic
起動
docker compose up --build
起動確認
docker compose ps
ブラウザアクセス
http://localhost:5003
ログ検索
検索項目
- 開始時刻
- 終了時刻
- ログ種別
- ホスト
- プログラム
- メッセージ
ログ種別
syslog
authlog
API利用
curl -X POST http://localhost:5003/api/logs -H "Content-Type: application/json" -d '{
"log_type":"syslog",
"message":"timeout"
}'
ヘルスチェック
curl http://localhost:5003/health
Elasticsearch版との違い
| 項目 | Elasticsearch版 | Iceberg版 |
|---|---|---|
| 検索先 | Elasticsearch | Iceberg |
| 検索方式 | 全文検索 | SQL検索 |
| 正本データ | × | ○ |
| Trino必要 | 不要 | 必要 |
まとめ
今回は Apache Iceberg を直接検索できる Elixir 製ログ検索サイトを紹介しました。
Grafana や Trino CLI を利用せずに、ブラウザから簡単に Iceberg のログを検索できます。
Iceberg を正本として運用している環境では、運用担当者向け検索ポータルとして活用できます。
