我有几个负载均衡器,它们都对多个 varnish 实例执行健康检查。varnish 端的健康检查包括匹配请求方法和 URL 以返回 200 响应。
if (req.method == "GET" && req.url == "/ping") {
return(synth(200, "OK"));
}
使用 HAProxy,我已将健康检查配置为在后端服务器上轮询 /ping。这会在 varnishncsa 中生成大量消息。如果日志条目与某个 req.url 匹配,是否可以以某种方式删除进入 varnishncsa 的日志条目?
答案1
除了 Kirrus 提供的链接之外,这里还有一个有关 VSL 查询语言的参考: http://www.varnish-cache.org/docs/4.0/reference/vsl-query.html
答案2
varnishncsa 实际上只是对 varnishlog 使用查询。您可以使用“-q”覆盖它使用的查询 - 更新您选择的 pid0 系统中的命令行参数。如果是 initV,则覆盖 /etc/default/varnishncsa 中的 DAEMON_OPTS。
它的实际文档有点稀少,但这里有一些例子: https://info.varnish-software.com/blog/logging-varnish-40