我想使用GoAccess作为反向代理和负载均衡器。
我的目标是创建一个自定义日志格式,它看起来非常类似于apache2 (与默认的goaccess设置兼容)。
到目前为止我做了
capture request header Referrer len 64
capture request header Content-Length len 10
capture request header User-Agent len 64
log-format %si:%sp\ %ci\ -\ -\ [%t]\ "%r"\ %ST\ %B\ "%%Referrer"\ "%%User-Agent"我的代理版本是HA-代理版本1.5.14 2015/07/02
我不知道如何从捕获的请求中提取引用者和用户代理。我找不到任何有用的自定义日志格式在手册。
我发现%hrl是捕获的请求头的字符串列表。是否可以通过键或索引提取值?
发布于 2016-03-22 08:29:17
我通过创建自己的日志格式来解决这个问题:
time-format %H:%M:%S
date-format %d/%b/%Y
log-format %^ %^ %^ %^ %^ %^ %h [%d:%t.%^] "%r" %s %b "{%R|%u}"
# %^ - skipped token
# %h - user ip
# %d - date-format
# %t - time-format
# %r - request e.g. GET /something
# %s - server status code
# %b - data response length
# %R - referer - very important if you want to know where your users come from
# %u - user agent
# There is so many skipped tokens because my haproxy put some extra information in every line or rsyslog(?)
# Sample line:
#
# Mar 22 09:09:06 server haproxy[PID]: 10.60.10.50:80 1.2.3.4 [22/Mar/2016:09:08:56.989] "POST /UIDL/?v-uiId=0 HTTP/1.1" 200 334 "{https://www.referer.com/|Mozilla/5.0 (Linux; Android 4.4.4; GT-I9060I Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.83 Mobile Saf}"capture request header Referer len 128
capture request header User-Agent len 128
log-format %si:%sp\ %ci\ [%t]\ "%r"\ %ST\ %B\ "%hr"
# %si - your server ip - very usefull if you have multiple application
# %sp - your server port
# %ci - user ip
# %t - datetime in haproxy format
# %r - request
# %ST - status code
# %B - data reponse length
# %hr - captured headers separated by "|" (Referer|User-Agent)https://serverfault.com/questions/764098
复制相似问题