Jak skonfigurować systemd-Journal-Remote?

17

Jak skonfigurować systemd-Journal-Remote, aby nasłuchiwał na określonym porcie?

Wszystko, co mogę znaleźć, to przykłady wiersza poleceń. I na podstawie strony podręcznika, wydaje się, że nie ma żadnej opcji w Journal-remote.conf.

John Siu
źródło

Odpowiedzi:

31

Widząc, że nie ma ani jednego komentarza, postanowiłem kontynuować badania i ostatecznie poskładałem konfigurację.

System operacyjny: Ubuntu 16.04

systemd: 229-1ubuntu2

systemd-journal-remote: 229-1ubuntu2

Prześlij konfigurację serwera

Ten jest w rzeczywistości prosty, przykład online jest poprawny i wystarczy dotknąć tylko jednego pliku konfiguracyjnego.

Aby zainstalować, użyj następującego polecenia systemd-journal-remote

sudo apt-get install systemd-journal-remote

Edit /etc/systemd/journal-upload.conf.

/etc/systemd/journal-upload.conf

[Upload]
URL=http://10.0.0.1:19532
# ServerKeyFile=/etc/ssl/private/journal-upload.pem
# ServerCertificateFile=/etc/ssl/certs/journal-upload.pem
# TrustedCertificateFile=/etc/ssl/ca/trusted.pem

Aby upewnić się, że automatyczne ładowanie dziennika zostanie uruchomione przy starcie

sudo systemctl enable systemd-journal-upload.service

Uruchom ponownie przesyłanie dziennika po konfiguracji.

sudo systemctl restart systemd-journal-upload.service

Jeśli używasz http, możesz zrobić jak wyżej i pozostawić komentarz do 3 ostatnich linii. W przypadku https w trybie aktywnym odznacz je i utwórz te pliki certyfikatów.

Adres URL faktycznie dyktuje protokół przesyłania (http / https) i używany port docelowy.

Dodatkowo, jeśli chcesz zapobiec przypadkowemu nadpisaniu przez przyszłą aktualizację pakietu, możesz utworzyć katalog /etc/systemd/journal-upload.conf.d i umieścić w nim plik konfiguracyjny, o ile plik kończy się rozszerzeniem .conf.

Na marginesie, robię to w kontenerze LXC i wydaje się, że usługa nie będzie używać / etc / hosts do rozpoznawania dns, w końcu tutaj używam adresu IP. Jeśli więc użyjesz nazwy hosta i zobaczysz komunikat o błędzie, że przesyłanie dziennika nie może osiągnąć celu, spróbuj użyć adresu IP.

Konfiguracja serwera odbierającego

Serwer odbierający sprawia mi najwięcej problemów podczas wyszukiwania informacji o konfiguracji. I w przeciwieństwie do serwera wysyłającego, konfiguracja jest rozproszona po tej stronie.

Użyj następującego polecenia, aby zainstalować systemd-journal-remote i włączyć port nasłuchujący

sudo apt-get install systemd-journal-remote
sudo systemctl enable systemd-journal-remote.socket

Istnieją dwa sposoby, aktywny i pasywny, na skonfigurowanie dziennika-zdalnego. Używam tutaj trybu pasywnego.

Numer portu

Plik konfiguracyjny portu nasłuchiwania dziennika jest /etc/systemd/system/sockets.target.wants/systemd-journal-remote.socketnastępujący. ListenStream to numer portu.

W przeciwieństwie do strony przesyłającej to ustawienie nie ma nic wspólnego z tym, którego protokołu (http / https) użyć. Określa tylko numer portu nasłuchiwania.

[Unit]
Description=Journal Remote Sink Socket

[Socket]
ListenStream=19532

[Install]
WantedBy=sockets.target

Protokół (http / https) i lokalizacja dziennika / dziennika

Aby zmienić protokół przesyłania dziennika i lokalizację zapisu, skopiuj /lib/systemd/system/systemd-journal-remote.servicedo /etc/systemd/system/, a następnie edytuj /etc/systemd/system/systemd-journal-remote.service.

[Unit]
Description=Journal Remote Sink Service
Documentation=man:systemd-journal-remote(8) man:journal-remote.conf(5)
Requires=systemd-journal-remote.socket

[Service]
ExecStart=/etc/systemd/systemd-journal-remote \
          --listen-http=-3 \
          --output=/var/log/journal/remote/
User=systemd-journal-remote
Group=systemd-journal-remote
PrivateTmp=yes
PrivateDevices=yes
PrivateNetwork=yes
WatchdogSec=3min

[Install]
Also=systemd-journal-remote.socket

--listen-http=-3Określić czasopismo przychodzącej używa protokołu HTTP. Jeśli chcesz korzystać z protokołu https, zmień go na --listen-https=-3.

--output=/var/log/journal/remote/określ ujście (katalog zapisywania) przychodzącego dziennika. Jeśli nie istnieje, utwórz go i zmień jego właściciela na systemd-journal-remote.

sudo mkdir /var/log/journal/remote
sudo chown systemd-journal-remote /var/log/journal/remote

Zrestartuj Journal-remote.socket po konfiguracji.

sudo systemctl daemon-reload

Co z najbardziej oczywistymi /etc/systemd/journal-remote.conf?

[Remote]
# Seal=false
# SplitMode=host
# ServerKeyFile=/etc/ssl/private/journal-remote.pem
# ServerCertificateFile=/etc/ssl/certs/journal-remote.pem
# TrustedCertificateFile=/etc/ssl/ca/trusted.pem

Ponieważ nie używam protokołu https, nie muszę niczego zmieniać.

John Siu
źródło
> Seeing that there is not even a single comment, Nic dziwnego, że w piątek zadałeś pytanie o 22: 12UTC dla większości osób, które faktycznie odpowiadają na pytania w ten weekend.
user9517
@Ain lol, nie zauważyłem tego. Patrzyłem na Journal-remote.conf przez 3 noce, zanim opublikowałem pytanie, więc możesz powiedzieć, że byłem zdesperowany: p
John Siu
Czy musisz wyczyścić / obrócić pliki wygenerowane w tej konfiguracji?
Matt W
2
@MattW Nie ma potrzeby przesyłania serwera. W przypadku serwera odbierającego konfiguracja kroniki może zająć się rotacją.
John Siu,
1
Nie powinieneś edytować plików w / lib / systemd / system. systemd daje ci / etc / systemd / system / dla jednostek niestandardowych. Po prostu skopiuj i wklej plik w / lib / systemd / system do tego / etc / systemd / system, a on zastąpi ten w lib.
nhooyr