«

»

Haz 23 2015

OpenLDAP LOG yapılandırması

Debian üzerinde OpenLDAP 2.4.23-7.2 sürümü ile uygulanmıştır bu aşamalar. Bu yazı kapsamında yapılacak olan uygulamalar şöyle:

  • OpenLDAP log seviyesinin ayarlanması
  • OpenLDAP log hedefinin özel bir klasöre yönlendirilmesi
  • OpenLDAP log dosyalarının belirli peryotta arşivlenmesi

OpenLDAP log seviyesinin ayarlanması

Kimlik doğrulama veya benzeri sorgulama işlemlerini kayıt altına almaya gerek varsa bu işlem yapılabilir. Bunun için özetle;  /etc/ldap/slapd.d/cn\=config.ldif  dosyasında log seviyesinin belirtilmesi ve slapd servisinin yeniden başlatılması ( /etc/init.d/slapd restart ) gerekmektedir. /etc/ldap/slapd.d/cn\=config.ldif dosyasında  olcLogLevel: none  şeklinde olan satırda,  none  kısmını isteğe göre özelleştirerek denemeler yapılabilir. Kullanılabilecek olan tüm parametrelerin listesi, http://www.openldap.org/doc/admin24/slapdconf2.html adresinde veya yardım dokümanlarında bulunmaktadır.

Benim yaptığım birkaç deneme ve aldığım log çıktıları aşağıdadır:

OpenLDAP log hedefinin özel bir klasöre yönlendirilmesi

Benim sistemimde log sunucusu (servisi) olarak rsyslog çalışıyordu. Yapılandırmayı buna göre yazdım.

OpenLDAP varsayılan olarak LOCAL4 facility özelliğinde log gönderir. “facility” için, bkz: https://en.wikipedia.org/wiki/Syslog#Facility. İstenirse OpenLDAP farklı bir facility ile log gönderecek şekilde yapılandırılabilir. Bunun yeri de /etc/default/slapd  dosyasının en son satırındaki SLAPD_OPTIONS  kısmıdır. aşağıda örnek olarak bu satırın düzenlenmiş hali verilmiştir:

Üstteki gibi bir yapılandırma, /usr/sbin/slapd  dosyasına parametre göndermek için kullanılıyor.

Buraya kadar; varsayılan durum açıklanmaya çalışıldı. Ancak halen log’ları farklı bir yere göndermiyor.  Çok fazla log gelmiyor ise varsayılan yerinde ( /var/log/syslog  dosyasına kaydeder) durmasında da sakınca yoktur. Ancak yukarıdaki gibi detaylı log tutulması gerekecekse, ayırmakta fayda var.

LOG ayırma işini rsyslog yapılandırması üzerinden yapıyoruz.  /etc/rsyslog.d/slapd.conf  adında bir dosya oluşturup, içini aşağıdaki gibi düzenleyebilirsiniz:

Yukarıdaki yapılandırmada iki önemli işaret var:

  • -  (tire) isareti anlamı: Her kayıt yazma işleminde dosya sistemini güncelleme. Biriktirip toptan yaparsın. Boşuna performans düşürme.
  • & ~  işaretleri anlamı: Bu satir, ilgili kuralı daha fazla işleme sokmamasını söyler. Eğer bu işaretler olmazsa, hem gonderdiğimiz dosyaya, hem de /var/log/syslog  içine yazmaya devam eder. Gereksiz yere mükerrer veri olur.

rsyslog düzenlemesini yaptıktan sonra, log servisini yeniden başlatmalıyız: /etc/init.d/rsyslog restart

rsyslog servisi yeniden başlatıldığında; /var/log/ldap/slapd.log isminde bir dosya oluşturulacak ve kayıtlar yazılmaya başlanacaktır. Çok fazla kayıt oluşacaksa, bunların ara sıra arşivlenmesi gerekecektir. Şimdi bu işlemin nasıl yapılacağına geliyoruz.

OpenLDAP log dosyalarının belirli peryotta arşivlenmesi

Bu işi çok güzel yapan bir uygulama var: logrotate. İstediğiniz her türlü log dosytasını çok ince düzenlemelerle, istediğiniz gibi arşivleyebilirsiniz. Yapılandırması da çok sade ve basit. logrotate uygulamasında da rsyslog’ta olduğu gibi, ilave yapılandırma dosyaları için .d  uzantılı bir klasör kullanılıyor. LOG’larını otomatik arşivletmek istediğiniz tüm servisler için,  /etc/logrotate.d/  altında bir dosya oluşturabilirsiniz. Bu şekilde yapılandırmayı yönetmek te çok kolay oluyor. Benim oluşturduğum /etc/logrotate.d/slapddosyası şöyle:

Hafatlık arşivle, arşivlenen dosyayı sıkıştır, vb… Dosya içeriği oldukça kolay okunabildiğinden detaya girmiyorum. İnternette çok güzel kaynaklar var bununla ilgili. logrotate yapılandırmasından sonra bir servisi yeniden başlatmaya gerek yok. Zaten kendisi cron  sayesinde düzenli olarak tetikleniyor.

logrotate sayesinde log’lar arşivlendikçe şu tarzda dosyalar oluşacaktır:

Yapılandırma dosyasında belirtilen peryoda göre (weekly, dailiy, vb.) yeni arşiv dosyaları otomatik olarak oluşturulacaktır.

Bad Behavior has blocked 19 access attempts in the last 7 days.