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

17

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

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

Джон Сиу
источник

Ответы:

31

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

ОС: Ubuntu 16.04

systemd: 229-1ubuntu2

systemd-journal-remote: 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, не нужно ничего менять.

Джон Сиу
источник
> Seeing that there is not even a single comment, Это неудивительно, вы задали свой вопрос в 22: 12 в пятницу, для большинства людей, которые фактически отвечают на вопросы здесь, это выходные.
user9517 20.02.16
@ Iain lol, я этого не заметил. Я смотрел на journal-remote.conf в течение 3-х ночей, прежде чем опубликовать вопрос, поэтому вы можете сказать, что я был в отчаянии: p
Джон Сиу,
Нужно ли чистить / вращать файлы, созданные с помощью этой настройки?
Мэтт W
2
@MattW Нет необходимости в сервере загрузки. Для принимающего сервера конфигурация journald может позаботиться о ротации.
Джон Сиу
1
Вы не должны редактировать файлы в / lib / systemd / system. systemd предоставляет вам / etc / systemd / system / для пользовательских модулей. Просто скопируйте и вставьте файл в / lib / systemd / system в этот / etc / systemd / system, и он заменит файл в lib.
nhooyr