Elastic Stack を学んだりデモしたりするとき、いつも困ることがありました。ちょうどいい練習用データがないという問題です。
本番ログは使えない、ランダムなダミーログは退屈すぎる。ES|QL の練習や SOC ラボ、ダッシュボードのデモには、もう少し「意味のあるデータ」が欲しい。そこで、自分で作ってみました。
GitHub に公開しています:

何のするツールか
一言でいうと、ECS スタイルの NDJSON イベントを生成するシミュレーターです。Splunk の Eventgen にインスパイアされていますが、最初から Elastic Stack(ECS、ES|QL、observability、detection engineering)向けに設計しています。
ポイントは、ただランダムなログを吐き出すのではなく、軽い「振る舞いのパターン」を持ったデータを作るところです。
データセット
現在は2種類のジェネレーターが入っています。
linux.auth(SOC 寄り)
Linux の auth.log を想定したデータです。20人の従業員、複数の部署、社内 IP、VPN、攻撃者 IP(国情報つき)、ブルートフォース攻撃のセッション、そして「正規ユーザーのタイポによるログイン失敗バースト」まで含まれています。攻撃と正常な失敗が同じ形をしているので、検知ルールの練習にちょうどいいデータになっています。
network.flow(SRE / observability 寄り)
日本の小さな EC サービスを模した、4つのマイクロサービス間の通信データです。普段は健全な状態ですが、`latency_spike` や `error_spike` のシナリオを有効にすると、特定の時間帯だけ遅延やエラーが上がる、というデータを生成できます。
どう使うのか
ローカルで uv run python generator/main.py を実行するだけで NDJSON ファイルが出力されます。それを _bulk API か Kibana の File Upload で Elasticsearch に入れれば、すぐに Discover や ES|QL で触れます。
詳しいセットアップ手順、CLI オプション、ES|QL のサンプルクエリは GitHub の README にすべてまとめています。コピペで動くコマンドを並べているので、興味があれば README から順に試してみてください。
どんな場面で役立つか
- ES|QL を手を動かして覚えたいとき
- SOC アナリスト向けのトレーニング教材を作りたいとき
- ダッシュボードや検知ルールのデモ環境を素早く立ち上げたいとき
- お客様向けのワークショップや PoC の素材として
「本物そっくりだけど安全に使えるデータで、ちゃんと動くデモがしたい」場面で、特に役に立つはずです。

