我是ELK的新用户。我使用heka作为ELK堆栈的日志运输代理。我已将Logstash配置为从路径中获取日志。我的logstash看起来像这样
input {
file {
path => "/var/log/nds/cmdc/cmdc.audit"
}
}
output {
elasticsearch {
hosts => ["10.209.26.147:9200"]
}
}
当我开始logstash时,以下是输出。
[root@astroELK logstash]# bin/logstash -f /etc/logstash/conf.d/astro_pdl.conf
--- jar coordinate com.fasterxml.jackson.core:jackson-annotations already loaded with version 2.7.1 - omit version 2.7.0
--- jar coordinate com.fasterxml.jackson.core:jackson-databind already loaded with version 2.7.1 - omit version 2.7.1-1
Settings: Default pipeline workers: 2
Pipeline main started
我也没有在日志中看到任何内容。如何确保logstash已从正确的路径处理日志。如果我启动ElasticSearch,我可以看到以下内容:
[Morg] recovered [0] indices into cluster_state
如果我的配置设置有任何问题,请有人告诉我。
答案 0 :(得分:1)
您需要先启动ElasticSearch。因为ElasticSearch是用于存储日志的数据库,Logstash会将日志数据推送到那里。 此外,您需要确保您的日志来到配置到输入中的日志文件。我正在提供一个示例logstash配置,它将为您提供帮助。
input {
file {
path => "<filePath>"
}
}
filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}" }
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
sniffing => true
manage_template => false
index => "%{index}-%{+YYYY.MM.dd}"
}
stdout {
codec => rubydebug
}
}
在上面的配置中,我使用简单的文件路径作为输入。在过滤器部分中,我也使用默认COMBINEDAPACHELOG
。
在输出部分,我给出了弹性搜索主机和端口,并且还为每天动态创建索引。
将此配置为您的logstash配置后,您需要先使用配置[Command logstash -f logstash-simple.conf
]重新启动elaslic搜索,然后重新启动logstash。
然后它会将您的日志推送到elasticsearch,您可以通过创建在配置中设置的索引(例如index-2016.05.16
),通过Kibana UI查看此日志。
您还可以使用针对该特定索引的curl命令检查弹性搜索中的数据。
$ curl -XGET 'http://localhost:9200/*
答案 1 :(得分:0)
file
输入插件的默认行为是在tail -f
命令中读取文件。因此,请检查文件是否有新行。您可以在文件插件中添加start_position => beginning
选项以开始从文件开头读取。
您还可以将stdout {}
添加到输出插件以及elasticsearch,它也会将结果输出到标准输出。