Halaman ini berisi langkah-langkah untuk menginstal dan mengonfigurasi komponen yang diperlukan untuk membuat cadangan. Panduan ini juga menjelaskan cara memulihkan dan mendapatkan kembali akses ke log audit historis dari cadangan.
Menyiapkan cadangan di bucket jarak jauh
Bagian ini berisi langkah-langkah untuk membuat cadangan log audit di bucket yang kompatibel dengan S3.
Sebelum memulai
Sebelum dapat membuat cadangan untuk log audit, Anda harus memiliki akses ke resource berikut:
- Bucket S3 jarak jauh dengan endpoint, kunci akses rahasia, dan ID kunci akses.
- Sertifikat certificate authority (CA) untuk sistem penyimpanan.
- Cluster yang berfungsi.
Dapatkan kredensial untuk mengakses bucket sumber
Lakukan langkah-langkah berikut untuk menemukan kredensial bucket yang berisi log audit:
Di cluster admin root, cantumkan bucket di namespace project Anda:
kubectl get bucket -n PROJECT_NAMESPACE
Output harus terlihat seperti contoh berikut, dengan bucket audit logging menampilkan nama dan 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```
Dengan menggunakan informasi dari output yang Anda peroleh, tetapkan variabel lingkungan berikut untuk transfer:
SRC_BUCKET= BUCKET_NAME SRC_ENDPOINT = ENDPOINT SRC_PATH= FULLY_QUALIFIED_BUCKET_NAME
Ganti kode berikut:
BUCKET_NAME
: nama bucket yang berisi log audit yang ingin Anda buat cadangannya. Nilai ini ada di kolomBUCKET NAME
output.ENDPOINT
: endpoint bucket yang berisi log audit yang ingin Anda buat cadangannya. Nilai ini ada di kolomENDPOINT
output.FULLY_QUALIFIED_BUCKET_NAME
: nama bucket yang sepenuhnya memenuhi syarat yang berisi log audit yang ingin Anda buat cadangannya. Nilai ini ada di kolomFULLY-QUALIFIED-BUCKET-NAME
output.
Dapatkan rahasia untuk bucket yang Anda pilih di langkah sebelumnya:
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'
Output harus terlihat seperti contoh berikut, dengan nama rahasia bucket ditampilkan:
"object-storage-key-sysstd-sa-olxv4dnwrwul4bshu37ikebgovrnvl773owaw3arx225rfi56swa"
Dengan menggunakan nama secret dari output yang Anda peroleh, tetapkan variabel lingkungan berikut:
SRC_CREDENTIALS="PROJECT_NAMESPACE/SECRET_NAME"
Ganti
SECRET_NAME
dengan nama secret yang Anda dapatkan di output sebelumnya.Buat secret untuk sertifikat CA sistem penyimpanan:
kubectl create secret generic -n PROJECT_NAMESPACE audit-log-loki-ca \ --from-literal=ca.crt=CERTIFICATE
Ganti
CERTIFICATE
dengan sertifikat CA sistem penyimpanan.Tetapkan variabel lingkungan berikut:
SRC_CA_CERTIFICATE=PROJECT_NAMESPACE/audit-log-loki-ca
Dapatkan kredensial untuk mengakses bucket jarak jauh
Ikuti langkah-langkah berikut untuk menemukan kredensial bucket tempat Anda ingin membuat cadangan:
Tetapkan variabel lingkungan berikut:
DST_ACCESS_KEY_ID= ACCESS_KEY DST_SECRET_ACCESS_KEY= ACCESS_SECRET DST_ENDPOINT= REMOTE_ENDPOINT DST_PATH= REMOTE_BUCKET_NAME
Ganti kode berikut:
ACCESS_KEY
: kunci akses bucket jarak jauh tujuan.ACCESS_SECRET
: secret akses bucket jarak jauh tujuan.REMOTE_ENDPOINT
: endpoint bucket jarak jauh tujuan.REMOTE_BUCKET_NAME
: nama bucket jarak jauh tujuan.
Buat secret untuk bucket jarak jauh:
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
Tetapkan variabel lingkungan berikut dengan lokasi secret:
DST_CREDENTIALS=PROJECT_NAMESPACE/s3-bucket-credentials
Jika bucket tujuan memerlukan penyiapan sertifikat CA, buat secret dengan sertifikat CA bucket:
kubectl create secret generic -n PROJECT_NAMESPACE s3-bucket-ca \ --from-literal=ca.crt=REMOTE_CERTIFICATE
Ganti
REMOTE_CERTIFICATE
dengan sertifikat CA bucket jarak jauh tujuan.Tetapkan variabel lingkungan berikut dengan lokasi sertifikat:
DST_CA_CERTIFICATE=PROJECT_NAMESPACE/s3-bucket-ca
Menyiapkan transfer log audit
Ikuti langkah-langkah berikut untuk mengonfigurasi transfer log audit dari bucket sumber ke bucket tujuan untuk pencadangan:
Buat akun layanan untuk tugas transfer log audit. Anda harus memberikan akses ke akun layanan untuk membaca bucket sumber dan secret di namespace project.
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
Buat tugas transfer untuk mengekspor log ke bucket jarak jauh:
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
Setelah menjadwalkan tugas, Anda dapat memantau transfer data dengan memberikan nama tugas sebagai audit-log-transfer-job
dan namespace project Anda.
Tugas berakhir saat semua data telah ditransfer ke bucket tujuan.
Memulihkan log audit dari cadangan
Bagian ini berisi langkah-langkah untuk memulihkan log audit dari cadangan.
Sebelum memulai
Sebelum dapat memulihkan log audit, Anda harus memiliki akses ke resource berikut:
- Bucket cadangan log audit dengan endpoint, kunci akses rahasia, dan ID kunci akses.
- Sertifikat certificate authority (CA) untuk sistem penyimpanan.
- Cluster yang berfungsi.
Buat bucket untuk memulihkan log audit
Lakukan langkah-langkah berikut untuk membuat bucket guna menyimpan log audit yang dipulihkan:
Buat resource bucket dan akun layanan:
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
Bucket dan secret telah dibuat.
Lihat bucket yang dibuat:
kubectl get bucket audit-logs-loki-restore -n PROJECT_NAMESPACE
Output harus terlihat seperti contoh berikut. Pembuatan bucket mungkin memerlukan waktu beberapa menit.
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.
Output harus menampilkan bucket yang Anda buat. Pembuatan bucket mungkin memerlukan waktu beberapa menit.
Dengan menggunakan informasi dari output yang Anda peroleh, tetapkan variabel lingkungan berikut:
DST_BUCKET= RESTORE_BUCKET_NAME DST_ENDPOINT = RESTORE_ENDPOINT DST_PATH= RESTORE_FULLY_QUALIFIED_BUCKET_NAME
Ganti kode berikut:
RESTORE_BUCKET_NAME
: nama bucket untuk pemulihan log audit. Nilai ini ada di kolomBUCKET NAME
output.RESTORE_ENDPOINT
: endpoint bucket untuk pemulihan log audit. Nilai ini ada di kolomENDPOINT
output.RESTORE_FULLY_QUALIFIED_BUCKET_NAME
: nama bucket yang sepenuhnya memenuhi syarat untuk pemulihan log audit. Nilai ini ada di kolomFULLY-QUALIFIED-BUCKET-NAME
output.
Dapatkan secret bucket yang dibuat:
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'
Output harus terlihat seperti contoh berikut, dengan nama rahasia bucket ditampilkan:
"object-storage-key-sysstd-sa-olxv4dnwrwul4bshu37ikebgovrnvl773owaw3arx225rfi56swa"
Dengan menggunakan nama secret dari output yang Anda peroleh, tetapkan variabel lingkungan berikut:
DST_SECRET_NAME=RESTORE_SECRET_NAME DST_CREDENTIALS="PROJECT_NAMESPACE/RESTORE_SECRET_NAME"
Ganti
RESTORE_SECRET_NAME
dengan nama secret yang Anda dapatkan di output sebelumnya.Buat secret untuk sertifikat CA sistem penyimpanan:
kubectl create secret generic -n PROJECT_NAMESPACE audit-log-loki-restore-ca \ --from-literal=ca.crt=CERTIFICATE
Ganti
CERTIFICATE
dengan sertifikat CA sistem penyimpanan.Tetapkan variabel lingkungan berikut untuk lokasi sertifikat:
DST_CA_CERTIFICATE=PROJECT_NAMESPACE/audit-log-loki-restore-ca
Dapatkan kredensial untuk mengakses bucket cadangan
Lakukan langkah-langkah berikut untuk menemukan kredensial bucket yang berisi cadangan log audit:
Tetapkan variabel lingkungan berikut:
SRC_ACCESS_KEY_ID= ACCESS_KEY SRC_SECRET_ACCESS_KEY= ACCESS_SECRET SRC_ENDPOINT= REMOTE_ENDPOINT SRC_PATH= REMOTE_BUCKET_NAME
Ganti kode berikut:
ACCESS_KEY
: kunci akses bucket cadangan.ACCESS_SECRET
: secret akses bucket cadangan.REMOTE_ENDPOINT
: endpoint bucket cadangan.REMOTE_BUCKET_NAME
: nama bucket cadangan.
Buat secret untuk bucket cadangan:
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
Tetapkan variabel lingkungan berikut dengan lokasi secret:
SRC_CREDENTIALS=PROJECT_NAMESPACE/s3-backup-bucket-credentials
Buat secret dengan sertifikat CA bucket:
kubectl create secret generic -n PROJECT_NAMESPACE s3-backup-bucket-ca \ --from-literal=ca.crt=BACKUP_CERTIFICATE
Ganti
BACKUP_CERTIFICATE
dengan sertifikat CA bucket cadangan.Tetapkan variabel lingkungan berikut dengan lokasi sertifikat:
SRC_CA_CERTIFICATE=PROJECT_NAMESPACE/s3-backup-bucket-ca
Menyiapkan pemulihan log audit
Selesaikan langkah-langkah berikut untuk mengonfigurasi transfer log audit dari bucket cadangan ke bucket pemulihan:
Buat akun layanan untuk tugas transfer log audit. Anda harus memberikan akses ke akun layanan untuk membaca dan menulis dari bucket dan secret di namespace project.
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
Buat tugas transfer untuk memulihkan log dari bucket cadangan jarak jauh:
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
Setelah menjadwalkan tugas, Anda dapat memantau transfer data dengan memberikan nama tugas sebagai audit-log-restore-job
dan namespace project Anda.
Tugas berakhir saat semua data telah ditransfer ke bucket tujuan.
Men-deploy instance log audit untuk mengakses log
Anda harus men-deploy instance Loki, yang juga disebut instance log audit, untuk mengakses log yang dipulihkan.
Untuk menyiapkan instance log audit, gunakan akun layanan audit-log-restore-sa
yang Anda buat untuk tugas pemulihan. Ikuti langkah-langkah berikut untuk men-deploy instance:
Buat objek
ConfigMap
untuk konfigurasi instance: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
Deploy instance dengan layanan untuk mengakses log dari bucket pemulihan:
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
Mengonfigurasi instance pemantauan untuk melihat log dari sumber data
Lakukan langkah-langkah berikut untuk mengonfigurasi Grafana, yang juga disebut instance pemantauan, untuk melihat log audit yang dipulihkan dari instance log audit:
- Buka endpoint instance pemantauan project Anda.
- Dari menu navigasi antarmuka pengguna (UI), klik Administrasi > Sumber data.
- Klik Tambahkan sumber data baru.
- Di halaman Tambahkan sumber data, pilih Loki.
- Di halaman Setelan, masukkan
Audit Logs - Restore
sebagai nilai untuk kolom Nama. Di bagian HTTP, masukkan nilai berikut untuk kolom URL:
http://audit-logs-loki-restore.PROJECT_NAMESPACE.svc:3100
Di bagian Custom HTTP Headers, masukkan nilai berikut di kolom yang sesuai:
- Header:
X-Scope-OrgID
- Nilai:
infra-obs
- Header:
Pada gambar 1, Loki ditampilkan sebagai opsi di halaman Add data source pada UI instance pemantauan. Pada gambar 2, halaman Setelan menampilkan kolom yang harus Anda isi untuk menyiapkan sumber data.
Gambar 1. Halaman Tambahkan sumber data di UI instance pemantauan.
Gambar 2. Halaman Setelan di UI instance pemantauan.
Opsi Audit Logs - Restore
kini tersedia sebagai sumber data di penjelajah log.