[unix] / opt 패키지는 어디에 로그를 작성해야합니까?

FHS에서 제안한 규칙에 따라 /opt/package_name구성 파일 /etc/opt/package_name과 정적 파일을 저장하기 위해 사용자 지정 패키지를 설치하고 /var/opt/package_name/static/있습니다. [ 1 ] [ 2 ] [ 3 ]

또한 일부 로그 파일을 저장해야합니다. 분석 도구로 검색 할 수 있기를 원하므로 기존 위치에도 있어야합니다. 이것들이 들어가면 :

  • /var/log/package_name (이것은 커스텀 패키지 임에도 불구하고 시스템 패키지처럼)
  • /var/opt/package_name/log( /var/opt컨벤션에 따라-그러나 이것이 발견 가능합니까?)
  • 다른 것?


답변

나는 그것들을 둘 것이다 /var/log/package_name; 그것보다 최소한의 놀람의 원리를 더 잘 충족시킨다 /var/opt/package_name/log. 나는 이것에 대한 인용이 없다. 단순히 로그를 찾을 위치와 일치합니다.

또한 내 자신의 로그 파일을 작성하지 않고 대신 syslog적절한 태그와 시설로 로그인 할 수도 있습니다 . 기존의 분석 도구와의 완벽한 통합을 원한다면 통신 채널에 대해 더 잘할 수 있다고 생각하지 않습니다.

  • 나열된 기능으로 “로그 분석”이있는 모든 일반 도구는 이미 감시 syslog합니다.
  • 로그 파일 릴리스 및 회전 시맨틱이 처리됩니다. logrotate파일을 버리고 새 파일을 열도록 알려주 는 메커니즘을 설정할 필요가 없습니다 . logrotate회전 할 새 파일에 대해 말할 필요조차 없습니다 !
  • 사이트에서 로그를 요구하면 중앙 로깅 서버로 로그를 오프로드 할 수 있습니다. rsyslog필요한 경우 기존의 기존 도구 가 사용되므로 해당 기능을 직접 구현할 필요는 없습니다.
  • 로그 파일 주위의 액세스 제어 (POSIX 및 예를 들어 SELinux)는 이미 처리되었으므로 배포 별 보안 의미에 많은주의를 기울일 필요가 없습니다.

내 로그에 대해 사용자 정의 이진 형식을 수행하지 않는 한 JSON과 같은 시스템 친화적 인 기계 구문 분석 가능한 텍스트 형식을 선호합니다. 별도의 로그 파일을 정당화하는 데 어려움을 겪고 있습니다. 분석 도구는 이미 syslog매처럼 보입니다.


답변

패키지 구성 파일에 대한 FHS 규칙을 따르고 있으므로 일관되고 로그 파일을에 저장해야합니다 /var/opt/package_name/log.

FHS는 다음과 같이 말합니다.

/ opt에있는 패키지의 변수 데이터는 / var / opt /에 설치해야합니다.

또한 상태

올바르게 작동하기 위해 파일 시스템 트리 내의 특정 위치에 있어야하는 패키지 파일을 제외하고 다른 패키지 파일은 / opt, / var / opt 및 / etc / opt 계층 외부에 존재할 수 없습니다 . 예를 들어, 장치 잠금 파일은 / var / lock에 있어야하고 장치는 / dev에 있어야합니다.

아래에 로그 파일 /var/opt이 있다고해서 패키지가 제대로 작동하는 것을 막을 수는 없으므로 /var/log대신 표준을 명확하게 위반하는 것입니다.

“발견 할 수 있습니까?”란 무슨 뜻인지 불분명합니다. 어쨌든 사용자 정의 로그는 사용자 정의 도구로 처리 될 가능성이 높지만 일반 도구가 처리하도록 설계되었다고 가정하면 번들 패키지와 같은 번들 패키지의 표준 위치를 탐색해야합니다.

참고 syslog유용한 중앙 집중화 시설 및 조정 로깅 구성하지만 완전히 당신이 잘 알려진 경로로 일반 파일을해야 할 때 로그를 저장하는 위치에 대한 문제가 해결되지 않습니다. 때때로 응용 프로그램 로그 디렉토리에 저장된 일부 파일은 응용 프로그램 자체 또는 프로세스 ID가 저장된 파일과 같은 관련 프로그램에 의해 예상 경로를 사용하여 액세스 할 수 있도록 설계되었으므로 syslog작동하지 않습니다.


답변