如何设置 Logstash 以便在它作为服务自动启动时读取默认配置文件
How to setup Logstash so that default configure file is read when it start up automatically as a service
我正在尝试设置 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 作为服务没有读取您的 Apache 日志文件的权限。
您需要 chmod 755
您的 Apache 日志文件夹(在 /etc/httpd/logs
中),然后它应该工作得更好。
这对我们也有用。使用命令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 命令时,一切都正确启动。
我正在尝试设置 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 作为服务没有读取您的 Apache 日志文件的权限。
您需要 chmod 755
您的 Apache 日志文件夹(在 /etc/httpd/logs
中),然后它应该工作得更好。
这对我们也有用。使用命令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 命令时,一切都正确启动。