systemd-journal: dev-log와 syslog의 관계는 무엇입니까?

systemd-journal: dev-log와 syslog의 관계는 무엇입니까?

두 사람의 관계를 알아보려고 해요

/run/systemd/journal/dev-log
/run/systemd/journal/syslog

충분히 명확한 문서를 찾을 수 없습니다. 어떤 의미에서는 본질적으로 동일합니까? 왜냐하면 syslog-ng의 "unix-dgram()"에 둘 중 하나를 포함하면 거의 동일한 출력을 얻게 되기 때문입니다. 차이점이 있나요? 어쨌든 둘 사이에는 어떤 관계가 있는 걸까요?

설명해 주셔서 감사합니다.

답변1

방법을 알면 쉽습니다 :)

$ systemctl list-sockets 
LISTEN                          UNIT                            ACTIVATES
...
/run/systemd/journal/dev-log    systemd-journald-dev-log.socket systemd-journald.service
/run/systemd/journal/socket     systemd-journald.socket         systemd-journald.service
/run/systemd/journal/stdout     systemd-journald.socket         systemd-journald.service
...

25 sockets listed.
Pass --all to see loaded but inactive sockets, too.

글쎄, 나는 거짓말을 하고 쉽다고 말했다. syslog 데몬이 없습니다. 이는 syslog.socket이 활성화되지 않았음을 의미합니다. 그러나 이것이 내가 문서를 찾은 곳입니다.

$ systemctl cat syslog.socket
# /usr/lib/systemd/system/syslog.socket
...
Documentation=man:systemd.special(7)
Documentation=http://www.freedesktop.org/wiki/Software/systemd/syslog
...
# The default syslog implementation should make syslog.service a
# symlink to itself, so that this socket activates the right actual
# syslog service.
#
# Examples:
#
# /etc/systemd/system/syslog.service -> /lib/systemd/system/rsyslog.service
# /etc/systemd/system/syslog.service -> /lib/systemd/system/syslog-ng.service
#
# Best way to achieve that is by adding this to your unit file
# (i.e. to rsyslog.service or syslog-ng.service):
#
# [Install]
# Alias=syslog.service
#
# See http://www.freedesktop.org/wiki/Software/systemd/syslog for details.

https://www.freedesktop.org/wiki/Software/systemd/syslog/설명하다:

이제 우리는 BSD syslog 데몬을 직접 수신하는 대신 /dev/log의 로그를 수신하고 있습니다. 로그 데몬이 모든 로그 데이터에 액세스하려는 경우 systemd와 함께 제공되는 syslog.socket 유닛 파일을 통하는 대신 /run/systemd/journal/syslog를 수신해야 합니다. systemd 시스템에서는 더 이상 /dev/log를 직접 수신할 수 없으며 데몬이 자체적으로 /run/systemd/journal/syslog 소켓에 바인딩하지 못할 수도 있습니다. 이렇게 하면 STDOUT/STDERR 서비스에 대한 로깅이 손실됩니다(무엇보다도).

따라서 귀하의 질문에 대한 대답은 이러한 경로를 unix-dgram().systemd에서 syslog 데몬으로 실행하려면 특정 systemd 지원이 필요하다는 것입니다.

별도의 구성에서는 에 대한 바인딩을 제거할 수 있는 것처럼 들립니다 /run/systemd/journal/syslog. a) 누가 그것을 소유하는지에 대한 저널드와의 싸움을 피하고 /dev/logb) 저널드가 서비스의 STDOUT/ 결코 작성되지 않는 STDERR 메시지 /dev/log. 그것을 고려하여나타나다업무상 문서에 명백한 단점이 나열되어 있지 않습니다. 명백한 단점은 " syslog.target초기 부팅 메시지가 완전히 손실된 후에는 사람들이 장치를 주문하는 것을 더 이상 권장하지 않습니다."라는 경고도 있습니다. "많은 서비스가 syslog 구현에 로그인할 수 없습니다." 이것이 맞다고 생각합니다. /는 듣기용으로만 사용할 수 있습니다 /dev/log.

관련 정보