man/system_admin
man · Sistem Yönetimi

$ syslogd

Bölüm 8 · Sistem Yönetimi

Apple System Log sunucusu

Söz Dizimi

     syslogd [-d] [-D] [-m mark_interval] [-l lib_path] [-db_max size] [-utmp_ttl time]
	     [-mps_limit quota] [-dup_delay time] [-module_name {0|1}]

Açıklama

syslogd sunucusu günlük (log) mesajlarını alır ve işler. Çeşitli modüller; syslog(3), asl(3) ve çekirdek printf API'leri ile ilişkili UNIX alan (domain) soketleri dahil olmak üzere çeşitli kanallar aracılığıyla ve isteğe bağlı olarak ağ istemcilerinden bir UDP soketi üzerinden giriş mesajlarını alır.

Apple System Log (Apple Sistem Günlüğü) altyapısı; asl(3) API'sini, yeni bir syslogd sunucusunu, syslog(1) komut satırı aracını ve bir veri deposu dosya yöneticisi olan aslmanager(8)'ı kapsar. Sistem; arama API'leri ve Apple sistem günlüğü altyapısının diğer bileşenleri aracılığıyla gelişmiş mesaj tarama ve yönetimine olanak tanıyan, yapılandırılmış ve genişletilebilir mesajları destekler.

Günlük mesajları, günlük mesajlarının yerini belirleme görevini basitleştirmek ve tarama ile aramayı kolaylaştırmak amacıyla, aşağıda açıklandığı gibi otomatik arşivlemeye ve giriş filtrelemeye tabi tutularak bir veri deposunda tutulur. Veri deposunun, şu anda sistemin çeşitli yerlerinde bulunan çok sayıdaki günlük dosyasının yerini alması amaçlanmıştır. Bu dosyalar, Mac OS'in gelecek sürümlerinde kademeli olarak kaldırılacaktır.

Aşağıdaki seçenekler desteklenmektedir:

  • -d: syslogd'yi hata ayıklama (debugging) modunda çalıştırır. Sunucu, denetleyici terminale bağlı kalır ve hata ayıklama mesajlarını yazdırır.

  • -D: Bir arka plan işlemi (daemon) olarak başlatır. Bu seçenek syslogd'yi çatallanmaya (fork) zorlar ve alt işlemin (child process) bir arka plan işlemi olmasını sağlar. syslogd, launchd tarafından başlatıldığı için bu normalde gerekli değildir.

  • -m: “mark” (işaret) mesajları arasındaki dakika sayısını belirler. İşaret mesajları normalde devre dışıdır. Eğer -m hiçbir argüman belirtilmeden kullanılırsa, işaret mesajları her 20 dakikada bir yazılır. Değer sıfır dakika olarak ayarlanırsa “mark” özelliği devre dışı bırakılır.

  • -db_max: Veri deposundaki tekil dosyalar için bayt cinsinden boyut sınırını belirler. -db_max için varsayılan değer 25600000 bayttır. Dosyalar maksimum boyuta ulaştığında kapatılır ve sonraki mesajlar için yeni bir dosya açılır.

  • -utmp_ttl: utmp(5), wtmp(5) ve lastlog(5) alt sistemleri tarafından kullanılan mesajlar için saniye cinsinden yaşam süresini (time-to-live) belirler. Varsayılan değer 31622400 saniyedir (yaklaşık 1 yıl). Arşivleme etkinleştirilmişse (aslmanager(8) kılavuzuna bakın), bu mesajların normal yaşam süresi aralığından sonra bir arşive kopyalanacağını, ancak kendi sona erme zamanlarına kadar veri deposunda kalmaya devam edeceğini unutmayın.

  • -mps_limit: syslogd tarafından izin verilen saniye başına mesaj sayısı için çekirdek (kernel) kotasını belirler. Herhangi bir işlemden gelen kota sınırını aşan mesajlar yoksayılır. Çekirdek mesaj kotasının aşıldığını ve geçerli saniye için kalan mesajların atılacağını belirten bir hata mesajı günlüğe kaydedilir. Varsayılan sınır, işlem başına saniyede 500 mesajdır. 0 değeri kota mekanizmasını kapatır.

Bu ayarın yalnızca syslogd tarafından kaydedilecek çekirdek mesajlarının sayısını sınırladığını unutmayın. Kullanıcı işlemleri saatte 36000 mesajla sınırlandırılmıştır. İşlem için bir uzaktan kontrol ASL filtresi yürürlükteyse, kullanıcı işlemi için sınır uygulanmaz.

  • -dup_delay: Günlük dosyalarındaki yinelenen mesajları birleştirmek için geciktirilecek süreyi belirler. Bir işlem aynı metne sahip birden fazla mesaj kaydederse, syslogd yinelenenleri birleştirmek için belirtilen süre boyunca bekler. Bu aralıkta özdeş mesajlar gelirse, syslogd şu biçimde bir mesaj yazdırır:

May 7 12:34:56: --- last message repeated 17 times ---

Varsayılan gecikme süresi 30 saniyedir. Değerin 0 olarak ayarlanması birleştirme mekanizmasını devre dışı bırakır.

