Api网关-使用Grafana可视化Apisix指标

文章目录

  • 前言
  • 一、Apisix部署
  • 二、安装配置Grafana
    • 1. 安装Grafana
    • 2. 设置中文
    • 3. 启动
    • 4. 登录
    • 5. 启停命令
      • 5.1 启动和停止
      • 5.2 启禁用开机自启动
      • 5.3 查看状态
  • 三、安装配置prometheus
    • 1. 安装
    • 2. 配置服务
    • 3. 启动
    • 4. 登录
    • 5. prometheus启停命令
      • 5.1 启动和停止
      • 5.2 启禁用开机自启动
      • 5.3 查看状态
  • 四、Apisix指标数据可视化
    • 1. Apisix配置
      • 1.1 启用Prometheus插件
      • 1.2 配置指标访问
        • 1.2.1 hadoop101节点
        • 1.2.2 hadoop102节点
        • 1.2.3 hadoop103节点
    • 2. Prometheus配置
    • 3. Grafana配置
      • 3.1 下载Apisix指标模版文件
      • 3.2 配置Prometheus数据源
  • 五、嵌入Grafana到Apisix
    • 1. 修改Grafana配置
      • 1.1 启用匿名访问
      • 1.2 允许通过 iframe 访问
    • 2. 修改apisix-dashboard配置
    • 3. 在Apisix中嵌入Grafana
  • 总结


前言

本文介绍了Apisix的部署和配置,以及如何安装和配置Grafana与Prometheus来实现指标数据的可视化。通过阅读本文,您将了解到如何搭建多节点的Apisix环境,并使用Grafana展示Apisix的监控指标。


一、Apisix部署

Apisix多节点搭建教程
Apisix数据编辑器路由配置教程
Apisix路由配置教程


二、安装配置Grafana

1. 安装Grafana

wget https://dl.grafana.com/enterprise/release/grafana-enterprise-10.4.1-1.x86_64.rpm -P /tmp
yum install -y /tmp/grafana-enterprise-10.4.1-1.x86_64.rpm

2. 设置中文

sed -i "s|^default_language =.*|default_language = zh-Hans|" /usr/share/grafana/conf/defaults.ini

3. 启动

systemctl start grafana-server

4. 登录

浏览器访问 http://localhost:3000 登录UI页面。用户名和密码都是admin,第一次登录时要更改密码。

在这里插入图片描述

5. 启停命令

5.1 启动和停止

systemctl start grafana-server
systemctl restart grafana-server
systemctl stop grafana-server

5.2 启禁用开机自启动

systemctl enable grafana-server
systemctl disable grafana-server

5.3 查看状态

systemctl status grafana-server

三、安装配置prometheus

1. 安装

mkdir -p /opt/module
wget https://github.com/prometheus/prometheus/releases/download/v2.51.0/prometheus-2.51.0.linux-amd64.tar.gz -P /tmp
tar -zxvf /tmp/prometheus-2.51.0.linux-amd64.tar.gz -C /opt/module

2. 配置服务

创建/usr/lib/systemd/system/prometheus.service文件。

vim /usr/lib/systemd/system/prometheus.service

添加如下内容。

[Unit]
Description=Prometheus
Documentation=https://prometheus.io/
After=network.target[Service]
Type=simple
ExecStart=/opt/module/prometheus-2.51.0.linux-amd64/prometheus --config.file=/opt/module/prometheus-2.51.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

3. 启动

systemctl start prometheus

4. 登录

浏览器访问 http://localhost:9090 进入UI页面。

在这里插入图片描述

5. prometheus启停命令

5.1 启动和停止

systemctl start prometheus
systemctl restart prometheus
systemctl stop prometheus

5.2 启禁用开机自启动

systemctl enable prometheus
systemctl disable prometheus

5.3 查看状态

systemctl status prometheus

四、Apisix指标数据可视化

1. Apisix配置

1.1 启用Prometheus插件

在这里插入图片描述
在这里插入图片描述

