以下は kansatsu tail --follow --alert=slack を実行した際の出力例です。
$ kansatsu tail --follow --alert=slack 2026-07-10 09:14:02 INFO nginx GET /api/orders 200 42ms 2026-07-10 09:14:03 INFO nginx GET /api/orders 200 39ms 2026-07-10 09:14:05 WARN worker queue depth 812 (threshold 500) 2026-07-10 09:14:07 ERROR payments timeout connecting to db-primary (3/3) └─ pattern matched "timeout connecting to db-primary" × 3 / 90s └─ alert → webhook:#ops-alerts sent in 142ms 2026-07-10 09:14:09 INFO nginx GET /api/orders 200 44ms $ █
NAME
kansatsu — ログを tail し、正規表現パターンを検知し、閾値を超えたら通知する。それだけを、正確に。
現場のログ監視は複雑になりすぎた。ダッシュボードを開き、クエリを書き、契約プランを見比べる前に、
多くの現場が本当に必要としているのは「特定のエラーが3回起きたら教えてほしい」という一行の要求だけだ。
kansatsu は1バイナリ・設定ファイル1枚・依存ゼロで動く。tail -f の延長線上に、
パターン検知と通知を足しただけの道具として設計した。ログを溜め込まない。集計もしない。
見るべき瞬間にだけ、見るべき人に届ける。
SYNOPSIS
kansatsu tail [--follow] [--pattern=<regex>] [--alert=<webhook|mail|slack>] [--since=<duration>] <path> kansatsu watch --config=<file> kansatsu replay --from=<date> --to=<date> --pattern=<regex>
単発の調査には tail、常駐監視には設定ファイルを渡す watch、
過去ログへの再検索には replay を使う。3つのサブコマンドで完結し、これ以上は増やさない方針。
INSTALL
Homebrew(macOS / Linuxbrew)
brew install kansatsu/tap/kansatsu
curl(インストールスクリプト)
curl -fsSL https://get.kansatsu.dev/install.sh | sh
APT(Debian / Ubuntu)
# リポジトリ登録は初回のみ curl -fsSL https://get.kansatsu.dev/gpg | sudo apt-key add - echo "deb https://get.kansatsu.dev/apt stable main" | sudo tee /etc/apt/sources.list.d/kansatsu.list sudo apt update && sudo apt install kansatsu
いずれの方法でもバイナリは単体で動作する。ランタイムの追加インストールは不要。
USAGE
主要コマンドは6つ。すべて kansatsu <command> --help でその場の一覧を確認できる。
| コマンド | 説明 | 例 |
|---|---|---|
tail | ログファイルを末尾から読み進める | kansatsu tail --follow /var/log/nginx/access.log |
watch | 設定ファイルに従い複数ログを常時監視 | kansatsu watch --config=kansatsu.yml |
replay | 過去ログに対してパターン検索を再実行 | kansatsu replay --from=2026-07-01 --pattern="timeout" |
test | 通知先への疎通確認を行う | kansatsu test --alert=webhook |
config validate | 設定ファイルの構文を検査する | kansatsu config validate kansatsu.yml |
version | バージョン情報を表示する | kansatsu version |
OPTIONS
主要フラグ
- --follow, -f
- ファイル末尾に追従し続ける(
tail -f相当)。指定しない場合は既存ログを一度走査して終了する - --pattern=<regex>
- 検知する正規表現パターン。複数指定した場合はいずれか一致で検知する
- --alert=<dest>
- 検知時の通知先。webhook / mail / slack のいずれか。既定は未設定(通知しない)
- --since=<duration>
- 何分前からのログを走査するか。例: 30m, 2h, 1d
- --threshold=<n>
- 同一パターンの検知回数が n 回を超えたら通知する。既定は 1(単発検知で通知)
- --config=<path>
- 設定ファイルのパス。既定は
./kansatsu.yml
設定ファイル例(kansatsu.yml)
# kansatsu.yml
watch:
- path: /var/log/nginx/access.log
pattern: "5\\d{2} "
threshold: 5
window: 60s
alert: webhook
- path: /var/log/app/worker.log
pattern: "timeout connecting to"
threshold: 3
window: 90s
alert: mail
alert:
webhook:
url: https://hooks.example.internal/kansatsu
mail:
to: ops@example.internal
PRICING
| 機能 | OSS(無料) | Team(¥1,800 / host / 月) |
|---|---|---|
| ホスト数 | 無制限(セルフホスト) | 契約ホスト数まで |
| 検知パターン | 無制限(正規表現ベース) | 無制限 |
| 通知先 | Webhook 1件のみ | Webhook / メール / チャット通知、無制限 |
| ログ保持 | 保持しない(ストリーム処理のみ) | 90日間のクラウド保管・全文検索 |
| 検知履歴 | 標準出力のみ | ダッシュボードで確認・CSV出力 |
| メンバー招待 | — | 10名まで(監査ログ付き) |
| サポート | コミュニティ(Issueベース) | メール対応・1営業日以内に返信 |
| ライセンス | MIT | 年払い契約(¥18,000 / host / 年) |
FAQ
Q. OSS版とTeam版は、あとから切り替えできますか?
A. できます。kansatsu.yml はそのまま使えます。Team版は保持期間と通知先の上限を外すだけで、コマンド体系は変わりません。
Q. Windowsでも動きますか?
A. 動きます。WSL2 上での利用を推奨しています。ネイティブバイナリは現在検証中です。
Q. 誤検知が多い場合はどう調整すればよいですか?
A. threshold と window を調整してください。「60秒間に5回」のように積算条件を指定すると、単発のエラーで通知が飛ぶのを防げます。
Q. ログの内容は外部に送信されますか?
A. OSS版は送信しません。ローカルでストリーム処理し、通知メッセージのみを指定した通知先に送ります。Team版で保持を有効にした場合のみ、暗号化してクラウドに保管します。
Q. 既存の監視基盤と併用できますか?
A. できます。kansatsu は tail と検知に特化した単機能CLIです。集約基盤へは Webhook 経由でイベントを転送できます。
Q. 導入にどれくらい時間がかかりますか?
A. バイナリの設置と kansatsu.yml の作成だけで、10分程度が目安です。