コンテンツにスキップ
日本語

コマンドと文の記録

録画は「何が起きたか」に答えますが、検索はできません。コマンドの記録は、検索と位置決めのための索引です。 セッションをまたいで一つのコマンドを探し、元の接続とその時刻へ戻れます。

記録の出どころは二つです。コマンドラインの内容はターミナルの出力から組み直したもので、事実の出どころは録画です。 クエリコンソールの文は送信のときにそのまま登録するので、それ自体が事実の出どころです。

「コマンド監査」のページでセッションをまたいで検索します。絞り込みの条件は次のとおりです。

  • キーワード。コマンドの内容に対する部分一致です。
  • 出どころ:クエリコンソールか、コマンドラインか。
  • 対象のデータベース。
  • 結果の状態(複数選択可)とターゲット側のエラーコード。
  • ユーザー、資産、期間。

一覧の操作から、その接続へ直接飛べます。再生はその記録の時刻に合わされます。

ひとつのセッションのコマンドの一覧は接続詳細のページにあります。区画には、内容がキー入力の流れから組み直したものであり、録画の再生を正とする旨の注記が付きます。 コンソールのセッションの注記は、文が送信のときに登録されることを示します。

サーバーの出力の流れを仮想のターミナル画面に流し込み、利用者が Enter を押した時点でその行を取ります。 このやり方だと、バックスペース、Tab の補完、履歴の呼び出しが正しく反映されます。ターミナルに実際に出ている内容を読んでいるからです。 SSH、データベースのコマンドライン、コンテナの exec は同じ組み直しの仕組みを使います。

MySQL と PostgreSQL のセッションでは、続きの行にまたがる一つの SQL がまとまって一件の記録になり、 セミコロンかメタコマンドが来たところで確定します。SELECT\n1 AS\nx; は三件ではなく一件です。 メタコマンドとそのあとのクエリはそれぞれ独立します。Redis と SSH は行ごとのままです。 SQL Server はバッチの終端で区切り、プロンプトはコマンドの文字に混ざりません。

実行の単位ごとに一意のイベント識別子が付き、結果の事実の項目も付きます。 対象のデータベース、結果の状態、理由のコード、返した行数、影響した行数、結果セットの数、ターゲット側のエラーコード、所要時間、打ち切りの有無です。 結果の状態の値はデータベースの制約で固定してあり、実行中、成功、エラー、ブロック、取り消し済み、時間切れ、一部だけ反映、結果不明を含みます。

エコーが見える入力は検索可能なコマンド記録または明示された格下げ記録になります。エコーされない入力はコマンド本文の記録に残らず、テキストセッションの事実の出どころは録画です。agent のブロックされたコマンドは対象に届かないため、録画とツール台帳に残り、通常のコマンド記録には入りません。確かな形で組み直せないときは、はっきり印の付いた格下げの記録になり、 推測した文字は入りません。画面は一件ずつ「このやりとりの内容は復元できません」と示し、その時間帯の録画へ飛ぶ入口を用意します。 区画の上にはバナーが出て、この期間に復元できなかった件数と、キーワード検索がそれらを含まないことを示します。

格下げそのものがアラートを起こすことがあり、アラートのページでは独立した分類として出ます。

コマンドの文字は索引で、接続の録画が事実の出どころです。食い違うときは録画を正とします。 コンソールの文の記録は例外です。それ自体が事実の出どころで、書き起こしの録画はそこから派生したものです。 二つはイベント識別子で対応し、食い違うときは構造化された記録を正とします。

  • 記録ごとに、通し番号、コマンドまたは文の原文、実行の時刻、所属するセッション、ユーザー、資産が入ります。
  • コンソールの記録には前に挙げた結果の事実の項目も入り、セッションをまたぐ検索でその項目を直接絞り込みに使えます。
  • 格下げの記録にははっきり印が付き、件数も画面で見えます。
  • 証拠パッケージのコマンドの CSV はこれらの項目を含みます。テキストのターミナルの記録では結果の項目は空になります。証拠パッケージとイベントレポートを参照してください。