我遇到了与logstash和elasticsearch相关的问题。
当我尝试通过logstash从远程计算机向我的elasticsearch服务器发送日志时,没有问题,索引已创建。 但是当我尝试通过logstash从托管elasticsearch的服务器发送日志时,没有创建索引,没有任何反应。
从logstash登录显示logstash看到了我正在尝试发送的日志的whitout问题。
我无法弄清楚为什么会这样。 任何的想法 ? 非常感谢
ES版本:1.0.1 Logstash版本:1.4.0
logstash配置文件:
input {
file {
type => "dmprocess"
path => "/logs/mysql.log*"
}
}
filter{
grok{
type => "dmprocess"
match => [ "message", "%{DATESTAMP:processTimeStamp} %{GREEDYDATA} Extraction done for %{WORD:alias} took %{NUMBER:milliseconds:int} ms for %{NUMBER:rows:int} rows",
"message", "%{DATESTAMP:processTimeStamp} %{GREEDYDATA} : %{GREEDYDATA} %{WORD:alias} took %{NUMBER:milliseconds:int} ms"]
}
date{
match => [ "processTimeStamp", "YY/MM/dd HH:mm:ss"]
}
}
output {
elasticsearch {
host=>"devmonxde"
cluster => "devcluster"
}
}
更新 似乎我无法通过input:file将日志从linux主机发送到elasticsearch实例(远程或本地)。 虽然我能够通过输入发送数据到ES:stdin。所以没有连接/端口问题。
如果我使用相同的配置运行logstash,但是从Windows主机运行它就像魅力一样。
Windows上的默认行为似乎是“开始”。这看起来与文档http://logstash.net/docs/1.4.0/inputs/file#start_position
相矛盾似乎logstash不会导入旧日志,即使文件输入的start_position =“begin”也是如此。
问题是我的旧日志未导入ES。 我正在为此创建另一篇文章。 谢谢 Old logs are not imported into ES by logstash
答案 0 :(得分:0)
我的第一次尝试是将主机更改为localhost,127.0.0.1或外部IP地址,以确保主机名不是问题。
另一件事是添加一个输出来将所有内容记录到控制台,方便地检查消息是否进入并以正确的方式解析。