BetterDB Monitor部署指南:Docker、CLI和云原生三种方式全解析
BetterDB Monitor部署指南Docker、CLI和云原生三种方式全解析【免费下载链接】monitorReal-time monitoring, slowlog analysis, and audit trails for Valkey and Redis项目地址: https://gitcode.com/gh_mirrors/monitor53/monitor想要快速监控你的Valkey和Redis数据库性能吗 BetterDB Monitor提供了三种灵活的部署方式Docker容器化部署、命令行工具CLI部署和云原生Kubernetes部署。无论你是开发人员、运维工程师还是架构师这篇完整的部署指南都将帮助你选择最适合的方案轻松实现数据库监控和分析。为什么选择BetterDB MonitorBetterDB Monitor是一个强大的实时监控工具专为Valkey和Redis数据库设计。它提供了慢查询分析、审计跟踪、性能指标监控等核心功能支持Valkey 8.0和Redis 6.0的所有版本。通过统一的适配器模式BetterDB能够自动检测数据库类型并优雅地处理Valkey特有功能如Command Log在Redis环境中的降级。 核心功能一览实时监控数据库连接状态、内存使用、客户端连接数慢查询分析识别和优化性能瓶颈审计跟踪记录所有数据库操作向量/AI功能支持RediSearch和valkey-search模块Prometheus集成导出标准化的监控指标多存储后端支持SQLite、PostgreSQL和内存存储方式一Docker部署推荐用于生产环境Docker部署是最简单、最可靠的部署方式特别适合生产环境。BetterDB提供了官方Docker镜像支持多架构AMD64 ARM64可以在任何支持Docker的环境中运行。 快速开始1. 基础运行内存存储docker run -d \ --name betterdb-monitor \ -p 3001:3001 \ -e DB_HOSTyour-valkey-host \ -e DB_PORT6379 \ -e DB_PASSWORDyour-password \ -e STORAGE_TYPEmemory \ betterdb/monitor2. 使用PostgreSQL持久化存储docker run -d \ --name betterdb-monitor \ -p 3001:3001 \ -e DB_HOSTyour-valkey-host \ -e DB_PORT6379 \ -e DB_PASSWORDyour-password \ -e STORAGE_TYPEpostgres \ -e STORAGE_URLpostgresql://user:passpostgres-host:5432/dbname \ betterdb/monitor3. 自定义端口运行docker run -d \ --name betterdb-monitor \ -p 8080:8080 \ -e PORT8080 \ -e DB_HOSTlocalhost \ -e DB_PORT6380 \ -e DB_PASSWORDdevpassword \ -e STORAGE_TYPEmemory \ betterdb/monitor 环境变量配置变量名必填默认值说明DB_HOST是localhost要监控的Valkey/Redis主机DB_PORT否6379数据库端口DB_PASSWORD否-数据库密码DB_USERNAME否defaultACL用户名DB_TYPE否auto数据库类型auto、valkey或redisSTORAGE_TYPE否memory存储后端memory或postgresSTORAGE_URL条件-PostgreSQL连接URL当STORAGE_TYPEpostgres时必填PORT否3001应用HTTP端口NODE_ENV否productionNode环境 使用Docker Compose完整部署对于本地开发或测试环境可以使用提供的docker-compose.yml文件一键启动完整的监控栈# 克隆仓库 git clone https://gitcode.com/gh_mirrors/monitor53/monitor cd monitor # 启动所有服务 docker-compose up -d这个命令会启动Valkey数据库端口6380Redis数据库端口6382PostgreSQL数据库端口5432BetterDB Monitor端口3001 容器管理命令# 查看容器日志 docker logs -f betterdb-monitor # 停止容器 docker stop betterdb-monitor # 重启容器 docker restart betterdb-monitor # 删除容器 docker rm betterdb-monitor # 构建自定义镜像 pnpm docker:build方式二CLI命令行部署适合快速测试CLI部署是最灵活的部署方式特别适合开发环境和快速测试。通过npm或npx你可以在几秒钟内启动监控服务。 安装方式1. 使用npx快速启动无需安装npx betterdb/monitor2. 全局安装推荐npm install -g betterdb/monitor betterdb3. 使用包管理器# pnpm pnpm dlx betterdb/monitor # yarn yarn dlx betterdb/monitor 首次运行配置首次运行BetterDB时会启动一个交互式设置向导betterdb --setup向导会引导你配置数据库连接主机、端口、类型、凭据存储后端SQLite、PostgreSQL或内存存储应用设置端口、异常检测安全设置加密密钥、许可证可选配置保存在~/.betterdb/config.json文件中。⚙️ CLI命令选项# 启动监控如果无配置则运行设置向导 betterdb # 重新运行设置向导 betterdb setup betterdb --setup # 跳过设置向导使用默认配置或现有配置 betterdb --no-setup # 自定义端口 betterdb --port 8080 # 自定义数据库主机 betterdb --db-host 192.168.1.5 # 自定义数据库端口 betterdb --db-port 6380 # 使用内存存储 betterdb --storage-type memory # 显示版本信息 betterdb --version # 显示帮助 betterdb --help 存储后端配置SQLite存储默认# 安装SQLite依赖 npm install better-sqlite3 # 启动时自动使用SQLite betterdbPostgreSQL存储{ storage: { type: postgres, postgresUrl: postgresql://user:passwordlocalhost:5432/betterdb } }内存存储{ storage: { type: memory } } 访问端点启动后可以通过以下地址访问Web界面http://localhost:3001API接口http://localhost:3001/apiAPI文档http://localhost:3001/api/docs健康检查http://localhost:3001/healthPrometheus指标http://localhost:3001/prometheus/metrics方式三云原生Kubernetes部署企业级方案对于生产环境和云原生架构BetterDB提供了完整的Kubernetes Helm Chart支持支持高可用、自动扩缩容和声明式配置。☸️ 使用Helm部署1. 添加Helm仓库# 克隆仓库获取Chart git clone https://gitcode.com/gh_mirrors/monitor53/monitor cd monitor/charts2. 创建values.yaml配置文件# custom-values.yaml image: repository: betterdb/monitor tag: latest pullPolicy: IfNotPresent database: host: valkey-service.default.svc.cluster.local port: 6379 passwordSecretName: valkey-auth passwordSecretKey: password storage: type: postgres postgres: host: postgres-service.default.svc.cluster.local port: 5432 database: betterdb username: betterdb passwordSecretName: postgres-auth passwordSecretKey: password service: type: ClusterIP port: 3001 ingress: enabled: true className: nginx hosts: - host: monitor.example.com paths: - path: / pathType: Prefix resources: requests: memory: 256Mi cpu: 250m limits: memory: 512Mi cpu: 500m autoscaling: enabled: true minReplicas: 2 maxReplicas: 10 targetCPUUtilizationPercentage: 80 targetMemoryUtilizationPercentage: 803. 部署到Kubernetes# 创建命名空间 kubectl create namespace betterdb # 创建数据库密码Secret kubectl create secret generic valkey-auth \ --namespace betterdb \ --from-literalpasswordyour-secure-password # 创建PostgreSQL密码Secret kubectl create secret generic postgres-auth \ --namespace betterdb \ --from-literalpasswordyour-postgres-password # 使用Helm部署 helm install betterdb-monitor ./valkey-search \ --namespace betterdb \ -f custom-values.yaml Kubernetes资源配置示例Deployment配置apiVersion: apps/v1 kind: Deployment metadata: name: betterdb-monitor namespace: betterdb spec: replicas: 3 selector: matchLabels: app: betterdb-monitor template: metadata: labels: app: betterdb-monitor spec: containers: - name: betterdb image: betterdb/monitor:latest ports: - containerPort: 3001 env: - name: DB_HOST value: valkey-service.betterdb.svc.cluster.local - name: DB_PORT value: 6379 - name: DB_PASSWORD valueFrom: secretKeyRef: name: valkey-auth key: password - name: STORAGE_TYPE value: postgres - name: STORAGE_URL value: postgresql://betterdb:$(POSTGRES_PASSWORD)postgres-service.betterdb.svc.cluster.local:5432/betterdb envFrom: - secretRef: name: postgres-auth resources: requests: memory: 256Mi cpu: 250m limits: memory: 512Mi cpu: 500m livenessProbe: httpGet: path: /health port: 3001 initialDelaySeconds: 30 periodSeconds: 10 readinessProbe: httpGet: path: /health port: 3001 initialDelaySeconds: 5 periodSeconds: 5Service配置apiVersion: v1 kind: Service metadata: name: betterdb-monitor namespace: betterdb spec: selector: app: betterdb-monitor ports: - port: 3001 targetPort: 3001 type: ClusterIPIngress配置apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: betterdb-monitor namespace: betterdb annotations: nginx.ingress.kubernetes.io/rewrite-target: / spec: ingressClassName: nginx rules: - host: monitor.example.com http: paths: - path: / pathType: Prefix backend: service: name: betterdb-monitor port: number: 3001 监控和日志Prometheus监控apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: betterdb-monitor namespace: betterdb spec: selector: matchLabels: app: betterdb-monitor endpoints: - port: http path: /prometheus/metrics interval: 30s日志收集Fluentd配置apiVersion: v1 kind: ConfigMap metadata: name: fluentd-config namespace: betterdb data: fluent.conf: | source type tail path /var/log/containers/*betterdb*.log pos_file /var/log/fluentd-betterdb.pos tag kubernetes.* read_from_head true parse type json time_format %Y-%m-%dT%H:%M:%S.%NZ /parse /source 部署方式对比与选择建议三种部署方式对比表特性Docker部署CLI部署Kubernetes部署部署复杂度⭐⭐⭐⭐⭐⭐生产就绪⭐⭐⭐⭐⭐⭐⭐⭐扩展性⭐⭐⭐⭐⭐⭐资源占用中等低高需要K8s集群持久化支持支持支持高可用需要外部编排不支持内置支持适合场景生产环境、开发环境快速测试、开发环境企业生产、云原生环境学习曲线低最低高 选择建议1.开发环境/快速测试→ CLI部署使用npx betterdb/monitor快速启动无需安装Docker或Kubernetes适合快速验证功能2.生产环境/持续运行→ Docker部署使用官方Docker镜像支持持久化存储PostgreSQL易于管理和维护适合单节点或小型集群3.企业级/云原生环境→ Kubernetes部署支持自动扩缩容内置高可用和故障转移集成Prometheus监控适合大规模部署4.混合环境→ Docker Compose使用提供的docker-compose.yml一键启动完整监控栈适合本地开发和测试 迁移路径如果你从一种部署方式迁移到另一种以下是建议的路径从CLI到Docker# 1. 备份CLI配置 cp ~/.betterdb/config.json ./backup-config.json # 2. 使用相同配置启动Docker容器 docker run -d \ --name betterdb-monitor \ -p 3001:3001 \ -e DB_HOSTyour-db-host \ -e DB_PORT6379 \ -e DB_PASSWORDyour-password \ -e STORAGE_TYPEpostgres \ -e STORAGE_URLpostgresql://user:passpostgres-host:5432/dbname \ betterdb/monitor从Docker到Kubernetes将环境变量转换为Kubernetes ConfigMap和Secret使用相同的PostgreSQL存储后端保持数据一致性逐步迁移流量蓝绿部署 常见问题与故障排除❓ 常见问题解答Q1: 如何选择存储后端SQLite适合开发和测试无需外部数据库PostgreSQL生产环境推荐支持持久化和并发访问内存存储适合临时测试重启后数据丢失Q2: 支持哪些数据库版本Valkey8.0支持所有功能Redis6.0支持除Command Log和Slot Stats外的所有功能Q3: 如何监控多个数据库实例每个BetterDB实例只能监控一个数据库实例。如果需要监控多个实例可以部署多个BetterDB实例使用负载均衡器分发请求每个实例配置不同的数据库连接Q4: 数据安全如何保障数据库密码支持AES-256-GCM加密存储支持TLS加密连接可配置访问控制和认证审计日志记录所有操作Q5: 如何升级版本# Docker方式 docker pull betterdb/monitor:latest docker stop betterdb-monitor docker rm betterdb-monitor docker run ... # 使用新版本镜像 # Kubernetes方式 helm upgrade betterdb-monitor ./valkey-search -f values.yaml 故障排除指南问题1: 无法连接到数据库# 检查数据库连接 redis-cli -h your-db-host -p 6379 ping # 验证网络连通性 telnet your-db-host 6379 # 检查防火墙规则 sudo ufw status问题2: 容器启动失败# 查看容器日志 docker logs betterdb-monitor # 检查端口占用 netstat -tulpn | grep :3001 # 验证环境变量 docker inspect betterdb-monitor | grep -A5 -B5 Env问题3: Web界面无法访问# 检查服务状态 curl http://localhost:3001/health # 验证端口映射 docker ps | grep betterdb-monitor # 检查防火墙 sudo firewall-cmd --list-ports问题4: 性能问题# 监控资源使用 docker stats betterdb-monitor # 检查日志中的错误 docker logs --tail 100 betterdb-monitor # 调整资源限制 docker update --memory 1g --cpus 2 betterdb-monitor 性能优化建议1.存储优化# 使用PostgreSQL连接池 -e STORAGE_URLpostgresql://user:passhost:5432/dbname?pool_max_connections20 # 定期清理历史数据 # 在PostgreSQL中设置自动清理策略2.内存优化# Docker Compose配置 services: betterdb: deploy: resources: limits: memory: 1G reservations: memory: 512M3.网络优化# 使用主机网络模式减少网络开销 docker run --network host ... # 或使用自定义网络 docker network create betterdb-net docker run --network betterdb-net ...4.监控配置# Prometheus抓取配置 scrape_configs: - job_name: betterdb static_configs: - targets: [betterdb-monitor:3001] scrape_interval: 15s 下一步行动开始监控你的数据库选择部署方式根据你的需求选择Docker、CLI或Kubernetes配置数据库连接确保BetterDB可以访问你的Valkey/Redis实例设置存储后端生产环境建议使用PostgreSQL访问Web界面通过浏览器访问监控仪表板配置告警基于Prometheus指标设置告警规则高级功能探索向量搜索监控如果你的数据库启用了RediSearch或valkey-search模块BetterDB会自动显示Vector/AI监控标签慢查询分析使用慢查询分析功能识别性能瓶颈审计跟踪查看完整的数据库操作历史客户端分析监控客户端连接和活动获取帮助和支持官方文档查看项目中的详细文档社区支持通过项目仓库提交问题监控最佳实践定期检查监控指标设置合理的告警阈值无论你选择哪种部署方式BetterDB Monitor都能为你提供强大的数据库监控能力。从简单的CLI工具到企业级的Kubernetes部署总有一种方案适合你的需求。立即开始监控你的Valkey和Redis数据库确保它们始终以最佳状态运行【免费下载链接】monitorReal-time monitoring, slowlog analysis, and audit trails for Valkey and Redis项目地址: https://gitcode.com/gh_mirrors/monitor53/monitor创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考