Prometheus+grafana

2023-11-03

Prometheus+grafana

安装部署

使用docker的方式部署

1. 创建项目目录
[root@129 ~]# mkdir /home/prometheus/

2.编写yml文件
[root@129 ~]# cd /home/prometheus/
[root@129 prometheus]# cat docker-compose.yml 
version: "3"
services:
  node-exporter:
    image: prom/node-exporter		
    container_name: node-exporter
    restart: always
    privileged: true
    environment:
      - TZ=Asia/Shanghai
    ports:
      - 9100:9100
    volumes:
      - /proc:/host/proc
      - /sys:/host/sys
      - /:/rootfs

  prometheus:
    image: prom/prometheus
    container_name: prometheus
    restart: always
    privileged: true
    environment:
      - TZ=Asia/Shanghai
    ports:
      - 9090:9090
    volumes:
      - /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml

  grafana:
    image: grafana/grafana
    container_name: grafana
    restart: always
    privileged: true
    environment:
      - TZ=Asia/Shanghai
    ports:
      - 3000:3000
    volumes:
      - /opt/grafana-storage:/var/lib/grafana

# node-exporters主要是做系统数据收集,可以通过它监控到服务器的CPU、内存、磁盘、I/O等信息
 
3. 新建目录 prometheus,编辑配置文件 prometheus.yml
mkdir /opt/prometheus
cd /opt/prometheus/
vim prometheus.yml
内容如下:
global:
  scrape_interval:     30s
  evaluation_interval: 30s

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

  - job_name: node-exporter
    static_configs:
      - targets: ['192.168.78.129:9100']
        labels:
          instance: localhost

4. 新建空文件夹grafana-storage,用来存储数据
mkdir /opt/grafana-storage
chmod 777 -R /opt/grafana-storage

5. 启动
[root@129 prometheus]# cd /home/prometheus/
[root@129 prometheus]# docker-compose up -d --build
......
# 如果遇到这个报错 ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule,重启一下docker

# 会看到三个容器都已经运行起来了
[root@129 prometheus]# docker ps
CONTAINER ID   IMAGE                COMMAND                  CREATED          STATUS          PORTS                                       NAMES
da937df1ba1a   grafana/grafana      "/run.sh"                38 seconds ago   Up 33 seconds   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp   grafana
bcc5ec9170d1   prom/prometheus      "/bin/prometheus --c…"   38 seconds ago   Up 33 seconds   0.0.0.0:9090->9090/tcp, :::9090->9090/tcp   prometheus
8b4460cbc878   prom/node-exporter   "/bin/node_exporter"     38 seconds ago   Up 34 seconds   0.0.0.0:9100->9100/tcp, :::9100->9100/tcp   node-exporter

  • 查看 node-exporters,直接本机浏览器访问 http://192.168.78.129:9100/metrics
    会发现已经监控到了本机的相关信息
    在这里插入图片描述

  • 查看 Prometheus http://192.168.78.129:9090/
    在这里插入图片描述

  • 登录 grafana http://192.168.78.129:3000/
    初始账号和密码都是admin
    在这里插入图片描述

  • 创建数据源
    在这里插入图片描述

  • 选择添加—>然后选择Prometheus
    在这里插入图片描述

  • 点击 save&test

  • 导入grafana 模板
    在这里插入图片描述

  • 推荐11074号模板,也可以去grafana官网选择 tps://grafana.com/grafana/dashboards?dataSource=prometheus
    在这里插入图片描述
    在这里插入图片描述

  • 发现本机的一些指标都已经自动监控了

  • 也可以针对其他的服务器进行监控
    在这里插入图片描述

常用指标监控

prometheus :192.168.78.129
node-exporter:192.168.78.130

  • 安装 node-exporter
[root@130 home]# cd /home/ && mkdir node-exporter && cd node-exporter && vim docker-compose.yml
[root@130 node-exporter]# cat docker-compose.yml 
version: "3"
services:
  node-exporter:
    image: prom/node-exporter
    container_name: node-exporter
    restart: always
    privileged: true
    environment:
      - TZ=Asia/Shanghai
    ports:
      - 9100:9100
    volumes:
      - /proc:/host/proc
      - /sys:/host/
  • 启动
[root@130 node-exporter]# docker-compose up -d --build

[root@130 node-exporter]# docker ps
CONTAINER ID   IMAGE                COMMAND                CREATED         STATUS         PORTS                                       NAMES
fe941efd10c9   prom/node-exporter   "/bin/node_exporter"   6 seconds ago   Up 5 seconds   0.0.0.0:9100->9100/tcp, :::9100->9100/tcp   node-exporter

  • 修改Prometheus的配置文件
[root@129 ~]# vim /opt/prometheus/prometheus.yml 

global:
  scrape_interval:     30s
  evaluation_interval: 30s

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

  - job_name: node-exporter
    static_configs:
      - targets: ['192.168.78.129:9100']
        labels:
          instance: localhost

  # 添加内容
  - job_name: node-exporter_130
    static_configs:
      - targets: ['192.168.78.130:9100']

  • 重启 Prometheus
