Esta página contém as etapas para instalar e configurar os componentes necessários para criar um backup. Ela também descreve como restaurar e recuperar o acesso aos registros de auditoria históricos do backup.
Configurar um backup em um bucket remoto
Esta seção contém as etapas para criar um backup dos registros de auditoria em um bucket compatível com o S3.
Antes de começar
Antes de criar um backup dos registros de auditoria, você precisa ter acesso aos seguintes recursos:
- Um bucket do S3 remoto com um endpoint, uma chave de acesso secreta e um ID de chave de acesso.
- Um certificado de autoridade de certificação (CA) para o sistema de armazenamento.
- Um cluster em funcionamento.
Receber as credenciais para acessar o bucket de origem
Siga estas etapas para encontrar as credenciais do bucket que contém os registros de auditoria:
No cluster de administrador raiz, liste os buckets no namespace do projeto:
kubectl get bucket -n PROJECT_NAMESPACE
A saída precisa ser semelhante ao exemplo a seguir, em que os buckets de registro de auditoria mostram um nome e um 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```
Usando as informações da saída obtida, defina as seguintes variáveis de ambiente para a transferência:
SRC_BUCKET= BUCKET_NAME SRC_ENDPOINT = ENDPOINT SRC_PATH= FULLY_QUALIFIED_BUCKET_NAME
Substitua:
BUCKET_NAME
: o nome do bucket que contém os registros de auditoria para os quais você quer criar o backup. Esse valor está no campoBUCKET NAME
da saída.ENDPOINT
: o endpoint do bucket que contém os registros de auditoria para os quais você quer criar o backup. Esse valor está no campoENDPOINT
da saída.FULLY_QUALIFIED_BUCKET_NAME
: o nome totalmente qualificado do bucket que contém os registros de auditoria para os quais você quer criar o backup. Esse valor está no campoFULLY-QUALIFIED-BUCKET-NAME
da saída.
Extraia o secret do bucket selecionado na etapa anterior:
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'
A saída precisa ser semelhante ao exemplo a seguir, em que o nome do secret do bucket é exibido:
"object-storage-key-sysstd-sa-olxv4dnwrwul4bshu37ikebgovrnvl773owaw3arx225rfi56swa"
Usando o nome do secret na saída obtida, defina a seguinte variável de ambiente:
SRC_CREDENTIALS="PROJECT_NAMESPACE/SECRET_NAME"
Substitua
SECRET_NAME
pelo nome do secret que você recebeu na saída anterior.Crie o secret para o certificado de CA do sistema de armazenamento:
kubectl create secret generic -n PROJECT_NAMESPACE audit-log-loki-ca \ --from-literal=ca.crt=CERTIFICATE
Substitua
CERTIFICATE
pelo certificado da CA do sistema de armazenamento.Defina a variável de ambiente a seguir:
SRC_CA_CERTIFICATE=PROJECT_NAMESPACE/audit-log-loki-ca
Conseguir as credenciais para acessar o bucket remoto
Siga estas etapas para encontrar as credenciais do bucket em que você quer criar o backup:
Configure as variáveis de ambiente a seguir:
DST_ACCESS_KEY_ID= ACCESS_KEY DST_SECRET_ACCESS_KEY= ACCESS_SECRET DST_ENDPOINT= REMOTE_ENDPOINT DST_PATH= REMOTE_BUCKET_NAME
Substitua:
ACCESS_KEY
: a chave de acesso do bucket remoto de destino.ACCESS_SECRET
: o secret de acesso do bucket remoto de destino.REMOTE_ENDPOINT
: o endpoint do bucket remoto de destino.REMOTE_BUCKET_NAME
: o nome do bucket remoto de destino.
Crie um secret para o 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
Defina a seguinte variável de ambiente com o local do secret:
DST_CREDENTIALS=PROJECT_NAMESPACE/s3-bucket-credentials
Se o bucket de destino exigir a configuração de um certificado de CA, crie um secret com o certificado de CA do bucket:
kubectl create secret generic -n PROJECT_NAMESPACE s3-bucket-ca \ --from-literal=ca.crt=REMOTE_CERTIFICATE
Substitua
REMOTE_CERTIFICATE
pelo certificado da CA do bucket remoto de destino.Defina a seguinte variável de ambiente com o local do certificado:
DST_CA_CERTIFICATE=PROJECT_NAMESPACE/s3-bucket-ca
Configurar a transferência de registros de auditoria
Siga estas etapas para configurar a transferência de registros de auditoria do bucket de origem para o de destino do backup:
Crie uma conta de serviço para o job de transferência registro de auditoria. Você precisa dar acesso à conta de serviço para ler o bucket de origem e os secrets no namespace do projeto.
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
Crie um job de transferência para exportar os registros para o 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
Depois de programar o job, monitore a transferência de dados fornecendo o nome do job como audit-log-transfer-job
e o namespace do projeto.
O job termina quando todos os dados são transferidos para o bucket de destino.
Restaurar registros de auditoria do backup
Esta seção contém as etapas para restaurar os registros de auditoria do backup.
Antes de começar
Antes de restaurar os registros de auditoria, você precisa ter acesso aos seguintes recursos:
- O bucket de backup do registro de auditoria com um endpoint, uma chave de acesso secreta e um ID da chave de acesso.
- Um certificado de autoridade de certificação (CA) para o sistema de armazenamento.
- Um cluster em funcionamento.
Criar um bucket para restaurar registros de auditoria
Siga estas etapas para criar um bucket e armazenar os registros de auditoria restaurados:
Crie o recurso de bucket e a conta de serviço:
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
O bucket e o secret são criados.
Confira o bucket criado:
kubectl get bucket audit-logs-loki-restore -n PROJECT_NAMESPACE
A saída precisa ser semelhante ao exemplo a seguir. A criação do bucket pode levar alguns minutos.
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.
A saída precisa mostrar o bucket que você criou. A criação do bucket pode levar alguns minutos.
Usando as informações da saída obtida, defina as seguintes variáveis de ambiente:
DST_BUCKET= RESTORE_BUCKET_NAME DST_ENDPOINT = RESTORE_ENDPOINT DST_PATH= RESTORE_FULLY_QUALIFIED_BUCKET_NAME
Substitua:
RESTORE_BUCKET_NAME
: o nome do bucket para a restauração de registros de auditoria. Esse valor está no campoBUCKET NAME
da saída.RESTORE_ENDPOINT
: o endpoint do bucket para a restauração de registros de auditoria. Esse valor está no campoENDPOINT
da saída.RESTORE_FULLY_QUALIFIED_BUCKET_NAME
: o nome totalmente qualificado do bucket para a restauração de registros de auditoria. Esse valor está no campoFULLY-QUALIFIED-BUCKET-NAME
da saída.
Extraia o secret do bucket criado:
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'
A saída precisa ser semelhante ao exemplo a seguir, em que o nome do secret do bucket é exibido:
"object-storage-key-sysstd-sa-olxv4dnwrwul4bshu37ikebgovrnvl773owaw3arx225rfi56swa"
Usando o nome do secret da saída obtida, defina as seguintes variáveis de ambiente:
DST_SECRET_NAME=RESTORE_SECRET_NAME DST_CREDENTIALS="PROJECT_NAMESPACE/RESTORE_SECRET_NAME"
Substitua
RESTORE_SECRET_NAME
pelo nome do secret que você recebeu na saída anterior.Crie o secret para o certificado de CA do sistema de armazenamento:
kubectl create secret generic -n PROJECT_NAMESPACE audit-log-loki-restore-ca \ --from-literal=ca.crt=CERTIFICATE
Substitua
CERTIFICATE
pelo certificado da CA do sistema de armazenamento.Defina a seguinte variável de ambiente para o local do certificado:
DST_CA_CERTIFICATE=PROJECT_NAMESPACE/audit-log-loki-restore-ca
Receber as credenciais para acessar o bucket de backup
Siga as etapas abaixo para encontrar as credenciais do bucket que contém o backup dos registros de auditoria:
Configure as variáveis de ambiente a seguir:
SRC_ACCESS_KEY_ID= ACCESS_KEY SRC_SECRET_ACCESS_KEY= ACCESS_SECRET SRC_ENDPOINT= REMOTE_ENDPOINT SRC_PATH= REMOTE_BUCKET_NAME
Substitua:
ACCESS_KEY
: a chave de acesso do bucket de backup.ACCESS_SECRET
: o secret de acesso do bucket de backup.REMOTE_ENDPOINT
: o endpoint do bucket de backup.REMOTE_BUCKET_NAME
: o nome do bucket de backup.
Crie um secret para o bucket de 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
Defina a seguinte variável de ambiente com o local do secret:
SRC_CREDENTIALS=PROJECT_NAMESPACE/s3-backup-bucket-credentials
Crie um secret com o certificado da CA do bucket:
kubectl create secret generic -n PROJECT_NAMESPACE s3-backup-bucket-ca \ --from-literal=ca.crt=BACKUP_CERTIFICATE
Substitua
BACKUP_CERTIFICATE
pelo certificado da CA do bucket de backup.Defina a seguinte variável de ambiente com o local do certificado:
SRC_CA_CERTIFICATE=PROJECT_NAMESPACE/s3-backup-bucket-ca
Configurar a restauração de registros de auditoria
Siga estas etapas para configurar a transferência de registros de auditoria do bucket de backup para o de restauração:
Crie uma conta de serviço para o job de transferência registro de auditoria. Você precisa dar acesso à conta de serviço para ler e gravar no bucket e nos secrets no namespace do projeto.
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
Crie um job de transferência para restaurar os registros do bucket de 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
Depois de programar o job, monitore a transferência de dados fornecendo o nome do job como audit-log-restore-job
e o namespace do projeto.
O job termina quando todos os dados são transferidos para o bucket de destino.
Implante uma instância de registro de auditoria para acessar os registros
É necessário implantar uma instância do Loki, também chamada de instância de registro de auditoria, para acessar os registros restaurados.
Para configurar a instância de registro de auditoria, use a conta de serviço audit-log-restore-sa
que você criou para o job de restauração. Siga as etapas abaixo para implantar a instância:
Crie um objeto
ConfigMap
para a configuração da instância: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
Implante a instância com um serviço para acessar registros do bucket de restauração:
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
Configurar a instância de monitoramento para ver registros da fonte de dados
Siga as etapas abaixo para configurar o Grafana, também chamado de instância de monitoramento, e ver os registros de auditoria restaurados da instância de registro de auditoria:
- Acesse o endpoint da instância de monitoramento do seu projeto.
- No menu de navegação da interface do usuário (UI), clique em Administração > Fontes de dados.
- Clique em Adicionar nova fonte de dados.
- Na página Adicionar fonte de dados, selecione Loki.
- Na página Configurações, insira
Audit Logs - Restore
como valor no campo Nome. Na seção HTTP, insira o seguinte valor no campo URL:
http://audit-logs-loki-restore.PROJECT_NAMESPACE.svc:3100
Na seção Cabeçalhos HTTP personalizados, insira os seguintes valores nos campos correspondentes:
- Header:
X-Scope-OrgID
- Valor:
infra-obs
- Header:
Na figura 1, o Loki aparece como uma opção na página Adicionar fonte de dados da UI da instância de monitoramento. Na Figura 2, a página Configurações mostra os campos que você precisa preencher para configurar a fonte de dados.
Figura 1. A página Adicionar fonte de dados na UI da instância de monitoramento.
Figura 2. A página Configurações na UI da instância de monitoramento.
A opção Audit Logs - Restore
agora está disponível como uma fonte de dados no Explorador de registros.