デフォルトでは、Osquery はサイズに基づくログローテーションをサポートしています。SAM 合計使用状況メトリクスに対して有効にし、ログのサイズとローテーションを設定するには、Osqueryd サービスに特定のフラグを追加する必要があります。

始める前に

必要なロール:admin

注: Osqueryd を使用する SAM は、メモリーと CPU サイクルを消費します。たとえば、2 つの CPU コア、8 GB の RAM、ソフトウェアのインストールが 1000 件、および実行中のプロセスが 500 件である Windows マシンにエージェントがインストールされている場合、以下が確認されました。
  • Agent および Osqueryd の平均 CPU 使用率は 10% CPU 未満で、最大で 30% CPU でした。これは、SAM バックグラウンドポリシーがトリガーされた場合にのみ発生します。デフォルトでは、トリガーは 480 秒ごとに発生します。
  • Agent および Osqueryd の平均メモリー使用量は 10 MB 未満で、最大 26 MB が消費されました。
実行中の単一のプロセスのデータを 2 日間保存するには、ログファイルの平均サイズを 52429 バイトにする必要があります。マシン上で実行中のプロセスの数が多い場合は、ログファイルのサイズを大きくする必要があります。たとえば、実行中のプロセスが 500 件の場合、ログサイズは平均 25 MB になり、これは 26214400 バイトです。

手順

  1. Osqueryd インストールフォルダーに移動します。
  2. osquery.flags ファイルを見つけて編集します。
  3. サイズの目安を参照して、以下のフラグを追加します。
    注: ログファイルサイズの変更は、Osqueryd ログファイルのサイズの目安に従って行う必要があります。
    Windows の場合:
    • --logger_rotate=true
    • --logger_rotate_size=26214400
    • --logger_rotate_max_files=1
    • --watchdog_level=1
    macOS の場合:
    • --logger_rotate=true
    • --logger_rotate_size=26214400
    • --logger_rotate_max_files=1
    • --watchdog_level=1
    • --logger_mode=0644
  4. ファイルを保存します。

タスクの結果

Osqueryd スケジュールと Osqueryd ログが設定されると、Osqueryd サービスを開始できます。

スケジュールにより Osquery が実行されます。「Select name, pid, elapsed_time, start_time, user_time, system_time, username from processes p JOIN users u ON u.uid = p.uid where p.elapsed_time != -1 AND u.type !='special';」がターゲットマシンで 5 分 (300 秒) ごとに実行されます。これにより、結果がログファイルに記録されます。ログファイルには、Osqueryd によって実行されるように設定されたすべてのクエリのスナップショットエントリが含まれています。このクエリには、すべてのプロセス属性が含まれています。

注:

一次ファイル marker.json は、マシンの以下のディレクトリにある一時ローカルフォルダーに作成されます。

Windows の場合:<userprofile>\\AppData\\Local\\AgentClientCollector\\SAM

macOS の場合:/Library/Application\ Support/servicenow/agent-client-collector

このファイルには読み取り/書き込み権限があり、「Data and Last Read Unix Time stamp」というマーカーデータが含まれています。

Osqueryd は、ログをデフォルトのディレクトリーではなくカスタムディレクトリーのパスに書き込むように設定することもできます。カスタムディレクトリーを選択する場合は、チェック定義 [samadvanced-background-log-check] を変更します。