docker搭建prometheus监控教程

 更新时间:2025年03月13日 09:54:05   作者:程序员阿斌  
这篇文章主要介绍了docker搭建prometheus监控教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

介绍

prometheus是开源的监控解决方案。他的监控侧重于云原生应用,例容器、k8s集群。prometheus通过各种各样的exporter去监控各种metric指标数据。

(本期目标:docker部署prometheus,添加常见exproter并且在grafana中导入可视化模板。)

docker环境的准备,怎么切换到国内镜像仓库源,提升镜像下载速度。小伙伴可以自行去查找其他博客进行学习。

拉镜像

这里我们拉取Prometheusnode-exportermysqld-exportercadvisor镜像并且启动他们。

  • node-exporter:虚拟机监控的exporter,包括虚拟机cpu、内存使用情况等。
  • mysqld-exporter:mysql监控的exporter。
  • cadvisor:容器监控的exporter。
docker pull prom/node-exporter
docker pull prom/mysqld-exporter
docker pull google/cadvisor
docker pull prom/prometheus
docker pull grafana/grafana

起容器

  • node-exporter
docker run -d --name node-exporter --restart=always -p 9100:9100 -v "/proc:/host/proc:ro" -v "/sys:/host/sys:ro" -v "/:/rootfs:ro" prom/node-exporter

容器启动后可通过访问http://ip:9100/metrics查看指标。

  • mysqld-exporter
docker run -d --name mysqld_exporter --restart=always -p 9104:9104 -e DATA_SOURCE_NAME="root:Password123@(172.17.0.2:3306)/" prom/mysqld-exporter

容器启动后可通过访问http://ip:9104/metrics查看指标。

  • cadvisor
docker run -v /:/rootfs:ro -v /var/run:/var/run:rw -v /sys:/sys:ro -v /var/lib/docker/:/var/lib/docker:ro -v /dev/disk/:/dev/disk:ro -p 8080:8080 -d --name=cadvisor --restart=always google/cadvisor:latest

容器启动后可通过访问http://ip:8080/metrics查看指标。

  • prometheus

prometheus容器启动前需要配置前面三个exporter的网络信息。因为同属于docker网络。我们可以通过docker inspect containerid来查看上面三个容器的IP,将三个exporter注册进prometheus里。

mkdir /opt/prometheus
cd /opt/prometheus/
vim prometheus.yml

下面贴出我的prometheus.yml配置文件:

global:
  scrape_interval:     60s
  evaluation_interval: 60s

scrape_configs:

  - job_name: prometheus
    static_configs:
      - targets: ['localhost:9090']
        labels:
          instance: prometheus

  - job_name: linux
    static_configs:
      - targets: ['172.17.0.3:9100']
        labels:
          instance: localhost
  - job_name: cadvisor
    static_configs:
      - targets: ['172.17.0.5:8080']
        labels:
          instance: cAdvisor

  - job_name: mysqld
    static_configs:
      - targets: ['172.17.0.4:9104']
        labels:
          instance: mysql-exporter

使用下面命令启动prometheus容器:

docker run  -d --name prometheus --restart=always -p 9090:9090 -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

访问http://ip:9090/targets,可以看到我们起来的几个exporter:

  • grafana

创建grafana数据目录:

mkdir /opt/grafana-storage
chmod 777 -R /opt/grafana-storage

下面启动grafana容器:

docker run -d --name grafana --restart=always -p 3000:3000 --name=grafana -v /opt/grafana-storage:/var/lib/grafana grafana/grafana

容器启动后可通过访问http://ip:3000访问grafana,初始账号为admin/admin,第一次登录后会需要你修改密码。

配置grafana仪表盘

这里我们选择数据源为prometheus

这里我给出我的配置参考:

主要注意URL的填写,我这里填写的是prometheus容器内网地址。大家可以使用docker inspect containerid进行查看。

  • 导入官方仪表盘

8919、179分别是虚拟机监控仪表盘和容器监控仪表盘,输入数字后load。


修改名称、选择你的prometheus数据源再import即可。

监控效果查看

下面给出我的虚拟机和容器监控效果图如下:


总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Portainer部署和添加其他docker服务器的方法

    Portainer部署和添加其他docker服务器的方法

    文章介绍了如何部署Portainer并添加其他Docker服务器,本文给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2025-03-03
  • 解决Docker Desktop运行一直转问题

    解决Docker Desktop运行一直转问题

    遇到Docker启动报错、Docker Desktop运行不正常等问题,常见解决方案包括以管理员身份运行CMD,重启Docker服务,恢复Docker Desktop出厂设置,启用Windows功能等,最终通过运行cmd命令"netsh winsock reset"解决问题,但需注意此操作可能导致Docker镜像丢失
    2024-09-09
  • Docker与Kubernetes部署实战之云原生应用交付

    Docker与Kubernetes部署实战之云原生应用交付

    Docker与Kubernetes是当今云原生应用开发与运维体系中最为关键的两大基础设施技术,尤其对Java开发者而言,这篇文章主要介绍了Docker与Kubernetes部署实战之云原生应用交付的相关资料,需要的朋友可以参考下
    2026-04-04
  • 基于Docker的几种常用CentOS7镜像小结

    基于Docker的几种常用CentOS7镜像小结

    本文主要介绍了使用 Docker 来制作CentOS 环境的镜像,并上传到阿里云的 Docker 镜像仓库,具有一定的参考价值,感兴趣的可以了解一下
    2021-11-11
  • Docker 入门快速上手指南

    Docker 入门快速上手指南

    本篇文章主要介绍了详解Docker 快速上手指南,记录 Docker 中的常用操作、指令,使得大家能够快速地使用 Docker。
    2017-03-03
  • Docker学习笔记之docker入门

    Docker学习笔记之docker入门

    docker可以类比成window下的VMware。docker有两个基本的概念:容器(container)和镜像(image),分别对应为VMware中的系统镜像和系统镜像中运行的软件。docker的强大之处在于VMware只能运行几个虚拟机的设备上docker可以同时运行几十甚至上百个虚拟机。
    2016-11-11
  • docker 查看容器的挂载目录操作

    docker 查看容器的挂载目录操作

    这篇文章主要介绍了docker 查看容器的挂载目录操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Docker如何创建一个Jar服务容器

    Docker如何创建一个Jar服务容器

    这篇文章主要介绍了Docker如何创建一个Jar服务容器问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • docker(alpine+golang) 中 hosts 不生效问题解决方法

    docker(alpine+golang) 中 hosts 不生效问题解决方法

    这篇文章主要介绍了docker(alpine+golang) 中 hosts 不生效问题解决大全,本文给大家分享了三种解决方法,每种方法给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • Docker 安装 LogStash的详细过程

    Docker 安装 LogStash的详细过程

    Logstash,作为Elastic Stack家族中的核心成员之一,是一个功能强大的开源数据收集引擎,在本文中,我们将详细介绍如何借助Docker容器技术快速安装配置Logstash,以实现日志及各类事件数据的无缝集成与实时处理,感兴趣的朋友一起看看吧
    2024-03-03

最新评论