Jak mogę otrzymywać logi syslog z systemu sieciowego?

23

Chciałbym skonfigurować Ubuntu do odbierania logów z routera DD-WRT. Ekran konfiguracji routera zawiera następującą sekcję:

Dziennik systemu DD-WRT

a jego dokumentacja rejestracyjna brzmi:

Jeśli chcesz wysłać dzienniki do systemu zdalnego, wprowadź adres IP tego komputera, na którym działa także narzędzie syslog (potrzebuje otwartego gniazda sieciowego, aby zaakceptować dzienniki wysyłane przez router).

Nigdy wcześniej (świadomie) nie korzystałem z syslog. Co muszę zrobić w Ubuntu, aby móc otrzymywać te dzienniki?

ændrük
źródło
Wygląda na to, że moja Motorola Surfboard Extreme SBG901 ma podobne ustawienia do twojego DD-WRT. Pomyślałem, że dodam to słowo kluczowe dla innych osób googlujących dla tego q / a.
płyty grzewcze

Odpowiedzi:

23

Host odbierający dzienniki będzie musiał uruchomić demona syslog skonfigurowanego do nasłuchiwania dzienników zdalnych. W Ubuntu istnieje wiele implementacji syslog, ale rsyslogzazwyczaj jest to zalecane i powinno być instalowane domyślnie. Nie mogę stwierdzić z dokumentacji zamieszczonego linku, czy DD-WRT wysyła logi za pośrednictwem TCP lub UDP, więc może być konieczne trochę eksperymentów, aby znaleźć dokładne ustawienia, jeśli obawiasz się o zmniejszenie liczby dostępnych w sieci porty na twoim hoście.

Istnieją dwa sposoby, aby to włączyć: pierwszy jest prostszy, ale może wymagać ponownej integracji podczas aktualizacji systemu. Drugi jest nieco bardziej skomplikowany i może powodować mylące wyniki, jeśli nastąpią znaczące zmiany w konfiguracji syslog w ramach aktualizacji. Wybrałbym drugi, ale twoje preferencje mogą się różnić.

Pierwszym jest edycja /etc/rsyslogd.confi usunięcie inicjału #z następujących wierszy:

# $ ModLoad imudp
# $ UDPServerRun 514

lub

# $ ModLoad imtcp
# $ InputTCPServerRun 514

Po drugie, aby utworzyć nowy plik o nazwie, może local-enable-tcp.confw /etc/rsyslog.d/, o następującej treści:

# włącz odbiór syslog TCP
$ ModLoad imtcp
$ InputTCPServerRun 514

Jeśli chcesz użyć oddzielnego pliku i potrzebujesz UDP, zmień zawartość, aby pasowała do powyższej sekcji UDP. Określona nazwa pliku nie jest ważna, ale zaleca się rozpoczęcie jej od „local-”, ponieważ ta przestrzeń nazw jest zarezerwowana dla konfiguracji lokalnego administratora i musi kończyć się na „.conf”, ponieważ tylko pliki o takim zakończeniu są automatycznie dołączane do pliku Konfiguracja rsyslog.

Jeśli wolisz użyć innej implementacji syslog, sprawdź konfigurację i dokumentację dla tej implementacji: jest prawdopodobne, że demon syslog jest skonfigurowany tak, aby domyślnie nie nasłuchiwał w sieci, ale przykładowa konfiguracja umożliwiająca włączenie tego wspólnego przypadku powinna być wyraźnie udokumentowana.

Emmet Hikory
źródło
1
Dobrym pomysłem powinno być rozpoczęcie nazwy pliku dwucyfrowym numerem, ustalenie kolejności względem innych istniejących plików .conf.
enzotib
Cóż, to może być skomplikowane. Nie ma powodu, dla którego nazwa pakietu nie może zaczynać się od dwucyfrowej liczby, a .d / $ {pakiet} - .conf są zarezerwowane dla pakietów (chociaż jest mało prawdopodobne, aby konflikt dotyczył np. 72-local-myconf.conf ). Po drugie, ważne jest, aby spróbować zapisać pliki konfiguracyjne, aby kolejność nie była krytyczna. Na przykład plik konfiguracyjny dostarczony przez 0access.conf z hipotetycznego pakietu „0access” zostałby zastosowany przed większością plików konfiguracyjnych zaczynających się od dwucyfrowej liczby.
Emmet Hikory
1
Może być również konieczna zmiana własności pliku dziennika: sudo chown syslog:adm /var/log/sysloglub dowolnej innej nazwy pliku dziennika.
płyty kuchenne
6

Inną opcją jest użycie syslog-ng, łatwy w użyciu i do tej pory gotowy!

sudo apt-get install syslog-ng

Po instalacji mamy plik conf w /etc/syslog-ng/syslog-ng.conf Więc po prostu edytuj ten .conf z naszymi parametrami, ale wcześniej wykonaj kopię zapasową domyślnego pliku konfiguracyjnego, może być przydatny później, jeśli chcesz dostroić niektóre parametry

sudo mv /etc/syslog-ng/syslog-ng.conf /etc/syslog-ng/syslog-ng.conf.bak

Teraz utwórz nowy plik konfiguracyjny i edytuj go!

sudo touch /etc/syslog-ng/syslog-ng.conf
sudo nano /etc/syslog-ng/syslog-ng.conf

Więc wklej tę podstawową konfigurację, aby również działała:

# Listening to incoming UDP Syslog connections
source mysource { udp(); };

#Add the syslog targets:

destination dest { file("/var/log/Cisco$YEAR$MONTH$R_DAY.log"); };
#destination dest_other_server { udp("1.2.3.4" port(514)); };
#Create the filters that will be used to determine what to do with the received syslog message

#filter filter { ( host("2.3.4.5") and level(notice) and match("username=.*@domain\.local" value("MESSAGE") flags("utf8" "ignore-case")) ); };
filter myfilter { ( level(notice) ); };
#And putting it all together:

log { source(mysource); filter(myfilter); destination(dest);  };

Łatwe, jak widać. Dbać!

Alvarova
źródło
-2

Zasadniczo uruchamiasz demona (zwanego syslogd) na swoim serwerze, aby router dd-wrt wysyłał dzienniki do.

Tutorial- http://www.techiecorner.com/1479/how-to-setup-syslog-server-in-ubuntu/

użytkownik606723
źródło
5
Unikaj publikowania adresu starego przewodnika, nawet nie sprawdzając, czy jego instrukcje są nadal aktualne. Pliki wymienione w przewodniku już nie istnieją. Ubuntu używa rsyslog.
enzotib
@enzotib - Chociaż zgadzam się, że brakuje mu jakości i że należy unikać linków, okazuje się, że ta odpowiedź dostarczyła dokładnie tego, czego potrzebowałem, aby osiągnąć to samo zadanie na serwerze Ubuntu 8.04. Istnieją tutaj trzy odpowiedzi, wszystkie dla trzech różnych odmian syslog, które są nadal używane w systemach produkcyjnych . Ta odpowiedź była przydatna. Dostaje ode mnie +1.
ghoti
To prawda, ale w zasadzie jest to odpowiedź tylko na link.
Duncan X Simpson