7.3. 監査ログのフィルター
jq
または別の JSON 解析ツールを使用して、API サーバー監査ログをフィルターできます。
注記
API サーバー監査ログに記録する情報量は、設定される監査ログポリシーで制御できます。
以下の手順では、jq
を使用してコントロールプレーンノード node-1.example.com
で監査ログをフィルターする例を示します。jq
の使用についての詳細は、jq Manual を参照してください。
前提条件
-
cluster-admin
ロールを持つユーザーとしてクラスターにアクセスできる。 -
jq
がインストールされている。
手順
OpenShift API サーバー監査ログをユーザーでフィルターします。
$ oc adm node-logs node-1.example.com \ --path=openshift-apiserver/audit.log \ | jq 'select(.user.username == "myusername")'
OpenShift API サーバー監査ログをユーザーエージェントでフィルターします。
$ oc adm node-logs node-1.example.com \ --path=openshift-apiserver/audit.log \ | jq 'select(.userAgent == "cluster-version-operator/v0.0.0 (linux/amd64) kubernetes/$Format")'
Kubernetes API サーバー監査ログを特定の API バージョンでフィルターし、ユーザーエージェントのみを出力します。
$ oc adm node-logs node-1.example.com \ --path=kube-apiserver/audit.log \ | jq 'select(.requestURI | startswith("/apis/apiextensions.k8s.io/v1beta1")) | .userAgent'
動詞を除外して OpenShift OAuth API サーバー監査ログをフィルターします。
$ oc adm node-logs node-1.example.com \ --path=oauth-apiserver/audit.log \ | jq 'select(.verb != "get")'