19 marca 2008
Zachciało mi się otrzymywać maila podsumowującego dzień pracy mojego systemu. Trafiłem na dwa programy Logwatch (właściwie będący zbiorem skryptów) oraz Logcheck będący częścią app-admin/logsentry. Opiszę ten pierwszy ponieważ nie wymaga większej konfiguracji po zainstalowaniu by otrzymywać w miarę satysfakcjonujące podsumowania.
Zacznijmy od tego że będzie nam potrzebne coś do wysyłania maili. W moim przypadku skorzystałem ssmtp, bo już było, a jeśli nie ma to
# emerge mail-mta/ssmtp
oczywiście można skorzystać też z innego agenta przesyłania poczty. Skrzynkę mam na gmailu więc konfiguracja jest pod pasowana pod wymogi serwera smpt googla. W pliku /etc/ssmtp/ssmtp.conf powinno się znaleźć:
mailhub=smtp.gmail.com:587 rewriteDomain= #Ma być właśnie UseSTARTTLS a nie inne dostępne opcje z TLS UseSTARTTLS=YES AuthUser=nazwa_uzytkownika@gmail.com AuthPass=twoje_hasło FromLineOverride=YES
Dopisujemy jeszcze do /etc/ssmtp/revaliases
root:nazwa_uzytkownika@gmail.com:smtp.gmail.com:587
Maile możemy już wysyłać więc czas zająć się samym logowaniem
# emerge logwatch
Kopiujemy zawartość /usr/share/logwatch/ do /etc/logwatch (pozwoli to zachować oryginalną konfigurację, a pod uwagę brane będą ustawienia z /etc/logwatch)
# cp -R /usr/share/logwatch/ /etc
Nazwę folderu /etc/logwatch/default.conf zmieniamy na conf i przystępujemy do edycji /etc/logwatch/conf/logwatch.conf w którym to powinny znaleźć się następujące opcje
LogDir = /var/log TmpDir = /var/cache/logwatch MailTo = nazwa_uzytkownika@gmail.com MailFrom = Logwatch Print = No #mail będzie wysyłany po północy, i ma dotyczyć dni minionego więc: Range = yesterday #tu wybieramy szczegółowość raportu, dostępne są trzy poziomy: Low = 0, Med = 5, High = 10 Detail = 5 Service = All mailer = "sendmail -t"
Mamy już skonfigurowanego logwatch-a więc trzeba sprawić by uruchamiał się o zadanej porze, zbierał informacje z logów i przesyłał je na naszą skrzynkę. Po instalacji Logwatch w katalogu /etc/cron.daily/ powinien znajdować się plik 00-logwatch. Jeżeli go nie ma, tworzymy go i wypełniamy:
#!/bin/sh
if [ -x /usr/sbin/logwatch.pl ] ; then
exec /usr/sbin/logwatch.pl 2>&1 > /dev/null
fi
Ponieważ chcę aby podsumowanie dotyczyło całego dnia, ustawiłem w /etc/crontab wykonywanie codziennych czynności 5 minut po północy
5 0 * * * root rm -f /var/spool/cron/lastrun/cron.daily
W zasadzie to wszystko. Problemem może być to, że gdy komputer nie jest akurat włączony o ustalonej godzinie nie zostanie wykonane zadanie. Z pomocą przybywa anacron, który wykonuje pominięte przez crona zadania standardowo 5 minut po uruchomieniu systemu.
# emerge anacron
19 marca 2008 o 14:23:21
Chyba literówka - nie powinno być "smtp.google.com" zamiast "smpt.google.com"?
19 marca 2008 o 18:24:19
Dzięki za wyłapanie błędu już poprawiam :)
19 marca 2008 o 18:26:30
A, jeszcze: I ten Logwatch tylko wysyła gotowe logi, np. z ksyslogd czy z jakichś programów, czy je robi sam? Mam już demon logujący i nie chcę niepotrzebnie przeciążać serwera... (ma 128MB RAM-u, to VPS)
19 marca 2008 o 21:13:59
A, sprawdziłem, przecież "log analysis system".
19 marca 2008 o 21:33:54
Wypróbowałem na swoim VPS-ie... i dostaję tylko informację o zajętym/wolnym miejscu na dysku i losowy cytat z fortune.
20 marca 2008 o 09:04:41
@error: zdajesz sobie sprawę że logwatch i logcheck robią dwie zupełnie różne rzeczy, więc zestawianie ich jako "wybrałem do opisu ten, bo jest trudniejszy w konfiguracji" jest nie na miejscu?
27 marca 2008 o 22:00:52
Sorry za brak odpowiedzi, ale wyjechałem na święta co równa się odcięcie od cywilizacji a już napewno od netu. Moarc: czy folder /var/log jest miejscem gdzie przetrzymujesz logi jeżeli nie to wyedytuj zmienną LogDir. Sprawdź jakie usługi analizuje logwatch ( /etc/logwatch/scripts/services ), być może nie ma skryptów które obsługują usługi na twoim VPS-ie. Dozzie: nie napisałem tak jak raczyłeś zacytować. "Opiszę ten pierwszy ponieważ nie wymaga większej konfiguracji po zainstalowaniu by otrzymywać w miarę satysfakcjonujące podsumowania." a więc: opisuje logwatcha ponieważ praktycznie od razu uzyskuje to co chciałem osiągnąć. Nie pisze że są to dwa identyczne programy, poprostu daje do zrozumienia że można uzyskać podobne efekty aczkolwiek logcheck wymaga stworzenia wyrażeń regularnych wyłapującyh dla nas potrzebne informacjie. Gdyby był to dokładny opis dwóch programów, to zgoda ale jeżeli opisuje sposób wysyłania potrzebnych mi informacji na maila to myśle, że mogłem pozwolić sobie na takie "nadużycie" ;)
27 marca 2008 o 22:11:24
Owszem, nie mogłeś sobie pozwolić.
bq. nie napisałem tak jak raczyłeś zacytować. "Opiszę ten pierwszy ponieważ nie wymaga większej konfiguracji po zainstalowaniu by otrzymywać w miarę satysfakcjonujące podsumowania."
[...]
bq. Nie pisze że są to dwa identyczne programy, poprostu daje do zrozumienia że można uzyskać podobne efekty
I znowu dokładnie to samo mówisz. Logwatch i logcheck to dwa różne programy do dwóch różnych operacji. Pierwszy podsumowuje logi z dnia, drugi wychwytuje z logów nieprawidłowości (wszystko co nie pasuje do ignore regexps). Logwatch nie próbuje wychwycić nieprawidłowości oprócz tego, co ma zapisane w regułach.
27 marca 2008 o 23:17:58
Żeby była jasność między nami to korzystam i z logcheck jak i z logwatch. Te dwa maile które dostaję są tytułowym podsumowaniem dnia działania mojego systemu. Zgadzam się równierz co do przeznaczenia tych programów jak to opisałeś. Nie poświęciłem tu miejsca logcheck-owi dlatego, że wykorzystuje go w środowisku i w sposób inny niż jest on pierwotnie przeznaczony, a nie dlatego że jest taki sam jak logwatch. Obydwa programy działają na moim domowym laptopie, więc opisałem ten, który jest bardziej przeznaczony do takiego środowiska które nie stanowi jakiegoś newralgicznego punktu. Logcheck tak jak napisałeś wyłapuje nieprawidłowości, powiadamia i pozwala administratorowi podjąć szybkie działania. U mnie jest on uruchamiany raz dziennie i daje mi obraz tego co dziś dziwnego miało miejsce, jest uzupełnieniem podsumowania. Chyba nikt mi nie zabroni używać logcheck-a w taki sposób. Tak więc zdaje mi się, że mając na uwadze cel wpisu, który jest zaznaczony już w pierwszym zdaniu, nie popełniłem tu jakiegoś błędu. Nie mniej dzięki za krytykę, postaram się by miała odbicie w kolejnych wpisach.