Apisix网关-使用Grafana可视化Apisix的Prometheus数据

apisix,grafana,prometheus · 浏览次数 : 3

小编点评

本文指导了如何在家使用Linux系统通过RPM包安装Apache APISIX和Prometheus,并配置APISIX Dashboard。此外,还介绍了如何配置Grafana以监控APISIX和Prometheus。 1. 安装与配置APISIX ------------------------- 1.1 安装APISIX ------------ 首先,前往下载APISIX的RPM包,并将其解压到指定目录: ``` mkdir -p /opt/module tar -zxvf /tmp/apisix-2.5.0.linux-amd64.rpm -C /opt/module ``` 接着,创建并编辑systemd服务文件`prometheus.service`: ``` [Unit] Description=APISIX After=network.target [Service] Type=simple ExecStart=/opt/module/apisix-2.5.0.linux-amd64/apisix --conf=/usr/local/apisix/conf/config.yaml ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure [Install] WantedBy=multi-user.target ``` 然后,加载systemd配置并启动APISIX服务: ``` sudo systemctl daemon-reload sudo systemctl start apisesix ``` 1.2 配置APISIX ---------------- 编辑APISIX配置文件`/usr/local/apisix/conf/config.yaml`,配置如下: ``` api Version: v2 apisix: listen: 8000 cluster: listen: 8001 dashboard: enable: true auth: basicAuth: users: - username: "admin" password: "apisix" ``` 启动APISIX后,你可以通过访问`http://localhost:8000`来查看APISIX Dashboard。 2. 安装与配置Prometheus ------------------------- 1. 下载Prometheus源码包,并将其解压到指定目录: ``` mkdir -p /opt/module tar -zxvf /tmp/prometheus-2.52.0.linux-amd64.tar.gz -C /opt,module ``` 配置systemd服务文件`prometheus.service`: ``` [Unit] Description=Prometheus After=network.target [Service] Type=simple ExecStart=/opt/module/prometheus-2.52.0.linux-amd64/prometheus --config.file=/opt/module/prometheus-2.52.0.linux-amd64/prometheus.yml --web.listen-address=0.0.0.0:9090 ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure [Install] WantedBy=multi-user.target ``` 启动Prometheus服务: ``` sudo systemctl daemon-reload sudo systemctl start prometheus ``` 2. 配置Grafana以监控APISIX和Prometheus ------------------------------------------ 1. 下载Grafana源码包并将其解压到指定目录: ``` mkdir -p /share/grafana tar -zxvf /tmp/grafana-7.1.3-1.x.linux-glibc2.12-3_amd64_grafana-7.1.3-1.x.tar.gz -C /share/grafana ``` 2. 配置Grafana以允许Iframe访问和匿名访问: ``` grep -q "'allow_embedding': true" /shareGRAFANA/conf/defaults.ini if [ $? -eq 0 ]; then echo "ignore this step since 'allow_embedding': true is already set." else sed -i 's/"""/", "allow_embedding": true,"""/g' /share/grafana/conf/defaults.ini fi grep -q "'allowAnonymous': true" /share/grafana/conf/defaults.ini if [ $? -eq 0 ]; then echo "ignore this step since 'allowAnonymous': true is already set." else sed -i 's/"""/", "allowAnonymous": true,"""g' /share/grafana/conf/defaults.ini fi ``` 3. 在Grafana中添加APISIX数据源: ``` curl -X POST -H 'Content-Type: application/json' \ http://iamdemo.tp-link.com:3000/api/v1/schemas \ -d '{"name": "APISIX", "type": "prometheus", "url": "http://localhost:9090", "basicAuth": {"username": "admin", "password": "apisix"}}' ``` 4. 配置Grafana Admin用户密码: ``` curl -X POST -H 'Content-Type: application/json' \ http://iamdemo.tp-link.com:3000/api/v1/admin/users \ -d '{"username": "admin", "password": "newpassword", "email": "admin@example.com"}' ``` 完成以上步骤后,你应该能够通过Grafana监控APISIX和Prometheus的运行状况。

正文

Apisix安装部署

Apisix官网安装教程
Apisix Dashboard官网安装教程

本次教程使用RPM包安装方式 使用systemctl管理服务
Apisix配置要点

/usr/local/apisix/conf/config.yaml
Apisix服务监听
image

etcd连接配置
image

admin_key配置初始化
image

暴露Promethus格式数据
image

Apisix Dashboard配置要点
/usr/local/apisix/dashboard/conf/conf.yaml
监听配置
image

主页iframe嵌入Grafana监控页面
image

修改登录admin用户密码
image

Prometheus安装配置

Prometheus下载地址

