Rsyslog Servisi ile Uzak Sunucuya log Yazdırma

Bir makinada veya sunucuda oluşturduğumuz bir log dosyasının veya herhangi bir metin dosyasının içerisine bir input girişi olduğunda onun uzak bir sunucuda depolanmasına ihtiyacımız olabilir. Bu tarz durumlarda rsyslog servisi kullanarak bu ihtiyacımız…


This content originally appeared on DEV Community 👩‍💻👨‍💻 and was authored by Doğukan Eren

Bir makinada veya sunucuda oluşturduğumuz bir log dosyasının veya herhangi bir metin dosyasının içerisine bir input girişi olduğunda onun uzak bir sunucuda depolanmasına ihtiyacımız olabilir. Bu tarz durumlarda rsyslog servisi kullanarak bu ihtiyacımızı karşılayabiliriz.

Bu yazıda örnek olarak iki Oracle Linux 8 makina üzerinde örnek göstereceğim. Bir makinayı sunucu olarak, diğer makinayı da istemci olarak kullanacağım.

Not: Rsyslog servisinde bir makina hem sunucu hem istemci olabilir. Yaani bir makinaya log gönderirken, diğer makinadan aldığı logları kaydedebilir.

Makinalarımız birbirleri ile sorunsuz iletişim kurabilmeleri için, Güvenlik duvarlarından kullanacağımız porta izin vermemiz gerekiyor. Bunun için kolay bir örnek olsun diye Selinux ve Firewalld servisini kapatıyorum. Önemli bir cihaz üzerinde kurulum yapıyorsanız firewall üzerinden kullanacağınız porta izin verebilirsiniz.

1) Selinux Kapatma

getenforce

bu komutu çalıştırıldığında

enforcing

sonucu alınıyorsa, Selinux açıktır. Nano, vi veya favori editörünüz ile Selinux config dosyasına girip Selinux'u kapatıyoruz.

nano /etc/selinux/config
SELINUX=disabled

Sistemi yeniden başlatıyoruz.

sudo reboot now

Makina açıldığında

getenforce

komutu çalıştırıldığında

disabled

sonucu alınıyorsa işlem başarılıdır.

2) Firewalld kapatma

Aşağıdaki komutu kullanarak firewall servisini kapatabilirsiniz.


systemctl stop firewalld && systemctl disable firewalld

3) Log Üreten Makinanın ayarları

3-1) Servis Dosyasını Editörle Açmak

Rsyslog dosyanının konfigürasyonlarının bulunduğu dosyaya editör ile giriyoruz.

nano /etc/rsyslog.conf

3-2) Dosyaya Ayarları Girmek

Dosyanın en altına aşağıdaki satırları ekliyoruz.

$ModLoad imfile
$InputFileName /<dosya-adı>/mylog.txt
$InputFileSeverity error
$InputFileFacility <facility adı>
$InputRunFileMonitor

<facility adı>.* @@<göndereceğiniz-ip:port>

_Not: Yukarıda '@@' olan alanı eğer TCP portu üzerinden iletişim yapacaksak '@@', UDP portu üzerinden kuracaksak '@' olarak düznliyoruz.
_

3-3) Servisi Yeniden Başlatmak

systemctl restart rsyslog.service

Bu komutla sistemi yeniden başlatıyoruz.

4) Log Dinleyen Makinanın Ayarları

4-1) Servis Dosyasını Editörle Açmak

Rsyslog dosyanının konfigürasyonlarının bulunduğu dosyaya editör ile giriyoruz.

nano /etc/rsyslog.conf

4-2) Dosyada Port ayarlaması yapmak

Dosyaya isteğinize göre aşağıdaki satırlar eklenir.

1) TCP Portu üzernden dinleme yapılcakasa

module(load="imtcp")
input(type="imtcp" port="514")

UDP Portu üzerinden dinleme yapılacaksa

module(load="imudp")
input(type="imudp" port="514")

