首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Graylog收集器Sidecar为非根

Graylog收集器Sidecar为非根
EN

Stack Overflow用户
提问于 2016-09-19 08:08:00
回答 2查看 716关注 0票数 2

我想要实现这样一个体系结构,如这张图片左侧所示(因为我想使用NXLog):overview.png。我已经在我的Graylog2服务器上安装了RedHat,现在我正在处理收集器的配置。当我作为非根用户工作时,我不得不更改收集器-sidecar和NXLog的配置文件中的几个目录。现在,问题是:每次我尝试启动收集器时,我都会收到信息/错误消息:

代码语言:javascript
复制
    [gunge@bsul0959 bin]$ ./graylog-collector-sidecar -c /opt/ansible/sidecar/etc/graylog/collector-sidecar/collector_sidecar.yml
INFO[0000] Using collector-id: 13a3d80f-cb69-4391-8520-7a760b9b964e
INFO[0000] Fetching configurations tagged by: [linux apache syslog]
ERRO[0000] stat /var/run/graylog/collector-sidecar: no such file or directory
INFO[0000] Trying to create directory for: /var/run/graylog/collector-sidecar/nxlog.run
ERRO[0000] Not able to create directory path: /var/run/graylog/collector-sidecar
INFO[0000] Starting collector supervisor
ERRO[0010] [UpdateRegistration] Sending collector status failed. Disabling `send_status` as fallback! PUT http://127.0.0.1:12900/plugins/org.graylog.plugins.collector/collectors/13a3d80f-cb69-4391-8520-7a760b9b964e: 400 Unable to map property tags.
Known properties include: operating_system

在这个开始过程之后,一个收集器会出现在我的上,但是如果我中止了开始过程,收集器就会再次消失。在启动过程中,它尝试在/var/run/graylog/collector-sidecar中创建路径,但由于我不是根用户,所以它不能创建路径,因此他无法在该目录中创建nxlog.run。我已经尝试将路径更改到不需要根权限的位置,但我认为没有配置文件可以这样做。所以我查看了收集器的二进制文件,发现:

代码语言:javascript
复制
func (nxc *NxConfig) ValidatePreconditions() bool {
     if runtime.GOOS == "linux" {
          if !common.IsDir("/var/run/graylog/collector-sidecar") {
                err := common.CreatePathToFile("/var/run/graylog/collector-sidecar/nxlog.run")
                if err != nil {
                     return false
                }
          }
     }
     return true
}

看起来,路径被编码到应用程序中,并且没有方法配置anoter路径。除了获得根权限之外,您看到了解决方案吗?

EN

回答 2

Stack Overflow用户

发布于 2018-09-27 10:28:14

默认情况下,sidecar使用根帐户。创建一个新用户作为“收集器”,并给他所需的文件,并切换到他的用户将解决问题。

创建用户并授予所有权/权限:

代码语言:javascript
复制
# useradd -r collector
# chown -R collector /etc/graylog
# chown -R collector /var/cache/graylog
# chown -R collector /var/log/graylog
# setfacl -m u:collector:r /var/log/*

告诉systemd有关新用户的信息:

代码语言:javascript
复制
# vim /etc/systemd/system/collector-sidecar.service

[Service]
User=collector
Group=collector

# systemctl daemon-reload
# systemctl restart collector-sidecar

从现在开始,后端( NXLog或Beats )将使用用户收集器。希望它对你有用!

票数 2
EN

Stack Overflow用户

发布于 2016-09-19 09:55:05

目前,正如您在代码中看到的那样,这是一个固定的路径。要以正常用户的身份运行它,还必须对默认的NXlog配置文件进行更多的更改。目前,我将重新注释您编写自己的NXlog文件,并在中间不使用Sidecar。但是您可以创建一个GH问题,以便我们可以添加所需的选项。

干杯,马吕斯

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39568232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档