Pengumpulan log di perangkat Google Distributed Cloud (GDC) dengan air gap memungkinkan Anda menggabungkan peristiwa operasional dari alur kerja untuk pemantauan dan pemecahan masalah. Deploy resource kustom LoggingTarget ke namespace project Anda di Management API server untuk mengambil, mengindeks, dan memberi label log dari komponen layanan Anda.
Setelah mengonfigurasi pengumpulan log, Anda dapat membuat kueri dan melihat log di antarmuka pengguna Grafana. Untuk rekomendasi instrumentasi, lihat panduan logging Kubernetes.
Sebelum memulai
Untuk mendapatkan izin yang diperlukan untuk mengelola resource kustom LoggingTarget, minta Admin IAM Organisasi atau Admin IAM Project untuk memberi Anda salah satu peran LoggingTarget terkait.
Bergantung pada tingkat akses dan izin yang Anda perlukan, Anda mungkin mendapatkan peran kreator, editor, atau pelihat untuk resource ini dalam organisasi atau project. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan izin IAM.
Operator Aplikasi: Untuk mendapatkan izin yang Anda perlukan untuk mengelola resource kustom
LoggingTargetdalam project di server API pengelolaan, minta Admin IAM Project Anda untuk memberi Anda salah satu peran berikut di namespace project Anda:- LoggingTarget Creator: membuat resource kustom
LoggingTarget. Minta peran LoggingTarget Creator (loggingtarget-creator). - LoggingTarget Editor: mengedit atau mengubah resource kustom
LoggingTarget. Minta peran LoggingTarget Editor (loggingtarget-editor). - LoggingTarget Viewer: melihat resource kustom
LoggingTarget. Minta peran LoggingTarget Viewer (loggingtarget-viewer).
- LoggingTarget Creator: membuat resource kustom
Platform Administrator: Untuk mendapatkan izin yang Anda perlukan untuk mengelola resource kustom
LoggingTargetdi namespaceplatform-obsdi server API pengelolaan, minta Admin IAM Organisasi Anda untuk memberi Anda salah satu peran cluster berikut di namespaceplatform-obs:- LoggingTarget PA Creator: membuat resource kustom
LoggingTarget. Minta peran cluster LoggingTarget PA Creator (loggingtarget-pa-creator). - LoggingTarget PA Editor: mengedit atau mengubah resource kustom
LoggingTarget. Minta peran cluster LoggingTarget PA Editor (loggingtarget-pa-editor). - LoggingTarget PA Viewer: melihat resource kustom
LoggingTarget. Minta peran cluster LoggingTarget PA Viewer (loggingtarget-pa-viewer).
- LoggingTarget PA Creator: membuat resource kustom
Mengumpulkan log operasional
Log operasional mencatat kondisi, perubahan, dan tindakan saat Anda mengelola operasi yang sedang berlangsung di aplikasi dan layanan di GDC. Deploy resource kustom LoggingTarget ke server API Management untuk mengonfigurasi pipeline logging sistem guna mengumpulkan log operasional dari layanan tertentu di level project.
Selesaikan langkah-langkah berikut untuk mengumpulkan log operasional dari layanan:
- Konfigurasikan resource kustom
LoggingTargetdi server API Management, dengan menentukan pod yang dipilih untuk mengumpulkan log operasional, namespace project, dan setelan tambahan lainnya. Untuk mempelajari tampilanLoggingTarget, lihat Mengonfigurasi resource kustomLoggingTarget. Deploy resource kustom
LoggingTargetke namespace project Anda di server Management API:kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f LOGGING_TARGET_NAMEGanti kode berikut:
MANAGEMENT_API_SERVER: jalur kubeconfig server Management API zona.LOGGING_TARGET_NAME: nama resource kustomLoggingTarget, sepertimy-service-logging-target.yaml.
Pipeline mulai mengumpulkan log dari komponen tambahan project Anda.
Buat kueri log dari instance Grafana project Anda. Untuk mengetahui informasi selengkapnya, lihat Membuat kueri dan melihat log.
Menggunakan fitur kode warna bawaan Grafana untuk berbagai level log layanan. Untuk mengetahui informasi selengkapnya tentang cara menetapkan nilai tingkat log, lihat https://grafana.com/docs/grafana/latest/explore/logs-integration/.
Mengonfigurasi resource kustom LoggingTarget
Resource kustom LoggingTarget menginstruksikan pipeline logging untuk mengumpulkan log dari layanan tertentu dalam project GDC Anda. Anda
dapat menentukan target yang lognya Anda kumpulkan, parser log, tingkat
akses, dan setelan tambahan lainnya.
Resource ini menentukan konfigurasi berikut:
- Target: Kriteria untuk memilih pod dan container yang ingin Anda kumpulkan lognya. Anda dapat menentukan nama cluster, awalan nama pod, dan awalan nama container.
- Penganalisis log: Parser yang telah ditentukan untuk menafsirkan entri log, memetakan output log ke label, dan mengekstrak kolom yang relevan.
- Identifikasi layanan: Nama layanan yang diterapkan sebagai label ke entri log untuk memudahkan identifikasi dan pemfilteran.
Otorisasi: Tingkat akses untuk entri log, yang mengontrol siapa yang dapat melihat log yang dikumpulkan.
Dengan mengonfigurasi parameter ini dalam resource kustom LoggingTarget, Anda dapat mengontrol pengumpulan dan pengorganisasian log dari layanan Anda secara tepat.
Ikuti langkah-langkah berikut untuk mengumpulkan log operasional dari layanan:
- Tentukan project GDC tempat Anda ingin mengumpulkan log.
Dalam konfigurasi
LoggingTarget, tentukan pod untuk mengumpulkan log operasional, namespace project, dan setelan tambahan lainnya.File YAML berikut menunjukkan contoh konfigurasi
LoggingTargetdimy-project-namespace, dengan awalan nama pod untuk mengumpulkan log adalahmy-pod-prefix, tingkat akses untuk entri log diberikan kepada Operator Aplikasi (ao), nama layanannya adalahmy-service-name, dan format lognya adalah JSON:# Configures a log scraping job apiVersion: logging.gdc.goog/v1 kind: LoggingTarget metadata: # Choose a namespace that matches the namespace of the workload pods. namespace: my-project-namespace name: my-service-logging-target spec: selector: matchPodNames: - my-pod-prefix parser: json logAccessLevel: ao serviceName: my-service-nameLihat spesifikasi
LoggingTargetlengkap dan dokumentasi referensi API untuk kolom dan opsi tambahan.Terapkan konfigurasi
LoggingTargetke server Management API dalam namespace yang sama dengan pod target Anda:kubectl --kubeconfig KUBECONFIG_PATH apply -f LOGGING_TARGET_NAME.yamlGanti kode berikut:
KUBECONFIG_PATH: jalur ke file kubeconfig untuk server Management API.LOGGING_TARGET_NAME: nama file definisiLoggingTarget, sepertimy-service-logging-target.
Pipeline logging mulai mengumpulkan log dari komponen tambahan project Anda.
Anda dapat mengkueri log yang dikumpulkan menggunakan antarmuka pengguna Grafana atau Log Query API. Untuk mengetahui informasi selengkapnya, lihat Membuat kueri dan melihat log.
Jika menggunakan Grafana untuk mengkueri log, Anda dapat menggunakan fitur kode warna bawaan untuk berbagai level log layanan. Untuk mengetahui informasi selengkapnya tentang cara menetapkan nilai tingkat log, lihat https://grafana.com/docs/grafana/latest/explore/logs-integration/.
Lengkapi spesifikasi LoggingTarget
File YAML berikut menunjukkan contoh spesifikasi lengkap resource kustom LoggingTarget. Untuk mengetahui informasi selengkapnya dan deskripsi lengkap
kolom, lihat
dokumentasi referensi API.
# Configures a log scraping job
apiVersion: logging.gdc.goog/v1
kind: LoggingTarget
metadata:
# Choose a namespace that matches the namespace of the workload pods.
namespace: PROJECT_NAMESPACE
name: LOGGING_TARGET_NAME
spec:
# Choose a matching pattern that identifies the pods for this job.
# Optional.
# Relationship between different selectors: 'AND'
selector:
# The clusters to collect logs from.
# The default configuration is to collect logs from all clusters.
# The relationship between different clusters is an 'OR' relationship.
# Optional
matchClusters:
- my-cluster
- another-cluster
# The pod name prefixes to collect logs from.
# The logging platform scrapes all pods with names
# that start with the specified prefixes.
# The values must contain '[a-z0-9-]' characters only.
# The relationship between different list elements is an 'OR' relationship.
# Optional.
matchPodNames:
- my-pod-prefix
- another-pod-prefix
# The container name prefixes to collect logs from.
# The logging platform scrapes all containers with names
# that start with the specified prefixes.
# The values must contain '[a-z0-9-]' characters only.
# The relationship between different list elements is an 'OR' relationship.
# Optional.
matchContainerNames:
- my-container-prefix
- another-container-prefix
# Choose the predefined parser for log entries.
# Use parsers to map the log output to labels and extract fields.
# Specify the log format.
# Optional.
# Options: klog_text, klog_json, klogr, gdch_json, json
parser: klog_text
# Specify an access level for log entries.
# The default value is 'ao'.
# Optional.
# Options: ao, pa, io
logAccessLevel: ao
# Specify a service name to be applied as a label.
# For user workloads consider this field as a workload name.
# Required.
serviceName: my-service-name
# The additional static fields to apply to log entries.
# The field is a key-value pair, where the field name is the key and
# the field value is the value.
# Optional.
additionalFields:
app: workload2
key: value
Ganti kode berikut:
PROJECT_NAMESPACE: namespace project Anda.LOGGING_TARGET_NAME: nama file definisiLoggingTarget.