GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Mengatur Server Logging Pusat Menggunakan Rsyslog di Ubuntu 20.04

Rsyslog adalah utilitas sumber terbuka untuk pemrosesan log. Ini memungkinkan pencatatan data dari berbagai jenis sistem dalam repositori pusat. Rsyslog adalah protokol Syslog dengan lebih banyak ekstensi, fitur, dan manfaat.

Apa yang membuat rsyslog begitu kuat? Rsyslog dapat mengirimkan lebih dari satu juta pesan per detik ke tujuan lokal saat pemrosesan terbatas diterapkan.

Dalam tutorial ini kita belajar cara menginstal dan mengkonfigurasi rsyslog di Ubuntu 20.04 .

Fitur Rsyslog

Rsyslog datang pada tahun 2004. dan memperluas protokol syslog dengan fitur baru:

  • Dukungan protokol RELP
  • Dukungan operasi buffer
  • Mendengarkan koneksi TCP/UDP (dengan batasan port, IP)
  • Dukungan untuk memuat banyak modul ( misalnya modul untuk mendukung protokol RELP)
  • Dukungan untuk membuang pesan yang berisi aturan khusus yang dikonfigurasi

Di Rsyslog, file konfigurasi tetap sama dengan Syslog. Itu berarti Anda dapat menyalin file syslog.conf langsung ke rsyslog.conf dan itu akan berfungsi.

Apa itu log dan syslog?

Sebelum kita masuk ke proses konfigurasi itu sendiri, mari kita lihat dulu untuk apa log digunakan? Informasi log benar-benar dapat membantu Anda untuk melihat apa yang sebenarnya terjadi pada sistem Anda, atau apa yang sebenarnya terjadi di balik kap mesin.

Biarkan saya memberi Anda sebuah contoh:jika tiba-tiba komputer Anda kusut atau mungkin macet atau bahkan downtime sistem Anda dan banyak lagi informasi berguna yang tidak dapat Anda lihat dengan cara biasa ketika pesan kesalahan ditampilkan.

Jika Anda mengetahui cara menggunakan log dengan benar, log dapat memberi Anda banyak fitur dan manfaat untuk informasi diagnostik tentang sistem itu sendiri.

Secara default, Linux menggunakan daemon syslog untuk merekam log tentang bagaimana sistem berjalan dan kemudian menempatkan log ini ke dalam repositori pusat di:/var/log di mana kita dapat memeriksa dan menyelidiki mereka.
Sederhananya, segala sesuatu mulai dari peristiwa kernel hingga tindakan pengguna dicatat oleh Linux, memungkinkan Anda untuk melihat hampir semua tindakan yang dilakukan di komputer atau server Anda.

Di sistem file Linux, ada satu direktori khusus untuk menyimpan log yang disebut /var/log . Direktori ini berisi semua log dari OS itu sendiri seperti:layanan, atau berbagai aplikasi yang berjalan di sistem.

Mari kita lihat bagaimana direktori dan struktur log terlihat di Linux ubuntu 20.04 yang baru.

Direktori tempat berbagai jenis log disimpan:

/var/log/syslog - Menyimpan semua pesan startup, pesan startup aplikasi, dll. Praktis menyimpan semua log sistem global.
/var/log/cron - Pekerjaan Cron pada dasarnya adalah jenis tugas terjadwal dan otomatis yang dibuat dalam sistem, yang berjalan secara berkala dan berulang kali. Anda dapat melihat apa yang akan disimpan oleh direktori log ini.
/var/log/kern.log - menyimpan log kernel. Tidak peduli apa log mereka. Log peristiwa, kesalahan, atau log peringatan.
/var/log/auth.log - Log otentikasi
/var/log.boot.log - Log boot sistem
/var/log/mysql.d - Log MySQL
/var/log/httpd - Direktori log Apache
/var/log/maillog - Log server email

Mengatur Server Log Terpusat Rsyslog di Ubuntu 20.04

Setelah ikhtisar singkat, apa itu log, Syslog, dan di mana rsyslog ditempatkan, mari kita beralih ke proses konfigurasi itu sendiri.