[root@129 ~]# cd /home/prometheus/
[root@129 prometheus]# docker-compose down && docker-compose up -d
  • 在 Prometheus 查看状态
    在这里插入图片描述
  • grafana 中查看
    在这里插入图片描述

进程监控

# 被监控的主机上安装process-exporter
[root@130 ~]# wget https://github.com/ncabatoff/process-exporter/releases/download/v0.5.0/process-exporter-0.5.0.linux-amd64.tar.gz
[root@130 ~]# tar xf process-exporter-0.5.0.linux-amd64.tar.gz -C /usr/local/
[root@130 ~]# cd /usr/local/process-exporter-0.5.0.linux-amd64/
[root@130 process-exporter-0.5.0.linux-amd64]# vim process-name.yaml
process_names:
  - name: "{{.Matches}}"
    cmdline:
    - 'httpd'

  - name: "{{.Matches}}"
    cmdline:
    - 'vsftpd'
[root@130 process-exporter-0.5.0.linux-amd64]# nohup ./process-exporter -config.path process-name.yaml & 
# 查看监听端口是否起来
[root@130 ~]# netstat -tunlp|grep 9256
tcp6       0      0 :::9256                 :::*                    LISTEN      7864/./process-expo 

# 测试
curl http://localhost:9256/metrics

# 修改Prometheus的配置文件
[root@129 ~]# vim /opt/prometheus/prometheus.yml 
...
添加
  - job_name: 'process'
    static_configs:
      - targets: ['192.168.78.130:9256']

# 重启Prometheus
[root@129 prometheus]# docker-compose down && docker-compose up -d
  • 查看targets已经up
    在这里插入图片描述
  • 查看监控到的信息
    在这里插入图片描述
  • 被监控主机上停止服务后查看
    在这里插入图片描述

docker容器的监控

# 被监控的主机上安装cAdvisor收集容器数据
[root@130 home]# mkdir cadvisor
[root@130 home]# cd cadvisor/
[root@130 cadvisor]# vim docker-compose.yml
version: "3"
services:
  cadvisor:
    image: google/cadvisor:latest
    container_name: cadvisor
    hostname: cadvisor
    volumes:
      - /:/rootfs:ro
      - /var/run:/var/run:rw
      - /sys:/sys:ro
      - /var/lib/docker/:/var/lib/docker:ro
      - /dev/disk/:/dev/disk:ro
    ports:
      - "8081:8080"
    devices:
      - "/dev/kmsg"
    restart: always

# 启动
[root@130 cadvisor]# dockers-compose up -d --build
....
  • 启动可通过浏览器访问到cadvisor页面
    在这里插入图片描述
  • 修改Prometheus配置文件
[root@129 ~]# vim /opt/prometheus/prometheus.yml 
...
添加
  - job_name: 'docker'
    scrape_interval: 5s
    static_configs:
      - targets: ['192.168.78.130:8081']
        labels:
          instance: "192.168.78.130"

...
  • 重启Prometheus
[root@129 prometheus]# docker-compose down && docker-compose up -d
  • 查看一下 Targets 已经 up
    在这里插入图片描述
  • grafana导入模板
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 可以看到对应的容器数据了
    在这里插入图片描述
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Prometheus+grafana 的相关文章

  • 开源大数据平台 集群搭建及使用

    1 Hadoop集群搭建及使用 1 集群规划 2 虚拟机准备 1 创建虚拟机 具体步骤不再展示 2 配置网络 ping外网 ping baidu com 如果ping不通 修改如下文件 vi etc sysconfig network sc

