我有一个logstash实例,版本2.3.1没有使用命令
运行sudo service logstash start
每当我运行此命令时,它都会返回logstash started
,过了一会儿,当我检查状态时,我发现logstash没有运行。虽然,当我从opt
启动logstash以在终端上获得输出时,它运行时没有任何错误。
请注意,logstash.err
和logstash.stdout
文件为空,logstash.log
文件无处可寻。我还在LS_GROUP
中将adm
设置为init.d
,这导致了另一个实例上的相同问题,但即使这样现在似乎也不起作用。任何帮助将不胜感激!
答案 0 :(得分:2)
在Ubuntu系统上,logstash可以看到此行为。要解决此问题,您可以将/etc/init.d/logstash
中的logstash用户组更改为代表管理员的adm
,您就可以了。
答案 1 :(得分:0)
这是Logstash的正常行为。 你可以测试你的Logstash实例是否正常工作吗?
视窗: 转到logstash的bin文件夹 并输入logstash
Linux中: 在提示符(logstash实例的bin文件夹)中输入此命令 的/ opt / logstash / bin中/ logstash
这两种: 如果您没有给出命令...您的logstash实例具有正确的设置。
您始终可以使用此命令运行Logstash实例
logstash -e 'input { stdin { } } output { stdout {} }'
在此之后,您可以输入一些文本值,然后输出到您的控制台。
如果一切正常,您可以确保Logstash实例正常运行。
你可能会问自己这是为什么?这是因为Logstash等待启动,直到它获得运行配置或其他选项。
如果要在启动时自动启动Logstash。您需要使用此命令。
sudo update-rc.d logstash defaults 96 9
答案 2 :(得分:0)
实际上,您应该阅读logstash的指南。在"入门部分"中,官方文档具有启动Logstash工作的正确方法。 首先,您应该编写一个配置文件,例如" std.conf",如下所示:
input {
stdin {
}
}
output{
stdout{
codec=>rubydebug
}
}
然后,开始您的logstash:
bin/logstash -f conf/std.conf
如果您希望此工作可以在后台运行(例如将一些日志文件放入elasticsearch),您可能还需要添加"&"在命令的最后,像这样:
bin/logstash -f conf/getlog.conf &
使用此文件(std.conf)和此命令,您的logstash将启动,如果您在终端中键入任何单词,它将在终端中打印出来,如下所示:
{
"message" => "hello",
"@version" => "1",
"@timestamp" => "2016-08-06T19:47:36.543Z",
"host" => "bag"
}
现在,您已经获得了logstah的正常操作,您可能需要更多信息,从那里:The official documentation of logstash
试试这个,继续前进,对你来说很容易〜