FreeBSD üzerine Rsyslog Kurulumu ve Yapılandırması
Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYWGbKiR' (Errcode: 28 - No space left on device) in /usr/share/nginx/html/syslogs/wp-includes/class-wpdb.php on line 2349
Syslog'un gelişmiş versiyonu olan Rsyslog'u freebsd sisteminizde kullanmak için kurulumunu kolayca yapabilir ve bir iki yapılandırma işlemi ile syslogd'nin yerine geçmesini sağlayabilirsiniz.
Rsyslog, freebsd sistemlere port edilmiş durumdadır. Yani port ağacından kurmak mümkün. İşe başlamadan önce port ağacınızın güncel olduğundan emin olun. Hızlıca güncellemek için şu adresten yararlanabilirsiniz: http://www.syslogs.org/2008/06/using-portsnap/
Rsyslog, port ağacında sysutils/rsyslog3 ismi ile bulunuyor. Sql destekli kurmak isterseniz sysutil dizini altındaki rsyslog3-mysql portunu kullanabilirsiniz. Ancak biz salt rsyslog kuracağımız için rsyslog3 isimli portu kullanacağız.
Kurulum
Port ağacında ilgili dizine girin:
# cd /usr/ports/sysutils/rsyslog3
ve sonra herzamanki gibi kurulumu gerçekleştirin:
# make install clean
Rsyslog sisteme kurulduktan sonra rsyslog'u yapılandırmak gerekiyor.
Yapılandırma
Önce halihazırda çalışmakta olan syslogd'yi stop edelim.
# /etc/rc.d/syslogd stop
Şimdi syslog'un sistem açılışlarında otomatik olarak başlamaması için rc.conf dosyasına syslogd_enable=”NO” satırını ekliyoruz.
# echo 'syslogd_enable="NO"' >> /etc/rc.conf
Syslogd tamamen devre dışı bırakıldıktan sonra, aynı şekilde rsyslog'un sistem açılışlarında devreye girmesi için rc.conf'a gerekli satırları ekliyoruz:
echo 'rsyslogd_enable="YES"' >> /etc/rc.conf echo 'rsyslogd_pidfile="/var/run/syslog.pid"' >> /etc/rc.conf echo 'rsyslogd_flags="-c3"' >> /etc/rc.conf
Şimdi de, sistemde önceden syslogd tarafından kullanılan syslog.conf dosyasını rsyslog.conf ismi ile /usr/local/etc dizinine taşıyalım. Böylece, rsyslog, syslog'un şimdiye kadar yaptığı işi devralmış olacak ve log ayarlarınız bozulmayacak.
# cp /etc/syslog.conf /usr/local/etc/rsyslog.conf
Rsyslog çalışmaya hazır sayılır ancak önce rsyslog.conf dosyasına bir iki ekleme yapacağız.
/usr/local/etc/rsyslog.conf dosyasını editleyin:
# vi /usr/local/etc/rsyslog.conf
ve dosyanın en tepesine aşağıdaki satırları yapıştırın.
$ModLoad immark.so # provides --MARK-- message capability $ModLoad imuxsock.so # provides support for local system logging $ModLoad imklog.so # kernel logging
Ayrıca, rsyslog'u merkezi bir log sunucusu olarak kullanmak istemeniz durumunda, başka sistemlerden logları alabilmesi için network desteğini aktif hale getirin. Gene aynı dosya içerisine, yukarıda verilen satırların hemen altında şu ibareleri ekleyin:
# provides UDP syslog reception $ModLoad imudp $UDPServerRun 514 # provides TCP syslog reception $ModLoad imtcp $InputTCPServerRun 514
Satır açıklamalarından da anlaşılacağı üzere, üstteki kısım rsyslog'un udp 514. portu dinlemesi için imudp isimli modülü devreye alıyor. Aynı şey tcp 514. port için de imtcp modülü ile yapılıyor. Yani artık uzak sunuculardan bu rsyslog sunucusuna udp 514 ya da tcp 514 üzerinden log gönderilebilir.
Dosyayı kaydedip çıktıktan sonra rsyslog'u başlatıyoruz.
# /usr/local/etc/rc.d/rsyslog start
Herşey yolunda gittiyse rsyslog sunucusu çalışıyor demektir.
Rsyslog'un Test Edilmesi
Düzgün çalıştığını doğrulamak için, logger komutu ile bir log üretilebilir ve messages isimli log dosyasına yazılıp yazılmadığu test edilebilir.
# logger "Bu log'un, /var/log/messages dosyasına yazılması gerekir."
komutu verdikten sonra tail ile messages dosyasını kontrol edelim.
# tail /var/log/messages
Rsyslog'unuz düzgün çalışıyorsa, messages dosyasında aşağıdakine benzer bir satır görmeniz gerekir.
2009-08-30T21:46:55.921355+03:00 test-bsd cagri: Bu log'un, /var/log/messages dosyasna yazlmas gerekir.
Ayrıca, rsyslog'un tcp ve udp 514. portu dinleyip dinlemediğini anlamak için netstat komutundan yararlanılabilir:
# netstat -an |grep 514
Çıktı şu şekilde olmalıdır:
tcp4 0 0 *.514 *.* LISTEN tcp6 0 0 *.514 *.* LISTEN udp4 0 0 *.514 *.* udp6 0 0 *.514 *.*
Evet görüldüğü gibi portlar dinleniyor, bu durumda rsyslog uzak sistemlerden gönderilecek logları da alabilecektir. Bu işlemin nasıl yapıldığını, Rsyslog ile Merkezi Log Sunucusu Kurulumu başlıklı yazıda bulabilirsiniz.
Ayrıca, herhangi bir tersliğe karşı rsyslog'u debub etmek için şu adımları izleyebilirsiniz.
Rsyslog'un Debug Edilmesi
Önce rsyslog'u stop edin.
# /usr/local/etc/rc.d/rsyslogd stop
ve komut satırından, debug parametresi ile start edin:
# /usr/local/sbin/rsyslogd -c3 -i /var/run/syslog.pid -f /usr/local/etc/rsyslog.conf -d
Bu şekilde rsyslog ile ilgili detaylı bilgi ekrana basılacaktır.
Genel olarak freebsd sistemlerde, rsyslog kurulumu bundan ibarettir.
Bu yazılar da ilginizi çekebilir:
- CentOS üzerine Rsyslog Kurulumu ve Yapılandırması
- phpLogCon ile Online Log Monitoring
- Rsyslog ile Merkezi Log Sunucusu Kurulumu
- FreeBSD Jail Kurulumu – Güvenli Network Servisleri
- Pure-FTPd Server ClamAV Entegrasyonu- FreeBSD
Yorumlar
Trackbacks
Yorumda bulunun.
Merhabalar öncelikleteşekkürler verdiginiz bilgi icin peki bu logları email adresine nasıl yollatabiliriz düzenli aralıklarla ve ts log imzalama debian da bir patch ile oluyordu bunda nasıl olacak onunla ilgili bir makalede yayınlarmısınız lütfen teşekkürler.
[Cevapla]
hocam merhabalar,
yazılalı baya bir uzun zaman olmuş baya uğraştım fakat ben bunu bir türlü otomatik start edemedim.
öncelikle şimdiki versiyonu fbsd8 serisinde son versiyon rsyslog-6.3.6.tbz syslogd yi bir türlü devre dışı bırakamadığımdan ismini değiştirdim. (rc.conf ve rc.d üzerinde disable yapmama rağmen her boot işleminden sonra yine onu başlatıyordu) sonrasında rsyslogd start diyerek yenisini başlatıyorum ve logları mysql e soruncuzca aktarıyorum. gel gelelim bunu da otomatik başlatamaz oldum. boot tan sonra manuel start deyip uygulamayı çalıştırabiliyorum ancak. çok takıldım. desteğinizi bekliyorum.
[Cevapla]