Ubuntu'da rsyslog ve dergi ilişkisi 16.04


18

Vanilya Ubuntu 16.04 sunucusu nedir çalıştırıyorum ve günlük olarak varsayılan olarak nasıl ayarlandığına dair başımı sarmaya çalışıyorum. Her ikisi görebiliyorum journaldve rsyslogçalışan yüklenmiş ve ancak kayıt mesajları işleniyor nasıl bana tüm açık de değil.

Çoğu mesajlar hem göstermek gibi görünüyor /var/log/syslogve üzeri journalctl, ancak birinde ikisi arasındaki yönlendirme ilgili açık bir yapılandırmayı göremiyorum /etc/systemd/journald.conf(temelde tümü varsayılan olarak dışarı yorum) /etc/rsyslog.confya /etc/rsyslog.d/50-default.conf. Resmi belgeleri, hatta ikisinin Ubuntu'da nasıl kurulduğunu açıklayan bir blog yazısı aramaya çalıştım, ancak hiçbir şey bulamadı.

Kafa karışıklığımı daha da eklemek için logger -p local1.info Test, ana bilgisayarda /var/log/syslogyürüttüm ve mesajın altında görünürken hiçbir şeyin yazılmadığını buldum journalctl.

Sorularım:

  1. Journalald ve rsyslog, Ubuntu 16.04'te tam olarak nasıl çalışır (varsayılan olarak)?
  2. Gönderilen mesajlar loggergörünüşte günlüğe çıkıyor, ancak sistem günlüğüne değil?

Güncelleme: loggerBeklendiği gibi çalışmama sonuçta benim için bir hataydı, bu yüzden ana soru ile ilgili değil.

Yanıtlar:


12

Varsayılan rsyslogolarak "imuxsock" modülünü kullanır, modül şunları sağlar:

yerel Unix soketleri aracılığıyla syslog iletilerini kabul etme yeteneği. En önemlisi, bu syslog (3) çağrısının rsyslogd'a syslog mesajları iletme mekanizmasıdır [1] .

rsyslogYapılandırılmış günlük mesajlarını "imjournal" [2] adlı bir modül kullanarak sistemd günlüğünden içe aktarmak mümkündür .

Yük gibi olabilir:

module(load="imjournal") 

içinde:

/etc/rsyslog.conf

Öte yandan "systemd-journalald" tüm verileri kendisi yakalar:

man systemd-journald

systemd-journalald, günlük verilerini toplayan ve depolayan bir sistem hizmetidir. Çeşitli kaynaklardan alınan günlük bilgilerine dayanan yapılandırılmış, dizine alınmış dergiler oluşturur ve saklar:

   ·   Kernel log messages, via kmsg
   ·   Simple system log messages, via the libc syslog(3) call
   ·   Structured system log messages via the native Journal API, 
       see sd_journal_print(4)
   ·   Standard output and standard error of system services
   ·   Audit records, via the audit subsystem

rsyslogdDüğmesini kullanarak sistem günlüklerine hala erişiminiz varken devre dışı bırakabilirsiniz journalctl.

$ sudo systemctl mask rsyslogd
$ sudo systemctl stop syslog.socket
$ sudo systemctl stop rsyslog.service
$ systemctl is-active rsyslog.service 
inactive
$ logger -p mail.info Helllooo
$ journalctl

Örneğin centos, tüm "systemd-journalald" verilerini yakalamak için "imuxsock" modülünü rsyslogkullanırken, opensuse'un "syslog" özelliği yoktur.


Mesajınızın neden sonuçlanmadığını /var/log/syslogöğrenmek için bu dosyayı kontrol etmelisiniz:

less /etc/rsyslog.d/50-default.conf

bakmak *.info, bunlar saklanacağı, bu gibi bir diğer dosya olabileceğini bkz messages.

Benim için ikisi de gösterilmesini journalctlve syslog.


logger -p .info hellogeçerli değil. Herhangi bir tesis adı belirtmediniz.
luv.preet

Cevabı güncelledi ....
Ravexina

