使用 Docker 部署 Prometheus + Grafana 监控平台

2023-11-03

使用 Docker 部署 Prometheus + Grafana 监控平台

默认docker 已经安装好,我使用的是CentOS7

注意一定要开启服务器对应的端口

1. 安装Prometheus

docker run -itd --name=prometheus --restart=always -p 9090:9090 prom/prometheus

image-20230808101033449

访问:http://ip:9090

image-20230808101421257

2.安装Grafana

#这里的$PWD就是你的当前位置,我当前位置在/root,那么grafana-storage就会生成在/root下
docker run -itd --name=grafana \
> --restart=always \
> -p 3000:3000 \
> -v $PWD/grafana-storage:/var/lib/grafana \
> grafana/grafana

image-20230808101909595

访问:http://ip:3000

账号密码都是admin

image-20230808102011319

登录进来后此处可以修改密码

image-20230808102158030

3. 安装Node_exporter

因为Prometheus 本身不具备监控功能,所以想要通过Prometheus 收集数据的话,需要安装对应的exporter。

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

image-20230808102618497

http://ip:9100/metrics

image-20230808102735852

4. 配置 Prometheus 监控Node节点

4.1 修改Prometheus主配置文件

先将配置文件拷贝出来

#  $PWD 当前目录在/root
docker cp prometheus:/etc/prometheus/prometheus.yml $PWD

image-20230808102916846

在Prometheus配置文件按以下内容修改:

# 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"]
  - job_name: linux
    static_configs:
    - targets: ['Node_exporter所在ip:9100']         #被监控端的IP地址和端口号(有多个被监控端可用 逗号 隔开)
      labels:
        instance: linux01  #示例名称随便起

image-20230808103432319

修改完成后在拷贝回去

docker cp $PWD/prometheus.yml prometheus:/etc/prometheus/prometheus.yml

重启prometheus,使配置生效

docker restart prometheus

5. 配置prometheus+Grafana

使用浏览器访问http:/ /ip:3000来将Node节点监控

  1. 添加数据源

    image-20230808104015355

  2. 选择prometheus数据源

    image-20230808104048785

  3. 配置数据源

    image-20230808104235436

  4. 滑动到底部保存

    image-20230808104356587

  5. 找到我们配置的数据源

    image-20230808104704014

  6. 为该数据源 导入仪表盘,当然你可以用自己创建

    image-20230808105119632

    image-20230808105139562

  7. 导入仪表盘

    模板网站https://grafana.com/grafana/dashboards/

    image-20230808105319659

    打开模板网站找到自己喜欢的仪表盘导入即可

    因为我们现在只导出了Node_exporter,所以找Node_exporter仪表盘就行了

    image-20230808105558397

    复制仪表盘id

    image-20230808105646174

    粘贴回来导入

    image-20230808105733534

  8. 为仪表板选择数据源

    image-20230808105834472

  9. 导入成功

    image-20230808105901369

    image-20230808105912805

6. 配置 Prometheus 监控Mysql

  • 我们可以直接在Grafana通过配置数据源的方式监控mysql
  • 也可以通过为Prometheus配置mysql_exporter,Grafana通过Prometheus数据(本次采用)
  • mysql对应账号一定要开启远程访问
  1. 下载mysqld_exporter

    #下载
    wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.13.0/mysqld_exporter-0.13.0.linux-amd64.tar.gz
    #解压到当前目录
    tar -zxvf mysqld_exporter-0.13.0.linux-amd64.tar.gz
    
  2. 解压

    mv mysqld_exporter-0.13.0.linux-amd64 /usr/local/mysql_exporter
    cd /usr/local/mysql_exporter
    
  3. 配置

    vim /usr/local/mysql_exporter/.my.cnf
    
    [client]
    host=mysql地址
    port=3306
    user=root
    password=xxxx
    
  4. 启动

    nohup /usr/local/mysql_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysql_exporter/.my.cnf  &
    
  5. 访问测试http://ip:9104/metrics

    image-20230808115453331

  6. 修改Prometheus主配置文件 参考4.1章节,配置完成cp回去,然后重启Prometheus

      - job_name: mysql
        static_configs:
        - targets: ['ip:9104']         #被监控端的IP地址和端口号(有多个被监控端可用 逗号 隔开)
          labels:
            instance: mysql01
    

    image-20230808115855997

  7. 检查Prometheus检测mysql是否成功 http://34.92.127.194:9090/

    image-20230808163046636

  8. 导入mysql 仪表盘

    模板网站https://grafana.com/grafana/dashboards/

    搜索mysql

    image-20230808140352789

    复制id,导入仪表盘,导入方法参照之前导入nodeNode_exporter

    image-20230808142745589

    image-20230808143344427

7. todo 整合AlertManager实现报警微信/邮件推送

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Docker 部署 Prometheus + Grafana 监控平台 的相关文章