随机推荐

  • Flutter Icons内置图标库MaterialIcons大全

    Flutter 中的图标组件 Icon 专门用于显示图标 如 Icon Icons check rounded color Colors white size 18 图集预览
  • 报错解决方案1

    遇到报错 TypeError conv2d received an invalid combination of arguments got numpy ndarray Parameter Parameter tuple tuple tup
  • catkin build 的使用

    1 catkin build vs catkin make 初学的时候一般我们用catkin make 但是相较于catkin build而言 并没有那么好使 对比如下 catkin make 同时编译工作空间下的所有包 速度慢 不灵活 c
  • C++(11):生成随机字符串

    C 11 产生随机数 c 11 随机数 风静如云的博客 CSDN博客 介绍了如何生成随机数 可以基于随机数生成随机字符串 include
  • 华为OD机试 - 字符串划分(Java)

    题目描述 给定一个小写字母组成的字符串 s 请找出字符串中两个不同位置的字符作为分割点 使得字符串分成三个连续子串且子串权重相等 注意子串不包含分割点 若能找到满足条件的两个分割点 请输出这两个分割点在字符串中的位置下标 若不能找到满足条件
  • HTML中的table表格

    表格标签 分为行 tr 和列 td 行及列都可以进行合并操作 table 定义表格 tr 定义行 td 定义列 先有行 后有列 th 多用于表头 定义表格中头部 加粗 border 边框大小 bordercolor 边框的颜色 cellpa
  • Spring的两种动态代理:Jdk和Cglib 的区别和实现

    一 原理区别 java动态代理是利用反射机制生成一个实现代理接口的匿名类 在调用具体方法前调用InvokeHandler来处理 而cglib动态代理是利用asm开源包 对代理对象类的class文件加载进来 通过修改其字节码生成子类来处理 1
  • 重构——重构原则

    何谓重构 目的在于不改变软件可观察行为的前提下 提高其可理解性 降低其修改成本 重构可能会在软件内部做修改 但是对软件的外部行为造成很小改变 或者不造成改变 与之相比的是性能优化 为何重构 程序的设计会逐渐腐败 当人们只为了短期目的 或者未
  • 实用工具系列 - Pycharm插件推荐

    博客主页 Passerby Wang的博客 CSDN博客 系统运维 云计算 Linux基础领域博主 所属专栏 实用工具系列 上期文章 实用工具系列 Pycharm安装下载使用 如觉得博主文章写的不错或对你有所帮助的话 还望大家多多支持呀 关
  • 云计算虚拟化:k8s二进制Master主备集群部署

    一 前言 无论从成本还是效率上考虑 k8s都极占优势 基本代表了未来趋势 官网推荐kubeadm配置 虽然方便 但掩盖了许多细节问题 k8s虽然咋看仅仅是个容器编排工具 但涉及的相关知识面非常广泛 如果说大数据的相关知识你需要花N天 K8S
  • do{...} while(0) 用意

    linux内核和其他一些开源的代码中 经常会遇到这样的代码 do while 0 这样的代码一看就不是一个循环 do while表面上在这里一点意义都没有 那么为什么要这么用呢 实际上 do while 0 的作用远大于美化你的代码 查了些
  • 人工智能革命:从ANI到AGI的道路

    从ANI到AGI的道路为什么这么难 没有什么比学习创造一台像人类一样聪明的电脑这种难以置信的创造更能让人欣赏人类的智慧了 建造摩天大楼 将人类置于太空中 弄清楚大爆炸如何发生的细节 这些都比了解我们自己的大脑或如何制造像它一样酷的东西要容易
  • docker harbor的安装使用以及镜像上传和拉取

    目录 harbor harbor安装 harbor上传和拉取镜像 上传 1 登录Harbor 2 打标签 3 上传镜像 拉取 1 登录Harbor 2 拉取镜像 harbor harbor是一个开源的容器镜像仓库 可用于存储和分发docke
  • 电脑怎么加快网页打开速度?加快网速。

    电脑怎么加快网页打开速度 加快网速 更换合适的dns可以直接加快网页打开速度 1 使用软件更换dns 下载地址 2 手动输入dns 1 win R键 输入 ncpa cpl 2 依次点击连接的网络 属性 Internet协议版本 TCP I
  • 【每日一题】排序子序列(贪心)

    题目来源 牛客网 链接 排序子序列 题目描述 牛牛定义排序子序列为一个数组中一段连续的子序列 并且这段子序列是非递增或者非递减排序的 牛牛有一个长度为n的整数数组A 他现在有一个任务是把数组A分为若干段排序子序列 牛牛想知道他最少可以把这个
  • PTA程序设计类实验辅助教学平台-基础编程题--JAVA--7.3 用天平找小球

    import java util Scanner public class Main public static void main String args Scanner sc new Scanner System in
  • 【总线】I2C 通信协议

    目录 I2C 总线协议概述 参数总结 I2C 的工作原理 寻址 读 写位 数据帧 I2C数据传输的步骤 具有多个从机的单个主机 具有多个从机的多个主机 I2C的优缺点 优点 缺点 文章参考 I2C 总线协议概述 I2C 总线广泛应用在 OL
  • 在B站如何不动一根手指,就可以养成6级大佬?大四学生发明养号神器,看完你也会...

    杨净 发自 凹非寺 量子位 报道 公众号 QbitAI 如何像拥有一个小助手一样 每天帮你签到打卡 或许 现在利用GitHub Action定时任务就可以做到 而这个小助手 混迹b站 可以每天按时按点签到打卡 看视频投币 定期充电 每天任务
  • leetcode 1024. 视频拼接

    你将会获得一系列视频片段 这些片段来自于一项持续时长为 T 秒的体育赛事 这些片段可能有所重叠 也可能长度不一 视频片段 clips i 都用区间进行表示 开始于 clips i 0 并于 clips i 1 结束 我们甚至可以对这些片段自
  • Prometheus+grafana

    Prometheus grafana 文章目录 Prometheus grafana 安装部署 常用指标监控 进程监控 docker容器的监控 安装部署 使用docker的方式部署 1 创建项目目录 root 129 mkdir home