Syslog adalah protokol standar industri yang digunakan untuk mencatat log perangkat. Protokol ini umumnya diterapkan dalam alat manajemen jaringan, sistem manajemen keamanan, dan sistem audit log. Topik ini menjelaskan cara menggunakan fungsi Grok dalam Domain Specific Language (DSL) dari Simple Log Service untuk mengurai pesan Syslog dalam berbagai format.
Ikhtisar
Syslog banyak digunakan untuk pencatatan pesan dalam sistem operasi mirip UNIX. Pesan Syslog dapat dicatat dalam file lokal atau dikirim ke server Syslog melalui Internet. Setiap server dapat menyimpan dan mengurai pesan Syslog dari beberapa perangkat.
Informasi latar belakang
Pesan Syslog tradisional sering kali berada dalam format acak karena kurangnya standarisasi Syslog. Dalam beberapa kasus, pesan Syslog mungkin gagal diurai karena hanya dianggap sebagai string. Oleh karena itu, akurasi menjadi prioritas utama saat Anda mengurai pesan Syslog dalam format berbeda.
Protokol Syslog
Dua protokol Syslog yang umum digunakan dalam industri adalah RFC 5424 yang diterbitkan pada tahun 2009 dan RFC 3164 yang diterbitkan pada tahun 2001. Bagian ini menjelaskan perbedaan antara kedua protokol tersebut untuk membantu Anda lebih efektif menggunakan fungsi Grok dalam mengurai pesan Syslog.
RFC 5424
Pesan Syslog yang menggunakan protokol RFC 5424 mencakup bidang-bidang berikut. Untuk informasi lebih lanjut, lihat RFC 5424 - Protokol Syslog.
PRI VERSION SP TIMESTAMP SP HOSTNAME SP APP-NAME SP PROCID SP MSGIDContoh berikut mengilustrasikan bidang-bidang ini:
""" Contoh1: <34>1 2019-07-11T22:14:15.003Z aliyun.example.com ali - ID47 - BOM'su user' failed for lonvick on /dev/pts/8 """ PRI -- 34 VERSION -- 1 TIMESTAMP -- 2019-07-11T22:14:15.003Z HOSTNAME -- aliyun.example.com APP-NAME -- ali PROCID -- None MSGID -- ID47 MESSAGE -- 'su user' failed for lonvick on /dev/pts/8 """ Contoh2: <165>1 2019-07-11T22:14:15.000003-07:00 192.0.2.1 myproc 8710 - - %% It's time to make the do-nuts. """ PRI -- 165 VERSION -- 1 TIMESTAMP -- 2019-07-11T05:14:15.000003-07:00 HOSTNAME -- 192.0.2.1 APP-NAME -- myproc PROCID -- 8710 STRUCTURED-DATA -- "-" MSGID -- "-" MESSAGE -- "%% It's time to make the do-nuts." """ Contoh3: - dengan STRUCTURED-DATA <165>1 2019-07-11T22:14:15.003Z aliyun.example.com evntslog - ID47 [exampleSDID@32473 iut="3" eventSource= "Application" eventID="1011"] BOMAn application event log entry... """ PRI -- 165 VERSION -- 1 TIMESTAMP -- 2019-07-11T22:14:15.003Z HOSTNAME -- aliyun.example.com APP-NAME -- evntslog PROCID -- "-" MSGID -- ID47 STRUCTURED-DATA -- [exampleSDID@32473 iut="3" eventSource="Application" eventID="1011"] MESSAGE -- An application event log entry...RFC 3164
Pesan Syslog yang menggunakan protokol RFC 3164 mencakup bidang-bidang berikut. Untuk informasi lebih lanjut, lihat RFC 3164 - Protokol BSD Syslog.
PRI HEADER[TIME HOSTNAME] MSGContoh berikut mengilustrasikan bidang-bidang ini:
""" <30>Oct 9 22:33:20 hlfedora auditd[1787]: The audit daemon is exiting. """ PRI -- 30 HEADER - TIME -- Oct 9 22:33:20 - HOSTNAME -- hlfedora MSG - TAG -- auditd[1787] - Content --The audit daemon is exiting.
Mengurai Pesan Syslog dalam Format Umum Menggunakan Fungsi Grok
Bagian ini menjelaskan cara menggunakan fungsi Grok untuk mengurai pesan Syslog dalam format umum. Untuk informasi lebih lanjut tentang aturan Grok, lihat Pola Grok.
TraditionalFormat
Entri Log Mentah
receive_time: 1558663265 __topic__: content: May 5 10:20:57 iZbp1a65x3r1vhpe94fi2qZ systemd: Started System Logging Service.Orkestrasi DSL
e_regex('content', grok('%{SYSLOGBASE} %{GREEDYDATA:message}'))Hasil
receive_time: 1558663265 __topic__: content: May 5 10:20:57 iZbp1a65x3r1vhpe94fi2qZ systemd: Started System Logging Service. timestamp: May 5 10:20:57 logsource: iZbp1a65x3r1vhpe94fi2qZ program: systemd message: Started System Logging Service.
FileFormat
Entri Log Mentah
receive_time: 1558663265 __topic__: content: 2019-05-06T09:26:07.874593+08:00 iZbp1a65x3r1vhpe94fi2qZ user: 834753Orkestrasi DSL
e_regex('content',grok('%{TIMESTAMP_ISO8601:timestamp} %{SYSLOGHOST:hostname} %{SYSLOGPROG} %{GREEDYDATA:message}'))Hasil
receive_time: 1558663265 __topic__: content: 2019-05-06T09:26:07.874593+08:00 iZbp1a65x3r1vhpe94fi2qZ user: 834753 timestamp: 2019-05-06T09:26:07.874593+08:00 hostname: iZbp1a65x3r1vhpe94fi2qZ program: user message: 834753
RSYSLOG_SyslogProtocol23Format
Entri Log Mentah
receive_time: 1558663265 __topic__: content: <13>1 2019-05-06T11:50:16.015554+08:00 iZbp1a65x3r1vhpe94fi2qZ user - - - twantOrkestrasi DSL
e_regex('content',grok('%{POSINT:priority}>%{NUMBER:version} %{TIMESTAMP_ISO8601:timestamp} %{SYSLOGHOST:hostname} %{PROG:program} - - - %{GREEDYDATA:message}'))Hasil
receive_time: 1558663265 __topic__: content: <13>1 2019-05-06T11:50:16.015554+08:00 iZbp1a65x3r1vhpe94fi2qZ user - - - twant priority: 13 version: 1 timestamp: 2019-05-06T11:50:16.015554+08:00 hostname: iZbp1a65x3r1vhpe94fi2qZ program: user message: twant
RSYSLOG_DebugFormat
Konten Log
receive_time: 1558663265 __topic__: content: 2019-05-06T14:29:37.558854+08:00 iZbp1a65x3r1vhpe94fi2qZ user: environmentOrkestrasi DSL
e_regex('content',grok('%{TIMESTAMP_ISO8601:timestamp} %{SYSLOGHOST:hostname} %{SYSLOGPROG} %{GREEDYDATA:message}'))Hasil
receive_time: 1558663265 __topic__: content: 2019-05-06T14:29:37.558854+08:00 iZbp1a65x3r1vhpe94fi2qZ user: environment timestamp: 2019-05-06T14:29:37.558854+08:00 hostname: iZbp1a65x3r1vhpe94fi2qZ program: user message: environment
Mengurai Pesan Syslog dalam Format Tidak Umum Menggunakan Fungsi Grok
Bagian ini menjelaskan cara menggunakan fungsi Grok untuk mengurai pesan Syslog dalam dua format tidak umum: FluentRFC5424 dan FluentRFC3164. Pesan-pesan ini dikumpulkan menggunakan perangkat lunak Fluent.
FluentRFC5424
Konten Log
receive_time: 1558663265 __topic__: content: <16>1 2019-02-28T12:00:00.003Z 192.168.0.1 aliyun 11111 ID24224 [exampleSDID@20224 iut='3' eventSource='Application' eventID='11211] Hi, from Fluentd!Orkestrasi DSL
e_regex('content',grok('%{POSINT:priority}>%{NUMBER:version} %{TIMESTAMP_ISO8601:timestamp} %{SYSLOGHOST:hostname} %{WORD:ident} %{USER:pid} %{USERNAME:msgid} (? P<extradata>(\[(. *)\]|[^ ])) %{GREEDYDATA:message}'))Hasil
receive_time: 1558663265 __topic__: content: <16>1 2019-02-28T12:00:00.003Z 192.168.0.1 aliyun 11111 ID24224 [exampleSDID@20224 iut='3' eventSource='Application' eventID='11211] Hi, from aliyun! priority: 16 version: 1 timestamp: 2019-02-28T12:00:00.003Z hostname: 192.168.0.1 ident: aliyun pid: 11111 msgid: ID24224 extradata: [exampleSDID@20224 iut='3' eventSource='Application' eventID='11211] message: Hi, from aliyun!
FluentRFC3164
Konten Log
receive_time: 1558663265 __topic__: content: <6>Feb 28 12:00:00 192.168.0.1 aliyun[11111]: [error] Syslog testOrkestrasi DSL
e_regex('content', grok('%{POSINT:priority}>%{SYSLOGTIMESTAMP:timestamp} %{SYSLOGHOST:hostname} %{WORD:ident}(? P<pid>(\[[a-zA-Z0-9. _-]+\]|[^:])): (? P<level>(\[(\w+)\]|[^ ])) %{GREEDYDATA:message}'))Hasil
receive_time: 1558663265 __topic__: content: <6>Feb 28 12:00:00 192.168.0.1 aliyun[11111]: [error] Syslog test priority: 6 timestamp: Feb 28 12:00:00 hostname: 192.168.0.1 ident: aliyun pid: [11111] level: [error] message: Syslog test
Mengurai Bidang Prioritas dalam Entri Log
Setelah Anda mengurai pesan Syslog dalam format FluentRFC5424 dan FluentRFC3164, Anda dapat lebih lanjut mengurai bidang prioritas untuk mendapatkan informasi tentang fasilitas dan tingkat keparahan. Untuk informasi lebih lanjut tentang penggunaan RFC5424, lihat e_syslogrfc. Contoh:
Entri Log Mentah
receive_time: 1558663265 __topic__: content: <13>1 2019-05-06T11:50:16.015554+08:00 iZbp1a65x3r1vhpe94fi2qZ user - - - twant priority: 13 version: 1 timestamp: 2019-05-06T11:50:16.015554+08:00 hostname: iZbp1a65x3r1vhpe94fi2qZ program: user message: twantOrkestrasi DSL
e_syslogrfc("priority","SYSLOGRFC5424")Hasil
receive_time: 1558663265 __topic__: content: <13>1 2019-05-06T11:50:16.015554+08:00 iZbp1a65x3r1vhpe94fi2qZ user - - - twant priority: 13 version: 1 timestamp: 2019-05-06T11:50:16.015554+08:00 hostname: iZbp1a65x3r1vhpe94fi2qZ program: user message: twant _facility_: 1 _severity_: 5 _severitylabel_: Pemberitahuan: kondisi normal tetapi signifikan _facilitylabel_: pesan tingkat pengguna