特性: 允许从 varnish 中读取实时日志
作者: neufeind创建于 2026年5月21日更新于 2026年8月8日
标签log-processing
默认情况下, Varnish 会将日志记录到环形缓存中,而不是文本文件中。可以让守护进程从其中读取数据,并以 ncsa 格式输出到文件或 stdout。因此,目前您可以使用 "varnishncsa" 并将其传递给 goaccess。但是,我们可能会添加直接从 Varnish 读取数据的功能。这样,我们就可以在过滤/搜索时添加一些 Varnish 特定的字段,例如过滤来自客户端的请求或发送到后端服务器的请求(获取数据),过滤后端服务器接收的请求,过滤是否可以从缓存中服务请求等等。这些都是可以让 varnishncsa 提前过滤的,然后将过滤后的输出传递给 goaccess。还有一个 Varnish 工具可以将环形缓存中的活动请求输出为多行输出。因此,我们甚至可以避免自己从环形缓存中解析数据(二进制数据),而是直接在后台调用 "varnishlog",然后将从该位置获取的多行输出解析为我们的字段。但是,如果要在 tui 中使用某些字段(如上所述),甚至可以在不需要实时 goaccess 的情况下对某些内容进行过滤,这将是非常棒的。对于实时日志的过滤,我们还可以将一些过滤器传递给 varnishlog 作为参数,以减少需要处理的输出量。但是,如果您想在交互式方式中添加/更改/删除过滤器,这实际上意味着需要重新启动进程(从头开始记录日志)。在主要分析实时日志的交互式使用场景中,这将是可以接受的 - 尽管有些人可能希望决定是否将某个过滤器传递给 varnishlog(并让 goaccess 仅解析部分日志数据),还是在 goaccess 中进行实时过滤。
内容来源: allinurl/goaccess