麦瓣健康麦瓣健康
首页
  • APP产品开发方案
  • 商业调查报告
  • 后端技术架构
  • Docker Compose部署指南
  • 技师端-功能模块与微服务对应关系
  • 数据库设计
  • 分布式事务一致性
  • 日志管理与配置
  • Netdata监控系统
  • 系统总览
  • 文档导航
  • 代码审计智能体
  • 测试生成智能体
  • 运维诊断智能体
  • APP测试智能体
  • API自动化测试多智能体协作系统
  • 项目规划
  • 开发工作手册
  • 开发周期管理
  • 任务看板总览
  • Week 3任务看板
  • Week 3周例会
  • Week 4任务看板
  • Week 5任务看板
  • Week 6任务看板
  • APP测试设备采购清单
  • 用户端APP
  • 用户端APP功能脑图
  • 技师端APP
  • 技师端APP功能脑图
  • 后台管理
  • 大数据屏幕
  • 技师端-账户系统需求明细
原型图(Demo)
GitHub
首页
  • APP产品开发方案
  • 商业调查报告
  • 后端技术架构
  • Docker Compose部署指南
  • 技师端-功能模块与微服务对应关系
  • 数据库设计
  • 分布式事务一致性
  • 日志管理与配置
  • Netdata监控系统
  • 系统总览
  • 文档导航
  • 代码审计智能体
  • 测试生成智能体
  • 运维诊断智能体
  • APP测试智能体
  • API自动化测试多智能体协作系统
  • 项目规划
  • 开发工作手册
  • 开发周期管理
  • 任务看板总览
  • Week 3任务看板
  • Week 3周例会
  • Week 4任务看板
  • Week 5任务看板
  • Week 6任务看板
  • APP测试设备采购清单
  • 用户端APP
  • 用户端APP功能脑图
  • 技师端APP
  • 技师端APP功能脑图
  • 后台管理
  • 大数据屏幕
  • 技师端-账户系统需求明细
原型图(Demo)
GitHub
  • 技术架构

    • 麦瓣健康后端技术架构文档
    • /Docker部署指南.html
    • 技师端功能模块与微服务对应关系
    • 数据库设计文档
    • 麦瓣健康 - 微服务分布式事务一致性设计方案
    • 日志管理与配置说明
    • Netdata 监控系统技术文档

Netdata 监控服务部署指南

📊 项目概述

本项目已集成 Netdata 监控服务,为 Maiban 健康管理系统提供全方位的实时监控能力。

Netdata 简介

Netdata 是一个开源的实时性能和健康监控系统,具有以下特点:

  • ⚡ 实时监控:秒级数据采集,1秒延迟可视化
  • 🎯 零配置:自动发现和监控容器及服务
  • 🤖 AI 异常检测:边缘 ML 模型自动检测异常
  • 💎 轻量级:仅占用 5% CPU 和 150MB 内存
  • 🔌 全面集成:支持 800+ 集成,包括所有主流中间件
  • 📈 美观界面:现代化的 Web 监控面板

GitHub: https://github.com/netdata/netdata ⭐ 76.5k stars

官网文档: https://learn.netdata.cloud


🎯 监控范围

Netdata 已配置监控以下组件:

1. 系统级监控

  • ✅ CPU 使用率(整体和每个核心)
  • ✅ 内存使用情况(RAM、SWAP)
  • ✅ 磁盘 I/O 性能和使用率
  • ✅ 网络流量和连接状态
  • ✅ 系统负载和进程统计

2. 容器监控

  • ✅ Docker 容器资源使用
  • ✅ 容器网络流量
  • ✅ 容器健康状态

3. 中间件监控

MySQL 数据库

  • 查询性能(QPS、慢查询)
  • 连接数统计
  • InnoDB 缓冲池状态
  • 锁和死锁检测
  • 复制状态

Redis 缓存

  • 命令执行统计
  • 内存使用情况
  • 键空间统计
  • 持久化状态
  • 连接数

MongoDB 文档数据库

  • 操作统计(CRUD)
  • 连接数和网络
  • 内存和存储使用
  • 副本集状态

Elasticsearch 搜索引擎

  • 集群健康状态
  • 索引性能统计
  • JVM 内存使用
  • 查询和索引速率

RabbitMQ 消息队列

  • 队列长度和消息速率
  • 连接数和通道数
  • 内存使用
  • 消息确认统计

4. 应用监控

  • ✅ Nacos 服务发现健康检查
  • ✅ MinIO 对象存储健康检查
  • ✅ 各服务端口监控
  • ✅ HTTP 端点健康检查

🚀 快速开始

方式一:使用管理脚本(推荐)

# 进入后端目录
cd /root/maiban/backend

# 启动 Netdata
./scripts/netdata-manage.sh start

