ngx_http_log_module
扩展日志模块,提供syslog和pipe,以及日志采样。
开启syslog日志功能需要在编译是添加参数--with-syslog,否则syslog不会生效。
syslog模块兼容syslogd。使用syslog-ng需要修改配置文件以支持udp和unix-dgram,并屏蔽unix-stream:
source s_sys { file ("/proc/kmsg" program_override("
kernel: ")); unix-dgram ("/dev/log"); internal(); udp(ip(0.0.0.0) port(514)); };
指令
Syntax: access_log log_target [format [ratio=ratio [buffer=size]]] | off
Default: access_log logs/access.log combined ratio=1
Context: http, server, location
同nginx原有access_log,各参数有固定顺序。
log_target
兼容以前的log_file参数,并添加下面三种日志类型: file:/path/to/file syslog:facility[:loglevel:[target_ip[:target_port] | target_udgram_addr]] "pipe:/path/to/exec parms" ratio
在buffer参数前,指定tengine以固定的采样率记录日志。
例如:ratio=0.0001,
那么每
经过10000条记录,tengine会记录一条。
如果需要使用buffer参数而不需要设置日志采样,不能省略此参数,需要设置ratio=1。
下面介绍下支持的三种log_target: file
与nginx的log_file对应的类型; syslog
支持通过syslog方式记录日志; facility := auth | authpriv | cron |
daemon | ftp | kern | lpr | mail | mark | news | security | syslog | user | uucp | local0 | local1 | local2 | local3 | local4 | local5 | local6 | local7 loglevel := crit | err | error | emerg | panic |
alert | warn | warning | info | notice | debug loglevel默认值 = info target_ip[:target_port]:日志输出目的主机的IP地址和端口,端口默认是UDP(514)。这里syslog只支持UDP协议 target_udgram_addr:unix dgram地址,默
认为Unix dgram(/dev/log)。这里syslog只支持UNIX DGRAM协议
例如:
syslog:user::127.0.0.1 以user类型和info级别将日志发送给127.0.0.1:514的UDP端口 syslog:user:debug 以user类型和debug级别将日志发送给本机Unix dgram(/dev/log) syslog:cron:debug:10.232.4.28 以cron类型和debug级别将日志发送到主机10.232.4.28:514的udp端口 syslog:auth:err:10.232.4.28:10 以auth类型和err级别将日志发送到主机10.232.4.28:10的udp端口 pipe
因为pipe命令行中含有空格的缘故,pipe需要使用双引号引用,命令行中的双引号需要转义。
另外pipe进程的(user, group)
遵循tengine指令user的配置,如果没有使用user指令配置的话,pipe进程将遵循tengine的默认用户设置,在编译时没有制定的情况下,默认设置是(nobody, nobody)。请注意给与pipe进程适当的权限。
Syntax: error_log log_target [debug | info | notice | warn | error | crit]
Default: error_log logs/error.log
Context: core, http, server, location
为error_log增加syslog和pipe支持,使用同access_log。
Syntax: syslog_retry_interval seconds
Default: syslog_retry_interval 1800
Context: core
建立连接失败后,下一次重试的时间间隔,单位:秒。