侧边栏壁纸
  • 累计撰写 16 篇文章
  • 累计创建 6 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

使用prometheus+grafana搭建服务器监控

NewBoy
2024-02-28 / 0 评论 / 0 点赞 / 22 阅读 / 0 字

背景

家里自从安装了Esxi服务之后,在上面装好了好几个各种用途的虚拟机,机器少了还好,登上去看下负载即可,但机器多了之后,不得不统一监控一下负载,自己又是一个比较懒的人,本着能省事则省事的原则,找到了一个相对简单的方案。

假设有服务器A、B、C

我想在A上安装监控服务,来监控ABC三台服务器的负载情况,包括A服务器监控自己。

方案

采用经典的grafana+Prometheus+node_exporter的CP组合,同时所有的组件都是使用docker-compose的方式来执行,这样的好处就是所有服务都在容器内,不会对宿主机产生污染。

组件

组件

作用

docker、docker-compose

  • 简化多容器(Prometheus、Grafana、Node Exporter)的部署和管理,通过一个命令即可启动所有服务,并定义它们之间的依赖关系。

Prometheus

  • 定期从Node Exporter抓取服务器A、B、C的系统指标(如CPU、内存、磁盘等),并存储这些数据以供查询和分析。

node exporter

  • 在每台服务器(A、B、C)上运行,收集本机的系统指标,并将这些指标暴露给Prometheus抓取。

grafana

  • 从Prometheus查询数据,并将这些数据以图表和仪表板的形式展示,帮助用户直观地监控服务器A、B、C的状态。

搭建

在AI的年代,对于docker这种标准化的模板代码,使用AI来写再适合不过了,下面就是AI帮我生成的docker-compose脚本。

服务器A:

version: '3'
services:
  prometheus:
    image: prom/prometheus
    container_name: prometheus
    ports:
      - "9090:9090"
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
    restart: unless-stopped

  grafana:
    image: grafana/grafana
    container_name: grafana
    ports:
      - "3000:3000"
    volumes:
      - grafana_data:/var/lib/grafana
    restart: unless-stopped

  node_exporter:
    image: prom/node-exporter
    container_name: node_exporter
    ports:
      - "9100:9100"
    restart: unless-stopped

volumes:
  grafana_data:

可以看到,A服务器上运行了Prometheus+grafana+node_exporter(监控自己)三个组件。

在docker-compose的同级目录下,创建prometheus.yml

global:
  scrape_interval: 15s  # 抓取间隔
  scrape_timeout: 10s   # 抓取超时时间

scrape_configs:
  - job_name: "node"    # 任务名称
    static_configs:
      - targets: ["192.168.3.17:9100","192.168.3.20:9100","192.168.3.2:9100"]  # 替换为你的node_exporter地址

服务器B\C:

version: '3'
services:
  node_exporter:
    image: prom/node-exporter
    container_name: node_exporter
    ports:
      - "9100:9100"
    restart: unless-stopped

B、C两天服务器是同等位置,这里只贴一个。

部署

因为使用docke部署起来就异常简单,将上面的docker-compose文件复制到服务器上面:

个人一般操作方法,第一次在前端执行,查看日志没有异常后,再添加-d参数,选择后台执行。

docker compose up -d

搭建看板

在浏览器打开服务器A的grafana服务:

  • http://server_A:3000

  • 默认用户名密码admin

添加数据源

首先添加Prometheus数据源,因为我的Prometheus部署在服务器A上面,所以填写信息如下:

添加看板

操作路径:添加看板-》导入-》

然后在输入框中输入看板id:1860 或者 10204,或者去官网上找自己喜欢的看板。

查看效果

到这里就全部搭建好了,这个方案的优点:

  • 结构简单简单易上手,

  • 使用容器部署,不污染宿主机,不想监控直接删除容器即可。

参考资料

0

评论区