我正在尝试为 ELK 创建一个简单的 hello world,并能够通过互联网查看 kibana 报告。我已经安装了 kibana、logstash、nginx 和 elastic search。这是我的/etc/logstash/conf.d/10-syslog.conf
:
input {
file {
path => [ "/var/log/*.log", "/var/log/messages", "/var/log/syslog" ]
type => "syslog"
}
}
output {
elasticsearch { host => localhost }
stdout { codec => rubydebug }
}
filter {
if [type] == "syslog" {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_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" ]
}
}
}
我能够从互联网访问 Kibana。但是,我看不到报告,因为当我单击“仪表板”、“可视化”或“发现”时,Kibana 出现错误:
Index Patterns: Please specify a default index pattern
我到底该如何指定它?我现在只想保持简单。
答案1
Kibana 使用“索引模式”来可视化存储在 elasticsearch 索引中的数据。
您需要访问 elasticsearch restful 端点,然后通过执行以下操作来检查您的索引的名称
curl -X GET <elasticsearchIP>:<elasticsearchport>/_cat/indices?v
这将列出所有索引。然后,在 kibana 下转到管理 -> 索引模式 -> 创建索引模式
在这里,您可以编写一个与一个或多个 elasticsearch 索引匹配的正则表达式。例如,如果您的索引看起来像我的:
logstash-2018.10.29
logstash-2018.11.14
您可以编写一个名为 log* 的索引模式,它将显示来自这两个 logstash 索引的数据
答案2
进入 Kibana -> 管理 -> 高级设置,填写 defaultIndex 字段即可,当然这个索引必须要在 ES 中存在。