1 背景认知

1.1 什么是信创环境

信创(信息技术应用创新)是基于国产软硬件构建的 IT 生态体系,核心包含国产操作系统(如银河麒麟 V10、统信 UOS V20)、国产芯片(昇腾、寒武纪、壁仞等)、国产中间件等,目标是实现信息技术自主可控。信创环境部署软件需解决兼容性问题,尤其是 CUDA 依赖替换、国密协议适配等核心需求。

1.2 什么是 Prometheus

Prometheus 是开源的云原生监控系统,采用 Go 语言开发,核心功能包括时序数据采集、存储、查询和告警,通过 Pull 模式(主动拉取指标)工作,支持动态服务发现和 PromQL 查询语言,广泛用于容器、服务器、应用的监控。其生态组件包括:

  • Prometheus Server:核心组件,负责采集和存储数据
  • Exporters:指标暴露器(如 Node Exporter 监控服务器)
  • Alertmanager:告警管理组件
  • PushGateway:接收短期任务指标推送
  • Grafana:可视化展示工具

1.3 高可用的意义

单节点 Prometheus 存在单点故障风险,高可用部署通过多节点集群、数据备份、故障自动切换等机制,确保监控系统 7×24 小时运行,避免因监控中断导致业务故障漏报。信创环境下的高可用还需额外满足国产软硬件兼容性和合规要求。

1.4 信创与非信创部署的核心差异

对比维度

信创环境部署

非信创环境部署

操作系统

银河麒麟 V10、统信 UOS V20 等国产系统

CentOS、Ubuntu 等国外系统

硬件适配

需兼容国产 CPU/GPU(昇腾、寒武纪等)

主要适配 x86/AMD 架构

依赖替换

需用国产 CUDA 兼容层(如 libkunlun_cuda.so)

直接使用 NVIDIA CUDA

安全合规

支持国密协议(SM4/SM2)

默认使用 AES 等国际加密标准

中间件依赖

需使用国密版中间件(如 OpenMPI 国密版)

通用开源中间件

2 核心配置

2.1 部署架构选择

信创高可用推荐采用 “Prometheus 集群 + Thanos + MinIO” 架构,核心优势:

  • 多 Prometheus 节点冗余,避免单点故障
  • Thanos 实现数据汇总、去重和长期存储
  • MinIO 作为国产对象存储,适配信创环境数据持久化需求

架构组件分工:

组件 作用 部署数量
Prometheus Server 采集、存储指标数据 2 台(主从冗余)
Thanos Sidecar 对接 Prometheus,上传数据到 MinIO 与 Prometheus 一一对应
Thanos Query 统一查询入口,聚合多节点数据 2 台(负载均衡)
Thanos Compactor 压缩对象存储数据,优化查询性能 1 台
MinIO 国产对象存储,存储历史监控数据 1 台(或使用云厂商对象存储)
Alertmanager 告警分组、路由 2 台(集群模式)
Grafana 可视化展示 1 台
Node Exporter 采集服务器硬件指标 所有节点均部署

2.2 关键配置文件说明

2.2.1 Prometheus 主配置文件(prometheus.yml)

核心配置项包含采集规则、存储设置、Thanos 对接信息,信创环境需添加国产 Exporter 适配:

global:

  scrape_interval: 15s  # 采集间隔

  evaluation_interval: 15s  # 规则评估间隔

storage_config:

  tsdb:

    path: /data/prometheus  # 本地存储路径

    retention_time: 15d  # 本地数据保留时间(剩余数据由Thanos迁移到MinIO)

scrape_configs:

  # 采集自身指标

  - job_name: "prometheus"

    static_configs:

      - targets: ["localhost:9090"]

  # 采集服务器指标(Node Exporter)

  - job_name: "node"

    static_configs:

      - targets: ["10.0.1.35:9100", "10.0.1.36:9100"]  # 所有节点IP:端口

  # 采集国产GPU指标(如昇腾)

  - job_name: "ascend-gpu"

    static_configs:

      - targets: ["10.0.1.35:9200", "10.0.1.36:9200"]  # 国产GPU Exporter端口

# Thanos对接配置

remote_write:

  - url: "http://thanos-sidecar:10908/api/v1/receive"

2.2.2 Thanos 存储配置(storage.yaml)

适配 MinIO 国产对象存储:

type: s3

