AliyunLogConfig adalah CustomResourceDefinition (CRD) yang didefinisikan oleh Simple Log Service. Buat custom resource (CR) berbasis CRD ini dalam file YAML untuk membuat, melihat, memperbarui, dan menghapus konfigurasi Logtail secara deklaratif di kluster Kubernetes.
Prasyarat
-
Komponen Logtail versi v0.5.1 atau yang lebih baru telah diinstal. Untuk informasi selengkapnya, lihat Instal komponen Logtail di kluster ACK dan Instal komponen Logtail di kluster Kubernetes yang dikelola sendiri.
-
Kontainer target sedang aktif menghasilkan log.
PentingLogtail hanya mengumpulkan log inkremental. Jika file log tidak diperbarui setelah konfigurasi dikirimkan, Logtail akan melewatinya. Baca log.
Batasan
Batasan berikut berlaku saat Anda mengelola konfigurasi Logtail menggunakan AliyunLogConfig:
Perubahan di Konsol tidak disinkronkan — Jika konfigurasi Logtail dibuat melalui CR AliyunLogConfig, perubahan yang dilakukan terhadap konfigurasi tersebut di Konsol Simple Log Service tidak akan disinkronkan ke CR. Untuk memodifikasi konfigurasi semacam ini, ubah hanya CR-nya guna mencegah ketidakkonsistenan konfigurasi.
LogStore yang sudah ada — Jika LogStore yang ditentukan dalam CR sudah ada, semua parameter terkait LogStore berikutnya tidak akan berlaku.
Nama konfigurasi tidak dapat diubah — Setelah konfigurasi Logtail dibuat, nama konfigurasi—yaitu nilai parameter
configName—tidak dapat diubah.Versi alibaba-log-controller — Beberapa parameter memerlukan versi minimum alibaba-log-controller. Sebelum menulis CR, periksa versi minimum yang tercantum untuk setiap parameter di Parameter CR.
Prosedur
Buat konfigurasi Logtail
Buat CR dari AliyunLogConfig. Setelah CR dibuat, alibaba-log-controller akan membuat konfigurasi Logtail berdasarkan CR tersebut dan menerapkannya secara otomatis.
Dapatkan file kubeconfig kluster dan gunakan kubectl untuk terhubung ke kluster.
Jalankan perintah berikut untuk membuat file YAML. Dalam contoh ini, nama file-nya adalah
cube.yaml. Ganti nama file sesuai kebutuhan.vim cube.yamlMasukkan skrip berikut ke dalam file YAML dan sesuaikan parameternya sesuai kebutuhan. Skrip ini hanya mencakup bidang wajib. Tetapkan
inputTypeuntuk menentukan metode pengumpulan log, dan tetapkaninputDetailuntuk mengonfigurasi pengaturan input log. Untuk informasi selengkapnya tentang bidang-bidang CR, lihat Parameter CR.apiVersion: log.alibabacloud.com/v1alpha1 # Gunakan nilai default. Anda tidak perlu mengubah parameter ini. kind: AliyunLogConfig # Gunakan nilai default. Anda tidak perlu mengubah parameter ini. metadata: name: test-config # Nama resource. Nama harus unik di kluster Kubernetes saat ini. spec: logstore: k8s-stdout # Nama Logstore. Jika Logstore yang Anda tentukan belum ada, Simple Log Service akan membuatnya secara otomatis. logtailConfig: # Konfigurasi Logtail. inputType: plugin # Jenis sumber data tempat log dikumpulkan. configName: test-config # Nama konfigurasi Logtail. inputDetail: # Detail konfigurasi Logtail. ...Jalankan perintah berikut untuk membuat CR dari
AliyunLogConfig. Setelah konfigurasi Logtail diterapkan, Logtail mulai mengumpulkan data dan mengirimkannya ke Simple Log Service.kubectl apply -f cube.yamlVerifikasi bahwa nilai bidang
statusCodepada CR adalah 200. Untuk petunjuknya, lihat Lihat konfigurasi Logtail.
Lihat konfigurasi Logtail
Untuk melihat semua konfigurasi Logtail yang dibuat oleh AliyunLogConfig di kluster Kubernetes saat ini, jalankan perintah berikut:
kubectl get aliyunlogconfigsUntuk melihat detail dan status satu konfigurasi Logtail yang dibuat oleh AliyunLogConfig, jalankan perintah berikut. <config_name> adalah nama AliyunLogConfig. Ganti nama tersebut sesuai kebutuhan.
kubectl get aliyunlogconfigs <config_name> -o yamlHasil yang mirip dengan contoh berikut akan dikembalikan. Dalam contoh ini, konfigurasi Logtail menggunakan inputType: file.
apiVersion: log.alibabacloud.com/v1alpha1
kind: AliyunLogConfig
metadata:
name: example-k8s-file
namespace: kube-system
spec:
project: k8s-log-test
logstore: k8s-file
logtailConfig:
inputType: file
configName: example-k8s-file
inputDetail:
logType: common_reg_log
logPath: /data/logs/app_1
filePattern: test.LOG
dockerFile: true
status:
status: OK
statusCode: 200Bidang status dan bidang statusCode dalam hasil tersebut menunjukkan status konfigurasi Logtail:
Jika nilai bidang
statusCodeadalah 200, konfigurasi Logtail telah berhasil diterapkan.Jika nilai bidang
statusCodebukan 200, penerapan konfigurasi Logtail gagal. Periksa bidangstatusuntuk melihat status yang dilaporkan.
Perbarui konfigurasi Logtail
Untuk memperbarui konfigurasi Logtail yang dibuat oleh AliyunLogConfig, edit file YAML CR yang sudah ada dan terapkan kembali file tersebut.
Dapatkan file kubeconfig kluster dan gunakan kubectl untuk terhubung ke kluster.
Edit file YAML
AliyunLogConfigyang sudah ada, seperticube.yaml.vim cube.yamlUbah parameter dalam file YAML sesuai kebutuhan. Untuk informasi selengkapnya tentang bidang-bidang CR, lihat Parameter CR.
Jalankan perintah berikut untuk menerapkan file dan mengaktifkan konfigurasi Logtail yang diperbarui.
kubectl apply -f cube.yamlVerifikasi bahwa nilai bidang
statusCodepada CR adalah 200. Untuk petunjuknya, lihat Lihat konfigurasi Logtail.
Hapus konfigurasi Logtail
Untuk menghapus konfigurasi Logtail yang dibuat oleh AliyunLogConfig, hapus CR yang sesuai. Dalam perintah berikut, <config_name> adalah nama AliyunLogConfig. Ganti nama tersebut sesuai kebutuhan.
Setelah CR dihapus, konfigurasi Logtail yang sesuai juga akan dihapus secara otomatis.
kubectl delete aliyunlogconfigs <config_name>Untuk mengonfirmasi penghapusan, jalankan kubectl get aliyunlogconfigs dan pastikan CR tersebut tidak lagi terdaftar.
Parameter CR
Bagian berikut menjelaskan bidang-bidang pada CR AliyunLogConfig.
apiVersion
Nilainya tetap log.alibabacloud.com/v1alpha1.
kind
Nilainya tetap AliyunLogConfig.
metadata
Bidang metadata mengidentifikasi CR di kluster Kubernetes.
| Parameter | Tipe | Wajib | Deskripsi |
name | string | Ya | Pengidentifikasi unik CR. Sebagai praktik terbaik, gunakan nilai yang sama dengan spec.logtailConfig.configName. |
namespace | string | Tidak | Namespace tempat CR berada. |
spec
Bidang spec menentukan proyek tujuan dan LogStore, atribut LogStore tujuan, serta detail konfigurasi Logtail.
| Parameter | Type | Wajib | Deskripsi |
project | string | Tidak | Nama proyek tujuan. Nilai default adalah proyek yang dikonfigurasi untuk kluster, yaitu nilai variabel lingkungan ALICLOUD_LOG_PROJECT dari alibaba-log-controller. Jika proyek yang Anda tentukan belum ada, Simple Log Service akan membuatnya secara otomatis. |
logstore | string | Ya | Nama LogStore tujuan. Jika LogStore yang Anda tentukan belum ada, Simple Log Service akan membuatnya secara otomatis. |
logtailConfig | AliyunLogConfigDetail | Ya | Detail konfigurasi Logtail. |
uid | string | Tidak | UID akun tujuan. Untuk mengirim log lintas akun, konfigurasikan parameter ini dan atur ALICLOUD_LOG_ACCOUNT_INFOS={"<uid>":{"accessKeyID":"<your_access_key_id>","accessKeySecret":"<your_access_key_secret>"}} dalam variabel lingkungan alibaba-log-controller. Parameter ini hanya mengontrol akun tempat proyek berada. Untuk mengirim data Logtail ke akun tersebut, Anda juga harus mengonfigurasi identifier pengguna untuk Logtail. Untuk petunjuknya, lihat Konfigurasi identifier pengguna. Parameter ini hanya didukung oleh alibaba-log-controller versi 0.3.2 atau yang lebih baru. |
endpoint | string | Tidak | Titik akhir proyek tujuan. Secara default, digunakan titik akhir wilayah tempat kluster saat ini berada. Jika proyek tujuan dan kluster berada di wilayah berbeda, konfigurasikan parameter ini. Parameter ini hanya mengontrol titik akhir yang digunakan oleh konfigurasi Logtail. Untuk mengirim data Logtail ke wilayah tersebut, Anda juga harus mengonfigurasi parameter config_server_address dan data_server_list untuk Logtail. Untuk petunjuknya, lihat File konfigurasi dan file catatan Logtail. Parameter ini hanya didukung oleh alibaba-log-controller versi 0.4.1 atau yang lebih baru. Untuk informasi selengkapnya, lihat Endpoint. |
logstoreMode | string | Tidak | Jenis LogStore tujuan. Nilai default: standard. Nilai yang valid: query (Query LogStore) dan standard (Standard LogStore). Parameter ini hanya didukung oleh alibaba-log-controller versi 0.3.3 atau yang lebih baru. Untuk detailnya, lihat Jenis LogStore. |
shardCount | int | Tidak | Jumlah shard di LogStore tujuan. Nilai default: 2. Nilai yang valid: 1 hingga 10. Untuk detailnya, lihat Shard. |
logstoreMaxSplitShard | int | Tidak | Jumlah maksimum shard yang dapat dibagi secara otomatis dari shard di LogStore tujuan. Nilai default: 32. Nilai yang valid: 1 hingga 256. Untuk detailnya, lihat sharding otomatis. |
logstoreAutoSplit | bool | Tidak | Menentukan apakah sharding otomatis diaktifkan untuk LogStore tujuan. Nilai default: true. Untuk detailnya, lihat sharding otomatis. |
lifeCycle | int | Tidak | Periode retensi data LogStore tujuan. Satuan: hari. Nilai default: 180. Nilai yang valid: 1 hingga 3650. Nilai 3650 berarti retensi permanen. Untuk detailnya, lihat Periode Retensi Data. |
logstoreHotTTL | int | Tidak | Periode retensi data hot LogStore tujuan. Satuan: hari. Nilai default: 0. Nilainya harus kurang dari nilai lifeCycle dan lebih besar atau sama dengan 7. Untuk detailnya, lihat Penyimpanan Bertingkat Cerdas. |
logstoreTelemetryType | string | Tidak | Jenis data observabilitas di LogStore tujuan. Nilai default: None. Nilai yang valid: None (data log) dan Metrics (data deret waktu). Untuk detailnya, lihat telemetryType. |
logstoreAppendMeta | bool | Tidak | Menentukan apakah fitur pencatatan Alamat IP publik diaktifkan untuk LogStore tujuan. Nilai default: true. Untuk detailnya, lihat Log Alamat IP Publik. |
logstoreEnableTracking | bool | Tidak | Menentukan apakah Web Tracking diaktifkan untuk LogStore tujuan. Nilai default: false. Untuk detailnya, lihat WebTracking. |
logstoreEncryptConf | object | Tidak | Pengaturan enkripsi LogStore tujuan. Parameter ini kosong secara default. Untuk detailnya, lihat Struktur data umum. |
logstoreMeteringMode | string | Tidak | Mode penagihan LogStore tujuan. Parameter ini kosong secara default. Nilai yang valid: ChargeByFunction (mode penagihan berdasarkan fitur) dan ChargeByDataIngest (mode penagihan berdasarkan data yang diingest). Jika logstoreMode LogStore adalah query, hanya mode penagihan berdasarkan fitur yang didukung. Jika mode penagihan berdasarkan data yang diingest belum diaktifkan untuk akun Anda, Anda hanya dapat menetapkan parameter ini ke ChargeByFunction. Parameter ini hanya didukung oleh alibaba-log-controller versi 0.4.3 atau yang lebih baru. Untuk detailnya, lihat Kelola LogStore. |
machineGroups | array | Tidak | Kelompok mesin yang dikaitkan dengan konfigurasi Logtail. Saat Anda menginstal komponen logtail-ds, Simple Log Service secara otomatis membuat kelompok mesin bernama k8s-group-${your_k8s_cluster_id}. Kelompok mesin ini merupakan nilai default. Untuk detailnya, lihat Pendahuluan. |
configTags | map | Tidak | Tag kustom yang digunakan untuk mengidentifikasi konfigurasi Logtail. Parameter ini hanya didukung oleh alibaba-log-controller versi 0.4.2 atau yang lebih baru. |
AliyunLogConfigDetail
Untuk informasi selengkapnya tentang parameter, lihat Konfigurasi Logtail (legacy). Format data AliyunLogConfigDetail sama dengan format yang dijelaskan di Konfigurasi Logtail (legacy).
| Parameter | Tipe | Wajib | Deskripsi |
configName | string | Ya | Nama konfigurasi Logtail. Nama harus unik di proyek tempat konfigurasi Logtail berada. Sebagai praktik terbaik, gunakan nilai yang sama dengan nama resource (metadata.name). Nama hanya boleh berisi huruf kecil, angka, tanda hubung (-), dan garis bawah (_). Nama harus dimulai dan diakhiri dengan huruf kecil atau angka. Panjang nama harus antara 2 hingga 128 karakter. |
logSample | string | Tidak | Contoh log. Nilainya harus kurang dari 1.500 byte. |
inputType | string | Ya | Metode yang digunakan untuk mengumpulkan log. Nilai yang valid: plugin (mengumpulkan log seperti log output standar dan log biner MySQL menggunakan plugin Logtail) dan file (mengumpulkan log dari file teks dalam mode tetap, seperti mode regex lengkap dan mode pembatas). |
inputDetail | Object | Ya | Pengaturan input log. Untuk detailnya, lihat inputDetail. |