Questa pagina contiene i passaggi per installare e configurare i componenti necessari per creare un backup. Descrive inoltre come ripristinare e recuperare l'accesso ai log di controllo storici dal backup.
Configurare un backup in un bucket remoto
Questa sezione contiene i passaggi per creare un backup per i log di controllo in un bucket compatibile con S3.
Prima di iniziare
Prima di poter creare un backup dei log di controllo, devi avere accesso alle seguenti risorse:
- Un bucket S3 remoto con un endpoint, una chiave di accesso segreta e un ID chiave di accesso.
- Un certificato dell'autorità di certificazione (CA) per il sistema di archiviazione.
- Un cluster funzionante.
Ottieni le credenziali per accedere al bucket di origine
Segui questi passaggi per trovare le credenziali del bucket che contiene gli audit log:
Nel cluster di amministrazione principale, elenca i bucket nello spazio dei nomi del progetto:
kubectl get bucket -n PROJECT_NAMESPACE
L'output deve essere simile all'esempio seguente, in cui i bucket di logging degli audit mostrano un nome e un endpoint:
NAME BUCKET NAME DESCRIPTION STORAGE CLASS FULLY-QUALIFIED-BUCKET-NAME ENDPOINT REGION BUCKETREADY REASON MESSAGE audit-logs-loki-all audit-logs-loki-all Bucket for storing audit-logs-loki-all logs Standard wwq2y-audit-logs-loki-all https://appliance-objectstorage.zone1.google.gdch.test zone1 True BucketCreationSucceeded Bucket successfully created. cortex-metrics-alertmanager cortex-metrics-alertmanager storage bucket for cortex metrics alertmanager configuration data Standard wwq2y-cortex-metrics-alertmanager https://appliance-objectstorage.zone1.google.gdch.test zone1 True BucketCreationSucceeded Bucket successfully created. cortex-metrics-blocks cortex-metrics-blocks storage bucket for cortex metrics data Standard wwq2y-cortex-metrics-blocks https://appliance-objectstorage.zone1.google.gdch.test zone1 True BucketCreationSucceeded Bucket successfully created. cortex-metrics-ruler cortex-metrics-ruler storage bucket for cortex metrics rules data Standard wwq2y-cortex-metrics-ruler https://appliance-objectstorage.zone1.google.gdch.test zone1 True BucketCreationSucceeded Bucket successfully created. ops-logs-loki-all ops-logs-loki-all Bucket for storing ops-logs-loki-all logs Standard wwq2y-ops-logs-loki-all https://appliance-objectstorage.zone1.google.gdch.test```
Utilizzando le informazioni dell'output ottenuto, imposta le seguenti variabili di ambiente per il trasferimento:
SRC_BUCKET= BUCKET_NAME SRC_ENDPOINT = ENDPOINT SRC_PATH= FULLY_QUALIFIED_BUCKET_NAME
Sostituisci quanto segue:
BUCKET_NAME
: il nome del bucket che contiene i log di controllo per i quali vuoi creare il backup. Questo valore si trova nel campoBUCKET NAME
dell'output.ENDPOINT
: l'endpoint del bucket che contiene gli audit log per i quali vuoi creare il backup. Questo valore si trova nel campoENDPOINT
dell'output.FULLY_QUALIFIED_BUCKET_NAME
: il nome completo del bucket che contiene gli audit log per i quali vuoi creare il backup. Questo valore si trova nel campoFULLY-QUALIFIED-BUCKET-NAME
dell'output.
Recupera il secret per il bucket selezionato nel passaggio precedente:
kubectl get secret -n PROJECT_NAMESPACE -o json| jq --arg jq_src $SRC_BUCKET '.items[].metadata|select(.annotations."object.gdc.goog/subject"==$jq_src)|.name'
L'output deve essere simile all'esempio seguente, in cui viene visualizzato il nome segreto del bucket:
"object-storage-key-sysstd-sa-olxv4dnwrwul4bshu37ikebgovrnvl773owaw3arx225rfi56swa"
Utilizzando il nome del secret dall'output ottenuto, imposta la seguente variabile di ambiente:
SRC_CREDENTIALS="PROJECT_NAMESPACE/SECRET_NAME"
Sostituisci
SECRET_NAME
con il nome del secret ottenuto nell'output precedente.Crea il secret per il certificato CA del sistema di archiviazione:
kubectl create secret generic -n PROJECT_NAMESPACE audit-log-loki-ca \ --from-literal=ca.crt=CERTIFICATE
Sostituisci
CERTIFICATE
con il certificato CA del sistema di archiviazione.Imposta la seguente variabile di ambiente:
SRC_CA_CERTIFICATE=PROJECT_NAMESPACE/audit-log-loki-ca
Ottieni le credenziali per accedere al bucket remoto
Segui questi passaggi per trovare le credenziali del bucket in cui vuoi creare il backup:
Imposta le seguenti variabili di ambiente:
DST_ACCESS_KEY_ID= ACCESS_KEY DST_SECRET_ACCESS_KEY= ACCESS_SECRET DST_ENDPOINT= REMOTE_ENDPOINT DST_PATH= REMOTE_BUCKET_NAME
Sostituisci quanto segue:
ACCESS_KEY
: la chiave di accesso del bucket remoto di destinazione.ACCESS_SECRET
: il segreto di accesso del bucket remoto di destinazione.REMOTE_ENDPOINT
: l'endpoint del bucket remoto di destinazione.REMOTE_BUCKET_NAME
: il nome del bucket remoto di destinazione.
Crea un secret per il bucket remoto:
kubectl create secret generic -n PROJECT_NAMESPACE s3-bucket-credentials \ --from-literal=access-key-id=$DST_ACCESS_KEY_ID \ --from-literal=secret-access-key=$DST_SECRET_ACCESS_KEY
Imposta la seguente variabile di ambiente con la posizione del secret:
DST_CREDENTIALS=PROJECT_NAMESPACE/s3-bucket-credentials
Se il bucket di destinazione richiede la configurazione di un certificato CA, crea un secret con il certificato CA del bucket:
kubectl create secret generic -n PROJECT_NAMESPACE s3-bucket-ca \ --from-literal=ca.crt=REMOTE_CERTIFICATE
Sostituisci
REMOTE_CERTIFICATE
con il certificato CA del bucket remoto di destinazione.Imposta la seguente variabile di ambiente con la posizione del certificato:
DST_CA_CERTIFICATE=PROJECT_NAMESPACE/s3-bucket-ca
Configurare il trasferimento degli audit log
Segui questi passaggi per configurare il trasferimento dei log di controllo dal bucket di origine al bucket di destinazione per il backup:
Crea un account di servizio per il job di trasferimento dei log di controllo. Devi fornire l'accesso al account di servizio per leggere il bucket di origine e i secret nello spazio dei nomi del progetto.
kubectl apply -f - <<EOF --- apiVersion: v1 kind: ServiceAccount metadata: name: audit-log-transfer-sa namespace: PROJECT_NAMESPACE --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: read-secrets-role namespace: PROJECT_NAMESPACE rules: - apiGroups: [""] resources: ["secrets"] verbs: ["get", "watch", "list"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: read-secrets-rolebinding namespace: PROJECT_NAMESPACE subjects: - kind: ServiceAccount name: audit-log-transfer-sa namespace: PROJECT_NAMESPACE roleRef: kind: Role name: read-secrets-role apiGroup: rbac.authorization.k8s.io --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: audit-log-read-bucket-role namespace: PROJECT_NAMESPACE rules: - apiGroups: - object.gdc.goog resourceNames: - $SRC_BUCKET # Source bucket name resources: - buckets verbs: - read-object --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: audit-log-transfer-role-binding namespace: PROJECT_NAMESPACE roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: audit-log-read-bucket-role subjects: - kind: ServiceAccount name: audit-log-transfer-sa namespace: PROJECT_NAMESPACE --- EOF
Crea un job di trasferimento per esportare i log nel bucket remoto:
kubectl apply -f - <<EOF --- apiVersion: batch/v1 kind: Job metadata: name: audit-log-transfer-job namespace: PROJECT_NAMESPACE spec: template: spec: serviceAccountName: audit-log-transfer-sa containers: - name: storage-transfer-pod image: gcr.io/private-cloud-staging/storage-transfer:latest imagePullPolicy: Always command: - /storage-transfer args: - '--src_endpoint=$SRC_ENDPOINT - '--dst_endpoint=$DST_ENDPOINT - '--src_path=\$SRC_PATH - '--dst_path=\$DST_PATH - '--src_credentials=$SRC_CREDENTIALS - '--dst_credentials=$DST_CREDENTIALS - '--dst_ca_certificate_reference=$DST_CA_CERTIFICATE # Optional. Based on destination type. - '--src_ca_certificate_reference=$SRC_CA_CERTIFICATE - '--src_type=s3' - '--dst_type=s3' - '--bandwidth_limit=100M' # Optional of the form '10K', '100M', '1G' bytes per second restartPolicy: OnFailure # Will restart on failure. --- EOF
Dopo aver pianificato il job, puoi monitorare il trasferimento dei dati fornendo il nome del job come audit-log-transfer-job
e lo spazio dei nomi del progetto.
Il job termina quando tutti i dati sono stati trasferiti nel bucket di destinazione.
Ripristinare i log di controllo dal backup
Questa sezione contiene i passaggi per ripristinare gli audit log dal backup.
Prima di iniziare
Prima di poter ripristinare i log di controllo, devi avere accesso alle seguenti risorse:
- Il bucket di backup dei log di controllo con un endpoint, una chiave di accesso segreta e un ID chiave di accesso.
- Un certificato dell'autorità di certificazione (CA) per il sistema di archiviazione.
- Un cluster funzionante.
Crea un bucket per ripristinare i log di controllo
Segui questi passaggi per creare un bucket in cui archiviare gli audit log ripristinati:
Crea la risorsa bucket e il account di servizio:
kubectl apply -f - <<EOF --- apiVersion: object.gdc.goog/v1 kind: Bucket metadata: annotations: object.gdc.goog/audit-logs: IO labels: logging.private.gdch.goog/loggingpipeline-name: default name: audit-logs-loki-restore namespace: PROJECT_NAMESPACE spec: bucketPolicy: lockingPolicy: defaultObjectRetentionDays: 1 description: Bucket for storing audit-logs-loki logs restore storageClass: Standard --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: audit-logs-loki-restore-buckets-role namespace: PROJECT_NAMESPACE rules: - apiGroups: - object.gdc.goog resourceNames: - audit-logs-loki-restore resources: - buckets verbs: - read-object - write-object --- apiVersion: v1 automountServiceAccountToken: false kind: ServiceAccount metadata: labels: logging.private.gdch.goog/loggingpipeline-name: default name: audit-logs-loki-restore-sa namespace: PROJECT_NAMESPACE --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: audit-logs-loki-restore namespace: PROJECT_NAMESPACE roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: audit-logs-loki-restore-buckets-role subjects: - kind: ServiceAccount name: audit-logs-loki-restore-sa namespace: PROJECT_NAMESPACE EOF
Il bucket e il secret vengono creati.
Visualizza il bucket creato:
kubectl get bucket audit-logs-loki-restore -n PROJECT_NAMESPACE
L'output deve essere simile all'esempio seguente. La creazione del bucket potrebbe richiedere alcuni minuti.
NAME BUCKET NAME DESCRIPTION STORAGE CLASS FULLY-QUALIFIED-BUCKET-NAME ENDPOINT REGION BUCKETREADY REASON MESSAGE audit-logs-loki-restore audit-logs-loki-restore Bucket for storing audit-logs-loki logs restore Standard dzbl6-audit-logs-loki-restore https://objectstorage.zone1.google.gdch.test zone1 True BucketCreationSucceeded Bucket successfully created.
L'output deve mostrare il bucket che hai creato. La creazione del bucket potrebbe richiedere alcuni minuti.
Utilizzando le informazioni dell'output ottenuto, imposta le seguenti variabili di ambiente:
DST_BUCKET= RESTORE_BUCKET_NAME DST_ENDPOINT = RESTORE_ENDPOINT DST_PATH= RESTORE_FULLY_QUALIFIED_BUCKET_NAME
Sostituisci quanto segue:
RESTORE_BUCKET_NAME
: il nome del bucket per il ripristino dei log di controllo. Questo valore si trova nel campoBUCKET NAME
dell'output.RESTORE_ENDPOINT
: l'endpoint del bucket per il ripristino dei log di controllo. Questo valore si trova nel campoENDPOINT
dell'output.RESTORE_FULLY_QUALIFIED_BUCKET_NAME
: il nome completo del bucket per il ripristino dei log di controllo. Questo valore si trova nel campoFULLY-QUALIFIED-BUCKET-NAME
dell'output.
Recupera il secret del bucket creato:
kubectl get secret -n PROJECT_NAMESPACE -o json| jq --arg jq_src $DST_BUCKET '.items[].metadata|select(.annotations."object.gdc.goog/subject"==$jq_src)|.name'
L'output deve essere simile all'esempio seguente, in cui viene visualizzato il nome segreto del bucket:
"object-storage-key-sysstd-sa-olxv4dnwrwul4bshu37ikebgovrnvl773owaw3arx225rfi56swa"
Utilizzando il nome del secret dall'output ottenuto, imposta le seguenti variabili di ambiente:
DST_SECRET_NAME=RESTORE_SECRET_NAME DST_CREDENTIALS="PROJECT_NAMESPACE/RESTORE_SECRET_NAME"
Sostituisci
RESTORE_SECRET_NAME
con il nome del secret ottenuto nell'output precedente.Crea il secret per il certificato CA del sistema di archiviazione:
kubectl create secret generic -n PROJECT_NAMESPACE audit-log-loki-restore-ca \ --from-literal=ca.crt=CERTIFICATE
Sostituisci
CERTIFICATE
con il certificato CA del sistema di archiviazione.Imposta la seguente variabile di ambiente per la posizione del certificato:
DST_CA_CERTIFICATE=PROJECT_NAMESPACE/audit-log-loki-restore-ca
Ottieni le credenziali per accedere al bucket di backup
Segui questi passaggi per trovare le credenziali del bucket che contiene il backup degli audit log:
Imposta le seguenti variabili di ambiente:
SRC_ACCESS_KEY_ID= ACCESS_KEY SRC_SECRET_ACCESS_KEY= ACCESS_SECRET SRC_ENDPOINT= REMOTE_ENDPOINT SRC_PATH= REMOTE_BUCKET_NAME
Sostituisci quanto segue:
ACCESS_KEY
: la chiave di accesso del bucket di backup.ACCESS_SECRET
: il secret di accesso del bucket di backup.REMOTE_ENDPOINT
: l'endpoint del bucket di backup.REMOTE_BUCKET_NAME
: il nome del bucket di backup.
Crea un secret per il bucket di backup:
kubectl create secret generic -n PROJECT_NAMESPACE s3-backup-bucket-credentials \ --from-literal=access-key-id=$SRC_ACCESS_KEY_ID \ --from-literal=secret-access-key=$SRC_SECRET_ACCESS_KEY
Imposta la seguente variabile di ambiente con la posizione del secret:
SRC_CREDENTIALS=PROJECT_NAMESPACE/s3-backup-bucket-credentials
Crea un secret con il certificato CA del bucket:
kubectl create secret generic -n PROJECT_NAMESPACE s3-backup-bucket-ca \ --from-literal=ca.crt=BACKUP_CERTIFICATE
Sostituisci
BACKUP_CERTIFICATE
con il certificato CA del bucket di backup.Imposta la seguente variabile di ambiente con la posizione del certificato:
SRC_CA_CERTIFICATE=PROJECT_NAMESPACE/s3-backup-bucket-ca
Configura il ripristino degli audit log
Segui questi passaggi per configurare il trasferimento dei log di controllo dal bucket di backup al bucket di ripristino:
Crea un account di servizio per il job di trasferimento dei log di controllo. Devi fornire all'account di servizio l'accesso in lettura e scrittura al bucket e ai secret nello spazio dei nomi del progetto.
kubectl apply -f - <<EOF --- apiVersion: v1 kind: ServiceAccount metadata: name: audit-log-restore-sa namespace: PROJECT_NAMESPACE --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: read-secrets-role namespace: PROJECT_NAMESPACE rules: - apiGroups: [""] resources: ["secrets"] verbs: ["get", "watch", "list"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: read-secrets-rolebinding-restore namespace: PROJECT_NAMESPACE subjects: - kind: ServiceAccount name: audit-log-restore-sa namespace: PROJECT_NAMESPACE roleRef: kind: Role name: read-secrets-role apiGroup: rbac.authorization.k8s.io --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: audit-log-restore-bucket-role namespace: PROJECT_NAMESPACE rules: - apiGroups: - object.gdc.goog resourceNames: - $DST_BUCKET # Source bucket name resources: - buckets verbs: - read-object - write-object --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: audit-log-restore-role-binding namespace: PROJECT_NAMESPACE roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: audit-log-restore-bucket-role subjects: - kind: ServiceAccount name: audit-log-restore-sa namespace: PROJECT_NAMESPACE --- EOF
Crea un job di trasferimento per ripristinare i log dal bucket di backup remoto:
kubectl apply -f - <<EOF --- apiVersion: batch/v1 kind: Job metadata: name: audit-log-restore-job namespace: PROJECT_NAMESPACE spec: template: spec: serviceAccountName: audit-log-restore-sa containers: - name: storage-transfer-pod image: gcr.io/private-cloud-staging/storage-transfer:latest imagePullPolicy: Always command: - /storage-transfer args: - '--src_endpoint=$SRC_ENDPOINT - '--dst_endpoint=$DST_ENDPOINT - '--src_path=\$SRC_PATH - '--dst_path=\$DST_PATH - '--src_credentials=$SRC_CREDENTIALS - '--dst_credentials=$DST_CREDENTIALS - '--dst_ca_certificate_reference=$DST_CA_CERTIFICATE - '--src_ca_certificate_reference=$SRC_CA_CERTIFICATE # Optional. Based on destination type - '--src_type=s3' - '--dst_type=s3' - '--bandwidth_limit=100M' # Optional of the form '10K', '100M', '1G' bytes per second restartPolicy: OnFailure # Will restart on failure. --- EOF
Dopo aver pianificato il job, puoi monitorare il trasferimento dei dati fornendo il nome del job come audit-log-restore-job
e lo spazio dei nomi del progetto.
Il job termina quando tutti i dati sono stati trasferiti nel bucket di destinazione.
Esegui il deployment di un'istanza di audit log per accedere ai log
Per accedere ai log ripristinati, devi eseguire il deployment di un'istanza Loki, chiamata anche istanza del log di controllo.
Per configurare l'istanza del log di controllo, utilizza il account di servizio audit-log-restore-sa
che hai creato per il job di ripristino. Segui questi passaggi per eseguire il deployment dell'istanza:
Crea un oggetto
ConfigMap
per la configurazione dell'istanza:kubectl apply -f - <<EOF apiVersion: v1 kind: ConfigMap metadata: name: audit-logs-loki-restore namespace: PROJECT_NAMESPACE data: loki.yaml: |- auth_enabled: true common: ring: kvstore: store: inmemory chunk_store_config: max_look_back_period: 0s compactor: shared_store: s3 working_directory: /data/loki/boltdb-shipper-compactor compaction_interval: 10m retention_enabled: true retention_delete_delay: 2h retention_delete_worker_count: 150 ingester: chunk_target_size: 1572864 chunk_encoding: snappy max_chunk_age: 2h chunk_idle_period: 90m chunk_retain_period: 30s autoforget_unhealthy: true lifecycler: ring: kvstore: store: inmemory replication_factor: 1 heartbeat_timeout: 10m max_transfer_retries: 0 wal: enabled: true flush_on_shutdown: true dir: /wal checkpoint_duration: 1m replay_memory_ceiling: 20GB limits_config: retention_period: 48h enforce_metric_name: false reject_old_samples: false ingestion_rate_mb: 256 ingestion_burst_size_mb: 256 max_streams_per_user: 20000 max_global_streams_per_user: 20000 per_stream_rate_limit: 256MB per_stream_rate_limit_burst: 256MB shard_streams: enabled: false desired_rate: 3MB schema_config: configs: - from: "2020-10-24" index: period: 24h prefix: index_ object_store: s3 schema: v11 store: boltdb-shipper server: http_listen_port: 3100 grpc_server_max_recv_msg_size: 104857600 grpc_server_max_send_msg_size: 104857600 analytics: reporting_enabled: false storage_config: boltdb_shipper: active_index_directory: /data/loki/boltdb-shipper-active cache_location: /data/loki/boltdb-shipper-cache cache_ttl: 24h shared_store: s3 aws: endpoint: $DST_ENDPOINT bucketnames: $DST_PATH access_key_id: ${S3_ACCESS_KEY_ID} secret_access_key: ${S3_SECRET_ACCESS_KEY} s3forcepathstyle: true EOF
Esegui il deployment dell'istanza con un servizio per accedere ai log dal bucket di ripristino:
kubectl apply -f - <<EOF --- apiVersion: apps/v1 kind: StatefulSet metadata: labels: app: audit-logs-loki-restore logging.private.gdch.goog/loggingpipeline-name: default name: audit-logs-loki-restore namespace: PROJECT_NAMESPACE spec: persistentVolumeClaimRetentionPolicy: whenDeleted: Retain whenScaled: Retain podManagementPolicy: OrderedReady replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: app: audit-logs-loki-restore serviceName: audit-logs-loki-restore template: metadata: labels: app: audit-logs-loki-restore app.kubernetes.io/part-of: audit-logs-loki-restore egress.networking.gke.io/enabled: "true" istio.io/rev: default logging.private.gdch.goog/log-type: audit spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: node-role.kubernetes.io/control-plane operator: DoesNotExist - key: node-role.kubernetes.io/master operator: DoesNotExist weight: 1 podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - podAffinityTerm: labelSelector: matchExpressions: - key: app operator: In values: - audit-logs-loki-restore topologyKey: kubernetes.io/hostname weight: 100 containers: - args: - -config.file=/etc/loki/loki.yaml - -config.expand-env=true - -target=all env: - name: S3_ACCESS_KEY_ID valueFrom: secretKeyRef: key: access-key-id name: $DST_SECRET_NAME optional: false - name: S3_SECRET_ACCESS_KEY valueFrom: secretKeyRef: key: secret-access-key name: $DST_SECRET_NAME optional: false image: gcr.io/private-cloud-staging/loki:v2.8.4-gke.2 imagePullPolicy: Always livenessProbe: failureThreshold: 3 httpGet: path: /ready port: http-metrics scheme: HTTP initialDelaySeconds: 330 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 name: audit-logs-loki-restore ports: - containerPort: 3100 name: http-metrics protocol: TCP - containerPort: 7946 name: gossip-ring protocol: TCP readinessProbe: failureThreshold: 3 httpGet: path: /ready port: http-metrics scheme: HTTP initialDelaySeconds: 45 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 resources: limits: ephemeral-storage: 2000Mi memory: 8000Mi requests: cpu: 300m ephemeral-storage: 2000Mi memory: 1000Mi securityContext: readOnlyRootFilesystem: true terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: - mountPath: /etc/loki name: config - mountPath: /data name: loki-storage - mountPath: /tmp name: temp - mountPath: /tmp/loki/rules-temp name: tmprulepath - mountPath: /etc/ssl/certs/storage-cert.crt name: storage-cert subPath: ca.crt - mountPath: /wal name: loki-storage dnsPolicy: ClusterFirst priorityClassName: audit-logs-loki-priority restartPolicy: Always schedulerName: default-scheduler securityContext: fsGroup: 10001 runAsGroup: 10001 runAsUser: 10001 serviceAccount: audit-logs-loki-restore-sa serviceAccountName: audit-logs-loki-restore-sa terminationGracePeriodSeconds: 4800 volumes: - emptyDir: {} name: temp - configMap: defaultMode: 420 name: audit-logs-loki-restore name: config - emptyDir: {} name: tmprulepath - name: storage-cert secret: defaultMode: 420 secretName: web-tls updateStrategy: type: RollingUpdate volumeClaimTemplates: - apiVersion: v1 kind: PersistentVolumeClaim metadata: creationTimestamp: null name: loki-storage spec: accessModes: - ReadWriteOnce resources: requests: storage: 50Gi storageClassName: standard-rwo volumeMode: Filesystem --- apiVersion: v1 kind: Service metadata: name: audit-logs-loki-restore namespace: PROJECT_NAMESPACE spec: internalTrafficPolicy: Cluster ipFamilies: - IPv4 ipFamilyPolicy: SingleStack ports: - name: http-metrics port: 3100 protocol: TCP targetPort: http-metrics selector: app: audit-logs-loki-restore sessionAffinity: None type: ClusterIP --- EOF
Configura l'istanza di monitoraggio per visualizzare i log dell'origine dati
Segui i passaggi riportati di seguito per configurare Grafana, chiamata anche istanza di monitoraggio, in modo da visualizzare gli audit log ripristinati dall'istanza di audit log:
- Vai all'endpoint dell'istanza di monitoraggio del tuo progetto.
- Nel menu di navigazione dell'interfaccia utente, fai clic su Amministrazione > Origini dati.
- Fai clic su Aggiungi nuova origine dati.
- Nella pagina Aggiungi origine dati, seleziona Loki.
- Nella pagina Impostazioni, inserisci
Audit Logs - Restore
come valore per il campo Nome. Nella sezione HTTP, inserisci il seguente valore per il campo URL:
http://audit-logs-loki-restore.PROJECT_NAMESPACE.svc:3100
Nella sezione Intestazioni HTTP personalizzate, inserisci i seguenti valori nei campi corrispondenti:
- Header:
X-Scope-OrgID
- Valore:
infra-obs
- Header:
Nella figura 1, Loki viene visualizzato come opzione nella pagina Aggiungi origine dati dell'interfaccia utente dell'istanza di monitoraggio. Nella figura 2, la pagina Impostazioni mostra i campi che devi compilare per configurare l'origine dati.
Figura 1. La pagina Aggiungi origine dati nell'interfaccia utente dell'istanza di monitoraggio.
Figura 2. La pagina Impostazioni nell'interfaccia utente dell'istanza di monitoraggio.
L'opzione Audit Logs - Restore
è ora disponibile come origine dati in Esplora log.