我正在使用 nginx-plus(需要付费的版本),我想通过 vhost 监控访问。
当我使用 nginx 免费版本时,我可以轻松地使用按项目munin插件:
我迁移到了 nginx plus,但没有数据。当我使用 netcat 登录到 munin node 时:
$ nc localhost 4949
# munin node at servername.com
fetch byprojects_access
controlcenter.value 0
static.value 0
ccapi.value 0
tracking.value 0
reco.value 0
主要区别在于,当我将日志记录到文件时,我通过 syslog 进行记录。每个 vhost 都使用一个标签进行记录,此处的标签为nginxreco
:
access_log syslog:server=localhost,facility=local7,tag=nginxreco,severity=info;
我在免费 nginx 下有以下日志文件配置:
access_log /var/log/nginx/reco-access.log;
因此,对于reco
vhost 来说,我必须适应插入配置来自:
'reco' => [
{'path' => '/var/log/nginx/reco-access.log'}
],
到
'reco' => [
{'path' => '/var/log/local7.log', 'regex' => 'nginxreco'}
],
因为我使用 syslog,所以日志格式发生了一点变化:它添加了日期、主机名和标签(这是 syslog 的日志记录方式)
旧格式(来自直接文件):
xx.xx.xx.xx - - [18/Mar/2014:06:25:20 +0100] "GET /HTTP/1.1" 200 52 "-" "Python-urllib/2.7"
新格式(来自系统日志):
Mar 18 06:25:20 myhostname nginxreco: xx.xx.xx.xx - - [18/Mar/2014:06:25:20 +0100] "GET /HTTP/1.1" 200 52 "-" "Python-urllib/2.7"
我究竟做错了什么 ?
答案1
local7.log 无法被 munin 读取