CentOS/RHEL 8'de Rsyslog ile Merkezi Günlük Sunucusu Kurun


Sistem yöneticilerinin CentOS 8 veya RHEL 8 sunucusundaki sorunları tanıyabilmesi veya analiz edebilmesi için, sunucuda meydana gelen olayları bir biçimde bilmek ve görüntülemek önemlidir. sistemdeki /var/log dizininde bulunan günlük dosyalarından belirli bir süre boyunca.

Sunucudaki Syslog (Sistem Günlüğü Protokolü) sistemi, tüm sunucuların, ağ cihazlarının, anahtarların, yönlendiricilerin ve dahili hizmetlerin bulunduğu bir ağ üzerinden merkezi bir günlük izleme noktası görevi görebilir. Günlükler oluşturun, ister belirli bir iç sorunla bağlantılı olsun, isterse yalnızca bilgilendirici mesajlar günlüklerini gönderebilir.

CentOS/RHEL 8 sunucusunda, Rsyslog arka plan programı, varsayılan olarak önceden yüklenmiş olarak gelen en önemli günlük sunucusudur ve bunu Systemd Journal Daemon takip eder (< Strong>dergi).

Rsyslog, istemci/sunucu mimarisi hizmeti olarak geliştirilen ve her iki rolü de bağımsız olarak gerçekleştirebilen açık kaynaklı bir yardımcı programdır. Bir sunucu olarak çalışabilir ve ağ üzerinden diğer cihazlar tarafından iletilen tüm günlükleri toplayabilir veya günlüğe kaydedilen tüm dahili sistem olaylarını uzak bir Syslog sunucusuna göndererek istemci olarak çalışabilir.

Gereksinimler

  1. Ekran Görüntüleriyle “CentOS 8.0″ Kurulumu
  2. Ekran Görüntüleriyle RHEL 8 Kurulumu

CentOS/RHEL 8 sunucusunda merkezi bir günlük sunucusu kurmak için /var bölümünün yeterli alana sahip olup olmadığını kontrol etmeniz gerekir (minimum birkaç GB) ) ağdaki diğer cihazlar tarafından gönderilen tüm kayıtlı günlük dosyalarını sistemde depolamak için. /var/log/ dizinini bağlamak için ayrı bir sürücüye (LVM veya RAID) sahip olmanızı öneririm.

CentOS/RHEL 8'de Rsyslog Sunucusunu Yapılandırma

1. Söylediğim gibi Rsyslog hizmeti CentOS/RHEL 8 sunucusuna otomatik olarak kuruluyor ve çalışıyor. Daemon'un sistemde çalıştığını doğrulamak için aşağıdaki komutu çalıştırın.

systemctl status rsyslog.service

Hizmet varsayılan olarak çalışmıyorsa rsyslog arka plan programını başlatmak için aşağıdaki komutu çalıştırın.

systemctl start rsyslog.service

2. Merkezi günlük sunucusu olarak kullanmayı planladığınız sistemde Rsyslog yardımcı programı varsayılan olarak yüklü değilse, rsyslog paketini yüklemek için aşağıdaki dnf komutunu çalıştırın ve daemon'u başlatın.


dnf install rsyslog
systemctl start rsyslog.service

3. Rsyslog yardımcı programı yüklendikten sonra, artık /etc/rsyslog.conf ana yapılandırma dosyasını açarak rsyslog'u merkezi bir günlük kaydı sunucusu olarak yapılandırabilirsiniz. , harici istemcilere yönelik günlük iletilerini almak için.

vi /etc/rsyslog.conf

/etc/rsyslog.conf yapılandırma dosyasında, 514 bağlantı noktası aracılığıyla Rsyslog sunucusuna UDP aktarım alımı vermek için aşağıdaki satırları bulun ve açıklamalarını kaldırın. . Rsyslog, günlük aktarımı için standart UDP protokolünü kullanır.

module(load="imudp") # needs to be done just once
input(type="imudp" port="514")

4. UDP protokolünde TCP ek yükü yoktur ve veri aktarımının TCP protokolünden daha hızlı olmasını sağlar. Öte yandan UDP protokolü iletilen verilerin güvenilirliğini garanti etmez.

