Szafa serwerowa PowerFlex: Problemy z miejscem w /var/log, gdy jest włączona funkcja przekazywania dziennika systemowego
Summary: Ten artykuł wyjaśnia problem w przestrzeni /var/log, ponieważ rotacja dziennika nie występuje wystarczająco często.
Symptoms
Bieżąca konfiguracja logrotate obraca plik komunikatów raz w tygodniu, ale w przypadkach, gdy przekazywanie syslog jest włączone w VxFlex Manager, plik może nie obracać się wystarczająco szybko.
Fakty:
- Funkcja przekazywania dziennika systemowego jest włączona w programie VxFlex Manager.
- Partycja /var/log szybko się zapełnia.
- Mogą się one znacznie różnić w zależności od systemu
- Zdalny dziennik systemowy jest włączony na urządzeniach w zintegrowanej szafie serwerowej lub systemie urządzeń VxFlex i skonfigurowany do wysyłania zdarzeń dziennika systemowego do VxFlex Manager
Cause
Spis zasobów kończy się niepowodzeniem dla wszystkich zasobów, gdy system plików /var/log jest ustawiony na 100%.
Uwaga: Ostrzeżenia lub alerty krytyczne wymienione poniżej mogą nie działać, jeśli przestrzeń jest zbyt pełna, aby wykonać te kontrole, lub jeśli zapełnia się zbyt szybko.
- Interfejs użytkownika VxFlex Manager wyświetla ostrzeżenie, jeśli >75%:
Interfejs użytkownika VxFlex Manager pokazuje wartość krytyczną, jeśli > 95%:
Polecenie df -h pokazuje, że parametr /var/log ma bardzo dużą wykorzystaną pojemność i szybko rośnie.
Resolution
Aby naprawić rotację dziennika na urządzeniach VxFlex Manager z włączonym przekazywaniem dziennika systemowego, można skonfigurować funkcję logrotate, skompresować istniejące dzienniki, zmienić ustawienia dziennika rsyslog i obniżyć poziomy dziennika debugowania, wykonując następujące czynności:
Krok 1: SSH do VxFlex Manager i zostań użytkownikiem root: sudo su -
Krok 2: Edytuj (vi editor) syslog logrotate rules, upewniając się, że w katalogu znajduje się następujący tekst /etc/logrotate.d/syslog
/var/log/cron /var/log/maillog /var/log/messages /var/log/secure /var/log/spooler { size 100M nodateext rotate 5 compress missingok copytruncate postrotate /bin/killall -s SIGHUP -r rsyslog endscript }
Krok 3: Wprowadź następujące polecenie, aby sprawdzić, czy nowa konfiguracja została poprawnie zapisana:
cat /etc/logrotate.d/syslog
Krok 4: W zależności od tego, jak szybko zapełnia się przestrzeń /var/log, wybierz jedną z następujących opcji:
W przypadku środowisk, które nie zapełniają /var/log codziennie, ale wymagają rotacji szybszej niż tygodniowa, zmień logrotate z weekly na daily za pomocą następującego polecenia:
cp /etc/cron.weekly/logrotate /etc/cron.daily/
W przypadku środowisk, które zapełniają /var/log szybciej, niż może pomieścić dzienna rotacja, zmień logrotate z dziennego na godzinowy przy użyciu następującego polecenia:
cp /etc/cron.daily/logrotate /etc/cron.hourly/
Krok 5: Skompresuj istniejące pliki i zwolnij miejsce, uruchamiając następujące polecenie:
for log in `ls /var/log/messages-*`; do sudo gzip $log; done
Uwaga: Jeśli plik /var/log/messages jest tak pełny, że nie można go spakować, użyj następującego polecenia, aby go wyczyścić:
cat /dev/null > /var/log/messages
Krok 6: Aby sprawdzić, czy konfiguracja logrotate działa prawidłowo, uruchom następujące polecenie:
logrotate -f /etc/logrotate.d/syslog
Krok 7: Aby zatrzymać rejestrowanie przekazanych zdarzeń dziennika systemowego do pliku /var/log/messages w urządzeniu VxFlex Manager, wykonaj następujące czynności:
- Utwórz plik conf w katalogu /etc/rsyslog.d/ przy użyciu następującego polecenia:
vi 21-stop-remote-host-syslog-logging.conf - Dodaj następujący wiersz do nowo utworzonego pliku powyżej:
if $fromhost-ip != '127.0.0.1' then ~ - Zapisz plik, wpisując następujące polecenie:
:wq! - Uruchom ponownie usługę rsyslog:
systemctl restart rsyslog.service
Uwaga: 21 jest numerem priorytetu używanym dla rsyslog. Po ponownym uruchomieniu rsyslog nie zapisuje przychodzących zdalnych dzienników systemowych w katalogu /var/log/messages. Lokalne dzienniki systemowe VxFlex Manager będą nadal zapisywane w katalogu /var/log/messages.
Uwaga: Nawet jeśli przekazywanie dziennika systemowego nie jest włączone w VxFlex Manager, hosty mogą wskazywać VxFlex Manager, co może spamować plik /var/log/messages. Skonfiguruj krok 7 w przypadku zalewania pliku komunikatów, niezależnie od tego, czy dziennik systemowy VxFlex Manager jest włączony, czy nie.
Krok 8: Zmień poziom rejestrowania debugowania logstash w urządzeniu VxFlex Manager, wykonując następujące czynności:
- Edytuj poziom rejestrowania za pomocą następującego polecenia:
vi /etc/logstash/logstash.yml - Wyszukaj ustawienia debugowania w pliku
- Zmień poziom dziennika z info (domyślny) na błąd

- Edytuj następujący plik: vi /etc/logstash/log4j2.properties
- W konfiguracji domyślnej istnieje wiersz zaczynający się od rootLogger.appenderRef.console skomentuj ten wiersz za pomocą # jak poniżej:
-
Uruchom ponownie usługę logstash, uruchamiając następujące polecenie: systemctl restart logstash
Krok 8: Uruchom ponownie urządzenie VxFlex Manager, jeśli system plików /var/log był zapełniony w 100%. Dzięki temu wszystkie usługi prawidłowo rozpoczną tworzenie kopii zapasowej.
Nuta: Wyślij alert testowy, aby upewnić się, że łącznik alertów działa prawidłowo po rozwiązaniu problemów z miejscem i ponownym uruchomieniu urządzenia.
Additional Information
- W przyszłej wersji programu VxFlex Manager zostanie wprowadzona poprawka uniemożliwiająca rejestrowanie komunikatów dziennika systemowego w katalogu /var/log/messages.
- Dotyczy to wszystkich wersji programu VxFlex Manager z funkcją przekazywania dziennika systemowego do wersji 3.4.0.4271 włącznie.