# 查看状态
./scripts/netdata-manage.sh status

# 查看监控信息
./scripts/netdata-manage.sh info

# 交互式菜单
./scripts/netdata-manage.sh

方式二:使用 Docker Compose

cd /root/maiban/backend

# 启动 Netdata
docker-compose -f docker-compose-env.yml up -d netdata

# 查看日志
docker logs -f maiban-netdata

# 停止 Netdata
docker-compose -f docker-compose-env.yml stop netdata

方式三:启动所有服务

cd /root/maiban/backend

# 启动所有基础设施服务(包括 Netdata)
docker-compose -f docker-compose-env.yml up -d

🌐 访问监控面板

Netdata 启动后,可通过以下方式访问:

本地访问

http://localhost:19999

远程访问

http://服务器IP:19999

查看服务器IP

hostname -I | awk '{print $1}'

📖 使用指南

1. 监控面板导航

打开 Netdata 后,您会看到:

  • 左侧菜单:按类别组织的所有监控指标

    • System Overview(系统概览)
    • CPUs(CPU监控)
    • Memory(内存监控)
    • Disks(磁盘监控)
    • Networking(网络监控)
    • Containers(容器监控)
    • Applications(应用监控)
  • 右上角功能:

    • 🔍 搜索:快速查找指标
    • ⏰ 时间范围选择:查看历史数据
    • 🔄 刷新间隔设置
    • ⚙️ 设置和配置

2. 查看特定服务监控

MySQL 监控

  1. 展开左侧菜单 → MySQL Local
  2. 查看指标:
    • Queries(查询统计)
    • Connections(连接数)
    • InnoDB(存储引擎)
    • Threads(线程状态)

Redis 监控

  1. 展开左侧菜单 → Redis Local
  2. 查看指标:
    • Operations(操作统计)
    • Memory(内存使用)
    • Keys(键统计)
    • Persistence(持久化)

容器监控

  1. 展开左侧菜单 → Containers
  2. 选择具体容器:
    • maiban-mysql
    • maiban-redis
    • maiban-nacos
    • 等等...

3. 异常检测

Netdata 内置 AI 异常检测功能:

  • 点击图表上方的 AR 按钮启用异常率显示
  • 异常值会以红色高亮显示
  • 鼠标悬停查看具体数值和异常原因

4. 告警功能

Netdata 自动配置了数百个告警规则:

  • 点击右上角 🔔 图标查看活动告警
  • 红色:严重告警
  • 橙色:警告
  • 绿色:正常

5. 自定义仪表板

创建自定义视图:

  1. 点击右上角 ⚙️ → My Netdata
  2. 选择 Dashboard
  3. 拖拽想要的图表到自定义面板
  4. 保存配置

⚙️ 配置说明

配置文件位置

backend/data/netdata/
├── config/              # 配置文件目录
│   ├── go.d.conf       # 监控模块配置
│   ├── go.d/
│   │   ├── mysql.conf  # MySQL 配置
│   │   ├── redis.conf  # Redis 配置
│   │   ├── mongodb.conf # MongoDB 配置
│   │   ├── rabbitmq.conf # RabbitMQ 配置
│   │   ├── elasticsearch.conf # ES 配置
│   │   ├── httpcheck.conf # HTTP 检查
│   │   └── portcheck.conf # 端口检查
│   └── health_alarm_notify.conf # 告警通知配置
├── cache/               # 缓存目录
└── lib/                 # 数据存储目录

修改监控配置

  1. 编辑相应的配置文件
  2. 重启 Netdata 使配置生效:
./scripts/netdata-manage.sh restart

配置告警通知

编辑告警配置文件:

vim backend/data/netdata/config/health_alarm_notify.conf

钉钉通知配置示例

# 取消注释并填入您的配置
DINGTALK_WEBHOOK_URL="https://oapi.dingtalk.com/robot/send?access_token=YOUR_TOKEN"
DINGTALK_WEBHOOK_SECRET="YOUR_SECRET"
DEFAULT_RECIPIENT_DINGTALK="maiban-monitoring"

企业微信通知配置示例

WECOM_WEBHOOK_URL="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=YOUR_KEY"
DEFAULT_RECIPIENT_WECOM="maiban-monitoring"

邮件通知配置示例

EMAIL_SENDER="netdata@example.com"
SEND_EMAIL="YES"
DEFAULT_RECIPIENT_EMAIL="admin@example.com"

配置完成后重启 Netdata。


🔧 故障排查

1. Netdata 无法启动

# 查看容器日志
docker logs maiban-netdata

# 检查端口占用
netstat -nltp | grep 19999

# 检查 Docker 是否正常
docker ps

2. 某些监控项无数据

