清漆缓存日志无法正常工作

时间:2012-08-28 19:04:41

标签: varnish

varnishlog正在返回:

_.vsm: No such file or directory

之前有其他人见过吗?

4 个答案:

答案 0 :(得分:11)

看起来 varnishlog 没有指向正确的目录,或者无法访问它。

请检查 varnishd 的命令行选项。如果deamon使用-n <instancename>参数运行,您还必须将其添加到 varnishlog

第二件事,就是看到varnish目录的权限。 要查看当前使用的目录,必须登录root并运行以下命令:

$ lsof -p <PID of varnishd> | grep vsm

一旦泄露,您必须确保完整路径具有您的用户的读取权限。

答案 1 :(得分:8)

在Varnish 4.1中,根本原因可能是由于读取_.vsm文件的权限不正确。例如:

# service varnishncsa start
 * Starting HTTP accelerator log deamon                                                                                                                                                               [fail] 
Can't open log - retrying for 5 seconds
Can't open VSM file (Cannot open /var/lib/varnish/dev-me/_.vsm: Permission denied

Varnishncsa来自varnishlog用户。但/var/lib/varnish/dev-me/_.vsm只能从清漆组或root用户读取:

# ls -l /var/lib/varnish/dev-me/_.vsm
-rw-r----- 1 root varnish 84934656 Apr 15 05:58 /var/lib/varnish/dev-me/_.vsm

因此,您可以通过以下方式解决此问题:

# usermod -a -G varnish varnishlog
# id varnishlog
uid=110(varnishlog) gid=116(varnishlog) groups=116(varnishlog),115(varnish)

现在你可以开始varnishncsa。

答案 2 :(得分:2)

在我们的例子中,服务器的主机名已更改。

如果未指定实例名称,则varnish使用主机名。它正在寻找一个使用新主机名保存共享内存日志记录配置的目录,但该实例仍在使用旧主机名的目录中运行。

重新启动清漆解决了这个问题。

答案 3 :(得分:0)

我在尝试发出varnishadm命令时遇到了同样的错误消息。原来我在没有停止清漆的情况下重命名了我的机器。 / var / varnish /中有一些目录对应于varnish需要访问的机器名。 “sudo service varnish restart”为我解决了这个问题。

相关问题