Yukarıda yapılan iki ayarda da 514 portu üzerinden iletişim kuruluyor. Bu portu değiştirmek isterseniz,

port=<istediğiniz-port>

olarak güncelleyebilirsiniz.

4-3) İzin verilen IP ekleme

Dosyanın içerisinde bilgileri istediğiniz gibi değiştirerek dosyaya ekleyiniz.

$AllowedSender <port-türü>, <ip-adresi veya bloğu>

Örnek:

$AllowedSender TCP, 192.168.100.193

4-4) Dinlenecek Dosya İçin Template Oluşturma

Aşağıdaki template satırını kendi istediğiniz gibi düzenleyiniz.


$template <istediğiniz-template-adı>,"/<path>/<istediğiniz-template-adı>.log"
*.* ?<istediğiniz-template-adı>

Örnek:

$template deneme-remote-loglari,"/tmp/Gelen-loglar.log"
*.* ?deneme-remote-loglari

4-4) Servisi Yeniden Başlatma

systemctl restart rsyslog.service

Bu adımdan sona log üreten makinada belirttiğimiz dosyaya bir input girişi olursa Dinleyen sunucu üzerinde verdiğimiz path üzerinde oluşturduğumuz dosyaya da gelecektir.

Ekstra

Gelen logları filtreleme istiyorsak, Dinleyen makinada ayrı bir templaye daha oluşturabiliriz.

$template noTimestampFormat,"%msg%\n"
module(load="builtin:omfile" Template="noTimestampFormat")

Bu satırları ekleyerek sadece mesajı alsın şeklinde bir filtreleme yapmış olduk. Standart halinde hostname adı, tarih, saat vb bilgiler de bulunmaktadır.

Not: Loglar içerisinde sadece istenilen logların gelmesi için rsyslog.conf dosyasında bulnan diğer satırların başına '#' işareti eklenerek kapatılabilir.


This content originally appeared on DEV Community 👩‍💻👨‍💻 and was authored by Doğukan Eren


Print Share Comment Cite Upload Translate Updates
APA

Doğukan Eren | Sciencx (2022-12-09T04:40:12+00:00) Rsyslog Servisi ile Uzak Sunucuya log Yazdırma. Retrieved from https://www.scien.cx/2022/12/09/rsyslog-servisi-ile-uzak-sunucuya-log-yazdirma/

MLA
" » Rsyslog Servisi ile Uzak Sunucuya log Yazdırma." Doğukan Eren | Sciencx - Friday December 9, 2022, https://www.scien.cx/2022/12/09/rsyslog-servisi-ile-uzak-sunucuya-log-yazdirma/
HARVARD
Doğukan Eren | Sciencx Friday December 9, 2022 » Rsyslog Servisi ile Uzak Sunucuya log Yazdırma., viewed ,<https://www.scien.cx/2022/12/09/rsyslog-servisi-ile-uzak-sunucuya-log-yazdirma/>
VANCOUVER
Doğukan Eren | Sciencx - » Rsyslog Servisi ile Uzak Sunucuya log Yazdırma. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2022/12/09/rsyslog-servisi-ile-uzak-sunucuya-log-yazdirma/
CHICAGO
" » Rsyslog Servisi ile Uzak Sunucuya log Yazdırma." Doğukan Eren | Sciencx - Accessed . https://www.scien.cx/2022/12/09/rsyslog-servisi-ile-uzak-sunucuya-log-yazdirma/
IEEE
" » Rsyslog Servisi ile Uzak Sunucuya log Yazdırma." Doğukan Eren | Sciencx [Online]. Available: https://www.scien.cx/2022/12/09/rsyslog-servisi-ile-uzak-sunucuya-log-yazdirma/. [Accessed: ]
rf:citation
» Rsyslog Servisi ile Uzak Sunucuya log Yazdırma | Doğukan Eren | Sciencx | https://www.scien.cx/2022/12/09/rsyslog-servisi-ile-uzak-sunucuya-log-yazdirma/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.