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
3番目の形式は使用したい形式です。
access_log syslog:server=address[,parameter=value] [format [if=condition]];
Syslogを実行しているリモートサーバーのIPアドレスが含まれています。