美文网首页docker
Prometheus监控docker容器

Prometheus监控docker容器

作者: 光明_7c13 | 来源:发表于2019-12-01 17:56 被阅读0次

    中文文档

    需了解cadvisor

    首先在监控服务器安装:

    1.安装Node Exporter 来收集硬件信息

    所有节点运行以下命令安装Node Exporter 容器

    docker run -d -p 9100:9100 \
    -v "/proc:/host/proc" \
    -v "/sys:/host/sys" \
    -v "/:/rootfs" \
    -v "/etc/localtime:/etc/localtime" \
    --net=host \
    prom/node-exporter \
    --path.procfs /host/proc \
    --path.sysfs /host/sys \
    --collector.filesystem.ignored-mount-points "^/(sys|proc|dev|host|etc)($|/)"
    

    注意:
    这里我们使用了 --net=host,这样 Prometheus Server 可以直接与 Node Exporter 通信

    2.安装cAdvisor 来收集容器信息 所有节点运行以下命令来安装cAdvisor

    docker run -d \
    --volume=/:/rootfs:ro \
    --volume=/var/run:/var/run:rw \
    --volume=/sys:/sys:ro \
    --volume=/var/lib/docker/:/var/lib/docker:ro \
    --publish=8080:8080 \
    --detach=true \
    --name=cadvisor \
    --net=host \
    -v "/etc/localtime:/etc/localtime" \
    google/cadvisor:latest
    

    注意:
    这里我们使用了 --net=host,这样 Prometheus Server 可以直接与 cAdvisor 通信。

    3.安装普罗米修斯服务

    首先在本地创建prometheus.yml这是普罗米修斯的配置文件
    将下方内容写入到文件中
    将监听的地址改为自己本机地址

    # my global config
    global:
      scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
      evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
      # scrape_timeout is set to the global default (10s).
    
    # Alertmanager configuration
    alerting:
      alertmanagers:
      - static_configs:
        - targets:
          # - alertmanager:9093
    
    # Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
    rule_files:
      # - "first_rules.yml"
      # - "second_rules.yml"
    
    # A scrape configuration containing exactly one endpoint to scrape:
    # Here it's Prometheus itself.
    scrape_configs:
      # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
      - job_name: 'prometheus'
    
        # metrics_path defaults to '/metrics'
        # scheme defaults to 'http'.
    
        static_configs:
        #监听的地址
        - targets: ['localhost:9090','10.0.122.39:8080','10.0.122.39:9090']
    

    启动容器

    docker run -d -p 9090:9090 \
    -v /root/prometheus.yml:/etc/prometheus/prometheus.yml \
    -v "/etc/localtime:/etc/localtime" \
    --name prometheus \
    --net=host \
    prom/prometheus
    

    注意:
    这里我们使用了 --net=host,这样 Prometheus Server 可以直接与 Exporter 和 Grafana 通信。

    当Prometheus容器启动成功后访问
    10.0.122.39:9090

    4.在DockerMachine上运行Grafana

    docker run -d -i -p 3000:3000 \
    -v "/etc/localtime:/etc/localtime" \
    -e "GF_SERVER_ROOT_URL=http://grafana.server.name" \
    -e "GF_SECURITY_ADMIN_PASSWORD=admin8888" \
    --net=host \
    grafana/grafana
    
    

    Grafana启动后,在浏览器中打开http://10.0.122.39:3000 登录界面,登录用admin 密码为刚创建Grafana时的admin8888

    添加普罗米修斯服务器,重点看框部分,其它默认即可

    如果一切顺利该DataSource可以正常工作了,也就是说Grafana可以正常跟Prometheus正常通信了,接下来通过dashboard展示数据。

    7.自己手工创建dashboard有点困难,可以借助开元的力量访问 监控模板地址 将会看到很多用于监控 Docker 的 Dashboard。监控模板地址(多种监控模板根据自己需求下载不同的模板)

    有些dashboard可以下载后直接导入,而有些需要修改后再导入,需要看dashboard的overview

    最后效果

    最后说明:
    监控服务器 需要安装4个服务
    Prometheus Server(普罗米修斯监控主服务器 )
    Node Exporter (收集Host硬件和操作系统信息)
    cAdvisor (负责收集Host上运行的容器信息)
    Grafana (展示普罗米修斯监控界面)

    被监控的只有安装2个
    Node Exporter (收集Host硬件和操作系统信息)
    cAdvisor (负责收集Host上运行的容器信息)

    相关文章

      网友评论

        本文标题:Prometheus监控docker容器

        本文链接:https://www.haomeiwen.com/subject/lhnowctx.html