config:

  bucket: "prometheus-data"  # MinIO存储桶名称

  endpoint: "10.0.1.35:9000"  # MinIO服务地址

  access_key: "admin"  # MinIO访问密钥

  secret_key: "admin123456"  # MinIO密钥

  insecure: true  # 允许HTTP访问(生产环境建议启用HTTPS)

  signature_version2: true

2.2.3 Alertmanager 告警配置(alertmanager.yml)

支持信创环境常用告警渠道(钉钉、企业微信):

global:

  resolve_timeout: 5m

route:

  group_by: ['alertname']

  group_wait: 10s

  group_interval: 10s

  repeat_interval: 1h

  receiver: 'dingtalk'

receivers:

- name: 'dingtalk'

  webhook_configs:

  - url: 'http://prometheus-webhook-dingtalk:8060/dingtalk/webhook1/send'  # 钉钉告警中间件地址

inhibit_rules:

  - source_match:

      severity: 'critical'

    target_match:

      severity: 'warning'

    equal: ['alertname', 'dev', 'instance']

2.3 信创环境专属配置

2.3.1 CUDA 依赖替换(银河麒麟 / 统信 UOS)

Prometheus 部分组件依赖 GPU 加速时,需替换为国产 CUDA 兼容层:

# 1. 安装国产异构计算运行时(以昆仑芯为例)

sudo yum install -y libkunlun-cuda runtime-libs

# 2. 创建符号链接,替换默认CUDA库

sudo ln -sf /usr/lib64/libkunlun_cuda.so.1 /usr/lib64/libcuda.so.1

sudo ldconfig  # 刷新动态链接库缓存

2.3.2 国密协议启用(OpenMPI 国密版)

若使用分布式部署,需配置国密通信:

# 编辑环境变量配置文件

sudo vi /etc/profile.d/ucx.sh

# 添加以下内容

export OMPI_MCA_btl_openib_allow_ib=1

export OMPI_MCA_pml="ucx"

export UCX_TLS="sm4,cuda_copy,gdr_copy"  # 启用SM4加密

export UCX_SOCKADDR_CM_ENABLE=y  # 启用SM2密钥协商

# 生效配置

source /etc/profile.d/ucx.sh

3 基础实操

3.1 环境准备(2 台服务器示例)

服务器 IP

操作系统

角色

硬件要求

10.0.1.35

银河麒麟 V10 SP1

Prometheus1、Thanos Sidecar1、MinIO、Grafana、Compactor

8 核 16G,500G 硬盘

10.0.1.36

统信 UOS V20

Prometheus2、Thanos Sidecar2、Thanos Query2、Alertmanager2

8 核 16G,500G 硬盘

3.1.1 基础依赖安装(所有节点执行)

# 银河麒麟V10

sudo yum install -y docker docker-compose wget curl libselinux-utils

# 统信UOS

sudo apt update && sudo apt install -y docker docker-compose wget curl

# 启动Docker并设置开机自启

sudo systemctl enable --now docker

sudo systemctl status docker  # 验证Docker是否启动成功

# 关闭防火墙(测试环境,生产环境需配置端口放行)

sudo systemctl stop firewalld && sudo systemctl disable firewalld

3.1.2 国产 Exporter 安装(所有节点执行)

# 安装Node Exporter(服务器指标)

cd /opt && wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz

tar xf node_exporter-1.6.1.linux-amd64.tar.gz

sudo mv node_exporter-1.6.1.linux-amd64/node_exporter /usr/local/bin/

# 配置systemd服务

sudo cat > /etc/systemd/system/node_exporter.service <'

[Unit]

Description=Node Exporter

After=network.target

[Service]

Type=simple

ExecStart=/usr/local/bin/node_exporter

Restart=on-failure

[Install]

WantedBy=multi-user.target

EOF

# 启动Node Exporter

sudo systemctl daemon-reload && sudo systemctl enable --now node_exporter

sudo systemctl status node_exporter  # 验证,默认端口9100

# 安装国产GPU Exporter(以昇腾为例)

sudo yum install -y ascend-exporter

sudo systemctl enable --now ascend-exporter

sudo systemctl status ascend-exporter  # 验证,默认端口9200

3.2 MinIO 部署(10.0.1.35 执行)

MinIO 是国产友好的对象存储,用于存储 Thanos 长期数据:

# 1. 创建数据目录

sudo mkdir -p /data/minio

# 2. 编写docker-compose.yml

sudo cat > /opt/minio/docker-compose.yml <EOF'

version: '3'

