Здравствуйте, StackOverflow, Боги / Регулярные пользователи / Пользователи!
В настоящее время я работаю над системой ведения журналов для двух приложений, работающих на моих серверах.
Вот контекст:
- Сервер dev1: сервер Ubuntu 18.04 (только что установлен)
- работает под управлением systemd.service algo-ep
[Unit]
Description="Algo EP"
[Service]
Type=simple
User=me
WorkingDirectory=/home/me/bin
ExecStart=/home/me/bin/AlgoEp
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=dev1_algo_ep
[Install]
WantedBy=multi-user.target
- isработает другой systemd.service algo-mdw
[Unit]
Description="Algo MDW"
[Service]
Type=simple
User=me
WorkingDirectory=/home/me/bin
ExecStart=/home/me/bin/AlgoMdw
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=dev1_algo_mdw
[Install]
WantedBy=multi-user.target
- Сервер dev2: сервер Ubuntu 18.04 (недавно установлен)
- работает systemd.service algo-ep
[Unit]
Description="Algo EP"
[Service]
Type=simple
User=me
WorkingDirectory=/home/me/bin
ExecStart=/home/me/bin/AlgoEp
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=dev2_algo_ep
[Install]
WantedBy=multi-user.target
Я хотел иметь возможность читать журнал каждой службы, когда я ssh на dev1, используя journalctl (systemd-journal).
Вот так:journalctl -t dev1_algo_ep -t dev1_algo_mdw -t dev2_algo_ep
Итак, я добавил rsyslog.d/algo-ep.conf
на dev2:
if $programname == 'dev2_algo_ep' then {
action(type="omfwd"
queue.type="linkedlist"
queue.filename="algo_fwd"
queue.saveOnShutdown="on"
action.resumeRetryCount="-1"
target="dev1" port="514" protocol="tcp"
)
}
и добавил rsyslog.d/algo.conf
на dev1:
module(load="imtcp")
module(load="omjournal")
ruleset(name="remote-dev2") {
action(type="omjournal")
}
input(type="imtcp" port="514" ruleset="remote-dev2")
На этом этапенет проблем, я получил строку в journalctl с journalctl -r
:
Nov 23 13:27:47 dev1 dev2_algo_ep[3142]:[15246]: Ep Server listening on localhost:10001...
Nov 23 13:27:47 dev1 dev2_algo_ep[2421]:[15246]: Ep Server stops...
[...]
Но когда я пытаюсь journalctl -t dev2_algo_ep
:
me@dev1:~$ journalctl -t dev2_algo_ep
-- Logs begin at Fri 2018-06-01 13:54:11 CEST, end at Fri 2018-11-23 13:27:47 CET. --
me@dev1:~$
, поскольку SYSLOG_IDENTIFIER полученного журнала установлен как dev2_algo_ep[3142]:
вместо dev2_algo_ep
.
Итак, мой вопрос: есть ли способ, магический или очевидный
- экспортировать журнал из dev2 в dev1 с определенным SYSLOG_IDENTIFIER?
- или получить журнал на dev1 и установить определенный SYSLOG_IDENTIFIER перед отправкой его в journald?
- или просто сделать это?
Заранее спасибо за совет,Ваша помощь и ваша информация!
[Редактировать] Кажется, что смесь rsyslog + journald очень мало известна.На странице руководства я ничего не нашел (кроме возможности создать шаблон для перестройки журнала при получении на dev1, но для меня это выглядит довольно странно).