9.3. Filtrage des journaux d'audit
Vous pouvez utiliser jq
ou un autre outil d'analyse JSON pour filtrer les journaux d'audit du serveur API.
La quantité d'informations consignées dans les journaux d'audit du serveur API est contrôlée par la stratégie de journal d'audit définie.
La procédure suivante fournit des exemples d'utilisation de jq
pour filtrer les journaux d'audit sur le nœud du plan de contrôle node-1.example.com
. Voir le manuel jq pour des informations détaillées sur l'utilisation de jq
.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. -
Vous avez installé
jq
.
Procédure
Filtrer les journaux d'audit du serveur API OpenShift par utilisateur :
$ oc adm node-logs node-1.example.com \ --path=openshift-apiserver/audit.log \ | jq 'select(.user.username == "myusername")'
Filtrer les journaux d'audit du serveur OpenShift API par agent utilisateur :
$ 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")'
Filtrer les journaux d'audit du serveur API Kubernetes en fonction d'une certaine version de l'API et n'afficher que l'agent utilisateur :
$ oc adm node-logs node-1.example.com \ --path=kube-apiserver/audit.log \ | jq 'select(.requestURI | startswith("/apis/apiextensions.k8s.io/v1beta1")) | .userAgent'
Filtrer les journaux d'audit du serveur OpenShift OAuth API en excluant un verbe :
$ oc adm node-logs node-1.example.com \ --path=oauth-apiserver/audit.log \ | jq 'select(.verb != "get")'
Filtrer les journaux d'audit du serveur OpenShift OAuth en fonction des événements qui ont identifié un nom d'utilisateur et qui ont échoué avec une erreur :
$ oc adm node-logs node-1.example.com \ --path=oauth-server/audit.log \ | jq 'select(.annotations["authentication.openshift.io/username"] != null and .annotations["authentication.openshift.io/decision"] == "error")'