services:

  minio:

    image: minio/minio:latest

    container_name: minio

    restart: always

    ports:

      - "9000:9000"  # 存储服务端口

      - "9001:9001"  # 管理界面端口

    environment:

      - MINIO_ROOT_USER=admin  # 管理员账号

      - MINIO_ROOT_PASSWORD=admin123456  # 管理员密码

    volumes:

      - /data/minio:/data

    command: server /data --console-address ":9001"

EOF

# 3. 启动MinIO

cd /opt/minio && sudo docker-compose up -d

# 4. 验证访问

# 浏览器打开 http://10.0.1.35:9001,使用账号admin/admin123456登录

# 创建存储桶:点击"Create a Bucket",名称输入"prometheus-data",点击创建

3.3 Prometheus + Thanos 部署(两台服务器分别执行)

3.3.1 10.0.1.35 节点部署

# 1. 创建工作目录

sudo mkdir -p /opt/prometheus/{conf,data}

sudo mkdir -p /opt/thanos/{conf,data}

# 2. 编写Prometheus配置文件

sudo cat > /opt/prometheus/conf/prometheus.yml <EOF'

global:

  scrape_interval: 15s

  evaluation_interval: 15s

storage_config:

  tsdb:

    path: /data

    retention_time: 15d

scrape_configs:

  - job_name: "prometheus"

    static_configs:

      - targets: ["localhost:9090"]

  - job_name: "node"

    static_configs:

      - targets: ["10.0.1.35:9100", "10.0.1.36:9100"]

  - job_name: "ascend-gpu"

    static_configs:

      - targets: ["10.0.1.35:9200", "10.0.1.36:9200"]

remote_write:

  - url: "http://thanos-sidecar:10908/api/v1/receive"

EOF

# 3. 编写Thanos存储配置

sudo cat > /opt/thanos/conf/storage.yaml <EOF'

type: s3

config:

  bucket: "prometheus-data"

  endpoint: "10.0.1.35:9000"

  access_key: "admin"

  secret_key: "admin123456"

  insecure: true

  signature_version2: true

EOF

# 4. 编写docker-compose.yml

sudo cat > /opt/prometheus/docker-compose.yml <version: '3'

services:

  prometheus:

    image: prom/prometheus:v2.45.0

    container_name: prometheus

    restart: always

    ports:

      - "9090:9090"

    volumes:

      - /opt/prometheus/conf/prometheus.yml:/etc/prometheus/prometheus.yml

      - /opt/prometheus/data:/data

    command:

      - --config.file=/etc/prometheus/prometheus.yml

      - --storage.tsdb.path=/data

      - --web.enable-lifecycle

  thanos-sidecar:

    image: thanosio/thanos:v0.32.5

    container_name: thanos-sidecar

    restart: always

    ports:

      - "10901:10901"

    volumes:

      - /opt/thanos/conf/storage.yaml:/etc/thanos/storage.yaml

    command:

      - sidecar

      - --prometheus.url=http://prometheus:9090

      - --tsdb.path=/prometheus-data

      - --objstore.config-file=/etc/thanos/storage.yaml

    depends_on:

      - prometheus

  thanos-query:

    image: thanosio/thanos:v0.32.5

    container_name: thanos-query

    restart: always

    ports:

      - "10902:10902"

    command:

      - query

      - --http-address=0.0.0.0:10902

      - --store=10.0.1.35:10901

      - --store=10.0.1.36:10901

  thanos-compactor:

    image: thanosio/thanos:v0.32.5

    container_name: thanos-compactor

    restart: always

    volumes:

      - /opt/thanos/conf/storage.yaml:/etc/thanos/storage.yaml

      - /opt/thanos/data:/data

    command:

      - compact

      - --objstore.config-file=/etc/thanos/storage.yaml

      - --data-dir=/data

      - --retention.resolution-raw=30d

      - --retention.resolution-5m=90d

      - --retention.resolution-1h=1y

  alertmanager:

    image: prom/alertmanager:v0.26.0

    container_name: alertmanager

    restart: always

    ports:

      - "9093:9093"

    volumes:

      - /opt/prometheus/conf/alertmanager.yml:/etc/alertmanager/alertmanager.yml

    command:

      - --config.file=/etc/alertmanager/alertmanager.yml

      - --storage.path=/data

      - --cluster.listen-address=0.0.0.0:9094

      - --cluster.advertise-address=10.0.1.35:9094

      - --cluster.peer=10.0.1.36:9094

  prometheus-webhook-dingtalk:

    image: timonwong/prometheus-webhook-dingtalk:v2.1.0

    container_name: dingtalk-webhook

    restart: always

    ports:

      - "8060:8060"

    command:

      - --ding.profile=webhook1=https://oapi.dingtalk.com/robot/send?access_token=你的钉钉机器人token

  grafana:

    image: grafana/grafana:10.2.0

    container_name: grafana

    restart: always

    ports:

      - "3000:3000"

    volumes:

      - /opt/grafana/data:/var/lib/grafana

    environment:

      - GF_SECURITY_ADMIN_USER=admin

      - GF_SECURITY_ADMIN_PASSWORD=admin123456