1.2 配置指标访问

1.2.1 hadoop101节点

修改/usr/local/apisix/conf/config.yaml文件,添加如下内容。

vim /usr/local/apisix/conf/config.yaml

添加如下配置。

plugin_attr:prometheus:export_addr:ip: 192.168.145.103port: 9091

重新加载配置文件。

ulimit -n 4096
apisix reload

验证是否可以获取指标数据。

curl -i http://192.168.145.103:9091/apisix/prometheus/metrics
1.2.2 hadoop102节点

修改/usr/local/apisix/conf/config.yaml文件,添加如下内容。

vim /usr/local/apisix/conf/config.yaml

添加如下配置。

plugin_attr:prometheus:export_addr:ip: 192.168.145.104port: 9091

重新加载配置文件。

ulimit -n 4096
apisix reload

验证是否可以获取指标数据。

curl -i http://192.168.145.104:9091/apisix/prometheus/metrics
1.2.3 hadoop103节点

修改/usr/local/apisix/conf/config.yaml文件,添加如下内容。

vim /usr/local/apisix/conf/config.yaml

添加如下配置。

plugin_attr:prometheus:export_addr:ip: 192.168.145.105port: 9091

重新加载配置文件。

ulimit -n 4096
apisix reload

验证是否可以获取指标数据。

curl -i http://192.168.145.105:9091/apisix/prometheus/metrics

2. Prometheus配置

修改/opt/module/prometheus-2.51.0.linux-amd64/prometheus.yml文件,添加如下内容。

vim /opt/module/prometheus-2.51.0.linux-amd64/prometheus.yml
scrape_configs:# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: "prometheus"# metrics_path defaults to '/metrics'# scheme defaults to 'http'.static_configs:- targets: ["localhost:9090"]- job_name: 'apisix'scrape_interval: 10smetrics_path: '/apisix/prometheus/metrics'static_configs:- targets: ['192.168.145.103:9091', '192.168.145.104:9091', '192.168.145.105:9091']

重启Prometheus服务。

systemctl restart prometheus

浏览器访问 http://localhost:9090 进入Prometheus页面,然后根据下图操作,可查看获取指标的相关信息。

在这里插入图片描述
在这里插入图片描述

3. Grafana配置

3.1 下载Apisix指标模版文件

点击下载Apisix指标模版文件。

3.2 配置Prometheus数据源

浏览器访问 http://localhost:3000 登录Grafana,然后根据下图操作创建数据源。

在这里插入图片描述

选择Prometheus数据源。

在这里插入图片描述

输入Prometheus地址。

在这里插入图片描述

在最下面点击Save & test,出现Successfully queried the Prometheus API.即为成功。

在这里插入图片描述

新建仪表盘。

在这里插入图片描述

导入之前下载的Apisix指标模版文件。

在这里插入图片描述

选择数据源后点击导入。

在这里插入图片描述

然后就会跳转到可视化界面。然后记住这个页面对应的url地址,后面需要使用该地址嵌入到Apisix。

在这里插入图片描述

五、嵌入Grafana到Apisix

1. 修改Grafana配置

修改 Grafana 配置文件,找到相关配置并修改为如下配置,允许 grafana 跨域。

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

1.1 启用匿名访问

[auth.anonymous]
enabled = true

1.2 允许通过 iframe 访问

allow_embedding = true

2. 修改apisix-dashboard配置

修改apisix-dashboard配置文件,添加如下配置。把192.168.145.103修改为安装Grafan的主机IP地址。

vim /usr/local/apisix/dashboard/conf/conf.yaml
conf:security:content_security_policy: "default-src 'self'; script-src 'self' 'unsafe-eval' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; frame-src 192.168.145.103:3000"

3. 在Apisix中嵌入Grafana

打开系统设置。

在这里插入图片描述

填入之前记住的地址,并点击提交。

在这里插入图片描述

如下图,成功的把Grafana可视化页面嵌入到Apisix中。

在这里插入图片描述


