BAT大厂大佬教你:Docker部署Prometheus+Grafana监控系统

本文介绍了如何使用Docker部署Prometheus和Grafana监控系统,包括部署主机、容器、Redis、应用及进程监控组件,以及配置Alertmanager报警规则和测试微信报警。详细阐述了每个组件的Docker命令和Prometheus配置,帮助读者掌握全面的监控解决方案。
摘要由CSDN通过智能技术生成

部署监控组件Exporter

Prometheus 是使用 Pull 的方式来获取指标数据的,要让 Prometheus 从目标处获得数据,首先必须在目标上安装指标收集的程序,并暴露出 HTTP 接口供 Prometheus 查询,这个指标收集程序被称为 Exporter ,不同的指标需要不同的 Exporter 来收集,目前已经有大量的 Exporter 可供使用,几乎囊括了我们常用的各种系统和软件,官网列出了一份常用Exporter的清单 ,各个 Exporter 都遵循一份端口约定,避免端口冲突,即从 9100 开始依次递增,这里是完整的 Exporter端口列表 。另外值得注意的是,有些软件和系统无需安装 Exporter,这是因为他们本身就提供了暴露 Prometheus 格式的指标数据的功能,比如 Kubernetes、Grafana、Etcd、Ceph 等。

部署主机监控组件

各节点主机使用主机网络模式部署主机监控组件node-exporter,官方不建议将其部署为Docker容器,因为该node_exporter设计用于监控主机系统。需要访问主机系统,而且通过容器的方式部署发现磁盘数据不太准确。二进制部署就去看项目文档吧

$ docker run -d
–net=“host”
–pid=“host”
-v “/:/host:ro,rslave”
quay.io/prometheus/node-exporter
–path.rootfs=/host

容器正常运行后,进入Prometheus容器,在Prometheus.yml 文件中添加node-exporter组件地址

$ docker exec -it prometheus-133-210 /bin/bash
$ vim /data/prometheus/prometheus.yml
global:
scrape_interval: 60s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 60s # Evaluate rules every 15 seconds. The default is every 1 minute.

rule_files:

  • “rules/service_down.yml”

scrape_configs:

  • job_name: ‘Host’
    static_configs:
  • targets: [‘10.1.250.36:9100’] #node-exporter地址
    labels:
    appname: ‘DEV01_250.36’ #添加的标签
  • job_name: ‘prometheus’
    static_configs:
  • targets: [ ‘10.2.139.210:9090’]
    labels:
    appname: ‘prometheus’

热加载更新Prometheus

$ curl -X POST http://10.1.133.210:9090/-/reload

查看Prometheus的web页面已经可以看到node-exporter,然后我们就可以定义报警规则和展示看板了,这部分内容在后面配置Alertmanager和Grafana上会详细介绍。
image

部署容器监控组件

各节点主机部署容器监控组件cadvisor-exporter,我这边Docker网络使用的macvlan方式,所以直接给容器分配了IP地址。

docker run -d -h cadvisor139-216 --name=cadvisor139-216 --net=none -m 8g --cpus=4 --ip=10.1.139.216 --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --volume=/dev/disk/:/dev/disk:ro google/cadvisor:latest

同样的,容器正常运行后,我们访问Cadvisor的Web页面 IP+8080 端口
image

现在我们进入Prometheus容器,在prometheus.yml主机文件中添加cadvisor组件

  • job_name: ‘Cadvisor’
    static_configs:
  • targets: [ ‘10.1.139.216:8080’]
    labels:
    appname: ‘DEV_Cadvisor01’

热加载更新Prometheus

$ curl -X POST http://10.1.133.210:9090/-/reload

可以看到,Prometheus添加的cadvisor状态为UP,说明正常接收数据。
image

部署Redis监控组件

容器部署Redis服务监控组件redis_exporter,–redis.passwd指定认证口令,如果你的redis访问没有密码那么就无需指定后面参数。

$ docker run -d -h redis_exporter139-218 --name redis_exporter139-218 --network trust139 --ip=10.1.139.218 -m 8g --cpus=4 oliver006/redis_exporter --redis.passwd 123456

在prometheus.yml 添加redis-exporter


  • job_name: ‘Redis-exporter’ #exporter地址
    static_confi
  • 21
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Docker部署PrometheusGrafana的步骤: 1. 安装DockerDocker Compose 如果你还没有安装DockerDocker Compose,可以参考官方文档进行安装。 2. 创建Docker Compose文件 在本地创建一个文件夹(例如:`prometheus-grafana`),并在其中创建一个`docker-compose.yml`文件,用于定义PrometheusGrafana服务。 在文件中,添加以下内容: ``` version: '3' services: prometheus: image: prom/prometheus container_name: prometheus ports: - "9090:9090" volumes: - ./prometheus:/etc/prometheus command: - --config.file=/etc/prometheus/prometheus.yml restart: always grafana: image: grafana/grafana container_name: grafana ports: - "3000:3000" volumes: - ./grafana:/var/lib/grafana restart: always ``` 这个文件定义了两个服务:`prometheus`和`grafana`。`prometheus`服务将使用`prom/prometheus`镜像,并将本地`./prometheus`目录挂载到容器中`/etc/prometheus`目录,`grafana`服务将使用`grafana/grafana`镜像,并将本地`./grafana`目录挂载到容器中`/var/lib/grafana`目录。 3. 创建Prometheus配置文件 在本地创建`prometheus`文件夹,在其中创建一个`prometheus.yml`文件,用于定义Prometheus监控的目标和规则。 在文件中,添加以下内容: ``` global: scrape_interval: 15s evaluation_interval: 15s scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] ``` 这个文件定义了一个`prometheus`作业,将使用Prometheus默认的`localhost:9090`目标进行监控。 4. 运行Docker Compose 在终端中,进入`prometheus-grafana`目录,并运行以下命令: ``` docker-compose up -d ``` 这将启动PrometheusGrafana服务,并将它们置于后台运行。你可以使用以下命令检查服务是否正在运行: ``` docker-compose ps ``` 5. 访问Grafana 在浏览器中,访问`http://localhost:3000`,使用默认的用户名和密码(admin/admin)登录Grafana。 现在,你可以在Grafana中添加一个数据源,选择Prometheus,并将URL设置为`http://prometheus:9090`(因为Prometheus服务的名称是`prometheus`,而不是`localhost`)。 完成后,你可以创建一个新的仪表板并添加一个面板,从而开始使用Grafana可视化Prometheus监控数据。 以上就是使用Docker部署PrometheusGrafana的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值