Nginx 추가시스템 로그에 기록버전 1.7.1의 기능입니다.
ppa:nginx/stable
에서 버전 1.6.2를 얻 거나 기본 Ubuntu 패키지 소스에서 버전 1.4.6 만 얻을 수 있습니다 .
수십 개의 서버에서 데이터를 수집하는 범용 로깅(rsyslog) 서버가 있습니다. rsyslog는 기본 로그 머신에 로그를 전파하거나 기본 로그 머신이 종료된 경우 장애 조치를 수행하도록 각 머신에 구성됩니다.
Nginx 로그를 로컬 syslog로 가져온 다음 rsyslog를 통해 원격 서버로 보내는 옵션은 무엇입니까?
참고: Nginx 로깅과 직접 관련된 답변을 환영하지만 다음에 적용되는 일반적인 답변도 찾고 있습니다.어느응용 프로그램 (따라서 부족nginx이 질문에 대한 레이블). 그 이유는 아직 모든 앱을 마이그레이션하지 않았 syslog
으며 다른 앱에서도 비슷한 문제가 발생할 것으로 예상하기 때문입니다.
허용된 답변과 관련된 중요 참고 사항:
inotify
시간이있을 때2012년 4월 12일 rsyslog 5.9.6 베타 버전 이후, 그렇지 않은 경우에만 지원2014년 1월 24일 기준 rsyslog 8.1.5.ppa:adiscon/v8-stable
이 기사를 쓰는 시점의 최신 Ubuntu 배포판(14.04 LTS)은 rsyslog 7.4.4를 사용하므로 Ubuntu에서 사용해야 합니다 .inotify
모드는module()
다음 대신 에 지정됩니다input()
.module(load="imfile" mode="inotify")
의 경우
inotify
지정할PollingInterval
필요가 없습니다.잘못 구성하면 에
rsyslog
아무 것도 기록되지 않습니다/var/log/syslog
. 문제가 무엇인지 확인하려면 이 명령이rsyslogd -N1
매우 도움이 될 것 같습니다. 분명히 이는 실행 중인지ps -A | grep rsyslog
확인하는 데에도 도움이 됩니다 .rsyslog
rsyslog
현재 버전은 를 실행하여 얻을 수 있습니다rsyslogd -version
.ReadMode
존재하다input()
0으로 설정해야 합니다.및
module()
구성input()
"rsyslog.conf 파일의 맨 위에 배치되어야 합니다.".나는 Nginx를 싫어하는 것 같습니다
rsyslog
./var/log/nginx/
또는 에 설정된 소유자, 그룹 또는 권한에 관계없이/var/log/nginx/access.log
파일 변경 사항은 오류 없이 무시됩니다. 디렉토리에 생성된 다른 파일에서도 마찬가지입니다/var/log/nginx/
./home/demo/
다른 디렉터리(예: 또는 )에 파일을 생성하면 변경 사항이/var/log/
예상대로 반영됩니다.syslog
답변1
로컬 시스템에서 rsyslog를 실행하고 있으며 로그를 원격 로그 서버로 전달한다고 가정합니다.
rsyslog 문서에 따르면 원하는 작업을 정확하게 수행하도록 입력 모듈을 정의할 수 있는 것처럼 보입니다. 자세한 내용은 여기에서 확인했습니다.
http://www.rsyslog.com/doc/master/configuration/modules/imfile.html
심지어 몇 가지 멋진 예를 제공합니다.