nginx는 로그를 원격 syslog 서버로 보냅니다.

nginx는 로그를 원격 syslog 서버로 보냅니다.

nginx원격 서버에 액세스 로그를 보내고 싶습니다 syslog-ng. syslog-ng각 측면 (서버-클라이언트)에 설치했습니다 .

Client: 10.10.10.2
Server: 10.10.10.1

일부 로그 파일(메시지, syslog, mail.log)이 클라이언트에서 서버로 성공적으로 전송되었지만 로그가 전송되지 않았습니다 nginx. 서버 구성:

source s_net {
   tcp(ip(0.0.0.0) port(1999)
   tls( key_file("/etc/syslog-ng/key.d/privkey.pem")
        cert_file("/etc/syslog-ng/cert.d/cacert.pem")
        peer_verify(optional-untrusted)) ); };

destination d_net_nginx_access { file("/mnt/syslog_storage/HOSTS/$HOST
/nginx.access.log"); };

filter f_nginx_access { program("nginx") };

log { source(s_net); filter(f_nginx_access); destination(d_net_nginx_access); };

클라이언트 구성:

source s_src {
       system();
       internal();
};

destination tls_log {
tcp("10.10.10.1" port(1999)
tls( ca_dir("/etc/syslog-ng/ca.d")) );};

destination d_nginx_access { file("/var/log/nginx/nginx.access.log"); };

filter f_nginx { program("nginx"); };

log { source(s_src); filter(f_nginx); destination(d_nginx_access); };

# All messages send to a remote site
#
log { source(s_src); destination(tls_log); };

내가 여기서 무엇을 놓치고 있는 걸까요?

답변1

이 기능은 한때 nginx의 상용 버전용으로 예약되었지만 이후 운영 체제 버전에 포함되었습니다. ngx_http_log_module이를 달성하기 위해 nginx 모듈을 사용할 수 있습니다 .

다음은 설정 및 구성을 설명하는 모듈 문서에 대한 링크입니다.
http://nginx.org/en/docs/http/ngx_http_log_module.html

용법

Syntax:
access_log path [format [buffer=size [flush=time]] [if=condition]];
access_log path format gzip[=level] [buffer=size] [flush=time] [if=condition];
access_log syslog:server=address[,parameter=value] [format [if=condition]];
access_log off;

Default:    
access_log logs/access.log combined;
Context:    http, server, location, if in location, limit_except

세 번째 형식은 사용하려는 형식입니다.

access_log syslog:server=address[,parameter=value] [format [if=condition]];

Syslog를 실행하는 원격 서버의 IP 주소를 포함합니다.

관련 정보