Logstash 对数存储配置测试

Logstash 对数存储配置测试,logstash,logstash-configuration,Logstash,Logstash Configuration,我运行了服务日志存储配置测试,但给出的错误是: 日志存储:无法识别的服务 我可以单独运行logstash服务,但不能使用“configtest”。在etc/logstash/conf.d/I中,我创建了logstash.conf文件,其中包含如下代码:- 其他信息:- service logstash status ● logstash.service - logstash Loaded: loaded (/etc/systemd/system/logstash.service; disa

我运行了服务日志存储配置测试,但给出的错误是:

日志存储:无法识别的服务

我可以单独运行logstash服务,但不能使用“configtest”。在etc/logstash/conf.d/I中,我创建了logstash.conf文件,其中包含如下代码:-

其他信息:-

service logstash status
● logstash.service - logstash
   Loaded: loaded (/etc/systemd/system/logstash.service; disabled)
   Active: active (running) since Mon 2016-12-26 12:40:58 PST; 6s ago
 Main PID: 3512 (java)
   CGroup: /system.slice/logstash.service
           └─3512 /usr/bin/java -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX...

Dec 26 12:40:58 Mr systemd[1]: Started logstash.
使用configtest运行时的服务:-

root@Mr:/# service logstash configtest
logstash: unrecognized service
我在debian8机器上运行这个,希望你们能给我一个好的解决方案

# This input block will listen on port 10514 for logs to come in.
# host should be an IP on the Logstash server.
# codec => "json" indicates that we expect the lines we're receiving to be in JSON format
# type => "rsyslog" is an optional identifier to help identify messaging streams in the pipeline.

input {
  udp {
    host => "logstash_private_ip"
    port => 10514
    codec => "json"
    type => "rsyslog"
  }
}

# This is an empty filter block.  You can later add other filters here to further process
# your log lines

filter { }

# This output block will send all events of type "rsyslog" to Elasticsearch at the configured
# host and port into daily indices of the pattern, "rsyslog-YYYY.MM.DD"

output {
  if [type] == "rsyslog" {
    elasticsearch {
      hosts => [ "elasticsearch_private_ip:9200" ]
    }
  }
}
旧木屋

/opt/logstash/bin/logstash --configtest -f /etc/logstash/conf.d/ 
后来,它安装在/usr/share/logstash中,因此请尝试以下两种方法之一

/usr/share/logstash/bin/logstash --configtest -f <the config file/folder>

您应该在CentOS 7版上执行此操作:

/etc/rc.d/init.d/logstash configtest /etc/logstash/conf.d/test.conf

我也有同样的问题,这对我帮助很大:

如果您正在运行Logstash版本5,则以下用于测试配置的命令将显示错误:

sudo /opt/logstash/bin/logstash --configtest -f /etc/logstash/conf.d/
测试它的正确命令是:

sudo -u logstash /usr/share/logstash/bin/logstash --path.settings /etc/logstash -t
我从Ubuntu服务器16.04开始运行ELK+filebeat,结果是: 将Logstash的日志发送到/var/log/Logstash,该日志现在通过log4j2.properties配置 配置正常

资料来源:
;

使用官方
logstash
Docker映像验证本地文件:

docker run -it -v /etc/logstash:/etc/logstash logstash /usr/share/logstash/bin/logstash -t -f /etc/logstash/logstash.conf
这假设您的配置文件位于本地的
/etc/logstash
,然后将该文件夹装载到容器中,路径相同。然后二进制文件可以在容器中找到配置文件

可能有更好的方法来运行该命令,这对我很有效。

对于Logstash5.1ITS

/usr/share/logstash/bin/logstash --config.test_and_exit -f logstash.yml

如果你想用docker容器logstash 6.x测试你的配置

docker run -it -v $PWD:/etc/logstash/conf.d --entrypoint "bin/logstash" logstash "--config.test_and_exit"

在Centos 7上,还可以使用以下命令:

/usr/share/logstash/bin/logstash --path.settings /etc/logstash/
--config.test_and_exit /etc/logstash/conf.d/logstash.conf

-bash:/usr/share/logstash:是一个目录。我想你的意思是“/usr/share/logstash/bin/logstash”,在logstash的版本5中也没有--configtest。现在是:“-t、-config.test_和_exit检查配置的有效语法,然后退出。”我正在使用带有管道的logstash 6.0。如何对不同的管道进行配置测试--config.test_和_exit-f完全忽略pipelines.yml文件。hi@cybervedaa,您是否使用-f一次或多次,因为它会忽略设置文件夹的多个声明。也,使用--log.level=debug-检查调试标志以获取更多详细信息。您可以通过将
-f…
替换为
-path.settings/etc/logstash
来测试管道。在这个解决方案@Cybervedaa中,这对我很有效,但必须为Mac
docker run-it-v$PWD:/lsconfigs logstash/usr/share/logstash/bin/logstash-t-f/lsconfigs/logstash.conf
注意:确保logstash.config位于根目录中,您正在运行docker命令。这是使用Ansible ELK/logstash-f/etc/logstash/conf.d/fileb安装的logstash版本6.5.1。conf--config.test_and_exit/usr/share/logstash/bin查看此目录,如果您是通过rpm包安装的
/usr/share/logstash/bin/logstash --path.settings /etc/logstash/
--config.test_and_exit /etc/logstash/conf.d/logstash.conf