Benim düzenlemede belirtildiği gibi, loggerçalışmıyor benim hatamdı, bu yüzden şimdi düzeltildi (yine de ipuçları için teşekkürler). İki yerde imuxsockgörünen günlüklere gelince, notunuz anahtar gibi görünüyor: hem rsyslog hem de dergi yerel syslog mesajlarını dinliyor gibi görünüyor, bu yüzden bu girişler neden iki ayrı günlüğe giriyor.
motns

Ubuntu'da yukarıdakileri takip ettim ve şimdi logger'dan herhangi bir günlük almıyorum, hmm: root @ T: ~ # logger -p mail.info Helllooo root @ T: ~ # journalctl Günlük dosyası bulunamadı. - Giriş yok - fikir var mı?
Hackeron

Mükemmel cevap. Ne eksik olsa da, rsyslog devre dışı bırakıldığında dergisi bir syslog soketi açmak için nasıl bildiğini (veya yoksa syslog mesajlarında nasıl alır) hakkında bir not? Yoksa derginin manuel olarak yapılandırılması gerekiyor mu?
Matthijs Kooijman

4

Systemd, sistem açıldığında hizmetleri başlatmak için kullanılan bir başlatma sistemidir. Journald, systemd tarafından başlatılan hizmetler için günlük kaydı yapmaktan sorumludur. Dergi sistemd ile entegre edildiğinde, dergi için en eski önyükleme işlemi mesajları bile kullanılabilir.

Rsyslog, günlük işleme için özel olarak yapılmış bir dergi, dergi ile ilgisi yok. Günlükleri birçok yoldan alabilir ve birçok şekilde çıktısı alabilir. Günlük iletilerini aynı zamanda günlükten de alması varsayılan olarak etkin değildir. Bunun için /etc/rsyslog.conf dosyasına yazmanız gerekir,

$ModLoad imjournal # im -> input module
OR
load(type="imjournal")

Şimdi, dergi günlüklerini de kabul edecek. Ancak /etc/rsyslog.conf dosyanızı değiştirmemenizi öneririm.

/Etc/rsyslog.conf dosyasının sonunda yazılı bir satır vardır,

$IncludeConfig /etc/rsyslog.d/*.conf

Bu, .etf dosyasının /etc/rsyslog.d/ klasöründe biten tüm dosyaların rsyslog yüklemesi sırasında dahil edilmesi gerektiği anlamına gelir. Bu nedenle, tüm özel yapılandırmalarınız bu dosyalara girmelidir

Bir dosya /etc/rsyslog.d/journald.conf yapmanızı ve aşağıdaki kod parçasını buna yapıştırmanızı öneririm.

Aşağıda rsyslog resmi haksızlık sayfasındaki pasaj

module(load="imjournal" PersistStateInterval="100"
   StateFile="/path/to/file") #load imjournal module
module(load="mmjsonparse") #load mmjsonparse module for structured logs

template(name="CEETemplate" type="string" string="%TIMESTAMP% %HOSTNAME% %syslogtag% @cee: %$!all-json%\n" ) #template for messages

action(type="mmjsonparse")
action(type="omfile" file="/var/log/ceelog" template="CEETemplate")

Satır 1 - günlükleri günlükleri kabul etmek için gecikme modülünü yükler

2 - mmjsonparse modülü kütüklerin ayrıştırılmasında kullanılır

3 - Şablonda açıklanan biçime yapılandırılırlar

4 - Bu kayıtları mmjsonparse modülünü kullanarak ayrıştırır.

5 - omfile (çıktı modülü dosya - dosyaya çıktılar) modülünü kullanarak bu günlükleri verilen şablonda sağlanan yapıya göre / var / log / ceelog adlı bir dosyaya gönderir.

İhtiyaçlarınıza göre yapılandırmada değişiklikler yapın.


Açıklama için teşekkürler, ancak @Ravexina'nın yanıtı, varsayılan olarak (ekstra yapılandırma olmadan) rsyslog ve journal ile neler olup bittiğini anlamama yardımcı olmaya daha yakın olduğunu düşünüyorum .
motns
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.