logging - Kibana 拆分 URL

标签 logging nginx elasticsearch kibana

我在 Kibana 3 中遇到问题。
我正在存储 Nginx 访问日志,需要显示 HitTest 门的 Web 请求。

我正在使用带有这个简单过滤器的logstash:

filter {
grok {
    match => [ "message", "%{SYSLOGBASE} %{COMBINEDAPACHELOG}" ]
}}

在一个查询的 Elasticsearch 结果中似乎没问题:
root@elk01:~# curl -XGET http://localhost:9200/logstash-2014.11.11/nginx/6bf4PWmhQq6bV0T5YCwI5w?pretty
{
  "_index" : "logstash-2014.11.11",
  "_type" : "nginx",
  "_id" : "6bf4PWmhQq6bV0T5YCwI5w",
  "_version" : 1,
  "found" : true,
  "_source":{"message":"Nov 11 01:00:19 web09 ngxaccess: 178.178.178.178 - - [11/Nov/2014:01:00:10 +0100] \"GET /avatars/t/144402.jpg HTTP/1.1\" 200 7019 \"http://www.domain.com/fr\" \"Mozilla/5.0 (iPhone; CPU iPhone OS 7_0_6 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B651 Safari/9537.53\"","@version":"1","@timestamp":"2014-11-11T00:00:20.249Z","type":"nginx","host":"elk01","path":"/var/log/HOSTS/10.10.10.10/access.log","timestamp":["Nov 11 01:00:19","11/Nov/2014:01:00:10 +0100"],"logsource":"web09","program":"ngxaccess","clientip":"178.178.178.178","ident":"-","auth":"-","verb":"GET","request":"/avatars/t/144402.jpg","httpversion":"1.1","response":"200","bytes":"7019","referrer":"\"http://www.domain.com/fr\"","agent":"\"Mozilla/5.0 (iPhone; CPU iPhone OS 7_0_6 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B651 Safari/9537.53\""}
}

映射似乎也不错:
root@elk01:~# curl -XGET http://localhost:9200/logstash-2014.11.11/_mapping?pretty
...
"request" : {
        "type" : "string",
        "norms" : {
          "enabled" : false
        },
        "fields" : {
          "raw" : {
            "type" : "string",
            "index" : "not_analyzed",
            "ignore_above" : 256
          }
        }
      },

但是在 Kibana 中,我有一个拆分的请求字段,例如本示例中的头像,而不是/avatars/t/144402.jpg。

我究竟做错了什么?
有人已经有这个问题了吗?

提前致谢。

贝努瓦

最佳答案

是的,每个曾经使用 elasticsearch 处理非单词数据(例如日志文件)的人都面临过这个问题。

正在分析该字段,如您的映射所示。 Logstash 试图通过创建未分析的“原始”多字段来帮助您。在 kibana 中,尝试引用“request.raw”。

关于logging - Kibana 拆分 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26864881/

相关文章:

nginx - nginx源代码中的 "elts"代表什么

ubuntu - nginx 已启动但端口 80 未在 AWS 上使用(根据 netstat)

json - Logstash:无法将事件索引到Elasticsearch

java - 使用 JEST 客户端在 ElasticSearch 中的节点之间切换

java日志异常类型

java - Java 中每个应用程序使用一个记录器对象的性能

svn - 有没有像 Git 的 SVN 的 Tig 之类的东西?

python - 我可以将环境变量添加到 python 记录器 ini 文件配置中吗?

http - nginx 上传 client_max_body_size 问题

elasticsearch - 我可以使用不带主体的GET在Elasticsearch中按一个字段搜索并按另一个字段搜索吗?