Wiele demonów działających w CentOS Linux tworzy swoje własne pliki logów. Te pliki dzienników zawierają pomocne wiadomości odnoszące się do działania tych demonów. Na przykład komunikaty o błędach, które pomagają w diagnozowaniu problemów z systemem. Z czasem te pliki logów muszą być rotowane aby łatwiej było nimi zarządzać. Rotacja logów jest procesem dzielenia dużych plików logów i archiwizowania starych plików logów do wykorzystania w przyszłości. W CentOS program o nazwie logrotate jest odpowiedzialny za rotację plików logów. W tym poście przyjrzę się jak dostosować działanie logrotate.
Uruchamianie logrotate
logrotate jest uruchamiany codziennie przez crona poprzez plik /etc/cron.daily/logrotate. W CentOS 5.x cron jest odpowiedzialny za uruchamianie systemowych zadań cron, takich jak logrotate. Można go skonfigurować poprzez edycję pliku /etc/crontab.
W CentOS 6.x anacron jest zainstalowany domyślnie i odpowiada za uruchamianie systemowych zadań cron.
logrotate.conf
logrotate.conf znajduje się w /etc/ i przechowuje domyślną konfigurację systemową dla logrotate. Domyślnie w CentOS logrotate będzie rotował logi co tydzień i utrzymywał 4 tygodnie zaległości. Możesz dostosować logrotate.conf, ale zazwyczaj lepiej jest dostosować konfigurację rotacji logów poszczególnych demonów w /etc/logrotate.d/
/etc/logrotate.d/
Katalog ten zawiera pliki rotacji logów dla różnych usług działających w systemie.
Typowym plikiem w tym katalogu jest ten dla Apache ( /etc/logrotate.d/httpd ):
/var/log/httpd/*log { missingok monthly notifempty sharedscripts postrotate /sbin/service httpd reload > /dev/null 2> /dev/null || true endscript}
Pierwsza linia to wyrażenie regularne, które dopasowuje pliki logów. W tym przypadku są to wszystkie pliki kończące się na „log” i znajdujące się w katalogu /var/log/httpd.
Wewnątrz nawiasów otwierających i zamykających znajdują się opcje rotacji logów dla plików tego demona. W powyższym przypadku masz skonfigurowaną rotację miesięczną.
Opcje dla logrotate
Niektóre z opcji, które możesz umieścić w pliku logrotate.conf lub w plikach rotacji logów poszczególnych demonów w /etc/logrotate.d/ są następujące :
- rotate: Określa liczbę dzienników wstecznych do zachowania przy użyciu opcji rotate. Na przykład „rotate 5” zachowa 5 starych plików dziennika.
- compress: Skompresuje stare pliki dziennika, aby zaoszczędzić miejsce na dysku.
- daily, weekly, monthly or yearly: Rotuj logi po upływie określonego okresu.
- size: Określ rozmiar pliku dziennika, aby wywołać rotację. Na przykład „rozmiar 50M” spowoduje rotację pliku dziennika, jeśli jego rozmiar będzie wynosił 50MB lub więcej. Możesz użyć prefiksu M dla megabajtów, k dla kilobajtów i G dla gigabajtów. Jeśli nie zostanie użyty żaden przedrostek, będzie on oznaczał bajty.
- minsize: To jest jak rozmiar, z wyjątkiem tego, że bierze również pod uwagę okres ( miesięczny, tygodniowy itp.). Więc będzie rotować pliki dziennika tylko wtedy, gdy okres jest osiągnięty ORAZ pliki dziennika są większe niż podany minsize.
- prerotate i postrotate: Określają one polecenia, które można uruchomić przed i po rotacji logów. Na przykład ponowne uruchomienie demona po rotacji logów.
Pełną listę dostępnych opcji znajdziesz w pliku man logrotate.conf ( man logrotate.conf na CentOS ).