随机推荐

  • AndroidKiller安装-配置-更新apktool

    下载安装好AndroidKiller后 需要对其进行配置以及更新apktool 接下来我就为大家讲解详细操作流程 1 选择配置选项 2 选择java然后配置好jdk的工程路径 切记要给到bin目录下才可以 如果是第一次打开并没有配置jdk目
  • Kamil and Making a Stream【Codeforces Round #588 (Div. 2) E】【dfs + map】

    Codeforces 1230 E 也没怎么读题 就看了下样例的note就知道了是对树上的直系祖先对子结点的链上gcd求和 然后就可以直接这样去跑一遍 个人比较的喜欢踩坑 有正着走的不走 偏偏选择了从根节点返回回来的答案 这样的做法虽然上是
  • 二叉树:链式存储结构基础操作(C语言)

    操作包含 1 二叉树的构造 先序序列和中序序列 中序序列和后序序列 2 利用三种遍历方式输出 先序遍历 中序遍历 后序遍历 层次遍历 每种遍历包含递归和非递归两种算法 3 栈和队列的构造 C 模板 均为顺序存储结构 main cpp 1 构
  • python爬取多个网页内容——招聘网站

    python爬虫思路 此次爬虫获取leipin网站上的招聘信息 liepin ningde 首先右击网页 检查 获取网页代码 点击网络 刷新网页 得到网页URL以及请求方法 首先在python环境中安装各种库 import requests
  • python如何解决js逆向混淆?

    JavaScript混淆是一种保护网站安全的技术 混淆可将代码进行多种变形和加密 使得 JavaScript 代码变得难以阅读和理解 逆向混淆是混淆中的一种方式 通过逆向混淆 混淆的代码更难被攻击者分析和了解混淆的含义 Python 是一种
  • morph 原理实现

    PE教学 超超超初心者向PE入门Part1 基本原理 2013 08 16 17 31 18 标签 mmd 教学 杂谈 分类 教学 应群里要求自己也写了一点比较浅显的PE入门教学 因为本人研究的并不深入 只是根据自己自学时的经验总结的比较基
  • keil 如何打开eeprom_如何在Keil中使RAM在带电复位时保持数据?

    最近关注的人比较多 非常感谢大家的认可 如何写点对大家有点借鉴作用的文章 也是我一直思考的问题 如果大家有什么想法 请留言或私信 谢谢 在 被Keil坑了一天 实在太意外了 用Keil的来瞅瞅看 中 提到了在使用Keil设置栈空间时可能存在
  • equals方法该怎么重写呢

    关于equals方法的重写 在编写代码的时候 我们总是会需要重写equals代码 因为equals代码没有重写的时候比较的是两个对象的内存地址 而两个代码的内存地址不同 答案肯定返回false 这并不是我们希望看到的 因此要重写equals
  • Java回调函数详解

    什么是回调函数 CallBack 在编写程序时 有时候会调用许多API中实现实现的函数 但某些方法需要我们传入一个方法 以便在需要的时候调用我们传入进去的函数 这个被传入的函数称为回调函数 Callback function 打个比方 有一
  • Visual Studio Code 配置java开发环境

    最近在学习算法 有时需要在自己的机器上调试一下代码 有些算法题目的题解是用java编的 因为这类代码只是单个的java文件 所以不想动用MyEclipse那样的重型工具 正好机器上有一个轻量级的VS Code 我就试着在上面搭了一个java
  • windows上的linux子系统(WSL)

    目录 一 介绍 二 原理 2 1 wsl组件 2 2 wsl运行过程 2 3 文件系统 2 4 禁忌 三 使用 3 1 安装 3 2 用户账户和权限 3 3 wsl管理 3 3 互操作 参考 推荐阅读 一 介绍 Windows Subsys
  • 时间对象new Date 以及中国标准时间与时间戳,标准时间之间的转换

  • C语言程序设计大作业——员工管理系统(代码超详细内含实验报告)

    写在前面 欢迎来到 发奋的小张 的博客 我是小张 一名普通的在校大学生 在学习之余 用博客来记录我学习过程中的点点滴滴 也希望我的博客能够更给同样热爱学习热爱技术的你们带来收获 希望大家多多关照 我们一起成长一起进步 也希望大家多多支持我鸭
  • 基于BP神经网络的回归预测

    基本概念 误差反向传播神经网络简称为BP Back Propagation 网络 它是一种具有三层或三层以上的多层神经网络 每一层都由若干个神经元组成 如图所示为一个BP神经网络的结构图 它的左 右各层之间各个神经元实现全连接 即左层的每一
  • LINUX下搭建JAVA的开发环境

    1 Linux下JDK的安装 至于下载JDK的二进制可执行文件 这里就不讲了 大家直接到官方网去下载就可以了 1 我下载下来的JDK安装文件名称为 jdk 1 5 0 14 linux i586 rpm bin 我把它保存在 tools目录
  • el search 条件更新

    from elasticsearch import Elasticsearch es Elasticsearch 192 168 55 90 9200 updateBody query bool must wildcard fileName
  • esxi管理端口_VMWare Esxi 基于NAT的管理端口转发

    上一篇关于WMWare Esxi的文章介绍了在多台虚拟机之间用软路由共享一个IP的情况 VMWare Esxi 海蜘蛛配置NAT共享IP上网 其中用了两个IP 一个用于虚拟机上网 一个用于Management Network 但是在只有一个
  • R语言 数据导出和导入 csv tsv xls xlsx

    R语言 Excel 导出为Excel的xls xlsx 导出数据 write table data2 file train1 xls sep t row names TRUE col names TRUE quote TRUE write
  • Promise的理解和使用

    一 Promise 是什么 1 理解 Promise是一门新的技术 ES6规范 Promise是JS中进行异步编程的新解决方案 旧方案是使用回调函数 Promise是一个构造函数 Promise对象用来封装一个异步操作并可以获取其成功 失败
  • 使用 Docker 部署 Prometheus + Grafana 监控平台

    使用 Docker 部署 Prometheus Grafana 监控平台 默认docker 已经安装好 我使用的是CentOS7 注意一定要开启服务器对应的端口 1 安装Prometheus docker run itd name prom