Logtail mengumpulkan log jurnal systemd Linux dari file biner. Topik ini menjelaskan cara membuat konfigurasi Logtail di Konsol Simple Log Service untuk mengumpulkan log jurnal systemd.
Prasyarat
Logtail versi 0.16.18 atau lebih baru telah terinstal pada Server Linux. Untuk informasi lebih lanjut, lihat Instal Logtail pada Server Linux.
Pengenalan
systemd adalah sistem dan manajer layanan untuk sistem operasi Linux. Saat berjalan sebagai proses init (PID=1), ia bertindak sebagai sistem inisialisasi yang memulai dan mempertahankan layanan ruang pengguna. systemd secara terpusat mengelola log semua unit, termasuk log kernel dan aplikasi. File konfigurasinya biasanya adalah /etc/systemd/journald.conf.
Sistem operasi harus mendukung format log jurnal.
Fitur
Anda dapat menetapkan posisi pengumpulan awal. Checkpoint otomatis disimpan untuk pengumpulan data selanjutnya, dan proses ini tidak terpengaruh oleh restart aplikasi.
Anda dapat menyaring unit tertentu.
Anda dapat mengumpulkan log kernel.
Tingkat log secara otomatis diurai.
Anda dapat mengumpulkan log jurnal dari host dalam kontainer. Fitur ini berguna dalam skenario Docker dan Kubernetes.
Skenario
Monitor peristiwa kernel dan otomatis picu peringatan untuk pengecualian.
Kumpulkan semua log sistem untuk penyimpanan jangka panjang dan kurangi penggunaan ruang disk.
Kumpulkan log keluaran dari perangkat lunak (unit) untuk analisis atau peringatan.
Kumpulkan semua log jurnal untuk dengan cepat mengambil log atau mencari kata kunci. Ini secara signifikan meningkatkan efisiensi kueri dibandingkan dengan journalctl.
Prosedur
Masuk ke Konsol Simple Log Service.
Di area Data Ingestion, pilih Custom Data Plugin.
Pilih proyek dan penyimpanan log, lalu klik Next.
Di langkah Machine Group Configurations, konfigurasikan kelompok mesin.
Konfigurasikan parameter Skenario dan Lingkungan Instalasi sesuai kebutuhan.
PentingAnda harus mengonfigurasi parameter Skenario dan Lingkungan Instalasi terlepas dari apakah kelompok mesin tersedia. Pengaturan parameter memengaruhi konfigurasi selanjutnya.
Pastikan kelompok mesin ditampilkan di bagian Applied Server Groups, dan klik Next.
Kelompok mesin tersedia
Pilih kelompok mesin dari bagian Source Machine Group.

