kong 插件http_log结合logstash

Posted Yenty

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kong 插件http_log结合logstash相关的知识,希望对你有一定的参考价值。

http_log的插件有什么用:

        它就是一个日志的插件,有人说,kong本身不就有日志文件吗,为什么还要用这个?没错kong服务器上就有这些日志如下:

[root@kong logs]# cd /usr/local/kong/logs/[root@kong logs]# ll总用量 504-rw-r--r-- 1 root root 171226 813 17:41 access.log-rw-r--r-- 1 root root 38617 813 16:44 admin_access.log-rw-r--r-- 1 root root 288241 813 20:49 error.log

kong的确有这三个日志文件,但是,这三个日志文件里的日志非常的稀少,根本就不是我们想要的,或者说是看了没有意义,浪费时间而已,他们的日志内容如下

kong 插件http_log结合logstash

kong 插件http_log结合logstash

自己看这些日志文件根本就没有什么信息含量;我们可以看一下这个插件给我们的日志

kong 插件http_log结合logstash

kong 插件http_log结合logstash

这里面的信息含量非常的多,并且在可看的范围之内,能够非常的准确定位错误信息在哪

安装这个插件

注:当我们拿到任何的新的东西一定要自己去看官网: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 插件http_log结合logstash

#这样就在你的kong上面配置好了日志的插件了,下面来配置我们的logstashinput { 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 如何知道要执行哪个插件?

8-Kong和Consul如何结合

Kong 找不到自定义插件

如何将自定义 kong 插件添加到 dockerized kong

Logstash + DataHub + MaxCompute/StreamCompute 进行实时数据分析

微服务Kong——添加插件