总结

本文详细介绍了在Apisix中部署并配置Grafana与Prometheus来实现指标数据可视化的步骤。首先我们安装并设置好Grafana,然后配置Prometheus作为数据源,并在Grafana中导入和展示Apisix相关指标模板。最后,我们还讲解了如何将嵌入好的Grafana页面集成到Apisix中进行显示。通过这些步骤,您可以方便地监控和分析Apisisx服务运行时产生的各项性能指标。

希望本教程对您有所帮助!如有任何疑问或问题,请随时在评论区留言。感谢阅读!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/297764.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

element-ui breadcrumb 组件源码分享

今日简单分享 breadcrumb 组件的源码实现&#xff0c;主要从以下三个方面&#xff1a; 1、breadcrumb 组件页面结构 2、breadcrumb 组件属性 3、breadcrumb 组件 slot 一、breadcrumb 组件页面结构 二、breadcrumb 组件属性 2.1 separator 属性&#xff0c;分隔符&#xff…

钉钉事件订阅前缀树算法gin框架解析

当钉钉监测到发生一些事件&#xff0c;如下图 此处举例三个事件user_add_org、user_change_org、user_leave_org&#xff0c;传统的做法是&#xff0c;我们写三个if条件&#xff0c;类似下图 这样字符串匹配效率比较低&#xff0c;于是联想到gin框架中的路由匹配算法&#xff0…

【大数据存储】实验4 NoSQL数据库

实验4 NoSQL数据库 NoSQL数据库的安装和使用实验环境&#xff1a; Ubuntu 22.04.3 Jdk 1.8.0_341 Hadoop 3.2.3 Hbase 2.4.17 Redis 6.0.6 mongdb 6.0.12 mogosh 2.1.0 Redis 安装redis完成 新建终端启动redisredis-server新建一个终端redis-cli 建表操作 尝…

随机生成Long全范围数

随机生成Long全范围数 前言实现思路主要代码分区随机生成过程案例&#xff1a;随机生成100个数 朴素的比较总结 前言 使用自带的Random.nextLong()函数生成Long型的长整数&#xff0c;范围比较小&#xff0c;如下图。100个随机数没看见10以内的数字。所以考虑实现随机化生成大…

012——LED模块驱动开发(基于I.MX6uLL)

目录 一、 硬件原理图 二、 驱动程序 三、 应用程序 四、 Makefile 五、操作 一、 硬件原理图 又是非常经典的点灯环节 &#xff0c;每次学新语言第一步都是hello world&#xff0c;拿到新板子或者学习新的操作系统&#xff0c;第一步就是点灯。 LED 的驱动方式&#xff0…

Vue+Element UI 去掉el-input中 文本域 textarea的右下角标

如图&#xff1a;需将右下角 角标去掉 实现代码 ::v-deep .el-textarea {.el-textarea__inner {resize: none; // 去除右下角图标} }

Android JNI基础

目录 一、JNI简介1.1 什么是JNI1.2 用途1.3 优点 二、初探JNI2.1 新建cpp\cmake2.2 build.gradle配置2.3 java层配置2.4 cmake和c 三、API详解3.1 JNI API3.1.1 数据类型3.1.2 方法 3.2 CMake脚本 四、再探JNI 一、JNI简介 1.1 什么是JNI JNI&#xff08;Java Native Interfa…

微信小程序纯CSS实现好看的加载动画

进入下面小程序可以体验效果&#xff1a; WXML: <wxs module"img" src"./loading.wxs"></wxs> <view class"loading-container {{show?:loading-container-hide}}"><view class"loading-mask" wx:if"{{ma…

Springboot传参要求

Web.java(这里定义了一个实体类交Web) public class Web{ private int Page; public int getPage() {return Page;}public void setPage(int page) {Page page;} } 1、通过编译器自带的getter、Setter传参 。只是要注意参数的名字是固定的&#xff0c;不能灵活改变。 传参的…

渗透测试:数据库UDF提权(linux)