EOF

# 5. 启动服务

cd /opt/prometheus && sudo docker-compose up -d

3.3.2 10.0.1.36 节点部署

# 1. 创建工作目录

sudo mkdir -p /opt/prometheus/{conf,data}

sudo mkdir -p /opt/thanos/conf

# 2. 复制3.3.1中的prometheus.yml和storage.yaml到对应目录

# (注意:prometheus.yml中的targets保持不变,storage.yaml中的endpoint仍为10.0.1.35:9000)

# 3. 编写docker-compose.yml(无Compactor、Grafana、MinIO)

sudo cat > /opt/prometheus/docker-compose.yml <EOF'

version: '3'

services:

  prometheus:

    image: prom/prometheus:v2.45.0

    container_name: prometheus

    restart: always

    ports:

      - "9090:9090"

    volumes:

      - /opt/prometheus/conf/prometheus.yml:/etc/prometheus/prometheus.yml

      - /opt/prometheus/data:/data

    command:

      - --config.file=/etc/prometheus/prometheus.yml

      - --storage.tsdb.path=/data

      - --web.enable-lifecycle

  thanos-sidecar:

    image: thanosio/thanos:v0.32.5

    container_name: thanos-sidecar

    restart: always

    ports:

      - "10901:10901"

    volumes:

      - /opt/thanos/conf/storage.yaml:/etc/thanos/storage.yaml

    command:

      - sidecar

      - --prometheus.url=http://prometheus:9090

      - --tsdb.path=/prometheus-data

      - --objstore.config-file=/etc/thanos/storage.yaml

    depends_on:

      - prometheus

  thanos-query:

    image: thanosio/thanos:v0.32.5

    container_name: thanos-query

    restart: always

    ports:

      - "10902:10902"

    command:

      - query

      - --http-address=0.0.0.0:10902

      - --store=10.0.1.35:10901

      - --store=10.0.1.36:10901

  alertmanager:

    image: prom/alertmanager:v0.26.0

    container_name: alertmanager

    restart: always

    ports:

      - "9093:9093"

    volumes:

      - /opt/prometheus/conf/alertmanager.yml:/etc/alertmanager/alertmanager.yml

    command:

      - --config.file=/etc/alertmanager/alertmanager.yml

      - --storage.path=/data

      - --cluster.listen-address=0.0.0.0:9094

      - --cluster.advertise-address=10.0.1.36:9094

      - --cluster.peer=10.0.1.35:9094

EOF

# 4. 启动服务

cd /opt/prometheus && sudo docker-compose up -d

3.4 部署验证

# 1. 检查所有容器状态(两台节点均执行)

sudo docker ps -a  # 确保所有容器状态为Up

# 2. 访问Prometheus UI

# 浏览器打开 http://10.0.1.35:9090 和 http://10.0.1.36:9090

# 点击"Status" → "Targets",确认所有target状态为"UP"

# 3. 访问Thanos Query

# 浏览器打开 http://10.0.1.35:10902,点击"Stores",确认两个Thanos Sidecar均在线

# 4. 访问Grafana

# 浏览器打开 http://10.0.1.35:3000,使用admin/admin123456登录

# 添加数据源:Configuration → Data Sources → Add data source → 选择Prometheus

# URL填写 http://thanos-query:10902,点击"Save & Test",显示Success即可

4 高阶用法

4.1 自定义监控规则配置

4.1.1 创建告警规则文件

# 在10.0.1.35节点执行

sudo cat > /opt/prometheus/conf/alert_rules.yml <:

