第15章 Mosquitto生产环境部署实践

第15章 生产环境部署实践

15.1 部署架构

监控
监控
监控
监控
负载均衡
节点1
节点2
节点3
数据存储
监控

15.2 安全加固

安全检查清单

生产安全
网络安全
防火墙规则
TLS加密
禁用明文端口
认证授权
禁用匿名
强密码
定期更新
访问控制
最小权限
主题隔离
IP限制
日志审计
操作日志
异常检测
定期审查

配置示例

bash 复制代码
# 生产环境配置
listener 8883
certfile /etc/mosquitto/certs/server.crt
keyfile /etc/mosquitto/certs/server.key
cafile /etc/mosquitto/certs/ca.crt
require_certificate true
tls_version tlsv1.2

allow_anonymous false
password_file /etc/mosquitto/passwd
acl_file /etc/mosquitto/acl

max_connections -1
max_inflight_messages 20

15.3 Docker部署

Docker Compose生产配置

yaml 复制代码
version: '3.8'

services:
  mosquitto:
    image: eclipse-mosquitto:2
    restart: always
    ports:
      - "1883:1883"
      - "8883:8883"
    volumes:
      - ./config:/mosquitto/config
      - ./data:/mosquitto/data
      - ./log:/mosquitto/log
    environment:
      - TZ=Asia/Shanghai
    deploy:
      resources:
        limits:
          cpus: '2'
          memory: 1G
        reservations:
          cpus: '1'
          memory: 512M
    healthcheck:
      test: ["CMD", "mosquitto_sub", "-t", "$$SYS/broker/uptime", "-C", "1"]
      interval: 30s
      timeout: 10s
      retries: 3

15.4 Kubernetes部署

yaml 复制代码
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: mosquitto
spec:
  serviceName: mosquitto
  replicas: 3
  selector:
    matchLabels:
      app: mosquitto
  template:
    metadata:
      labels:
        app: mosquitto
    spec:
      containers:
      - name: mosquitto
        image: eclipse-mosquitto:2
        ports:
        - containerPort: 1883
        - containerPort: 8883
        volumeMounts:
        - name: config
          mountPath: /mosquitto/config
        - name: data
          mountPath: /mosquitto/data
        resources:
          requests:
            memory: "512Mi"
            cpu: "500m"
          limits:
            memory: "1Gi"
            cpu: "1000m"
  volumeClaimTemplates:
  - metadata:
      name: data
    spec:
      accessModes: ["ReadWriteOnce"]
      resources:
        requests:
          storage: 10Gi

15.5 备份与恢复

bash 复制代码
#!/bin/bash
# 备份脚本
BACKUP_DIR="/backup/mosquitto/$(date +%Y%m%d)"
mkdir -p $BACKUP_DIR

# 备份配置
cp -r /etc/mosquitto $BACKUP_DIR/

# 备份数据
cp -r /var/lib/mosquitto $BACKUP_DIR/

# 备份密码和ACL
cp /etc/mosquitto/passwd $BACKUP_DIR/
cp /etc/mosquitto/acl $BACKUP_DIR/

# 压缩
tar -czf $BACKUP_DIR.tar.gz $BACKUP_DIR

# 恢复
tar -xzf $BACKUP_DIR.tar.gz
cp -r $BACKUP_DIR/* /

15.6 本章小结

掌握了生产环境部署的最佳实践。

相关推荐
回眸&啤酒鸭4 天前
【回眸】Minicart 电商购物车核心功能落地指南
人工智能
一隅论数智4 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
不悔哥4 天前
开源OV-Watch:怎么做一个智能手表
单片机·开源·嵌入式
AI的探索之旅4 天前
97 个 OpenCV 实例(三十):双目立体,从标定到点云
人工智能·opencv·计算机视觉
AlbertZein4 天前
Step-5-Preview 上手实测:3D 游戏、金融分析、网页设计一次跑完
人工智能·aigc
家和804 天前
Carla仿真系列:4_在 Carla 的 Tesla 上装 4 路摄像头,并创建网格为环视拼接做准备
开源
LaughingZhu4 天前
Product Hunt 每日热榜 | 2026-09-19
人工智能·深度学习·神经网络·搜索引擎·百度
美狐美颜SDK开放平台4 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
wukangjupingbb4 天前
智能网联汽车安全能力框架
人工智能