セッションログを表示および管理する

SSHセッションの記録ログを表示して管理することができます。さまざまなコマンドを使用して、ログのエクスポート、デコード、確認、表示が行えます。

セッションが終了すると、セッションの記録が/var/log/sft/sessionsに保存されます。ファイル名には、timestamp-teamname-username.asaの形式で、UTC タイムスタンプ、アドバンストサーバーアクセスのチーム名、セッションユーザーのユーザー名が含まれます。例えば、サンプルセッションのログファイル名は、20200903T153818.5108-mycompany-myuser.asaです。

セッションが終了する前に、ログが一時的なストレージ(Linuxでは通常/tmp)に保存されます。

注意: 次のセクションのコマンドのtimestamp-teamname-username.asaを、ログファイルの名前で置き換えてください。

開始する前に

asciinemaをダウンロードしてインストールします。「asciinema」をご覧ください。

セッションログファイルで機能する大半のコマンドを実行するには、チームに登録されている認証済みのアドバンストサーバーアクセスのクライアントが必要になります。これは、ログの改ざんを防ぐために、ログがゲートウェイによって署名されるためです。クライアントは、アドバンストサーバーアクセスのプラットフォームからゲートウェイのパブリックキーを取得し、それを使用して、ログが改ざんされていないか検証します。

アドバンストサーバーアクセスのクライアントがアクセスできる場所にログファイルをコピーします。ファイルはアクセス制限付きなので、クライアントがアクセスできるようにするには、chmodを実行してログのアクセス許可を変更する必要が生じる場合があります。例えば、Linuxの場合、ファイル20200903T153818.5108- mycompany-myuser.asaの読み取りアクセス権限を全員に許可するには、コマンドchmod 444 20200903T153818.5108-mycompanymyuser. asaを実行します。

asciinemaを使用してセッションログを再生する

  1. ログをasciinema format:
    sft sessionlogs export --format asciinema 20200903T153818.5108-demo3-demo.asa --output filename.castにエクスポートする
  2. asciinema:
    asciinema play filename.castを使用してログを再生する

ログをJSONにエクスポートする

次のコマンドを使用して、ログの整合性を検証した後、JSONにエクスポートできます。

sft session-logs export timestamp-teamname-username.asa

または、次のコマンドを使用して、整合性を検証することなく、ログをエクスポートすることもできます。

sft session-logs export --insecure timestamp-teamname-username.asa

--insecureオプションを使用すると、アドバンストサーバーアクセスにログインせずに、セッションログをエクスポートできます。

ログの整合性を検証する

次のコマンドを使用して、ログを出力することなく、ログの整合性を検証することもできます。

sft session-logs verify timestamp-teamname-username.asa

ログをデコードする

ログファイルのすべての入力/出力は、Base64でエンコードされています。次のコマンドを使用して、Base64でエンコードされた生のログデータの取得とデコードを実行できます。

sft session-logs export timestamp-teamname-username.asa | jq -r '.frames[] | .logRequest.io.data' | base64 -d

その前のコマンドの出力には受信文字と送信文字が含まれます。この場合、各文字の重複を含むログが生じる場合があります。クリーンなログを作成するには、送信文字のみを含める以下のコマンドを使用してください。

sft session-logs export timestamp-teamname-username.asa | jq -r '.frames[] | select (.logRequest.io.direction == "OUTGOING") | .logRequest.io.data' | base64 -d

セッションをstdoutに印刷する

次のように、ログをasciinema形式にエクスポートし、catコマンドを使用してセッション をstdoutに印刷することができます。

sft session-logs export --format asciinema 20200903T153818.5108-demo3-demo.asa --output filename.cast

asciinema cat filename.cast

関連項目

セッションキャプチャ

セッションログ