- name: 服务器监控告警

  rules:

  # CPU使用率告警

  - alert: CPU使用率过高

    expr: avg(rate(node_cpu_seconds_total{mode!="idle"}[5m])) by (instance) > 0.8

    for: 5m

    labels:

      severity: critical

    annotations:

      summary: "服务器{{ $labels.instance }} CPU使用率过高"

      description: "CPU使用率已持续5分钟超过80%,当前值:{{ $value | humanizePercentage }}"

  

  # 内存使用率告警

  - alert: 内存使用率过高

    expr: (node_memory_used_bytes / node_memory_total_bytes) > 0.85

    for: 5m

    labels:

      severity: warning

    annotations:

      summary: "服务器{{ $labels.instance }} 内存使用率过高"

      description: "内存使用率已持续5分钟超过85%,当前值:{{ $value | humanizePercentage }}"

  

  # 国产GPU使用率告警

  - alert: 昇腾GPU使用率过高

    expr: ascend_gpu_utilization > 90

    for: 3m

    labels:

      severity: critical

    annotations:

      summary: "服务器{{ $labels.instance }} 昇腾GPU使用率过高"

      description: "GPU使用率已持续3分钟超过90%,当前值:{{ $value }}%"

EOF

4.1.2 关联到 Prometheus 配置

# 编辑prometheus.yml,添加以下内容

rule_files:

  - "alert_rules.yml"  # 相对路径,对应容器内/etc/prometheus/alert_rules.yml

# 重启Prometheus

sudo docker restart prometheus

4.2 长期数据管理优化

4.2.1 Thanos 压缩策略调整

# 修改thanos-compactor的command参数

command:

  - compact

  - --objstore.config-file=/etc/thanos/storage.yaml

  - --data-dir=/data

  - --retention.resolution-raw=7d  # 原始数据保留7天

  - --retention.resolution-5m=30d  # 5分钟聚合数据保留30天

  - --retention.resolution-1h=180d  # 1小时聚合数据保留180天

  - --compact.concurrency=4  # 压缩并发数,根据CPU核心数调整

4.2.2 MinIO 数据备份

# 创建MinIO备份脚本

sudo cat > /opt/minio/backup.sh <

#!/bin/bash

BACKUP_DIR="/data/minio_backup"

DATE=$(date +%Y%m%d)

mkdir -p $BACKUP_DIR

# 备份存储桶数据

docker run --rm -v $BACKUP_DIR:/backup -v /opt/minio/conf:/root/.minio minio/mc:latest \

  mc cp --recursive minio/prometheus-data /backup/prometheus-data-$DATE

# 删除7天前的备份

find $BACKUP_DIR -name "prometheus-data-*" -type d -mtime +7 -delete

EOF

# 添加执行权限并设置定时任务

sudo chmod +x /opt/minio/backup.sh

sudo crontab -e

# 添加以下内容(每天凌晨2点执行备份)

0 2 * * * /opt/minio/backup.sh

4.3 信创环境性能优化

4.3.1 国产 CPU 调度优化

# 编辑Prometheus的docker-compose.yml,添加CPU亲和性配置

services:

  prometheus:

    # 其他配置不变

    deploy:

      resources:

        limits:

          cpus: '4'  # 限制使用4个CPU核心

        reservations:

          cpus: '2'  # 预留2个CPU核心

    environment:

      - GODEBUG=madvdontneed=1  # 优化Go语言内存管理,适配国产CPU

4.3.2 采集间隔动态调整

# 针对不同类型指标设置不同采集间隔

scrape_configs:

  - job_name: "node"

    scrape_interval: 10s  # 服务器指标采集间隔10s

    static_configs:

      - targets: ["10.0.1.35:9100", "10.0.1.36:9100"]

  - job_name: "ascend-gpu"

    scrape_interval: 5s  # GPU指标采集间隔5s(实时性要求高)

    static_configs:

      - targets: ["10.0.1.35:9200", "10.0.1.36:9200"]

  - job_name: "application"

    scrape_interval: 30s  # 应用指标采集间隔30s(变化较慢)

    static_configs:

      - targets: ["10.0.1.35:8080", "10.0.1.36:8080"]

5 拓展建议

5.1 运维监控优化

5.1.1 日志收集

部署 ELK(Elasticsearch+Logstash+Kibana)或国产日志系统(如日志易),收集 Prometheus、Thanos、Alertmanager 日志,便于故障排查:

# 示例:为Prometheus添加日志输出配置(修改docker-compose.yml)

services:

  prometheus:

    command:

      - --config.file=/etc/prometheus/prometheus.yml

      - --storage.tsdb.path=/data

      - --web.enable-lifecycle

      - --log.level=info  # 日志级别

      - --log.format=json  # 日志格式为JSON,便于解析

5.1.2 系统监控