-module_name {0|1} biçimindeki kalan seçenekler, syslogd'nin birkaç dahili modülünün eylemini devre dışı bırakmak (0) veya etkinleştirmek (1) için kullanılabilir.

  • -asl_in: “asl_in” modülü, asl(3) API'si ile ilişkili UNIX alan soketi üzerinden günlük mesajlarını alır. Modül, -asl_in 0 kullanılarak devre dışı bırakılabilir. Modül normalde etkindir.

  • -asl_action: “asl_action” modülü, alınan günlük mesajları akışını inceler ve /etc/asl.conf dosyasında belirtilen kurallara göre bunlara göre hareket eder. Ayrıntılar için asl.conf(5) kılavuzuna bakın.

  • -klog_in: “klog_in” modülü, çekirdek günlüğe kaydetme API'si ile ilişkili UNIX alan soketi üzerinden günlük mesajlarını alır. Modül, -klog_in 0 kullanılarak devre dışı bırakılabilir. Modül normalde etkindir.

  • -bsd_out: “bsd_out” modülü, alınan günlük mesajları akışını inceler ve /etc/syslog.conf dosyasında belirtilen kurallara göre hareket eder. Ayrıntılar için syslog.conf(5) kılavuzuna bakın. Bu modül, önceki syslogd uygulamalarıyla geriye dönük uyumluluk sağlamak amacıyla mevcuttur. Apple, /etc/syslog.conf dosyasında belirtilen günlük dosyalarının kullanılması yerine syslog(1) ve asl(3) arama API'lerinin kullanılmasını teşvik etmektedir. Mac OS'in gelecek sürümleri, şu anda “bsd_out” modülü tarafından işlenen işlevleri “asl_action” modülüne taşıyacaktır.

  • -udp_in: “udp_in” modülü, İnternet syslog mesaj protokolü ile ilişkili UDP soketi üzerinden günlük mesajlarını alır.

Bu modül normalde etkindir ancak devre dışıdır (inaktif). Gerçek UDP soketleri launchd tarafından yönetilir ve /System/Library/LaunchDaemons/com.apple.syslogd.plist adresindeki syslogd yapılandırma dosyasında yapılandırılır. Varsayılan yapılandırmada launchd, “syslog” UDP servisi için herhangi bir soket açmaz, bu nedenle “udp_in” modülüne hiçbir soket sağlanmaz. Hiçbir soket sağlanmazsa modül inaktif kalır. com.apple.syslogd.plist dosyasındaki “Sockets” sözlüğüne aşağıdaki girdi eklenerek bir soket belirtilebilir.

NetworkListener SockServiceName syslog SockType dgram

Modül, -udp_in 0 seçeneği kullanılarak özellikle devre dışı bırakılabilir.

syslogd, bir HUP sinyaline yanıt olarak yeniden başlatılır (reinitialize).

Mesaj Süre Sonu ve Arşivleme

syslogd, ASL veri deposundaki dosyaları yöneten aslmanager aracını periyodik olarak çağırır. Dosyalar silinir veya isteğe bağlı olarak (varsayılan) 2 günlük bir yaşam süresinin ardından bir arşiv dizinine kopyalanır. Ayrıntılar için aslmanager(8) kılavuzuna bakın. syslogd; başlatıldıktan kısa bir süre sonra, çalışıyorsa yerel saatle gece yarısında ve bir veri deposu dosyası -db_max boyut sınırına ulaştığı her an aslmanager'ı çağırır.

Veri Deposu Güvenliği

ASL mesaj deposunda saklanan mesajlar /var/log/asl içindeki dosyalara yazılır. Mesaj dosyalarına, mesajların kendisinde belirtilen okuma UID ve GID'sine karşılık gelen okuma erişim kontrolleri verilir. Okuma erişimi UID ve GID ayarları, "ReadUID" ve/veya "ReadGID" mesaj anahtarları için bir değer ayarlanarak asl(3) kütüphanesi kullanılarak mesajlara eklenebilir. Dosya izinleri, erişim kontrollü mesajların yetkisiz kullanıcılar tarafından okunmasını engeller.

İstemciler genellikle "Facility" mesaj anahtarı için herhangi bir değeri kullanmakta serbest olsalar da, yalnızca UID 0 ile çalışan işlemler "com.apple.system" özellik (facility) değerine sahip veya öneki "com.apple.system" olan mesajları günlüğe kaydedebilir. "com.apple.system" değerini veya önekini özellik değeri olarak kullanan ve UID 0 olmayan işlemler tarafından günlüğe kaydedilen mesajlar "user" özellik değeri ile kaydedilecektir.

Dosyalar

/etc/syslog.conf bsd_out modülü yapılandırma dosyası /etc/asl.conf asl_action modülü yapılandırma dosyası /var/run/syslog.pid işlem kimliği (PID) dosyası /dev/klog çekirdek günlük aygıtı /var/log/asl veri deposu dizini /var/log/asl.archive varsayılan arşiv dizini /System/Library/LaunchDaemons/com.apple.syslogd.plist syslogd için launchd yapılandırma dosyası

Ayrıca Bakınız

logger(1), syslog(1), asl(3), syslog(3), asl.conf(5), syslog.conf(5)

Tarihçe

syslogd aracı ilk olarak 4.3BSD sürümünde yer almıştır.

Apple System Log altyapısı Mac OS X 10.4 sürümünde sunulmuştur.