MySQL 监控无数据:

  • 检查 MySQL 是否已启动且可访问
  • 检查配置文件中的连接信息是否正确
  • 查看日志:docker logs maiban-netdata | grep mysql

Redis 监控无数据:

  • 确认 Redis 容器在同一网络
  • 检查 Redis 连接地址和端口

容器监控无数据:

  • 确认 Docker socket 已正确挂载
  • 检查容器权限:SYS_PTRACE 和 SYS_ADMIN

3. 访问面板显示错误

# 检查服务状态
./scripts/netdata-manage.sh status

# 测试 API
curl http://localhost:19999/api/v1/info

# 重启服务
./scripts/netdata-manage.sh restart

4. 性能影响

Netdata 占用资源过多时:

  1. 禁用不需要的监控模块:
vim backend/data/netdata/config/go.d.conf

将不需要的模块设为 no:

modules:
  mysql: yes
  redis: yes
  mongodb: no  # 禁用 MongoDB 监控
  # ...
  1. 降低采集频率:

编辑各服务配置,调整 update_every 参数(单位:秒):

jobs:
  - name: maiban-mysql
    dsn: root:root123@tcp(mysql:3306)/
    update_every: 5  # 从 1 秒改为 5 秒

📊 监控最佳实践

1. 关键指标

系统性能:

  • CPU 使用率 < 80%
  • 内存使用率 < 85%
  • 磁盘 I/O 等待 < 10%
  • 网络带宽充足

数据库性能:

  • MySQL 慢查询数量
  • Redis 内存使用情况
  • 连接数是否正常

应用健康:

  • 容器运行状态
  • 服务端口可达性
  • HTTP 响应时间

2. 告警设置

建议配置以下告警:

  • 💾 磁盘使用率 > 85%
  • 🔥 CPU 持续高负载 > 80%
  • 💥 内存使用率 > 90%
  • 🔌 关键服务不可用
  • 📊 数据库连接数过高
  • 🐌 慢查询增加

3. 定期检查

建议每天检查:

  1. 系统负载趋势
  2. 数据库性能指标
  3. 容器资源使用
  4. 告警历史记录

4. 性能优化

根据监控数据优化:

  • 发现 MySQL 慢查询 → 优化索引
  • Redis 内存不足 → 调整淘汰策略
  • 容器资源不足 → 调整资源限制
  • 磁盘 I/O 高 → 优化数据访问

🔒 安全建议

1. 访问控制

生产环境建议配置身份认证:

# 使用 Nginx 反向代理添加 Basic Auth
# 或使用防火墙限制访问 IP

2. 端口保护

# 仅允许内网访问
iptables -A INPUT -p tcp --dport 19999 -s 内网IP段 -j ACCEPT
iptables -A INPUT -p tcp --dport 19999 -j DROP

3. HTTPS 配置

生产环境建议使用 HTTPS:

# 使用 Nginx 反向代理配置 SSL
# 或使用 Netdata Cloud 的安全访问

🔗 高级功能

1. Netdata Cloud(可选)

Netdata Cloud 提供:

  • 远程安全访问
  • 多节点集中管理
  • 团队协作
  • 自定义仪表板保存
  • 高级告警和通知

注册地址:https://app.netdata.cloud

2. 数据导出

Netdata 支持导出数据到:

  • Prometheus
  • Graphite
  • OpenTSDB
  • InfluxDB
  • 等等...

3. 父子架构

对于大规模部署,可以配置:

  • 多个 Netdata Agent 作为子节点
  • 一个中心 Netdata Parent 汇总数据

🆘 获取帮助

官方资源

  • 📖 官方文档:https://learn.netdata.cloud
  • 💬 社区讨论:https://github.com/netdata/netdata/discussions
  • 🐛 问题反馈:https://github.com/netdata/netdata/issues
  • 💬 Discord:https://discord.gg/netdata

项目管理脚本

# 查看帮助
./scripts/netdata-manage.sh

# 可用命令:
# start    - 启动服务
# stop     - 停止服务
# restart  - 重启服务
# status   - 查看状态
# logs     - 查看日志
# info     - 显示监控信息

📝 更新日志

2025-10-23

  • ✅ 集成 Netdata 监控服务
  • ✅ 配置所有中间件监控
  • ✅ 创建管理脚本
  • ✅ 添加完整文档

📄 许可证

  • Netdata Agent: GPL-3.0 License
  • Netdata UI: 免费使用(闭源)
  • 本项目文档: 与项目主许可证相同

注意:首次启动 Netdata 可能需要几分钟来初始化和发现所有服务,请耐心等待。监控数据会随着时间累积,建议持续运行以获得更好的分析效果。

在 GitHub 上编辑此页
最后更新: 2025/11/10 10:53
贡献者: David, Claude, Claude Code