kong 插件http_log结合logstash
Posted Yenty
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kong 插件http_log结合logstash相关的知识,希望对你有一定的参考价值。
http_log的插件有什么用:
它就是一个日志的插件,有人说,kong本身不就有日志文件吗,为什么还要用这个?没错kong服务器上就有这些日志如下:
[ ]
[ ]
总用量 504
-rw-r--r-- 1 root root 171226 8月 13 17:41 access.log
-rw-r--r-- 1 root root 38617 8月 13 16:44 admin_access.log
-rw-r--r-- 1 root root 288241 8月 13 20:49 error.log
kong的确有这三个日志文件,但是,这三个日志文件里的日志非常的稀少,根本就不是我们想要的,或者说是看了没有意义,浪费时间而已,他们的日志内容如下
自己看这些日志文件根本就没有什么信息含量;我们可以看一下这个插件给我们的日志
这里面的信息含量非常的多,并且在可看的范围之内,能够非常的准确定位错误信息在哪
安装这个插件
注:当我们拿到任何的新的东西一定要自己去看官网:https://docs.konghq.com/hub/kong-inc/http-log/
#配置,我实在service层加上这个插件的,也可以在route上添加
curl -X POST http://kong:8001/services/829b8ede-5d5f-4821-bc54-c1458010704d/plugins
--data "name=http-log"
--data "config.http_endpoint=http://47.103.127.87:9900"
--data "config.method=POST"
--data "config.timeout=1000"
--data "config.keepalive=1000"
#上面的service-id不要和我一样,这个是配置生成的,不知道怎么配置的可以看我之前的文章,URL为logstashd的地址,端口为自定义
kong这些参数的解释为
#这样就在你的kong上面配置好了日志的插件了,下面来配置我们的logstash
input {
http {
host => "0.0.0.0"
port => 9900
additional_codecs => {"application/json"=>"json"}
codec => plain {
charset=>"GB2312"
}
threads => 4
ssl => false
}
}
output {
elasticsearch {
hosts => ["172.19.47.242:9200"]
index => "kong_http_log_%{+YYYY.MM.dd}"
}
}
#这是我配置的内容。codec后面的大括号可加可不加,其它的和我一样即可,IP和地址和我的不是一样的
在es上我们就可以看到自己的索引了
然后在kibana上配置就能够看的到了,注意:如果通过kong是可以发post的请求的,但是你得有post的接口,如果你访问的一个post请求不通的话,日志就会给你返回一个GET的请求错误,这个是我今天发现的。
它的日志中的key和value的含义如下:
以上是关于kong 插件http_log结合logstash的主要内容,如果未能解决你的问题,请参考以下文章
当 kong 节点收到请求时,kong 如何知道要执行哪个插件?
如何将自定义 kong 插件添加到 dockerized kong