だいぶ前になりますがMacにosqueryをインストールしたことがありましたが、その時は軽くさわっただけになっていました。
そして久しぶりにもう少し触ってみたくなったので、本記事でその内容を記載してみました。
なお、Macへのosqueryのインストールについては、以下の記事に記載しております。
とりあえず今回はコマンドラインでインタラクティブに実行する方法と、バックグラウンドて定期実行する方法について記載しておきます。
1.osqueryiでインタラクティブに実行
Macのターミナルから osqueryi コマンドを実行することで、インタラクティブにpcの情報を確認することが可能です。
ちなみに私のMacの場合、osqueryiコマンドは以下の場所に配置されています。
/user/local/bin/osqueryi
osqueryでどんなテーブルを保持しているかは、osqueryiを実行した後、”>” プロンプトで「.table」と入力することで確認できます。
以下はuptimeテーブルの情報を表示した結果です。
ちなみに結果の表示方法にはcsv,column,line,list,prettyの5つがあり、.modeコマンドで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に取り込み、分析できればと考えています。
コメントを残す