在 Grafana 中导入国产服务器监控模板(ID:1860,Node Exporter 模板)和 GPU 监控模板,实现可视化监控:

  1. Grafana 登录后,点击 "+" → "Import"
  2. 输入模板 ID(如 1860),点击 "Load"
  3. 选择数据源(Prometheus),点击 "Import"
  4. 即可看到服务器 CPU、内存、磁盘、网络等指标图表

5.2 安全加固

5.2.1 访问控制

为 Prometheus、Grafana、MinIO 设置访问权限:

# 1. Grafana修改密码(首次登录后)

# 点击头像 → "Change password",设置强密码

# 2. MinIO创建只读用户

# 登录MinIO管理界面 → "Identity" → "Users" → "Create user"

# 用户名:prometheus-read,密码:StrongPassword123!

# 权限设置为"readonly",仅授予prometheus-data存储桶访问权限

# 3. Prometheus启用Basic Auth

# 安装htpasswd工具

sudo yum install -y httpd-tools

# 创建密码文件

sudo htpasswd -c /opt/prometheus/conf/htpasswd prometheus

# 输入密码(如Prom@2026)

# 修改docker-compose.yml,添加认证配置

services:

  prometheus:

    command:

      - --config.file=/etc/prometheus/prometheus.yml

      - --storage.tsdb.path=/data

      - --web.enable-lifecycle

      - --web.config.file=/etc/prometheus/web.yml

    volumes:

      - /opt/prometheus/conf/web.yml:/etc/prometheus/web.yml

      - /opt/prometheus/conf/htpasswd:/etc/prometheus/htpasswd

# 创建web.yml配置文件

sudo cat > /opt/prometheus/conf/web.yml <'

basic_auth_users:

  prometheus: $(cat /etc/prometheus/htpasswd | grep prometheus | awk '{print $2}')

EOF

5.2.2 传输加密

启用 HTTPS 加密传输(生产环境必配):

# 1. 生成自签名证书(测试环境,生产环境使用CA证书)

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \

  -keyout /opt/prometheus/conf/prometheus.key \

  -out /opt/prometheus/conf/prometheus.crt \

  -subj "/C=CN/ST=Beijing/L=Beijing/O=Xinchuang/CN=prometheus-server"

# 2. 修改Prometheus配置(web.yml)

sudo cat > /opt/prometheus/conf/web.yml <EOF'

tls_server_config:

  cert_file: /etc/prometheus/prometheus.crt

  key_file: /etc/prometheus/prometheus.key

basic_auth_users:

  prometheus: $(cat /etc/prometheus/htpasswd | grep prometheus | awk '{print $2}')

EOF

# 3. 重启Prometheus

sudo docker restart prometheus

5.3 信创生态拓展

5.3.1 国产数据库适配

若需将 Prometheus 数据存储到国产数据库(如人大金仓、达梦),可通过 Remote Write 接口实现:

# 修改prometheus.yml

remote_write:

  - url: "http://国产数据库适配器:8080/write"  # 数据库适配层接口

    write_relabel_configs:

      - source_labels: [__name__]

        regex: '^node_.*$'  # 仅同步节点相关指标

        action: keep

5.3.2 国产化监控工具集成

集成国产运维平台(如嘉为蓝鲸),实现统一运维管理:

  1. 在嘉为蓝鲸平台添加 Prometheus 数据源
  2. 配置告警转发,将 Prometheus 告警同步到蓝鲸平台
  3. 利用蓝鲸的根因分析功能,提升故障排查效率

5.4 常见问题排查

5.4.1 容器启动失败

# 查看容器日志

sudo docker logs 容器名称(如prometheus)

# 常见原因及解决:

1. 端口占用:使用netstat -tulpn | grep 端口号,找到占用进程并停止

2. 配置文件错误:检查yaml文件缩进,使用yamllint工具验证

3. 目录权限:给数据目录授权,sudo chmod 777 /opt/prometheus/data

5.4.2 指标采集失败
  1. 检查 Exporter 是否正常运行:sudo systemctl status node_exporter
  2. 检查网络连通性:telnet 目标 IP 端口(如 telnet 10.0.1.36 9100)
  3. 检查防火墙端口放行:sudo firewall-cmd --list-ports(若未关闭防火墙)
5.4.3 告警未触发
  1. 检查告警规则是否正确:Prometheus UI → "Alerts",查看规则状态
  2. 检查 Alertmanager 是否正常:http://IP:9093/#/alerts
  3. 检查钉钉机器人 token 是否正确:重新配置 webhook 地址
Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