配置logstash输出到elasticsearch

标签:
logstashelasticsearchhupconfigurationerror |
分类: 大数据处理 |
logstash版本:2.4.0
Logstash是一个接收,处理,转发日志的工具。支持系统日志,webserver日志,错误日志,应用日志,总之包括所有可以抛出来的日志类型,logstash快速学习可以参考http://www.tuicool.com/articles/6fAZJz
logstash -e 'input { stdin { } } output { stdout
{} }'
logstash -e “input { stdin { } } output { stdout { codec =>
rubydebug } }”
"message" => "goognight moon\r",
"@version" => "1",
"@timestamp" =>
"2016-10-17T17:16:41.675Z",
"host" =>
"LAPTOP-TGBM23CB"
logstash -e "input{stdin{}}
output{elasticsearch{hosts=>localhost}}"
elasticsearch版本:2.4.1
jdk版本:1.8
啥是logstash?
logstash的hello world测试
我们现在可以在命令行下输入一些字符,然后我们将看到logstash的输出内容:
nihao
2016-10-17T17:15:02.611Z LAPTOP-TGBM23CB nihaonihao
logstash难度高一点的测试(注意是-e后是双引号,否则会报错)
我们再输入一些字符,这次我们输入"goodnight moon":
goognight moon
{
}
使用Elasticsearch存储日志
logstash输入后的提示如下:
elasticsearch的head插件中查看结果如下:
1、elasticsearch 新版(比如2.4)host已改为hosts,如果还是使用 logstash -e "input{stdin{}}
output{elasticsearch{ host=>localhost}}"会导致报错如下:
Pipeline aborted due to error
{:exception=>”LogStash::ConfigurationError”
2、报错如下:"error":{"root_cause":[{"type":"index_creation_exception","reason":"failed
to create
index"}],"type":"illegal_argument_exception","reason":"Unknown
Analyzer type [ik] for [default]"},"status":400}
{:class=>"Elasticsearch::Transport::Transport::Errors::BadRequest",
:level=>:error}
这个是因为elasticsearch的配置中有ik,但实际上es的plugin目录下没有ik这个工具,这说明logstash与elasticsearch是强相关的
3、报错如下:The signal HUP is in use by the JVM and will not work
correctly on this platform
这个很大程度上是因为logstash的处理方认为logstash传递的config不正确,我们可以通过logstash
xxx
--configtest检查logstash本身的配置语法有没有问题,如果检查没有问题则是config中参数不正确导致处理方返回错误信息
4、logstash -e后面需要使用双引号,而不是使用单引号,否则也会导致上面第3点提到的错误,参考:http://blog.csdn.net/wyqlxy/article/details/52688920