CentOS 7 altındaki önceki botlardan gelen günlük mesajlarını nasıl görüntülerim?


78

Yürütme journalctlbir CentOS 7 sistemi altında sadece geçen çizme sonra oluşturulan mesajlar yazdırır.

Komuta

# journalctl --boot=-1

baskılar

Failed to look up boot -1: Cannot assign requested address

ve durum 1 ile çıkar.

Mevcut bir Fedora sistemi ile karşılaştırarak, CentOS 7'nin sahip olmadığını /var/log/journal(ve journalctlsağlamadığını --list-boots) fark ettim .

Böylece benim sorum son açılış tarihinden önce yazılan günlük mesajları görüntülemek nasıl.

Veya, belki de bu işlevselliğin CentOS 7'de etkinleştirilmesi gerekiyor?

( journalctlMan sayfa 'sürüm 208' versiyon numarası olarak listelenmiştir.)

Yanıtlar:


99

tl; Dr.

CentOS 7'de, günlük iletilerinin kalıcı olarak depolanmasını etkinleştirmeniz gerekir:

# mkdir /var/log/journal
# systemd-tmpfiles --create --prefix /var/log/journal
# systemctl restart systemd-journald

Aksi takdirde, günlük günlüğü iletileri önyükleme arasında korunmaz.

ayrıntılar

İster journaldönceki botlarından kayıt mesajları yoluyla yapılandırıldı korur /etc/systemd/journald.conf. CentOS 7 altındaki varsayılan ayar:

[Journal]
Storage=auto

Nerede journald.conf adam sayfası açıklıyor autogibidir:

"Uçucu", "kalıcı", "otomatik" ve "hiç" lerden biri. "Uçucu" ise, günlük kaydı verileri yalnızca bellekte, yani / run / log / journal hiyerarşisinin altında (gerektiğinde oluşturulur) depolanır. "Kalıcı" ise, veriler tercihen diskte, yani / var / log / log hiyerarşisinin altında (gerektiğinde oluşturulur), / run / log / journal (gerekliyse oluşturulur) için bir geri dönüş ile saklanır. erken önyükleme ve disk yazılabilir değilse. " auto ", "kalıcı" işlevine benzer ancak gerektiğinde / var / log / journal dizini oluşturulmaz, böylece varlığı log verilerinin nereye gittiğini kontrol eder .

(benimkini vurgula)

Systemd-journald.service adam sayfası böylece belirtiyor:

Varsayılan olarak, günlük günlük verilerini / run / log / journal / içine kaydeder. / Run / uçucu olduğundan, yeniden başlatma sırasında günlük verileri kayboluyor. Verileri kalıcı kılmak için, / var / log / journal / oluşturmak için systemd-journald'ın verileri depolayacağı yer yeterlidir.

Görünüşe göre, varsayılan Fedora 19'da (kalıcı depolamaya göre) değiştirilmiş ve CentOS 7 Fedora 18'den türetilmiş olduğundan - hala varsayılan olarak kalıcı değildir. Kalıcılık, varsayılan olarak dergid /var/log/messagesve /var/log/messages-YYYYMMDDrsyslogd tarafından yazılan döndürülmüş versiyonlar aracılığıyla uygulanır (varsayılan olarak çalışır ve girdiyi dergad'den alır).

Bu nedenle, RHEL / CentOS 7 altındaki dergilerde sürekli kayıt yapılmasını sağlamak için

# mkdir /var/log/journal

ve sonra izinleri düzeltin ve derginiz yeniden başlatın, örneğin:

# systemd-tmpfiles --create --prefix /var/log/journal
# systemctl restart systemd-journald

6
Bir systemctl restart systemd-journaldyapmalı. Yani yeniden başlatma gerekmez.
xx4h

@ xx4h, cevabı güncelledi
maxschlepzig

9
Debian olarak şuna belgelenmiştir /usr/share/doc/systemd/README.Debian: install -d -g systemd-journal /var/log/journal.
pevik

@pevik, bir CentOS 7 sistemine baktım (burada sadece mkdir kullandım) ve mevcut izinler drwxr-sr-x. 3 root systemd-journal- belki dergald başlatma sırasında izinleri / mülkiyeti düzeltir.
maxschlepzig

8
Düzgün bir numara öğrendim: USR1Yeniden başlatmak yerine bir sinyal gönderirseniz , geçerli derginin içeriğini kaybetmezsiniz. killall -USR1 systemd-journald
James B

1
systemctl restart systemd-journald

Günlüklerinizi kaybedebilirsiniz: bkz. Https://github.com/systemd/systemd/issues/2236

mkdir /var/log/journal

Bir değişiklik var v208:

systemd-journald artık oluşturduğu günlük dosyaları grubunu "systemd-journal" grubuna ayarlamayacak. Bunun yerine, "systemd-journal" grubunun sahip olduğu dergi dizinine ve setgid bit setine güveniyoruz, böylece çekirdek dosya sistemi katmanı bu dergi dosyalarını otomatik olarak bu grup atamasını devralacak.

Systemd'de bulunan bir tmpfiles.d (5) kod parçası setgid bitinin ve grubun her önyüklemede mevcutsa günlük dizininde uygun şekilde ayarlandığından emin olacaktır.

Yani, systemd-tmpfiles --create --prefix /var/log/journalsonra gibi bir şey koşmalısınmkdir /var/log/journal

Ayrıca bakınız :


Hm veya bir chmod 4755 / var / log / journal; chown root: systemd-journal!: 2 '- veya sadece yeniden başlatın. Cevabımı güncelleyeceğim.
maxschlepzig

@maxschlepzig, sadece yeniden başlatma çalışmaz: github.com/systemd/systemd/pull/1398#issuecomment-144247498
Evgeny Vereshchagin

chmod 4755 /var/log/journal; chown root:systemd-journal !:2iyi çalışıyor. ama tmpfiles: dergi rehberlerinde ACL sihirini kullan
Evgeny Vereshchagin

Tamam, başka bir hata :) - Cevabımı güncelledim.
maxschlepzig
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.