logger는 Arch Linux에서 메시지를 어디에 기록합니까?


18

logger명령은 syslog를 통해 항목을 기록합니다.이 항목은 일반적으로 해당 행을와 같은 파일에 저장합니다 /var/log/messages.

Arch Linux에서 문서를 올바르게 이해 하면 모든 로깅이 systemd를 통해 수행되지만을 logger사용 하여 항목을 찾을 수 없습니다 journalctl.

  • logger아치 리눅스에서 보낸 메시지는 정확히 어떻게됩니까 ?
  • 로그 항목은 어디에 저장됩니까? (빠른 grep 제안 /var/log/journal/*/system.journal합니다.)
  • 이 로그에 어떻게 액세스 할 수 있습니까? (에 대한 특별한 옵션이 필요 journalctl합니까?)

답변:


15

로그 메시지가 저널에 어디에도 나타나지 않기 때문에 저널링 전달에 대한 syslog가 올바르게 설정되지 않았으며 메시지가 단순히 삭제되는 것 같습니다. 아치에 있기 때문에 쉽게 고칠 수 있습니다. syslog-ng패키지가 설치되어 있는지 확인하십시오 .

pacman -S syslog-ng

그런 다음 부팅시 활성화되어 있는지 확인하십시오.

systemctl enable syslog-ng

마지막으로 서비스를 활성화해도 자동으로 시작되지 않으므로 서비스를 시작하십시오.

systemctl start syslog-ng

자세한 내용은 이 아치 위키 페이지 를 참조하십시오.

이 문제가 발생하는 이유는 다음과 같습니다.

고전적인 syslog에 로그인하는 특정 방법이 있으며, 새로운 시스템 저널에 기록하는 특정 방법이 있습니다. 호환되지 않습니다. syslog를 지원하는 응용 프로그램은 저널을 지원하도록 마술처럼 만들 수 없습니다. 작성자는이 기능을 명시 적으로 구현해야합니다. 시스템 저널을 지원하는 애플리케이션은 일반적으로 시스템 시스템에서 실행될 때 "네이티브 API"를 지원하는 것으로 언급됩니다.

syslog API와 저널링 된 API가 다르기 때문에 저널링 된 API를 지원하지 않는 애플리케이션은 로그 메시지가 삭제됩니다. 이것이 당신의 사건에서 일어난 일입니다.

syslog-ng패키지의 작업은 journald API 호출에 시스템 로그 API 호출을 번역하는 것입니다. 이러한 방식으로 syslog 메시지는 결국이를 저널로 만듭니다.


syslog-ng설치되었지만 활성화되지 않은 경우 저널이 완전히 교체했다고 가정합니다. 인가 logger만 syslog에 말할 수? 그렇다면 저널링하는 올바른 방법은 무엇입니까?
michas

@michas 나는 희망을 분명히 할 섹션을 추가했다
strugee

"[..] syslog API 호출을 저널링 된 API 호출로 변환"-내가 볼 수 있듯이 변환은 다른 방식으로 만 작동합니다. / var / log /에서 모든 메시지를 찾고 journalctl에서는 저널링 된 메시지 만 찾습니다.
michas

@michas는 저널링 된 것일 수도 있지만 확실하지 않습니다. syslog-ngsyslog로 주소 지정된 메시지를 저널링으로 전달합니다.
strugee

1
합니까 logger foobar;journalctl|grep foobar항목이 시스템 목록에?
michas

0

일부 데몬은 /var/log/아치 리눅스에서 로그를 쓰지 않았 으며에 대한 구성 syslog-ng은 내가 본 다른 답변과 다릅니다.

정상적인 syslog-ng.service서비스는 없으며 실제로 이름이 지정 syslog-ng@default.service됩니다.

작동하지 않습니다.

# systemctl enable syslog-ng
Failed to enable unit: Unit file syslog-ng.service does not exist.

Arch Wiki에 따라 약간 다르게해야합니다 .

# systemctl start syslog-ng@default.service
# systemctl enable syslog-ng@default.service
Created symlink /etc/systemd/system/multi-user.target.wants/syslog-ng@default.service → /usr/lib/systemd/system/syslog-ng@.service.
#
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.