Ancak, günlük alımı için TCP protokolünü kullanmak istiyorsanız, Rsyslog'u yapılandırmak için yapılandırma dosyasındaki /etc/rsyslog.conf dosyasında aşağıdaki satırları bulup açıklamalarını kaldırmanız gerekir. 514 bağlantı noktasındaki TCP soketini bağlamak ve dinlemek için arka plan programı.

module(load="imtcp") # needs to be done just once
input(type="imtcp" port="514")

5. Şimdi uzak mesajları almak için yeni bir şablon oluşturun; çünkü bu şablon, Syslog ağ istemcileri tarafından gönderilen alınan mesajların nereye kaydedileceği konusunda yerel RSyslog sunucusuna rehberlik edecektir.


$template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" 
*.* ?RemoteLogs

$template RemoteLogs yönergesi, Rsyslog arka plan programına, iletilen günlük iletilerinin tümünü toplayıp, istemci adına ve iletileri oluşturan uzak istemci uygulamasına bağlı olarak, eklenmiş özetlenen özelliklere göre farklı dosyalara yazması konusunda rehberlik eder. şablon yapılandırması: %HOSTNAME% ve %PROGRAMNAME%.

Alınan tüm günlük dosyaları, yerel dosya sistemine, istemci makinenin ana bilgisayar adından sonra adlandırılan tahsis edilmiş bir dosyaya yazılacak ve /var/log/ dizininde saklanacaktır.

& ~ yönlendirme kuralı, yerel RSyslog sunucusunu, alınan günlük iletisini işlemeyi durdurmaya ve iletileri kaldırmaya (bunları dahili günlük dosyalarına yazmamaya) yönlendirir.

RemoteLogs bu şablon yönergesine verilen rastgele bir addır. Şablonunuza en uygun ismi istediğiniz şekilde kullanabilirsiniz.

Daha karmaşık Rsyslog şablonlarını yapılandırmak için man rsyslog.conf komutunu çalıştırarak Rsyslog yapılandırma dosyası kılavuzunu okuyun veya Rsyslog çevrimiçi belgelerine bakın.

man rsyslog.conf

6. Yukarıdaki yapılandırma değişikliklerini yaptıktan sonra, aşağıdaki komutu çalıştırarak son değişiklikleri uygulamak için Rsyslog arka plan programını yeniden başlatabilirsiniz.

service rsyslog restart

7. Rsyslog sunucusunu yeniden başlattığınızda, sunucunun artık merkezi bir günlük sunucusu olarak hareket etmesi ve Syslog istemcilerinden gelen mesajları kaydetmesi gerekir. Rsyslog ağ soketlerini onaylamak için netstat komutunu çalıştırın ve rsyslog dizesini filtrelemek için grep yardımcı programını kullanın.

netstat -tulpn | grep rsyslog 

Netstat komutu CentOS 8'de yüklü değilse, aşağıdaki komutu kullanarak yükleyebilirsiniz.


dnf whatprovides netstat
dnf install net-tools

8. CentOS/RHEL 8'de etkin SELinux'unuz varsa, ağ soketi türüne bağlı olarak rsyslog trafiğine izin vermek için aşağıdaki komutu çalıştırın.

semanage port -a -t syslogd_port_t -p udp 514
semanage port -a -t syslogd_port_t -p tcp 514

Semanage komutu CentOS 8'e yüklenmediyse aşağıdaki komutu kullanarak yükleyebilirsiniz.


dnf whatprovides semanage
dnf install policycoreutils-python-utils

9. Sisteminizde etkin bir güvenlik duvarı varsa, Firewalld'daki bağlantı noktalarında rsyslog trafiğine izin vermek için gerekli kuralları eklemek üzere aşağıdaki komutu çalıştırın.


firewall-cmd --permanent --add-port=514/tcp
firewall-cmd --permanent --add-port=514/udp
firewall-cmd --reload

Ayrıca gösterildiği gibi beyaz listeye alınmış IP aralıklarından 514 bağlantı noktasına gelen bağlantıları da sınırlayabilirsiniz.


firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="123.123.123.0/21" port port="514" protocol="tcp" accept'
firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="123.123.123.0/21" port port="514" protocol="udp" accept'
firewall-cmd --reload

Bu kadar! Rsyslog artık merkezi bir günlük sunucusu olarak yapılandırılmıştır ve uzak istemcilerden günlükleri toplayabilir. Bir sonraki makalede Rsyslog istemcisinin CentOS/RHEL 8 sunucusunda nasıl yapılandırılacağını göreceğiz.