Journalctl --user -u myservice 특정 사용자에 대한 "로그 파일을 찾을 수 없음"

Journalctl --user -u myservice 특정 사용자에 대한 "로그 파일을 찾을 수 없음"

질문:

시스템 사용자 단위 Journalctl 출력에 "저널 파일을 찾을 수 없습니다."라고 표시됩니다. 이는 테스트 중인 한 명의 sss 사용자에게만 발생하며 모든 로컬 사용자는 제대로 작동하는 것 같습니다. 편집: sss는 문제가 아닌 것 같습니다. 바로 이 사용자가 문제라는 것입니다. 정확한 명령 및 출력:

$journalctl --user -u myservice
No journal files were found.

시스템 환경

  • RHEL 8.4
  • 시스템 239(239-45.el8_4.3)
  • 커널: 4.18.0-305.19.1.el8_4.x86_64

문제 해결:

저는 다음 게시물을 읽고 각 게시물의 문제를 해결하려고 노력했습니다.

나는 다음을 시도했습니다 :

  • 재시작.
  • 호스트 운영 체제를 다시 배포합니다.
  • 테스트를 위해 로컬 사용자를 생성해 보세요.
  • 테스트를 계속하기 전에 먼저 SSH 또는 터미널을 사용하여 직접 사용하고 있던 새로 생성된 로컬 사용자 계정에 로그인했는지 확인했습니다. 또한 sshing을 테스트하여 sss 사용자 계정을 사용할 수 있었습니다.
  • Journalctl 서비스 다시 시작( systmectl restart systemd-journald.service)
  • /etc/systemd/journald.conf가 있는지 확인하세요 Storage=persistent. 그러나 자동 및 휘발성도 시도했지만 변경되지 않았습니다.
  • export XDG_RUNTIME_DIR=/run/user/$(id -u)로컬 사용자 및 관련 사용자의 ~/.bashrc에 추가합니다 . 그런 다음 파일을 가져옵니다.
  • 확인 지연이 활성화되었습니다.
  • 이 문제는 상자의 특정 사용자 한 명에게만 발생하는 것으로 나타났습니다. 새 사용자를 생성하면 이 문제가 발생하지 않습니다.
  • 해당 사용자 계정의 uid가 gid/group과 다릅니다. 그러나 새로 생성된 계정이 gid/group과 다른 uid를 갖도록 조정하고, 새 uid에 대해 ~/.bashrc를 조정하고, 재부팅하면 계정에 올바른 Journalctl 출력이 표시되는지 테스트했습니다.
  • 문제의 사용자 계정은 sss 사용자인 것 같습니다.
  • 사용자의 d-bus 채널이 실행 중인 것을 확인했습니다 ps. 사용자가 실행 중인 것으로 보입니다./usr/lib/systemd/systemd --user
  • systmectl --user관련 사용자로서 다른 명령을 실행할 수 있습니다 . 상태를 확인하고 사용자 서비스를 시작, 중지, 다시 시작할 수 있습니다.
  • 을 실행하면 journalctl --user출력은 다음과 같습니다.
    $ journalctl --user
    No journal files were found.
    -- No entries --
    
  • 을 실행하면 journalctl --user --verify출력은 다음과 같습니다.
    $ journalctl --user --verify
    No journal files were found.
    
  • 나는 sss 사용자를 구축한 다른 컴퓨터에서 위의 모든 작업을 수행했는데 문제는 사용자 계정에 있었습니다.
  • Journalctl 출력을 발견했습니다! 그러나 이는 /var/log/messages(rhel 시스템에서 syslog에 대한 Journalctl 출력의 기본 위치)에 있습니다. 왜 거기에는 표시되지만 --user 영역에는 표시되지 않는지 궁금하십니까?
  • systemctl status user.slice --no-pager각 uid에 대한 올바른 사용자 슬라이스와 올바른 서비스를 확인 하고 보면 systmectl --user status myservice올바른 슬라이스도 표시됩니다. 그런데 확인해 보면 관련 사용자 목록이 ls /var/log/journal/<number>보이지 않습니다 .user-<UID>@UUID.journal

이 문제는 sss를 사용하여 테스트 중인 사용자에게만 발생하는 것 같습니다. 이 시스템에서 sss를 관리하지 않기 때문에 이 사용자를 삭제하거나 다시 생성할 수 없습니다.

이 특정 sss 사용자 journalctl --user출력은 나타나지 않지만 로컬 사용자는 나타나는 이유는 무엇입니까? 내가 여기서 무엇을 놓치고 있는 걸까요? 이 문제를 해결하는 방법을 모르시나요? 제안 사항이 있으신가요?

편집하다:글쎄요, sss와는 아무 관련이 없는 것 같습니다. 나는 자체 AD 서버, 통합 Kerberos 및 SSSd를 배포하고 사용자를 설정했으며 Journalctl이 제대로 작동했습니다.

현재 시점에서는 왜 이 사용자에게 Journalctl이 작동하지 않는지 알 수 없습니다. 문제 해결에 대한 조언이 도움이 될 것입니다!

편집 2:--user 서비스에 대한 Journalctl 출력이 표시되지만 /var/log/messages이는 루트에서만 액세스할 수 있음을 발견했습니다.

답변1

문제를 발견했습니다! 해당 사용자의 UID/GID는 < 1000입니다. UID/GID를 "1111"로 조정하고 로그아웃했다가 다시 로그인하자 Journalctl이 즉시 작동하기 시작했습니다!

읽고 나서이 게시물저널ctl이 시스템 사용자용이라고 생각했던 systemd-user 유닛과의 작동을 허용하지 않는 작업을 수행하고 있을 수도 있다는 것을 깨달았습니다.

관련 정보