Prasyarat

  • Dua server yang menjalankan Ubuntu 20.04
  • Alamat IP statis:contoh 192.168.0.101 diperlukan untuk dikonfigurasi pada mesin server Rsyslog dan 192.168.0.102 dikonfigurasi pada mesin klien Rsyslog

Sistem Ubuntu 20.04 telah menginstal rsyslog secara default yang datang dengan paket sistem standar.

Anda dapat memeriksa untuk melihat apakah itu berjalan:

$ sudo systemctl status rsyslog
● rsyslog.service - System Logging Service
     Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2021-03-22 21:16:34 UTC; 12h ago
TriggeredBy: ● syslog.socket
       Docs: man:rsyslogd(8)
             https://www.rsyslog.com/doc/
   Main PID: 566 (rsyslogd)
      Tasks: 4 (limit: 2281)
     Memory: 2.7M
     CGroup: /system.slice/rsyslog.service
             └─566 /usr/sbin/rsyslogd -n -iNONE

Jalankan perintah berikut untuk memeriksa versi RSyslog yang saat ini diinstal:

$ rsyslogd -v

Keluaran:

rsyslogd  8.2001.0 (aka 2020.01) compiled with:
         PLATFORM:                               x86_64-pc-linux-gnu
         PLATFORM (lsb_release -d):
         FEATURE_REGEXP:                         Yes
         GSSAPI Kerberos 5 support:              Yes
         FEATURE_DEBUG (debug build, slow code): No
         32bit Atomic operations supported:      Yes
         64bit Atomic operations supported:      Yes
         memory allocator:                       system default
         Runtime Instrumentation (slow code):    No
         uuid support:                           Yes
         systemd support:                        Yes
         Config file:                            /etc/rsyslog.conf
         PID file:                               /run/rsyslogd.pid
         Number of Bits in RainerScript integers: 64

Jika tidak diinstal atau dijalankan, instal rsyslog menggunakan perintah berikut:

$ sudo apt-get update
$ sudo apt-get install rsyslog

Sekarang saatnya pergi ke rsyslog.conf file, untuk menghapus komentar dan mengubah beberapa baris untuk menjalankan layanan rsyslog dalam mode server:

$ sudo nano /etc/rsyslog.conf

Batalkan komentar pada empat baris berikut yang mengaktifkan pengikatan port udp dan tcp:

# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")

# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="514")

Langkah selanjutnya yang perlu kita tambahkan adalah membuat template baru. Kita perlu membuat template baru untuk menerima pesan jarak jauh. Sebuah template akan memberikan instruksi ke server rsyslog tentang cara menyimpan pesan syslog yang masuk.

CATATAN: Tambahkan template tepat sebelum GLOBAL DIRECTIVE bagian:

$template remote-incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" 
*.* ?remote-incoming-logs
& ~

Baris di atas menunjukkan bahwa log yang diterima akan diproses dan disimpan di dalam direktori /var/log/. Anda dapat menentukan di file /etc/rsyslog.conf tempat log rsyslog.

Nama file berisi variabel %HOSTNAME% dan %PROGRAMNAME% adalah singkatan dari mesin klien dan nama program klien yang menghasilkan pesan log.

Simpan ini dan mulai ulang layanan rsyslog:

$ sudo systemctl restart rsyslog

Konfirmasikan bahwa layanan rsyslog mendengarkan pada port yang dikonfigurasi:

$ ss -tunelp | grep 514
udp    UNCONN  0       0                    0.0.0.0:514           0.0.0.0:*      ino:33591 sk:1 <->                                                             
udp    UNCONN  0       0                       [::]:514              [::]:*      ino:33592 sk:4 v6only:1 <->                                                    
tcp    LISTEN  0       25                   0.0.0.0:514           0.0.0.0:*      ino:33595 sk:7 <->                                                             
tcp    LISTEN  0       25                      [::]:514              [::]:*      ino:33596 sk:9 v6only:1 <->      

Jika Anda mungkin memiliki layanan firewall ufw, Anda harus mengizinkan aturan port firewall rsyslog:

sudo ufw allow 514/tcp
sudo ufw allow 514/udp

