keenauth logs tail でログを追跡する
keenauth logs tail は、作業中に環境のログ(サインイン、セッション、トークン、MFA、攻撃対策)を tail -f のように追跡します。最新のレコードを新しいものから古いものへの順で表示したあと、一定の間隔で新しいレコードがないか確認し、見つかったものを順に表示します。停止するには Ctrl-C を押します。その後、コマンドは終了コード 0 で終了します。
このコマンドは keenauth logs list と同じレコードを読み取り、同じ権限(logs:read)が必要です。API キーと keenauth login のセッションのどちらでも動作します。
使用方法
keenauth logs tail --type authentication. --user usr_01j9z3k4m5n6p7q8r9s0t1v2w3
| フラグ | 説明 |
|---|---|
--type |
ログタイプの接頭辞(例: authentication. や session.created)。カンマ区切りまたは繰り返し指定でき、最大 20 個です。いずれかに一致するレコードが表示されます。 |
--user |
このユーザー(usr_…)のレコードのみ表示します。 |
--org |
この組織(org_…)のレコードのみ表示します。 |
--limit |
追跡を開始する前に表示する最近のレコード数(1〜100)。デフォルト: 20。 |
--interval |
2 回の確認の間隔(1s から 60s)。デフォルト: 5s。 |
--output, -o |
table、json、yaml のいずれか。フラグを省略すると、ターミナルでは表形式、それ以外では JSON で出力します。 |
無効なフィルターまたは間隔を指定した場合、リクエストを送信する前にコマンドは終了コード 2 で停止します。
出力
table: レコードごとに 1 行で、時刻(UTC)、タイプ、結果、ユーザー、組織、ログ ID を表示します。値がない場合は-と表示されます。json: 1 レコードにつき 1 つの JSON オブジェクト(改行区切りの JSON)です。keenauth logs getが返すものと同じオブジェクトです。標準出力がターミナルでない場合の既定値なので、例えばjqにパイプできます。yaml: レコードごとに 1 つの YAML ドキュメントで、それぞれ---から始まります。
keenauth logs tail --type authentication.failed -o json | jq -r '.ip_country'
IP アドレス、ユーザーエージェント、識別子のヒントは、お使いの認証情報に the logs API に記載の権限がある場合にのみ表示されます。
追跡の仕組み
logs API は最新のレコードから順に返し、待機パラメーターがないため、コマンドはポーリングを行います。最初のページの後、各確認では、表示済みの最新時刻以降のレコードを要求し、すでに表示したレコードはスキップするので、同じレコードが二重に表示されることはありません。確認ごとに、新しいレコードをすべて取得するまで結果ページをたどります(確認 1 回あたり最大 2,000 件)。お使いのプランの保持期間より古いレコードは返されません。
終了コード
| コード | 意味 |
|---|---|
0 |
Ctrl-C で停止しました。 |
1 |
サーバーエラーまたはネットワーク障害です。 |
2 |
使用方法のエラーです。フィルター、上限、間隔、出力形式のいずれかが無効です。リクエストは送信されていません。 |
3 |
認証情報がないか、サーバーが 401 または 403 を返しました。 |
4 |
お使いのプランではこの機能は含まれていません(plan_feature_unavailable を伴う 403)。 |