环境准备 CentOS Linux release 7.9 Docker version 23.0.6 Docker Compose version v2.33.1 安装Docker 配置国内镜像加速(可选)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [ -d /etc/docker/ ] || mkdir -p /etc/docker/ tee /etc/docker/daemon.json << 'EOF' { "log-driver" : "json-file" , "log-opts" : { "max-size" : "100m" , "max-file" : "1" }, "registry-mirrors" : [ "https://x9r52uz5.mirror.aliyuncs.com" , "https://dockerhub.icu" , "https://docker.chenby.cn" , "https://docker.1panel.live" , "https://docker.awsl9527.cn" , "https://docker.anyhub.us.kg" , "https://dhub.kubesre.xyz" ] } EOF
下载安装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum install -y yum-utils device-mapper-persistent-data lvm2 yum list docker-ce --showduplicates | sort -r yum install -y docker-ce-23.0.6 docker-ce-cli-23.0.6 containerd.io systemctl enable --now docker systemctl status docker
安装Docker-compose 1 2 3 4 5 6 7 LATEST_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep -Po '"tag_name": "\K.*?(?=")' ) sudo curl -L "https://github.com/docker/compose/releases/download/${LATEST_VERSION} /docker-compose-$(uname -s) -$(uname -m) " -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose docker-compose --version
Docker Compose 部署 Prometheus 监控全家桶 前置条件 确保已安装 Docker 及 Docker Compose(官方安装指南 ) 开放防火墙端口:9090, 9093, 3000, 9100, 8080
建议使用 2核CPU/4GB内存 及以上配置的服务器 1 2 docker --version && docker-compose --version
快速部署流程 获取配置仓库
1 2 3 4 5 6 7 sudo mkdir -p /opt/monitoring && cd /opt/monitoring git clone https://gitee.com/jerrryWang/docker-prometheus.git --depth 1 cd docker-prometheusmkdir -p {prometheus,alertmanager,grafana/provisioning}
启动监控服务
1 2 3 4 5 6 7 8 docker-compose up -d docker-compose logs -f --tail =50 docker-compose down
服务访问地址 服务 访问地址 默认认证 监控对象 Prometheus http://<服务器IP>:9090 无 指标收集存储 Alertmanager http://<服务器IP>:9093 需配置(参见备注) 告警管理 Grafana http://<服务器IP>:3000 admin/password 数据可视化 Node Exporter http://<服务器IP>:9100/metrics 无 主机指标 cAdvisor http://<服务器IP>:8080 无 容器指标
关键配置说明 Grafana 数据源配置 登录 Grafana 后进入 Configuration > Data Sources
选择 Prometheus 类型数据源 URL 填写 :http://prometheus:9090
(使用Docker服务名,非IP地址)告警规则配置 编辑 prometheus/prometheus.yml
添加监控目标 1 2 3 4 5 6 7 scrape_configs: - job_name: 'node' static_configs: - targets: ['node-exporter:9100' ] - job_name: 'docker' static_configs: - targets: ['cadvisor:8080' ]
邮件报警配置 修改 alertmanager/config.yml
配置SMTP 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 global: smtp_smarthost: 'smtp.163.com:465' smtp_from: 'cdring@163.com' smtp_auth_username: 'cdring@163.com' smtp_auth_password: 'your-password' smtp_require_tls: false route: group_by: ['alertname' ] group_wait: 10s group_interval: 10s repeat_interval: 10m receiver: email receivers: - name: 'email' email_configs: - to: 'cdring@163.com' inhibit_rules: - source_match: severity: 'critical' target_match: severity: 'warning' equal: ['alertname' , 'dev' , 'instance' ]
日常维护命令 操作 命令 更新配置后重启 Prometheus docker-compose exec prometheus kill -HUP 1
查看存储空间使用 docker system df
清理30天前旧数据 docker system prune -a --filter "until=720h"
快速停止所有服务 docker-compose down --remove-orphans
注意事项 数据持久化 :确保 /opt/monitoring
挂载到独立磁盘分区
版本升级 :
修改 docker-compose.yml
中的镜像版本号 按顺序执行:docker-compose pull && docker-compose up -d
性能调优 :当监控目标超过100个时,建议:
增加 Prometheus 内存限制至 4GB 调整抓取间隔:scrape_interval: 60s
报错
1 2 Error response from daemon: Get "https://docker.kubesre.xyz/v2/" : net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
多配置几个镜像加速地址/etc/docker/daemon.json
或者配置自己知道的代理服务器proxy.example.com
更换成自己的域名
编辑 /etc/systemd/system/docker.service.d/http-proxy.conf
文件(如果不存在则创建)
1 2 3 4 [Service ] Environment="HTTP_PROXY=http://proxy.example.com:80/" Environment="HTTPS_PROXY=https://proxy.example.com:443/" Environment="NO_PROXY=localhost,127.0.0.1"
然后重新加载 systemd 配置并重启 Docker 服务:
1 2 sudo systemctl daemon-reload sudo systemctl restart docker