Untuk memverifikasi konfigurasi , jalankan perintah berikut:

sudo rsyslogd -N1 -f /etc/rsyslog.conf

Konfigurasi Rsyslog di Klien

Setelah konfigurasi server rsyslog ini selesai, langkah selanjutnya adalah mengkonfigurasi mesin klien rsyslog Anda untuk mengirim log ke remote server rsyslog.

Saat kita menggunakan file rsyslog.conf di server jauh, yang sama akan membuka file ini di sisi klien dengan editor favorit Anda dan mengedit beberapa perubahan:

sudo nano /etc/rsyslog.conf

Dan izinkan pelestarian FQDN:Atau, agar rsyslog mengirim dengan nama domain yang sepenuhnya memenuhi syarat (FQDN, seperti system1.example.com) alih-alih hanya nama host (system1), gunakan direktif:

$PreserveFQDN on

Tambahkan server rsyslog jarak jauh yang dikonfigurasi di akhir.

 @192.168.0.101:514

Atau Anda dapat mengaktifkan untuk mengirim log melalui UDP. Untuk TCP gunakan @@ , alih-alih satu

*.* @@192.168.0.101:514

Untuk akhirnya tambahkan variabel berikut ini jika server rsyslog mati:

$ActionQueueFileName queue
$ActionQueueMaxDiskSpace 1g
$ActionQueueSaveOnShutdown on
$ActionQueueType LinkedList
$ActionResumeRetryCount -1

Kemudian restart layanan rsyslog:

sudo systemctl restart rsyslog

Verifikasi log

Setelah konfigurasi selesai pada mesin klien, kami ingin memverifikasi bahwa semuanya berjalan dengan baik.

Buka server Rsyslog Anda untuk memverifikasi log dari mesin klien Anda:

$ ls /var/log/

Anda akan menemukan sesuatu seperti ini:

Dalam direktori kasus saya bernama obrad adalah nama mesin klien saya yang saat ini saya gunakan. Kami akan memasuki direktori ini dan melihat sesuatu seperti ini:

Anda akan melihat semua file log yang dihasilkan oleh Rsyslog.

Anda dapat memeriksa salah satu dari log ini dengan perintah berikut:Misalnya, periksa systemd.log .

$ tail -f /var/log/obrad/systemd.log

Dan Anda akan melihat sesuatu seperti ini:

2021-03-25T11:31:59+00:00 obrad systemd[1206]: Started VTE child process 42166 launched by gnome-terminal-server process 3186.
2021-03-25T11:32:28+00:00 obrad systemd[1206]: Created slice dbus\x2d:1.2\x2dorg.gnome.gedit.slice.
2021-03-25T11:32:28+00:00 obrad systemd[1206]: Started dbus-:[email protected].
2021-03-25T11:32:31+00:00 obrad systemd[1206]: dbus-:[email protected]: Succeeded.

Seperti yang Anda lihat, saya meluncurkan terminal dan mengedit teks gedit pada mesin klien saya dan Rsyslog membuat dan menampilkannya dalam output.

Kesimpulan

Dalam tutorial ini, kita belajar bagaimana mengkonfigurasi parameter dasar untuk rsyslog menggunakan model client-server di Ubuntu 20.04. Syslog-ng, FluentD, Logstash, GreyLog2, dan Logagent, Filebeat adalah alternatif lain untuk Rsyslog.




Ubuntu
  1. Cara Mengatur Server Rsyslog di Ubuntu 18.04 LTS

  2. Cara Setup Server NTP di Ubuntu &LinuxMint

  3. Setup Rsyslog Server di Ubuntu 20.04 - Bagaimana cara melakukannya?

  1. Cara Setup Server Rsyslog di Debian 11

  2. Cara Mengatur Server Logging Terpusat menggunakan Rsyslog

  3. Cara Setup Rsyslog Remote Logging di Linux (Central Log Server)

  1. Cara mengatur server OpenVPN di Ubuntu 20.04

  2. Cara Mengatur Server FTP dengan VSFTPD di Ubuntu 20.04

  3. Cara Mengatur Server FTP dengan VSFTPD di Ubuntu 18.04