安装
在Linux下安装
mkdir -p /opt/module
tar -zxvf /tmp/prometheus-2.52.0.linux-amd64.tar.gz -C /opt/module
配置systemd服务
/usr/lib/systemd/system/prometheus.service
systemd内容如下

[Unit]
Description=Prometheus
Documentation=https://prometheus.io/
After=network.target

[Service]
Type=simple
ExecStart=/opt/module/prometheus-2.52.0.linux-amd64/prometheus --config.file=/opt/module/prometheus-2.52.0.linux-amd64/prometheus.yml --web.listen-address=0.0.0.0:9090
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target

配置Prometheus.yml

/opt/module/prometheus-2.52.0.linux-amd64/prometheus.yml

image

启动
systemctl daemon-reload
systemctl start prometheus
登录UI界面

image

Grafana配置访问

/usr/share/grafana/conf/defaults.ini

配置以允许Iframe访问
allow_embedding = true

image

配置以允许匿名访问
[auth.anonymous]
enabled = true

image

Grafana UI管理界面配置步骤

下载Grafana指标模板文件

Apisix Grafana模版

UI界面配置Prometheus数据源

image

image

image

image

复制点进面板后的链接

http://iamdemo.tp-link.com:3000/d/bLlNuRLWz/apache-apisix?orgId=1&refresh=5s
在Apisix UI管理界面的系统设置里填入链接,提交即可

image

image

与Apisix网关-使用Grafana可视化Apisix的Prometheus数据相似的内容:

Apisix网关-使用Grafana可视化Apisix的Prometheus数据

Apisix安装部署 Apisix官网安装教程 Apisix Dashboard官网安装教程 本次教程使用RPM包安装方式 使用systemctl管理服务 Apisix配置要点 /usr/local/apisix/conf/config.yaml Apisix服务监听 etcd连接配置 admin_

apisix~jwt-auth插件

在网关开启jwt-auth插件之后,你的网关就具有了jwt解析和校验的功能,主要是校验jwt token的有效性,包含过期时间和签名等。 https://apisix.apache.org/docs/apisix/plugins/jwt-auth/ 支持的签名算法 "HS256" "HS512" "

apisix~集成服务发现注册中心

摘要 当业务量发生变化时,需要对上游服务进行扩缩容,或者因服务器硬件故障需要更换服务器。如果网关是通过配置来维护上游服务信息,在微服务架构模式下,其带来的维护成本可想而知。再者因不能及时更新这些信息,也会对业务带来一定的影响,还有人为误操作带来的影响也不可忽视,所以网关非常必要通过服务注册中心动态获

apisix~升级原始插件的方法

扩展apisix原始插件 当apisix提供的插件不能满足我们要求时,我们可能需要将它的plugin进行个性化扩展,例如一个jwt认证插件jwt-auth,它本身具有验证jwt有效性功能,支持rs256,hs256等常用签名算法,但在验证之后,如果希望将jwt中的用户信息取出来,并放请求头向上游传递

apisix~自定义插件的部署

参考 https://docs.api7.ai/apisix/how-to-guide/custom-plugins/create-plugin-in-lua https://apisix.apache.org/docs/apisix/next/plugin-develop/ https://api

apisix~14在自定义插件中调用proxy_rewrite

在 Apache APISIX 中,通过 proxy-rewrite 插件来修改上游配置时,需要确保插件的执行顺序和上下文环境正确。你提到在自己的插件中调用 proxy_rewrite.rewrite({host="new_upstream"}, ctx),但新上游没有生效,这可能是由于以下几个原因

apisix~authz-keycloak插件介绍

参考:https://apisix.apache.org/docs/apisix/plugins/authz-keycloak/ kc插件源码梳理及原理说明 如果只是进行keycloak颁发的token进行校验(签名校验和有效期校验),那么我们可以使用jwt-auth这个插件实现,并且已经对这个插件

apisix~lua插件开发与插件注册

开发插件的步骤 在APISIX中,要自定义插件,一般需要按照以下步骤进行操作: 编写Lua脚本:首先,你需要编写Lua脚本来实现你想要的功能。可以根据APISIX提供的插件开发文档和示例进行编写。 将Lua脚本放置到APISIX插件目录:将编写好的Lua脚本文件放置到APISIX的插件目录下,一般是

【转帖】使用 LuaRocks 安装 Apache APISIX 依赖项时,为什么会导致超时、安装缓慢或安装失败?

使用 LuaRocks 安装 Apache APISIX 依赖项时,为什么会导致超时、安装缓慢或安装失败?# http://apisix.incubator.apache.org/zh/docs/apisix/2.14/FAQ/ 可能是因为使用的 LuaRocks 服务器延迟过高。 为了解决这个问题