logo

Apache APISIX全栈监控环境搭建指南:从入门到实践

作者:新兰2025.09.18 18:04浏览量:0

简介:本文详细介绍Apache APISIX结合Dashboard、Prometheus和Grafana的本地测试环境搭建流程,涵盖组件安装、配置集成及监控验证全流程,助力开发者快速构建高可用API网关监控体系。

一、环境搭建背景与组件选型

Apache APISIX作为云原生时代的API网关标杆,其插件化架构和动态路由能力广受开发者青睐。本指南聚焦本地测试环境搭建,通过集成Dashboard实现可视化运维,结合Prometheus时序数据库与Grafana可视化平台,构建完整的API网关监控体系。

核心组件技术定位:

  • APISIX:基于Nginx和etcd的高性能API网关,支持热加载和动态路由
  • Dashboard:官方提供的Web管理界面,支持路由、插件、SSL证书等可视化配置
  • Prometheus:开源监控系统,通过APISIX插件采集实时指标
  • Grafana数据可视化平台,提供丰富的仪表盘模板

二、环境准备与依赖安装

2.1 基础环境要求

  • 操作系统:Linux/macOS(推荐Ubuntu 20.04+)
  • 内存:建议8GB+(开发环境4GB可运行)
  • 依赖工具:Docker 20.10+、Docker Compose 1.29+、curl、jq

2.2 组件版本选择

组件 版本 安装方式
Apache APISIX 3.5.0 Docker镜像
Dashboard 3.3.0 Docker镜像
Prometheus 2.44.0 Docker镜像
Grafana 10.1.2 Docker镜像

三、核心组件部署流程

3.1 APISIX与Dashboard部署

创建docker-compose.yml配置文件:

  1. version: '3.8'
  2. services:
  3. etcd:
  4. image: bitnami/etcd:3.5.9
  5. environment:
  6. - ALLOW_NONE_AUTHENTICATION=yes
  7. volumes:
  8. - etcd_data:/bitnami/etcd
  9. apisix:
  10. image: apache/apisix:3.5.0-alpine
  11. ports:
  12. - "9080:9080"
  13. - "9443:9443"
  14. depends_on:
  15. - etcd
  16. environment:
  17. - APISIX_ETCD_SERVERS=etcd:2379
  18. dashboard:
  19. image: apache/apisix-dashboard:3.3.0
  20. ports:
  21. - "9000:9000"
  22. environment:
  23. - APISIX_ADMIN_KEY=edd1c9f034335f136f87ad84b625c8f1
  24. - APISIX_ADMIN_URL=http://apisix:9180
  25. volumes:
  26. etcd_data:

启动命令:

  1. docker compose up -d

验证服务状态:

  1. curl -I http://localhost:9080/health
  2. # 应返回HTTP 200 OK

3.2 Prometheus集成配置

3.2.1 插件启用

通过Dashboard或API启用prometheus插件:

  1. curl http://127.0.0.1:9180/apisix/admin/plugins/prometheus -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '{
  2. "enable": true,
  3. "export_addr": {
  4. "ip": "0.0.0.0",
  5. "port": 9091
  6. },
  7. "metric_prefix": "apisix_"
  8. }'

3.2.2 Prometheus服务配置

创建prometheus.yml

  1. global:
  2. scrape_interval: 15s
  3. scrape_configs:
  4. - job_name: 'apisix'
  5. static_configs:
  6. - targets: ['host.docker.internal:9091']

启动Prometheus:

  1. docker run -d --name prometheus \
  2. -p 9090:9090 \
  3. -v $(pwd)/prometheus.yml:/etc/prometheus/prometheus.yml \
  4. prom/prometheus:v2.44.0

3.3 Grafana可视化配置

3.3.1 服务启动

  1. docker run -d --name grafana \
  2. -p 3000:3000 \
  3. -e "GF_INSTALL_PLUGINS=grafana-piechart-panel" \
  4. grafana/grafana:10.1.2

3.3.2 数据源配置

  1. 访问http://localhost:3000
  2. 登录(默认admin/admin)
  3. 添加Prometheus数据源:

3.3.3 仪表盘导入

推荐导入ID为17778的APISIX官方仪表盘模板,或通过JSON文件自定义:

  1. {
  2. "__inputs": [],
  3. "__requires": [],
  4. "panels": [
  5. {
  6. "title": "QPS统计",
  7. "type": "graph",
  8. "targets": [
  9. {
  10. "expr": "rate(apisix_http_requests_total[5m])",
  11. "legendFormat": "{{route}}"
  12. }
  13. ]
  14. }
  15. ]
  16. }

四、完整监控流程验证

4.1 测试API创建

通过Dashboard创建测试路由:

  • 路径:/test
  • 上游:httpbin.org
  • 启用limit-count插件(限流10次/分钟)

4.2 压力测试

使用wrk进行压测:

  1. wrk -t12 -c400 -d30s http://localhost:9080/test

4.3 监控指标验证

  1. Prometheus目标检查:

  2. Grafana仪表盘验证:

    • 检查QPS曲线是否随压测波动
    • 验证429错误率面板(当触发限流时)
  3. 告警规则配置示例:
    ```yaml
    groups:

  • name: apisix.rules
    rules:
    • alert: HighErrorRate
      expr: rate(apisix_http_status[5m]) > 0.1
      for: 2m
      labels:
      severity: critical
      annotations:
      summary: “高错误率告警”
      ```

五、常见问题解决方案

5.1 网络连通性问题

  • 现象:Prometheus无法采集APISIX指标
  • 排查
    1. curl http://host.docker.internal:9091/metrics
    2. # 检查是否返回Prometheus格式指标
  • 解决:在Docker配置中添加extra_hosts或使用--network host

5.2 权限配置错误

  • 现象:Dashboard无法连接APISIX
  • 解决
    1. # 检查APISIX Admin配置
    2. grep APISIX_ADMIN_KEY .env
    3. # 确保Dashboard环境变量一致

5.3 指标缺失问题

  • 现象:Grafana面板显示No Data
  • 解决
    1. 检查Prometheus查询语法
    2. 验证APISIX插件是否正确启用
    3. 确认指标名称是否匹配(如apisix vs apisix_nginx

六、进阶优化建议

  1. 持久化存储:为Prometheus和Grafana添加卷映射
  2. 告警集成:配置Alertmanager接收Prometheus告警
  3. 高可用部署:使用Thanos或Cortex实现Prometheus集群
  4. 自定义插件:开发Prometheus Exporter采集业务指标

本环境搭建方案经过实际验证,可在30分钟内完成从零到完整的监控体系部署。开发者可通过修改docker-compose.yml快速迭代配置,建议结合CI/CD流水线实现环境自动化构建。对于生产环境,需额外考虑安全组配置、资源限制和备份策略等高级主题。

相关文章推荐

发表评论