Simple Log Service mendefinisikan CustomResourceDefinition (CRD) bernama AliyunLogConfig. Anda dapat menggunakan file YAML untuk membuat CustomResource (CR) dari CRD ini guna mengelola konfigurasi Logtail. Topik ini menjelaskan cara menggunakan AliyunLogConfig untuk mengelola konfigurasi Logtail.
Prasyarat
Komponen Logtail versi V0.5.1 atau lebih baru telah terpasang. Untuk informasi lebih lanjut, lihat Pasang komponen Logtail di kluster ACK dan Pasang komponen Logtail di kluster Kubernetes yang dikelola sendiri.
Kontainer tempat Anda ingin mengumpulkan log secara terus-menerus menghasilkan log.
PentingLogtail hanya mengumpulkan log tambahan. Jika file log di server tidak diperbarui setelah konfigurasi Logtail yang diterapkan dikirim ke server, Logtail tidak akan mengumpulkan log dari file tersebut. Untuk informasi lebih lanjut, lihat Baca file log.
Batasan
Anda dapat membuat CR dari CRD AliyunLogConfig untuk membuat konfigurasi Logtail. Jika Anda memodifikasi konfigurasi Logtail di konsol Simple Log Service, modifikasi tersebut tidak disinkronkan ke CR. Jika Anda ingin memodifikasi konfigurasi Logtail dalam CR, Anda harus memperbarui CR. Jika Anda hanya memodifikasi konfigurasi Logtail di konsol Simple Log Service, ketidaksesuaian konfigurasi Logtail mungkin terjadi.
Prosedur
Buat konfigurasi Logtail
Anda harus membuat CR dari CRD AliyunLogConfig. Kemudian, komponen alibaba-log-controller secara otomatis membuat konfigurasi Logtail berdasarkan CR. Setelah konfigurasi Logtail dibuat, konfigurasi tersebut diterapkan secara otomatis, dan Logtail mulai mengumpulkan log ke Simple Log Service sesuai dengan konfigurasi tersebut.
Dapatkan file kubeconfig kluster dan gunakan kubectl untuk terhubung ke kluster.
Jalankan perintah berikut untuk membuat file YAML. Dalam perintah berikut,
cube.yamladalah nama file contoh. Anda dapat menentukan nama file lain sesuai kebutuhan bisnis Anda.
vim cube.yamlMasukkan skrip berikut ke dalam file YAML dan konfigurasikan parameter sesuai kebutuhan bisnis Anda. Untuk informasi lebih lanjut tentang parameter CR, lihat Parameter CR.
apiVersion: log.alibabacloud.com/v1alpha1 # Nilai default digunakan. Anda tidak perlu memodifikasi parameter ini.
kind: AliyunLogConfig # Nilai default digunakan. Anda tidak perlu memodifikasi parameter ini.
metadata:
name: test-config # Nama sumber daya. Nama harus unik di kluster Kubernetes saat ini.
spec:
logstore: k8s-stdout # Nama Logstore. Jika Logstore yang Anda tentukan tidak ada, Simple Log Service secara otomatis membuat Logstore.
logtailConfig: # Konfigurasi Logtail.
inputType: plugin # Jenis sumber data.
configName: test-config # Nama konfigurasi Logtail.
inputDetail: # Pengaturan detail konfigurasi Logtail.
...Jalankan perintah berikut untuk membuat CR dari CRD
AliyunLogConfig. Komponen alibaba-log-controller membuat konfigurasi Logtail berdasarkan CR. Lalu, konfigurasi Logtail diterapkan secara otomatis. Setelah konfigurasi Logtail diterapkan, Logtail mulai mengumpulkan log ke Simple Log Service. Dalam perintah berikut,cube.yamladalah nama file contoh. Anda dapat menentukan nama file lain sesuai kebutuhan bisnis Anda.
kubectl apply -f cube.yamlLihat konfigurasi Logtail
Lihat semua konfigurasi Logtail yang dibuat di kluster Kubernetes saat ini berdasarkan CR dari CRD
AliyunLogConfig.Anda dapat menjalankan perintah berikut untuk melihat konfigurasi Logtail:
kubectl get aliyunlogconfigsLihat pengaturan detail dan status konfigurasi Logtail yang dibuat berdasarkan CR dari CRD AliyunLogConfig.
Anda dapat menjalankan perintah
kubectl get aliyunlogconfigs <config_name> -o yamluntuk melihat konfigurasi Logtail. Dalam perintah ini,<config_name>adalah nama CR yang diperlukan. Anda dapat menentukan nama lain sesuai kebutuhan bisnis Anda.Informasi serupa dengan kode berikut akan ditampilkan. Bidang
statusdanstatusCodemenunjukkan status konfigurasi Logtail.Jika nilai bidang
statusCodeadalah 200, konfigurasi Logtail berhasil diterapkan.Jika nilai bidang
statusCodebukan 200, konfigurasi Logtail gagal diterapkan.
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: 200
Perbarui konfigurasi Logtail
Untuk memperbarui konfigurasi Logtail, cukup modifikasi file YAML yang digunakan untuk membuat CR terkait dan terapkan file baru.
Dapatkan file kubeconfig kluster dan gunakan kubectl untuk terhubung ke kluster.
Modifikasi file YAML yang digunakan untuk membuat CR Anda.
Dalam perintah berikut,cube.yamladalah nama file contoh. Anda dapat menentukan nama file lain sesuai kebutuhan bisnis Anda.
vim cube.yamlModifikasi parameter dalam file YAML. Untuk informasi lebih lanjut tentang parameter, lihat Parameter CR.
Jalankan perintah berikut untuk menerapkan file baru. Dalam perintah berikut,
cube.yamladalah nama file contoh. Anda dapat menentukan nama file lain sesuai kebutuhan bisnis Anda.
kubectl apply -f cube.yamlHapus konfigurasi Logtail
Untuk menghapus konfigurasi Logtail, cukup hapus CR berdasarkan konfigurasi Logtail yang dibuat. Dalam perintah berikut, <config_name> adalah nama CR yang diperlukan. Anda dapat menentukan nama lain sesuai kebutuhan bisnis Anda.
kubectl delete aliyunlogconfigs <config_name>Setelah CR dihapus, konfigurasi Logtail yang dibuat berdasarkan CR secara otomatis dihapus.
Parameter CR
apiVersion
Nilainya tetap sebagai
log.alibabacloud.com/v1alpha1.kind
Nilainya tetap sebagai
AliyunLogConfig.metadata
Bidang
Tipe
Diperlukan
Deskripsi
name
string
Ya
Pengenal unik CR. Kami sarankan Anda menetapkan bidang ini ke nilai yang sama dengan bidang Spec.logtailConfig.configName.
namespace
string
Tidak
Namespace tempat CR berada.
Spec
Bidang
Tipe
Diperlukan
Deskripsi
project
string
Tidak
Nama proyek. Anda harus memasukkan nama proyek default kluster saat ini. Anda dapat memperoleh nama dari variabel lingkungan
ALICLOUD_LOG_PROJECTyang dikonfigurasi untuk komponen alibaba-log-controller.CatatanJika proyek yang ditentukan tidak ada, Simple Log Service secara otomatis membuat proyek.
logstore
string
Ya
Nama Logstore.
CatatanJika Logstore yang ditentukan tidak ada, Simple Log Service secara otomatis membuat Logstore.
Jika Logstore yang ditentukan ada, bidang terkait Logstore berikutnya dalam tabel ini tidak berlaku.
logtailConfig
Ya
Pengaturan detail konfigurasi Logtail.
uid
string
Tidak
ID akun. Jika Anda mengumpulkan log lintas akun, Anda harus mengonfigurasi bidang ini dan menyertakan
ALICLOUD_LOG_ACCOUNT_INFOS={"<uid>":{"accessKeyID":"<your_access_key_id>","accessKeySecret":"<your_access_key_secret>"}}dalam pengaturan variabel lingkungan untuk komponen alibaba-log-controller.CatatanBidang ini tersedia hanya jika Anda menggunakan alibaba-log-controller V0.3.2 dan yang lebih baru.
Bidang ini menentukan akun tempat proyek berada. Untuk mengumpulkan log ke akun menggunakan Logtail, Anda harus mengonfigurasi pengenal pengguna untuk Logtail Anda. Untuk informasi lebih lanjut, lihat Konfigurasikan pengenal pengguna.
endpoint
string
Tidak
Endpoint proyek. Untuk informasi lebih lanjut, lihat Endpoint. Secara default, endpoint untuk wilayah tempat kluster saat ini berada digunakan. Jika proyek dan kluster berada di wilayah yang berbeda, Anda harus mengonfigurasi bidang ini.
CatatanBidang ini tersedia hanya jika Anda menggunakan alibaba-log-controller V0.4.1 dan yang lebih baru.
Bidang ini menentukan endpoint untuk wilayah tempat konfigurasi Logtail berada. Untuk mengumpulkan log ke proyek berdasarkan endpoint menggunakan Logtail, Anda juga harus mengonfigurasi bidang config_server_address dan data_server_list untuk Logtail Anda. Untuk informasi lebih lanjut, lihat File konfigurasi Logtail dan file rekaman.
logstoreMode
string
Tidak
Tipe Logstore. Untuk informasi lebih lanjut, lihat Tipe Logstore. Nilai default: standard. Nilai valid:
query: Query Logstore
standard: Standard Logstore
CatatanBidang ini tersedia hanya jika Anda menggunakan alibaba-log-controller V0.3.3 dan yang lebih baru.
shardCount
int
Tidak
Jumlah shard dalam Logstore. Untuk informasi lebih lanjut, lihat Shard. Nilai default: 2. Nilai valid: 1 hingga 10.
logstoreMaxSplitShard
int
Tidak
Jumlah maksimum shard menjadi mana shard yang ada dalam Logstore dapat dibagi secara otomatis. Untuk informasi lebih lanjut, lihat Sharding Otomatis. Nilai default: 32. Nilai valid: 1 hingga 256.
logstoreAutoSplit
bool
Tidak
Menentukan apakah akan mengaktifkan sharding otomatis untuk Logstore. Untuk informasi lebih lanjut, lihat Sharding Otomatis. Nilai default: true.
lifeCycle
int
Tidak
Periode retensi log di Logstore. Satuan: hari. Untuk informasi lebih lanjut, lihat Data Retention Period. Nilai default: 180. Nilai valid: 1 hingga 3.650. Jika Anda mengatur bidang ini ke 3.650, log akan disimpan secara permanen.
logstoreHotTTL
int
Tidak
Periode retensi log di lapisan penyimpanan panas Logstore. Satuan: hari. Untuk informasi lebih lanjut, lihat Penyimpanan Berlapis Cerdas. Nilai default: 0. Nilai dari bidang ini harus lebih kecil dari nilai dari bidang lifeCycle dan lebih besar atau sama dengan 7.
logstoreTelemetryType
string
Tidak
Tipe data terobservasi dalam Logstore. Untuk informasi lebih lanjut, lihat telemetryType. Nilai default: None. Nilai valid:
None: data log
Metrics: data metrik
logstoreAppendMeta
bool
Tidak
Menentukan apakah akan mencatat alamat IP publik untuk Logstore. Untuk informasi lebih lanjut, lihat Log IP Publik. Nilai default: true.
logstoreEnableTracking
bool
Tidak
Menentukan apakah akan mengaktifkan fitur pelacakan web untuk Logstore. Untuk informasi lebih lanjut, lihat WebTracking. Nilai default: false.
logstoreEncryptConf
object
Tidak
Pengaturan enkripsi Logstore. Untuk informasi lebih lanjut, lihat Struktur data umum. Bidang ini kosong secara default.
logstoreMeteringMode
string
Tidak
Mode penagihan Logstore. Untuk informasi lebih lanjut, lihat Mode Penagihan. Bidang ini kosong secara default. Nilai valid:
ChargeByFunction: mode penagihan berdasarkan fitur
ChargeByDataIngest: mode penagihan berdasarkan data yang di-ingest
CatatanBidang ini tersedia hanya jika Anda menggunakan alibaba-log-controller V0.4.3 dan yang lebih baru.
Jika Anda menetapkan bidang logstoreMode ke query, Anda harus menetapkan bidang ini ke ChargeByFunction.
Jika mode penagihan berdasarkan data yang di-ingest dinonaktifkan untuk akun Anda, Anda hanya dapat menetapkan bidang ini ke ChargeByFunction.
machineGroups
array
Tidak
Grup mesin yang terkait dengan konfigurasi Logtail. Untuk informasi lebih lanjut, lihat Pengantar. Saat Anda memasang komponen logtail-ds, Simple Log Service secara otomatis membuat grup mesin bernama
k8s-group-${your_k8s_cluster_id}. Secara default, grup mesin ini digunakan.configTags
map
Tidak
Tag kustom yang ditambahkan untuk mengidentifikasi konfigurasi Logtail.
CatatanBidang ini tersedia hanya jika Anda menggunakan alibaba-log-controller V0.4.2 dan yang lebih baru.
AliyunLogConfigDetail
Untuk informasi lebih lanjut tentang bidang-bidangnya, lihat Konfigurasi Logtail. Format data parameter AliyunLogConfigDetail sama dengan format data konfigurasi Logtail.
Bidang
Tipe
Diperlukan
Deskripsi
configName
string
Ya
Nama konfigurasi Logtail. Nama harus unik di proyek tempat konfigurasi Logtail berada. Setelah konfigurasi Logtail dibuat, Anda tidak dapat mengubah nama konfigurasi Logtail. Kami sarankan Anda menetapkan bidang ini ke nilai yang sama dengan bidang metadata.name.
Nama harus memenuhi persyaratan berikut:
Nama hanya dapat berisi huruf kecil, angka, tanda hubung (-), dan garis bawah (_).
Nama harus dimulai dan diakhiri dengan huruf kecil atau angka.
Nama harus memiliki panjang 2 hingga 128 karakter.
logSample
string
Tidak
Contoh log. Nilainya harus kurang dari 1.500 byte panjangnya.
inputType
string
Ya
Metode pengumpulan log. Nilai valid:
plugin: Log seperti stdout dan stderr serta log biner MySQL dikumpulkan menggunakan plugin Logtail.
file: Log teks dikumpulkan menggunakan mode yang ada, termasuk mode regex penuh dan mode pembatas.
inputDetail
Object
Ya
Pengaturan detail sumber data. Untuk informasi lebih lanjut, lihat inputDetail.