当我运行它时,我在logstash日志中得到了这个异常。
[2018-01-14T15:42:00,912] [错误][logstash.outputs.elasticsearch] Elasticsearch 的未知设置“主机” [2018-01-14T15:42:00,921][错误][logstash.agent]无法执行操作{:action=>LogStash::PipelineAction::Create/ pipeline_id:main, :exception=>"LogStash::ConfigurationError", :message=>"您的配置有问题。", :backtrace=>["/usr/share/logstash/logstash-core/lib/logstash/config
/mixin.rb:89:在
初始化'", “/usr/share/logstash/logstash-core/lib/logstash/output_delegator_strategies/shared.rb:3:inconfig_init "/usr/share/logstash/logstash-core/lib/logstash/outputs/base.rb:63:in
初始化'", “/usr/share/logstash/logstash-core/lib/logstash/plugins/plugin_factory.rb:86:ininitialize'", "/usr/share/logstash/logstash-core/lib/logstash/output_delegator.rb:25:in
插件'", "(eval):87:在plugin'", "/usr/share/logstash/logstash-core/lib/logstash/pipeline.rb:114:in
eval'", “/usr/share/logstash/logstash-core/lib/logstash/pipeline.rb:86:in<eval>'","org/jruby/RubyKernel.java:994:in
初始化'", “/usr/share/logstash/logstash-core/lib/logstash/pipeline_action/create.rb:40:ininitialize'", "/usr/share/logstash/logstash-core/lib/logstash/pipeline.rb:171:in
块 在收敛状态'", “/usr/share/logstash/logstash-core/lib/logstash/agent.rb:141:inexecute'", "/usr/share/logstash/logstash-core/lib/logstash/agent.rb:335:in
块 在erge_state'”,“org/jruby/RubyArray.java:1734:inwith_pipelines'", "/usr/share/logstash/logstash-core/lib/logstash/agent.rb:332:in
converge_state'”, “/usr/share/logstash/logstash-core/lib/logstash/agent.rb:166:ineach'", "/usr/share/logstash/logstash-core/lib/logstash/agent.rb:319:in
with_pipelines'”, “/usr/share/logstash/logstash-core/lib/logstash/agent.rb:164:inblock in converge_state_and_update'", "/usr/share/logstash/logstash-core/lib/logstash/agent.rb:141:in
执行'", “/usr/share/logstash/logstash-core/lib/logstash/runner.rb:343:inconverge_state_and_update'", "/usr/share/logstash/logstash-core/lib/logstash/agent.rb:90:in
初始化中的块'"]}block in execute'", "/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/stud-0.0.23/lib/stud/task.rb:24:in
这是我的配置:
input{
lumberjack {
port => 5044
type => "logs"
ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
}
}
filter{
if[type] == "syslog" {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:sysylog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
add_field => ["received_at", "%{@timestamp}" ]
add_field => ["received_from", "%{host}" ]
}
syslog_pri {}
date {
match => ["syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
}
}
output{
elasticsearch { host =>localhost }
stdout { codec => rubydebug }
}
我该如何解决。谢谢。 我使用最新版本的 ELK
如果你检查输出的elasticsearch插件,它有主机参数。
它需要一个主机参数和一个字符串数组。
https://www.elastic.co/guide/en/logstash/current/plugins-outputs-elasticsearch.html#plugins-outputs-elasticsearch-hosts
我的logstash->elastic插件看起来像这样:
elasticsearch{
hosts=>["localhost:9200"]
index=>"logstash-%{+YYYY.MM.dd}"
}
您可能还需要设置索引参数。
在
initialize'", "org/logstash/execution/JavaBasePipelineExt.java:72:in
初始化'”,“/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:48:在initialize'", "/usr/share/logstash/logstash-core/lib/logstash/pipeline_action/create.rb:52:in
执行'”,“/usr/share/logstash/logstash-core /lib/logstash/agent.rb:392:in `converg_state 中的块'"]}