小编Phi*_*eon的帖子

Logstash 无法读取它也应该具有访问权限的文件

我已经使用命令将用户添加logstash到组中。adm$ usermod -a -G adm logstash

logstash 代理尝试读取的文件之一是/var/log/nginx/foo-access.log,它具有以下权限:

-rw-r----- 1 www-data adm 0 Jul 25 07:52 /var/log/nginx/foo-access.log
Run Code Online (Sandbox Code Playgroud)

当我sudo su logstash可以读取文件时,但是,当我$ sudo service logstash_agent restart(init 脚本以logstash用户身份运行)时,它会用以下内容填充 logstash 日志:

{:timestamp=>"2013-07-31T17:05:17.287000+0000", :message=>"failed to open /var/log/nginx/foo-access.log: Permission denied - /var/log/nginx/foo-access.log", :level=>:warn}
Run Code Online (Sandbox Code Playgroud)

我可以确认 logstash 用户在 adm 组中:

$ groups logstash
logstash : logstash adm
Run Code Online (Sandbox Code Playgroud)

此文件绝对具有正确的文件访问权限:

$ getfacl /var/log/nginx/foo-access.log
getfacl: Removing leading '/' from absolute path names
# file: var/log/nginx/foo-access.log
# owner: www-data
# …
Run Code Online (Sandbox Code Playgroud)

ubuntu permissions logstash ubuntu-12.10

10
推荐指数
2
解决办法
1万
查看次数

Gearman 作业服务器 / Ubuntu

我已经安装了 Gearman,运行和传递作业非常好,但仅当我使用以下命令手动启动作业队列时:

/usr/sbin/gearmand -p 4730 -vvvv -u gearman 
Run Code Online (Sandbox Code Playgroud)

如果我这样做,我有另一个 EC2 实例作为工作人员运行,第三个正在传递作业。完美,但我不想让终端保持打开(显然)或乱七八糟的屏幕。我希望它在启动时运行。

所以:

$ ps aux | grep gearman
gearman    745  0.2  0.2   8096  1388 ?        Ss   19:11   0:00 /usr/sbin/gearmand --pid-file=/var/run/gearman/gearmand.pid --user=gearman --daemon --log-file=/var/log/gearman-job-server/gearman.log --listen=127.0.0.1
Run Code Online (Sandbox Code Playgroud)

在我看来很好。但是当我告诉我的工作人员连接时:

$ php workers/resize.php 
Waiting for job...
PHP Warning:  GearmanWorker::work(): gearman_connection_flush:write:111 in /home/ubuntu/workers/resize.php on line 20
Run Code Online (Sandbox Code Playgroud)

失败!

此外,我注意到日志文件中没有任何内容(它不是自动创建的,而是在安装时在此 init.d 脚本中引用的)。我尝试创建它,甚至 chowning 给 gearman:gearman 但那里没有乐趣,所以很难调试。

ubuntu gearman

4
推荐指数
1
解决办法
3918
查看次数

标签 统计

ubuntu ×2

gearman ×1

logstash ×1

permissions ×1

ubuntu-12.10 ×1