【发布时间】:2014-08-21 16:23:57
【问题描述】:
我想使用 ElasticSearch、Kibana 和 Logstash 在世界地图中显示访问我的应用的用户数量。
这是我的日志(Json 格式):
{
"device": "",
"public_ip": "70.90.17.210",
"mac": "00:01:02:03:04:05",
"ip": "192.16.1.10",
"event": {
"timestamp": "2014-08-15T00:00:00.000Z",
"source": "system",
"name": "status"
},
"status": {
"channel": "channelname",
"section": "pictures",
"downlink": 1362930,
"network": "Wi-Fi"
}
}
这是我的配置文件:
input {
file {
path => ["/mnt/logs/stb.events"]
codec => "json"
type => "event"
}
}
filter {
date {
match => [ "timestamp", "yyyy-MM-dd HH:mm:ss", "ISO8601" ]
}
}
filter {
mutate {
convert => [ "downlink", "integer" ]
}
}
filter {
geoip {
add_tag => [ "geoip" ]
database => "/opt/logstash/vendor/geoip/GeoLiteCity.dat"
source => "public_ip"
target => "geoip"
add_field => [ "[geoip][coordinates]", "%{[geoip][longitude]}" ]
add_field => [ "[geoip][coordinates]", "%{[geoip][latitude]}" ]
}
mutate {
convert => [ "[geoip][coordinates]", "float" ]
}
}
output {
elasticsearch {
host => localhost
}
}
在 Kibana 的最后,我只看到一个空的 geoip 标签
谁能帮助我并指出我的错误在哪里?
【问题讨论】:
-
你能显示 rubydebug 输出的输出吗? ` 输出 { elasticsearch { host => localhost } stdout { codec => rubydebug } } `
-
感谢您的回答。您能否更详细地解释如何运行它,因为我对 Ruby 不太熟悉提前谢谢
-
只需将您拥有的输出块替换为我之前评论中的输出块
-
好的,我将它添加到我的logstash配置文件中,之后我重新启动了logstash(它运行正常),我需要寻找什么?提前谢谢你
标签: elasticsearch logstash geoip kibana