【问题标题】:How to setup Logstash so that default configure file is read when it start up automatically as a service如何设置 Logstash 以便在它作为服务自动启动时读取默认配置文件
【发布时间】:2016-08-08 23:18:04
【问题描述】:

我正在尝试设置 Logstash,因为我想将 Apache 日志信息转发到 Elasticsearch。 我想在服务器启动时自动启动 Logstash 进程。

我可以将 Logstash 作为服务进行抵抗并自动启动该进程,但该服务似乎尚未读取配置文件。 当我使用 -f 选项启动 logstash 时,它可以正常工作,所以,我可以说配置文件的内容没有问题。

手册说,如果我将 *.conf 文件放在 /etc/logstash/conf.d/ 下,服务会在启动时读取配置文件,但它永远不会像我预期的那样工作。

我应该如何配置logstash,以便它在启动时读取我的配置文件?

这是我的配置文件,它已放在 /etc/logstash/conf.d/01-httpdlog.conf

input {
    file {
        path => "/etc/httpd/logs/access_log"
        start_position => beginning
    }
}
filter {
    grok {
        match => { "message" => "%{COMBINEDAPACHELOG}"}
    }
}
output {
    elasticsearch {
       hosts => ["xxx.xxx.xxx.xxx:9200"]

    }
    file{
        path => "/tmp/result.txt"
    }
    stdout {}
}

【问题讨论】:

  • 你能用你的logstash配置文件更新你的问题吗?
  • 感谢您的评论!我将我的配置文件设置添加到我的问题字段中!

标签: elasticsearch logstash logstash-grok logstash-configuration


【解决方案1】:

可以肯定的是,将 logstash 作为服务运行的用户没有读取您的 Apache 日志文件的权限。

您需要 chmod 755 您的 Apache 日志文件夹(在 /etc/httpd/logs 中),然后它应该会更好地工作。

【讨论】:

  • 当我将logstash作为服务启动时,该进程的所有者是谁?
  • 默认是logstash 组中的logstash 用户。查看您的 /etc/init.d/logstash 配置文件。
  • 更改权限有什么好运气吗?
  • 是的,很高兴我们知道了!!
  • 很高兴为您提供帮助!
【解决方案2】:

这也适用于我们。使用命令 ll 检查文件夹的权限,发现该文件夹具有 root 权限。然后更改了我们的 /etc/logstash 和 /usr/share/logstash 文件夹的权限。使用命令; sudo chown -R logstash:logstash logstash 在 /etc 文件夹中。对于我们的 /usr/share/logstash 文件夹,只有一个文件没有正确的权限,所以我们使用了 cmd; sudo chown logstash:logstash 更改该文件的权限。更新权限后,当我们使用 sudo systemctl start logstash 命令时,一切都正常启动。

【讨论】:

    猜你喜欢
    • 2012-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-05
    • 2021-09-27
    • 1970-01-01
    相关资源
    最近更新 更多