11

清漆日志正在返回:

_.vsm: No such file or directory

有没有其他人见过这个?

4

4 回答 4

12

看起来varnishlog没有指向正确的目录,或者没有访问权限。

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

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

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

一旦显示出来,您只需确保完整路径对您的用户具有读取权限。

于 2012-08-29T12:01:05.907 回答
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只能从 varnish 组或 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。

于 2016-04-15T10:27:01.687 回答
2

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

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

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

于 2014-08-29T13:37:15.197 回答
0

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

于 2013-07-17T03:50:19.840 回答