Python - Syslog Loglama Alt Yapısı

Memotaz7

Katılımcı Üye
30 Tem 2016
546
0
Sólheimar
ZdvEW0.jpg


Özellikle komut satırından çalıştırılan uygulamalar için gerçekleştirilen detaylarını kayıt altına almak, hata mesajlarını kayıt altına almak vb sebeplerden dolayı loglama (işlem kaydı) işlemlerinin gerçekleştirilmesi gerekmektedir.

Bu amaçla kullanılan farklı kütüphaneler bulunmaktadır. Linux/Unix sistemlerde özellikle bu amaç için geliştirilmiş ve en çok tercih edilen servis ile aynı ismi taşıyan syslog kütüphanesi kullanılmaktadır. Aşağıdaki örnek ile syslog servisini kullanan örnek bir loglama servisi geliştirilmiştir.


Kod:
#!/usr/bin/python


try:

       import logging
       import logging.handlers
       import sys
except ImportError,e:
       import sys
       sys.stdout.write("%s\n" %e)
       sys.exit(1)

class Log:
       logger = None
       @staticmethod

       def log_message(level, message):
               if not Log.logger:
                       Log.logger = logging.getLogger("Galkan")
                       syslog_handler = logging.handlers.SysLogHandler( address = ( '127.0.0.1', 514 ), facility = logging.handlers.SysLogHandler.LOG_LOCAL5 )
                       formatter = logging.Formatter('[%(levelname)s] - %(message)s')
                       syslog_handler.setFormatter(formatter)
                       Log.logger.addHandler( syslog_handler )

               if level == 1:
                       Log.logger.setLevel( logging.INFO )
                       Log.logger.info(message)
               elif level == 2:
                       Log.logger.setLevel( logging.WARN )
                       Log.logger.warn(message)
               elif level == 3:
                       Log.logger.setLevel( logging.ERROR )
                       Log.logger.error(message)
               else:
                       Log.logger.setLevel( logging.INFO )
                       Log.logger.info(message)

if __name__ == "__main__":
    Log.log_message(1, "Mesaj")

Syslog servisinin belirtildiği şekilde çalıştırılabilmesi için gerekli yapılandırma ayarları belirtildiği gibi olmaktadır. Belirtilen log seviyesi için dosyanın tam yolu ve ardından gerekli syslog modül ve ip, port yapılandırma bilgileri belirtilmektedir.

Kod:
# vi /etc/rsyslog.d/50-default.conf
local5.info                             -/var/log/galkan.log
# vi /etc/rsyslog.conf
$ModLoad imudp
$UDPServerRun 514
$UDPServerAddress 127.0.0.1

Yapılandırmanın ardından syslog servisi yeniden başlatılarak yapılandırmanın aktif hale gelmesi sağlanmaktadır. Bu durum aşağıdaki şekilde görülebilir.

Kod:
# netstat -nlput | grep 514
udp        0      0 0.0.0.0:514             0.0.0.0:*                           28687/rsyslogd

İlgili programın çalışmasının ardından belirtilen dosya içeriğine bakıldığında aşağıdaki içerik görüntülenecektir.

Kod:
# cat /var/log/galkan.log
Apr 29 14:52:33 localhost [INFO] - Mesaj

Saygılarımla. //Memotaz7
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.