我/var/log/varnish/
有一些旧的 varnish 日志,由 生成varnishlog
,由于logrotated
,现在是 gz 格式:
-rw-r--r-- 1 varnishlog varnish 143068514 Aug 10 23:59 varnish.log.2017-08-10.gz
-rw-r--r-- 1 varnishlog varnish 156373518 Aug 11 23:59 varnish.log.2017-08-11.gz
-rw-r--r-- 1 varnishlog varnish 134255825 Aug 12 23:59 varnish.log.2017-08-12.gz
-rw-r--r-- 1 varnishlog varnish 156992529 Aug 13 23:59 varnish.log.2017-08-13.gz
-rw-r--r-- 1 varnishlog varnish 176751837 Aug 14 23:59 varnish.log.2017-08-14.gz
-rw-r--r-- 1 varnishlog varnish 155948012 Aug 16 00:01 varnish.log.2017-08-15.gz
-rw-r--r-- 1 varnishlog varnish 169977134 Aug 17 00:01 varnish.log.2017-08-16.gz
head
我已经将它们提取到另一个位置并尝试通过/查看它们,more
但它们看起来是二进制的。
因此我尝试varnishlog
使用以下任一参数打开它们:
[-N filename] VSM filename
[-r filename] Binary file input
但这并没有起到作用,给我:
Can't open log - retrying for 5 seconds
和:
Can't open log file (Not a VSL file:
关于如何从清漆中检查那些历史记录,您有什么想法吗?
我用的是varnish-4.1.1
答案1
您看到的错误是由于缺乏权限造成的。请尝试:
sudo varnishlog -N <file.vsm> -d
答案2
正确的方法确实是使用-r
,但由于自定义的旋转方式不正确,我的文件被损坏了/etc/logrotate.d/varnish
。恢复为默认旋转方法有效。
答案3
您可以使用以下命令解压来阅读日志
gunzip -c <filename.log.gz>
然后你可以用
varnishlog -r <filename.log>