Integrasi Simple Log Service (SLS) dengan kluster terdaftar menyediakan pendekatan manajemen terpadu untuk kluster Kubernetes di berbagai lokasi. Topik ini menjelaskan cara mengintegrasikan Simple Log Service dengan kluster terdaftar menggunakan aplikasi di Alibaba Cloud Container Service for Kubernetes.
Prasyarat
Sebuah kluster terdaftar ACK One telah dibuat, dan kluster Kubernetes yang dikelola sendiri di pusat data Anda telah terhubung ke kluster terdaftar ACK One. Untuk informasi selengkapnya, lihat Buat kluster terdaftar ACK One.
Dapatkan KubeConfig kluster dan hubungkan ke kluster terdaftar menggunakan kubectl.
Langkah 1: Konfigurasikan Izin RAM untuk Komponen Simple Log Service
Gunakan onectl
Instal onectl di mesin on-premises Anda. Untuk informasi selengkapnya, lihat Gunakan onectl untuk mengelola kluster terdaftar.
Jalankan perintah berikut untuk mengonfigurasi izin RAM untuk komponen Simple Log Service.
onectl ram-user grant --addon logtail-dsOutput yang diharapkan:
Ram policy ack-one-registered-cluster-policy-logtail-ds granted to ram user ack-one-user-ce313528c3 successfully.
Gunakan Console
Sebelum menginstal komponen di kluster terdaftar, siapkan AccessKey untuk memberikan izin kepada kluster agar dapat mengakses layanan Alibaba Cloud. Sebelum menyiapkan AccessKey, buat pengguna RAM dan tambahkan izin untuk mengakses sumber daya cloud yang relevan.
Buat kebijakan kustom. Konten kebijakan sebagai berikut.
Buat AccessKey untuk pengguna RAM.
PeringatanKami menyarankan Anda mengonfigurasi kebijakan jaringan untuk membatasi panggilan AccessKey hanya pada lingkungan jaringan tepercaya. Hal ini meningkatkan keamanan AccessKey Anda. Untuk informasi selengkapnya, lihat Kebijakan pembatasan akses jaringan AccessKey.
Gunakan AccessKey untuk membuat resource Secret bernama
alibaba-addon-secretdi kluster terdaftar.Jalankan perintah berikut untuk membuat Secret yang digunakan oleh komponen Logtail.
kubectl -n kube-system create secret generic alibaba-addon-secret --from-literal='access-key-id=<your AccessKey ID>' --from-literal='access-key-secret=<your AccessKey Secret>'Catatan<your AccessKey ID>dan<your AccessKey Secret>adalah informasi AccessKey yang diperoleh pada langkah sebelumnya.
Langkah 2: Instal Komponen logtail-ds
Gunakan onectl
Anda dapat menginstal logtail-ds dengan menjalankan perintah berikut:
onectl addon install logtail-dsOutput yang diharapkan:
Addon logtail-ds, version **** installed.Gunakan Console
Masuk ke ACK console. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, klik nama kluster target. Lalu, di panel navigasi kiri, klik Add-ons.
Pada halaman Add-ons, klik tab Logs and Monitoring. Temukan komponen logtail-ds, lalu klik Install di pojok kanan bawah kartunya.
Di kotak dialog konfirmasi, klik OK.
(Opsional) Langkah 3: Konfigurasikan Pengumpulan Output Log untuk Semua Pod
Log Teks
Untuk mengonfigurasi log teks untuk semua pod, hubungkan ke kluster terdaftar menggunakan kubectl. Kemudian, terapkan konfigurasi berikut.
apiVersion: log.alibabacloud.com/v1alpha1
kind: AliyunLogConfig
metadata:
name: test-file # Nama resource, yang harus unik dalam kluster Kubernetes saat ini.
spec:
project: k8s-log-c326bc86**** # Opsional. Nama proyek. Anda dapat menyesuaikannya. Kami menyarankan penamaan dalam format [k8s-log-ID kluster].
logstore: test-file # Wajib. Nama Logstore. Jika belum ada, Simple Log Service akan membuatnya secara otomatis.
logtailConfig: # Konfigurasi Logtail.
inputType: file # Jenis sumber data. "file" menunjukkan log teks, dan "plugin" menunjukkan output standar.
configName: test-file # Nama konfigurasi Logtail. Harus sama dengan nama resource (metadata.name).
inputDetail: # Detail konfigurasi Logtail.
logType: common_reg_log # Mengumpulkan log teks dalam mode sederhana.
logPath: /log/ # Jalur tempat file log berada.
filePattern: "*.log" # Nama file log. Mendukung karakter wildcard asterisk (*) dan tanda tanya (?). Contohnya, log_*.log.
dockerFile: true # Mengumpulkan file di dalam kontainer. Atur dockerFile ke true.
advanced: # Tetapkan kondisi filter kontainer.
k8s:
K8sNamespaceRegex: ^(default)$
K8sPodRegex: '^(nginx-log-demo.*)$'
K8sContainerRegex: ^(nginx-log-demo-0)$
IncludeK8sLabel:
job-name: "^(nginx-log-demo.*)$"Untuk informasi selengkapnya, lihat Konfigurasi Logtail (Lama).
Output Standar
Untuk mengonfigurasi output standar untuk semua pod, hubungkan ke kluster terdaftar menggunakan kubectl. Kemudian, terapkan konfigurasi berikut. Setelah penerapan berhasil, sebuah Logstore bernama stdout-logstore akan dibuat secara otomatis, dan log akan dikumpulkan di dalamnya.
apiVersion: log.alibabacloud.com/v1alpha1
kind: AliyunLogConfig
metadata:
# nama konfigurasi Anda, harus unik dalam kluster k8s Anda.
name: stdout-collector
spec:
# nama logstore untuk mengunggah log.
logstore: stdout-logstore
# detail konfigurasi logtail
logtailConfig:
# jenis input untuk stdout docker adalah 'plugin'.
inputType: plugin
# nama konfigurasi logtail, harus sama dengan [metadata.name].
configName: stdout-collector
inputDetail:
plugin:
inputs:
-
type: service_docker_stdout
detail:
# kumpulkan stdout dan stderr
Stdout: true
Stderr: true
# kumpulkan stdout semua kontainer kecuali kontainer yang memiliki "COLLECT_STDOUT_FLAG:false" di konfigurasi env docker.Langkah 4: Konfigurasikan Simple Log Service
Untuk informasi selengkapnya tentang mengonfigurasi Simple Log Service saat membuat aplikasi, lihat Konfigurasikan Simple Log Service Saat Membuat Aplikasi.
Untuk informasi selengkapnya tentang mengumpulkan log Ingress, lihat Kumpulkan dan Analisis Log Akses Nginx Ingress.