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即可。

监控效果查看

下面给出我的虚拟机和容器监控效果图如下:
在这里插入图片描述
在这里插入图片描述

Prometheus是一种开源监控系统,可用于监控多个维度的应用程序和系统。使用Prometheus可收集和存储各种指标,并提供强大的查询语言和图形化界面,方便用户进行数据分析和可视化。 在本文中,我将分享如何使用Docker搭建Prometheus并进行实验的总结。 步骤一:安装DockerDocker Compose 在开始之前,需要先安装DockerDocker Compose。你可以在Docker官方网站上找到安装说明。 步骤二:创建Docker Compose文件 在本例中,我们将使用Docker Compose创建一个Prometheus容器。以下是Docker Compose文件的示例代码: ``` version: '3' services: prometheus: image: prom/prometheus ports: - "9090:9090" volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml command: - '--config.file=/etc/prometheus/prometheus.yml' ``` 此Docker Compose文件定义了一个名为“prometheus”的服务,使用Prometheus镜像,并将容器的9090端口映射到主机的9090端口。此外,它还将主机上的“prometheus.yml”文件挂载到容器的“/etc/prometheus/prometheus.yml”路径中,以便我们可以在容器中使用该配置文件。 步骤三:创建Prometheus配置文件 接下来,我们需要创建Prometheus的配置文件。在本例中,我们将创建一个名为“prometheus.yml”的文件,并将其放在与Docker Compose文件相同的目录中。以下是一个示例配置文件: ``` 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). scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] - job_name: 'node_exporter' static_configs: - targets: ['node-exporter:9100'] ``` 此配置文件定义了两个作业。第一个作业名称为“prometheus”,其中使用静态配置将本地主机的9090端口指定为目标。第二个作业名称为“node_exporter”,其中使用静态配置将名为“node-exporter”的容器的9100端口指定为目标。 步骤四:启动Prometheus容器 现在,我们已经准备好启动Prometheus容器了。在命令行中,转到包含Docker Compose文件和Prometheus配置文件的目录,并运行以下命令: ``` docker-compose up -d ``` 此命令将使用Docker Compose文件创建并启动Prometheus容器。在容器启动后,可以通过访问http://localhost:9090来访问Prometheus Web界面。 步骤五:实验 现在,我们已经成功搭建Prometheus并启动了容器。接下来,我们可以进行一些实验,例如: 1. 在Prometheus Web界面中,尝试添加新的指标,并使用PromQL查询语言查询指标数据。 2. 在本地主机上运行一个简单的HTTP服务器,并在Prometheus配置文件中添加静态配置以收集HTTP服务器的指标。 3. 在另一个容器中运行一个简单的HTTP服务器,并在Prometheus配置文件中添加静态配置以收集该容器的指标。 总结 通过使用Docker,我们可以轻松地搭建和运行Prometheus监控系统,并进行实验。使用Prometheus,我们可以收集和存储多个维度的指标,并进行数据分析和可视化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值