Tidak ada kelompok mesin tersedia
Klik Create Machine Group. Di panel Create Machine Group, konfigurasikan parameter. Anda dapat menyetel parameter Pengenal Kelompok Mesin ke IP Address atau Custom Identifier. Untuk informasi lebih lanjut, lihat Buat kelompok mesin berbasis pengenal kustom atau Buat kelompok mesin berbasis alamat IP.
PentingJika Anda menerapkan kelompok mesin segera setelah membuat kelompok mesin, status detak jantung kelompok mesin mungkin menjadi FAIL. Masalah ini terjadi karena kelompok mesin belum terhubung ke Simple Log Service. Untuk menyelesaikan masalah ini, Anda dapat mengklik Automatic Retry. Jika masalah tetap ada, lihat Apa yang harus saya lakukan jika tidak ada koneksi detak jantung yang terdeteksi pada Logtail?
Di tab Data Source Settings, atur Configuration Name dan Plugin Configuration, lalu klik Next.
{ "inputs": [ { "detail": { "JournalPaths": [ "/var/log/journal" ], "Kernel": true, "ParsePriority": true, "ParseSyslogFacility": true }, "type": "service_journal" } ] }Parameter
Tipe
Diperlukan
Deskripsi
type
string
Ya
Tipe sumber data. Atur ini ke service_journal.
JournalPaths
array string
Ya
Path log jurnal. Kami merekomendasikan Anda menyetel ini ke direktori tempat log jurnal disimpan, seperti /var/log/journal.
SeekPosition
string
Tidak
Posisi dari mana Logtail mulai mengumpulkan log untuk pertama kalinya. Anda dapat menyetel ini ke head atau tail. Nilai default adalah tail.
head: Mengumpulkan semua data yang ada.
tail: Hanya mengumpulkan data baru yang dihasilkan setelah konfigurasi Logtail diterapkan.
Kernel
boolean
Tidak
Menentukan apakah akan mengumpulkan log kernel. Nilai default adalah true, yang menunjukkan bahwa log kernel dikumpulkan.
Units
array string
Tidak
Daftar unit dari mana log akan dikumpulkan. Secara default, parameter ini kosong, yang menunjukkan bahwa log dari semua unit dikumpulkan.
ParseSyslogFacility
boolean
Tidak
Menentukan apakah akan mengurai bidang fasilitas syslog. Nilai default adalah false. Jika Anda tidak mengonfigurasi parameter ini, bidang tersebut tidak diurai.
ParsePriority
boolean
Tidak
Menentukan apakah akan mengurai bidang Priority. Nilai default adalah false. Jika Anda tidak mengonfigurasi parameter ini, bidang tersebut tidak diurai.
Jika Anda menyetel ini ke true, bidang Priority diurai berdasarkan pemetaan berikut.
"0": "emergency" "1": "alert" "2": "critical" "3": "error" "4": "warning" "5": "notice" "6": "informational" "7": "debug"UseJournalEventTime
boolean
Tidak
Menentukan apakah akan menggunakan bidang dalam log jurnal sebagai waktu log. Nilai default adalah false. Jika Anda tidak mengonfigurasi parameter ini, waktu pengumpulan digunakan sebagai waktu log.
Untuk pengumpulan log waktu nyata, selisih waktu biasanya dalam 3 detik.
Buat indeks dan pratinjau data, lalu klik Next. Secara default, pengindeksan teks penuh diaktifkan di Simple Log Service. Anda juga dapat secara manual membuat indeks bidang untuk log yang dikumpulkan atau klik Automatic Index Generation. Lalu, Simple Log Service menghasilkan indeks bidang. Untuk informasi lebih lanjut, lihat Buat indeks.
PentingJika Anda ingin menanyakan semua bidang dalam log, kami sarankan Anda menggunakan indeks teks penuh. Jika Anda hanya ingin menanyakan bidang tertentu, kami sarankan Anda menggunakan indeks bidang. Ini membantu mengurangi lalu lintas indeks. Jika Anda ingin menganalisis bidang, Anda harus membuat indeks bidang. Anda harus menyertakan pernyataan SELECT dalam pernyataan kueri Anda untuk analisis.
Klik Query Log. Lalu, Anda akan dialihkan ke halaman kueri dan analisis Logstore Anda.
Anda harus menunggu sekitar 1 menit agar indeks berlaku. Lalu, Anda dapat melihat log yang dikumpulkan di tab Log Mentah. Untuk informasi lebih lanjut tentang cara menanyakan dan menganalisis log, lihat Panduan untuk kueri dan analisis log.
Contoh
Contoh 1
Kumpulkan log jurnal dari direktori
/var/log/journaldefault. Konfigurasi pengumpulan adalah sebagai berikut:{ "inputs": [ { "detail": { "JournalPaths": [ "/var/log/journal" ] }, "type": "service_journal" } ] }Contoh log:
MESSAGE: rejected connection from "192.168.0.250:43936" (error "EOF", ServerName "") PACKAGE: embed PRIORITY: 6 SYSLOG_IDENTIFIER: etcd _BOOT_ID: fe919cd1268f4721bd87b5c18afe59c3 _CAP_EFFECTIVE: 0 _CMDLINE: /usr/bin/etcd --election-timeout=3000 --heartbeat-interval=500 --snapshot-count=50000 --data-dir=data.etcd --name 192.168.0.251-name-3 --client-cert-auth --trusted-ca-file=/var/lib/etcd/cert/ca.pem --cert-file=/var/lib/etcd/cert/etcd-server.pem --key-file=/var/lib/etcd/cert/etcd-server-key.pem --peer-client-cert-auth --peer-trusted-ca-file=/var/lib/etcd/cert/peer-ca.pem --peer-cert-file=/var/lib/etcd/cert/192.168.0.251-name-3.pem --peer-key-file=/var/lib/etcd/cert/192.168.0.251-name-3-key.pem --initial-advertise-peer-urls https://192.168.0.251:2380 --listen-peer-urls https://192.168.0.251:2380 --advertise-client-urls https://192.168.0.251:2379 --listen-client-urls https://192.168.0.251:2379 --initial-cluster 192.168.0.249-name-1=https://192.168.0.249:2380,192.168.0.250-name-2=https://192.168.0.250:2380,192.168.0.251-name-3=https://192.168.0.251:2380 --initial-cluster-state new --initial-cluster-token abac64c8-baab-4ae6-8412-4253d3cfb0cf _COMM: etcd _EXE: /opt/etcd-v3.3.8/etcd _GID: 995 _HOSTNAME: iZbp1f7y2ikfe4l8nx95amZ _MACHINE_ID: f0f31005fb5a436d88e3c6cbf54e25aa _PID: 10926 _SOURCE_REALTIME_TIMESTAMP: 1546854068863857 _SYSTEMD_CGROUP: /system.slice/etcd.service _SYSTEMD_SLICE: system.slice _SYSTEMD_UNIT: etcd.service _TRANSPORT: journal _UID: 997 __source__: 172.16.1.4 __tag__:__hostname__: logtail-ds-8kqb9 __topic__: _monotonic_timestamp_: 1467135144311 _realtime_timestamp_: 1546854068864309Contoh 2
CatatanBeberapa batasan berikut berlaku saat Anda mengumpulkan log jurnal dari host menggunakan kontainer:
Jika versi systemd dalam kontainer adalah 247 atau lebih lama, Anda tidak dapat mengumpulkan log jurnal yang dihasilkan oleh host dengan versi systemd 249 atau lebih baru.
Jika versi systemd dalam kontainer adalah 249 atau lebih baru, ia dapat membaca format lama dan baru.
Dalam skenario Kubernetes, Anda dapat menggunakan mode DaemonSet untuk mengumpulkan log sistem dari host. Karena log berisi banyak bidang non-kritis, Anda dapat menggunakan plugin pemrosesan untuk memilih hanya bidang log penting. Konfigurasi pengumpulan adalah sebagai berikut:
{ "inputs": [ { "detail": { "JournalPaths": [ "/logtail_host/var/log/journal" ], "ParsePriority": true, "ParseSyslogFacility": true }, "type": "service_journal" } ], "processors": [ { "detail": { "Exclude": { "UNIT": "^libcontainer.*test" } }, "type": "processor_filter_regex" }, { "detail": { "Include": [ "MESSAGE", "PRIORITY", "_EXE", "_PID", "_SYSTEMD_UNIT", "_realtime_timestamp_", "_HOSTNAME", "UNIT", "SYSLOG_FACILITY", "SYSLOG_IDENTIFIER" ] }, "type": "processor_pick_key" } ] }Contoh log:
MESSAGE: rejected connection from "192.168.0.251:48914" (error "EOF", ServerName "") PRIORITY: informational SYSLOG_IDENTIFIER: etcd _EXE: /opt/etcd-v3.3.8/etcd _HOSTNAME: iZbp1i0czq3zgvxlx7u8ueZ _PID: 10590 _SYSTEMD_UNIT: etcd.service __source__: 172.16.0.141 __tag__:__hostname__: logtail-ds-dp48x __topic__: _realtime_timestamp_: 1547975837008708
Pemecahan Masalah
Jika tidak ada data yang ditampilkan di halaman pratinjau atau halaman kueri setelah log dikumpulkan menggunakan Logtail, Anda dapat memecahkan kesalahan berdasarkan instruksi yang diberikan di Apa yang harus saya lakukan jika terjadi kesalahan saat saya menggunakan Logtail untuk mengumpulkan log?