目录 开头: 1.UDF提权简介&#xff1a; 1.1共享库文件(UDF文件)指定目录&#xff1a; 版本特征&#xff1a; 操作系统版本&#xff1a; 2.靶场UDF提权复现 提权前提 1.要有一个高权限的MySQL的账号 ​编辑 2.MySQL的权限配置secure_file_priv为空 3.必须有存放UDF文件的…

webrtcP2P通话流程

webrtcP2P通话流程 在这里&#xff0c;stun服务器包括stun服务和turn转发服务。信令服服务还包括im等功能 webrtc多对多 mesh方案 适合人数较少的场景 webrtc多对多 mcu方案 &#xff08;multipoint control point&#xff09;将上行的视频/音频合成&#xff0c;然后分发。…

【零基础C语言】编译和链接

1.翻译环境和运行环境 翻译环境&#xff1a;将源代码转化为可执行的机器指令 运行环境&#xff1a;用于执行机器指令 1.1 翻译环境 翻译环境由编译和链接两大过程构建&#xff0c;编译又可以分为三大过程&#xff1a; 【1】预处理(预编译) 【2】编译 【3】汇编 不同的.c文件经…

八数码(bfs做法)非常详细,适合新手服用

题目描述&#xff1a; 在一个 33 的网格中&#xff0c;1∼8这 8 个数字和一个 x 恰好不重不漏地分布在这 33 的网格中。 例如&#xff1a; 1 2 3 x 4 6 7 5 8在游戏过程中&#xff0c;可以把 x 与其上、下、左、右四个方向之一的数字交换&#xff08;如果存在&#xff09;。 我…

4.4C++

1 #include <iostream> #include <cmath> using namespace std; class A{ private:int a;// 判断一个数是否为质数bool isP(int num) {if (num<2) return false;for (int i2;i<sqrt(num);i) {if (num % i 0) {return false;}}return true;} public:// 构造…

51单片机入门_江协科技_19~20_OB记录的笔记

19. 串口通讯 19.1. 串口介绍&#xff1a; •串口是一种应用十分广泛的通讯接口&#xff0c;串口成本低、容易使用、通信线路简单&#xff0c;可实现两个设备的互相通信。 •单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信&#xff0c;极大的…

Rust---复合数据类型之字符串与切片(2)

目录 字符串操作删除 (Delete)连接 (Concatenate) 字符串转义 前情回顾: Rust—复合数据类型之字符串&#xff08;1&#xff09; 字符串操作 删除 (Delete) 删除方法仅适用于 String 类型&#xff0c;分别是&#xff1a; pop()&#xff0c;remove()&#xff0c;truncate()&a…

无人售货奶柜:开启便捷生活的新篇章

无人售货奶柜&#xff1a;开启便捷生活的新篇章 在这个快节奏的现代生活中&#xff0c;科技的革新不仅为我们带来了前所未有的便利&#xff0c;更在不经意间改变着我们的日常。其中&#xff0c;无人售货技术的出现&#xff0c;尤其是无人售货奶柜&#xff0c;已经成为我们生活…

2024最新版Android studio安装入门教程(非常详细)

目录 JDK安装与配置 一、下载JDK 二、JDK安装 三、JDK的环境配置 四、JDK的配置验证 Android studio安装 Android studio连接手机真机调试&#xff08;以华为鸿蒙为例&#xff09; 一、新建一个android项目 二、进入项目面板 三、配置Android Studio 四、安装手机驱…

CentOS7安装MySQL8.0.28(持续)

第一步 &#xff1a;下载mysql MySQL https://www.mysql.com/

51单片机入门之独立按键

目录 1.按键简介 2.独立按键控制LED亮灭 3.独立按键控制LED移位 1.按键简介 在生活中&#xff0c;我们常常会见到各种按键&#xff0c;我们的开发板上也有按键&#xff0c;就在左下角有四个按键&#xff0c;我们把它们叫做独立按键。 独立按键的原理比较简单&…