Kong插件Prometheus的Grafana图形化展示 mac 版本

1。kong 安装

 [mac 官网安装的教程](https://docs.konghq.com/install/macos/?_ga=2.171414304.1436893142.1569807528-400194218.1569807528)
 https://docs.konghq.com/install/macos/?_ga=2.171414304.1436893142.1569807528-400194218.1569807528

安装过程很顺利
pg 可以自己安装 也可以用docker 安装会比较的便利 学习新东西 都是先跑起来

ps:这里我先按照 docker 版本的空安装的 但是发现后面的加Prometheus 插件需要 改配置 kong的容器没有办法进去机器里面 只好?️安装原生的

但是我还是用的 docker的pg kong的数据库名已经被占用了 新建了一个kong-mac
Kong插件Prometheus的Grafana图形化展示 mac 版本_第1张图片
在kong的项目中新建一个kong.conf

kong 的配置介绍在这里
主要要制定数据库pg的配置不要使用 默认配置

pg_host = 127.0.0.1 #设置postgres数据库的连接地址
pg_port = 5432 #设置postgres数据库的端口
pg_user = kong #设置postgres数据库的用户
pg_password = kong #设置postgres数据库的密码
pg_database = kong-mac #设置postgres数据库的名称
pg_ssl = off #设置kong和postgres的连接方式
pg_ssl_verify = off

admin_listen=0.0.0.0:8001, 127.0.0.1:8444 ssl

nginx_http_include=/usr/local/Cellar/kong/1.3.0/prometheus-server.conf
~

kong migrations bootstrap [-c /path/to/kong.conf] 执行这个命令会初始化table

kong migrations bootstrap [-c /path/to/kong.conf] 启动kong
Kong插件Prometheus的Grafana图形化展示 mac 版本_第2张图片

成功后8001 数据返回如下

安装kong 管理工具 konga

项目地址

我直接采用docker安装的
实例中有很多的参数
docker run -p 1337:1337
–network {{kong-network}} \ // optional
-e “TOKEN_SECRET={{somerandomstring}}”
-e “DB_ADAPTER=the-name-of-the-adapter” \ // ‘mongo’,‘postgres’,‘sqlserver’ or ‘mysql’
-e “DB_URI=full-connection-uri”
-e “NODE_ENV=production” \ // or ‘development’ | defaults to ‘development’
–name konga
pantsel/konga
只需要容器名称 端口映射就好了
我们是在本机的kong 不需要network 要理解konga只是一个工具 去掉用kong的admin的api 所有这个是可以自己开发后台的 konga 在容器中 可以根据我们路由的ip访问到8001 就好了 所以这些参数可以在后面进入konga配置

Kong插件Prometheus的Grafana图形化展示 mac 版本_第3张图片
在安装好后 在1337端口登录后台

添加链接
Kong插件Prometheus的Grafana图形化展示 mac 版本_第4张图片

ipconfig 看看自己的ip 配置上去就好了

配置service
Kong插件Prometheus的Grafana图形化展示 mac 版本_第5张图片

我这里准备是在后端开一个swoole的htpp服务 配置的9501
Kong插件Prometheus的Grafana图形化展示 mac 版本_第6张图片

这个地方看你的服务了 你可以用go 起一个简单的http服务测试

配置router
Kong插件Prometheus的Grafana图形化展示 mac 版本_第7张图片

这个地方就是一个虚拟ip路由了

http://deliver.service.com 我配置的这个域名

然后在本地的host 配置好这个域名 我的就在本地 就是127.0.0.1 了

生产环境就是直接域名映射到kong的机器了 服务的区分 可以这个用域名区分 也可以用path 我们这里配置的path用的/ 根 所以 准备是用域名区分后端的微服务 生产环境看自己需要了
我们组以前生产环境是用path 区分服务 api.service.com/a /b /c abc 路由到不同的后端服务 这样的一个好处就是新增服务不需要 在配置新的域名映射

看看效果Kong插件Prometheus的Grafana图形化展示 mac 版本_第8张图片

我们通过http://deliver.service.com 路由到我们真正的后端服务了
为啥要加8000 端口? 8000 是kong 对外暴露的端口
生产环境你也可以换成80 这样就可以不用加端口了

现在服务已经有了 我们再来看看监控部分

我是根据这个博客安装的
飞机票

主要有几个地方没有说清楚
1Kong插件Prometheus的Grafana图形化展示 mac 版本_第9张图片

这个target数据数据源配置是错的
9090 是prometheus的数据端口 监控prpometheus自身数据的Kong插件Prometheus的Grafana图形化展示 mac 版本_第10张图片
2加kong 的数据源
这里配置了一个9542的nginx配置
推送kong的数据到prometheus
建立prometheus-server.conf配置文件,内容如下:
server {

server_name kong_prometheus_exporter;

listen 0.0.0.0:9542;



location / {

    default_type text/plain;

    content_by_lua_block {

         local prometheus = require "kong.plugins.prometheus.exporter"

         prometheus:collect()

    }

}



location /nginx_status {

    internal;

    access_log off;

    stub_status;

}

}
后来我发现其实kong 8001 的adminapi是有这个数据的 但是为了安全才?️转到这个接口的
Kong插件Prometheus的Grafana图形化展示 mac 版本_第11张图片

Kong插件Prometheus的Grafana图形化展示 mac 版本_第12张图片
其实这里的数据是一样的

**

target 配置

**
scrape_configs:

The job name is added as a label job= to any timeseries scraped from this config.

  • job_name: ‘prometheus’

    metrics_path defaults to ‘/metrics’

    scheme defaults to ‘http’.

    static_configs:

    • targets: [‘localhost:9090’,‘127.0.0.1:8001’]
      Kong插件Prometheus的Grafana图形化展示 mac 版本_第13张图片

看到prometheus 已经有kong的数据

后面就是Grafana里面的展示了

效果图
Kong插件Prometheus的Grafana图形化展示 mac 版本_第14张图片

你可能感兴趣的:(kong,nginx,prometheus,grafana)