Назад | Перейти на главную страницу

Как настроить systemd journal-remote?

Как настроить systemd journal-remote для прослушивания определенного порта?

Все, что я могу найти, это примеры командной строки. И, основываясь на странице руководства, похоже, что в journal-remote.conf нет никакой опции.

Увидев, что нет ни единого комментария, я решил продолжить свои исследования и, наконец, собрал конфигурацию по кусочкам.

ОС: Ubuntu 16.04

systemd: 229-1ubuntu2

системный журнал-удаленный: 229-1ubuntu2

Загрузить конфигурацию сервера

Это на самом деле простой, онлайн-пример верен и нужно коснуться только одного файла конфигурации.

Используйте следующую команду для установки systemd-journal-remote

sudo apt-get install systemd-journal-remote

редактировать /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

Чтобы обеспечить автозагрузку журнала при загрузке

sudo systemctl enable systemd-journal-upload.service

После настройки перезапустите загрузку журнала.

sudo systemctl restart systemd-journal-upload.service

Если вы используете http, вы можете сделать то же самое, оставив комментарии к нижним 3 строкам. Для активного режима https раскомментируйте их и создайте эти файлы сертификатов.

URL-адрес фактически определяет протокол передачи (http / https) и порт назначения для использования.

Кроме того, если вы хотите предотвратить случайную перезапись при последующем обновлении пакета, вы можете создать каталог /etc/systemd/journal-upload.conf.d и поместить туда свой файл конфигурации, если он заканчивается расширением .conf.

В качестве примечания, я делаю это в контейнере LXC и, похоже, служба не будет использовать / etc / hosts для разрешения DNS, я в конечном итоге использую здесь IP-адрес. Поэтому, если вы используете имя хоста и видите сообщение об ошибке, что загрузка журнала не может достичь цели, попробуйте указать IP-адрес.

Получение конфигурации сервера

Принимающий сервер доставил мне больше всего проблем при поиске информации о конфигурации. И в отличие от сервера загрузки, конфигурация разбросана на этой стороне.

Используйте следующую команду, чтобы установить systemd-journal-remote и включить порт прослушивания

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

Существует два способа настройки удаленного журнала: активный и пассивный. Здесь я использую пассивный режим.

Номер порта

Файл конфигурации для порта прослушивания журнала: /etc/systemd/system/sockets.target.wants/systemd-journal-remote.socket следующим образом. ListenStream - это номер порта.

В отличие от загрузки, этот параметр не имеет ничего общего с тем, какой протокол (http / https) использовать. Он только указывает номер порта прослушивания.

[Unit]
Description=Journal Remote Sink Socket

[Socket]
ListenStream=19532

[Install]
WantedBy=sockets.target

Протокол (http / https) и журнал / расположение журнала

Чтобы изменить протокол передачи журнала и место сохранения, скопируйте /lib/systemd/system/systemd-journal-remote.service в /etc/systemd/system/, затем отредактируйте /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=-3 укажите, что входящий журнал использует http. Если вы хотите использовать https, измените его на --listen-https=-3.

--output=/var/log/journal/remote/ указать приемник (каталог сохранения) входящего журнала. Если он не существует, создайте его и измените его владельца на systemd-journal-remote.

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

После настройки перезапустите journal-remote.socket.

sudo systemctl daemon-reload

А как насчет самого очевидного /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

Поскольку я не использую https, ничего менять не нужно.