[toc]

使用普罗米修斯监控容器

  • cAdvisor
    • 数据收集器,类似于:zabbix-agent
    • 收集容器的数据
    • 监控容器
  • node_exporter
    • 数据收集器,类似于:zabbix-agent
    • 收集宿主机的数据
    • 监控物理机
  • prometheus
    • 监控工具 ,类似:zabbix-server
  • grafana
    • 出图工具,类似于:zabbix、elasticsearch中的绘图
    • 可以关联zabbix、elasticsearch、kinnba、Prometheus等软件进行绘图
    • 将收集到数据绘图展示(更专业)

部署普罗米修斯集群

环境准备

主机名 内网IP 外网IP 角色 应用
docker01 172.16.1.81 10.0.0.81 监控物理机和容器状态、监控工具、出图 prometheus、cAdvisor、node_exporter、grafana
docker02 172.16.1.82 10.0.0.82 监控物理机和容器状态 cAdvisor、node_exporter
docker03 172.16.1.83 10.0.0.83 监控物理机和容器状态 cAdvisor、node_exporter

容器自动化部署

  • 在dockker01上部署prometheus、cAdvisor、node_exporter、grafana

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    # 创建并编辑prometheus配置文件
    vim ./prometheus.yml
    scrape_configs:
    - job_name: cadvisor
    scrape_interval: 5s
    static_configs:
    - targets:
    - 10.0.0.81:8080
    - 10.0.0.82:8080
    - 10.0.0.83:8080

    - job_name: prometheus
    scrape_interval: 5s
    static_configs:
    - targets:
    - 10.0.0.81:9090

    - job_name: node_exporter
    scrape_interval: 5s
    static_configs:
    - targets:
    - 10.0.0.81:9100
    - 10.0.0.82:9100
    - 10.0.0.83:9100

    # 编辑docker-compose部署文件
    vim docker-compose.yml
    version: '3.2'
    services:
    prometheus:
    image: prom/prometheus:latest
    container_name: prometheus
    ports:
    - 9090:9090
    command:
    - --config.file=/etc/prometheus/prometheus.yml
    volumes:
    - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
    depends_on:
    - cadvisor

    node-exporter:
    image: prom/node-exporter:latest
    container_name: node_exporter
    ports:
    - 9100:9100

    cadvisor:
    image: google/cadvisor:latest
    container_name: cadvisor
    ports:
    - 8080:8080
    volumes:
    - /:/rootfs:ro
    - /var/run:/var/run:rw
    - /sys:/sys:ro
    - /var/lib/docker:/var/lib/docker:ro

    grafana:
    image: grafana/grafana:latest
    container_name: grafana
    ports:
    - 3000:3000
  • 在dockker02、dockker03上部署cAdvisor、node_exporter

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    # 编辑docker-compose部署文件
    vim docker-compose.yml
    version: '3.2'
    services:
    node-exporter:
    image: prom/node-exporter:latest
    container_name: node_exporter
    ports:
    - 9100:9100

    cadvisor:
    image: google/cadvisor:latest
    container_name: cadvisor
    ports:
    - 8080:8080
    volumes:
    - /:/rootfs:ro
    - /var/run:/var/run:rw
    - /sys:/sys:ro
    - /var/lib/docker:/var/lib/docker:ro
  • 访问web页面

    • 10.0.0.81:8080

    • 10.0.0.81:9100

    image-20230607151514184

    • 10.0.0.81:9090

    image-20230607151549797

    • 10.0.0.81:3000

    image-20230607151614927

Grafana使用说明

Grafana添加数据源

  • 登陆Grafana,并设置密码

    image-20230607151743337

  • 设置数据源

    image-20230607151851020

  • 添加数据源

    image-20230607151931113

  • 选择Prometheus

    image-20230607152026097

  • 开启Prometheus自带的模板

    image-20230607152607755

  • 输入Prometheus的url

    image-20230607153559922

  • 保存并测试

    image-20230607153640176

  • 查看已添加的数据源

    image-20230607160329404

添加数据展示模板

  • 查看已添加的模板

    image-20230607160418332

  • 官方提供的模板

    image-20230607160910530

  • 搜索官方模板

    image-20230607163659952

  • 复制模板ID或下载json文件

    image-20230607163519991

  • 选择模板

    image-20230607163900599

  • 导入模板

    image-20230607164054186

  • 模板结合Prometheus数据展示

    image-20230607164318130

修改模板变量

  • 下载json模板

    image-20230607173006830

  • 修改json文件

    image-20230607172557660

  • 删除原docker模板

    image-20230607172724563

  • 选择json文件并导入

    image-20230607172830682

  • 进入设置页面

    image-20230607164440902

  • 修改变量(修改前)

    image-20230607170226378

  • project
    label_values(container_last_seen, project)
    # 修改后:label_values(container_last_seen, job)
    
    instance
    label_values(container_last_seen{project=~"$project",server=~"$server"}, instance)
    # 修改后: label_values(container_last_seen{job=~"$job"}, instance)
    
  • 修改展示标签

    image-20230607173426396

  • 修改变量并保存(修改后)

    image-20230607171122728

  • 查看模板编辑内容

    image-20230607173208982

  • 查看配置信息

    image-20230607173244529