osqueryをMacで定期実行させてみた

Pocket

だいぶ前になりますがMacにosqueryをインストールしたことがありましたが、その時は軽くさわっただけになっていました。

そして久しぶりにもう少し触ってみたくなったので、本記事でその内容を記載してみました。

なお、Macへのosqueryのインストールについては、以下の記事に記載しております。

とりあえず今回はコマンドラインでインタラクティブに実行する方法と、バックグラウンドて定期実行する方法について記載しておきます。

1.osqueryiでインタラクティブに実行

Macのターミナルから osqueryi コマンドを実行することで、インタラクティブにpcの情報を確認することが可能です。

ちなみに私のMacの場合、osqueryiコマンドは以下の場所に配置されています。

/user/local/bin/osqueryi

osqueryでどんなテーブルを保持しているかは、osqueryiを実行した後、”>” プロンプトで「.table」と入力することで確認できます。

osquery での .table実行結果

以下はuptimeテーブルの情報を表示した結果です。

uptimeテーブル表示結果

ちなみに結果の表示方法にはcsv,column,line,list,prettyの5つがあり、.modeコマンドでcsvを選択すると以下の通りになります。

csvでの結果出力

なお、上記の場合、ヘッダーと結果の2行が表示されていますが、結果の1行だけでいいという場合は、.header off でヘッダーを表示させないこともできます。

ヘッダー非表示の場合

上記以外にもいくつかオプション機能がありますので、.help コマンドで確認してみてください。

2.osqueryctlで定期実行

osqueryctlでコマンドを定期実行する際の作業ステップは以下の通りになります。

2.1 osquery.confの作成・編集

以下の場所にosquery.confを作成し、どんなコマンドを実行させるか記載します。

/etc/osquery/osquery.conf

なお、以下はosquery.confの記載例ですが、100秒ごとにPCのuptimeを記録しています。

{
  "schedule": {
    "pc_info": {
      "query": "select * from uptime;",
      "interval": 100
    }
  }
}

2.osqueryctl startの実行

confファイルを作成したら、以下のコマンドにてバックグラウンドで実行させます。

なお、通常、このコマンドは管理者権限で実行させる必要がありますので、sudoを利用します。

sudo osqueryctl start

3.ログ出力確認

実行結果のログは通常、以下の場所に出力されます。

このファイルの内容をcatコマンドなどで表示し、正常に実行結果が出力されているか確認してください。

/var/log/osquery/osqueryd.results.log

以上、簡単なosqueryの使い方になります。

今後はこのosqueryのログをSplunkに取り込み、分析できればと考えています。


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA