Prometheus(普罗米修斯)监控系统

  • 2.配置

  • 3.后端存储配置

  • 三、使用 Prometheus 实现系统监控

    • 1.安装 Node_Exporter
  • 2.修改 Promehtues 配置文件

  • 3.验证

  • 四、使用 Prometheus + Grafana 实现可视化界面

    • 1.安装 Grafana
  • 2.配置 Grafana 的 Web 界面

一、Prometheus 简介

==================================================================================

Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,由 SoundCloud 公司开发。

Prometheus 基本原理是通过 HTTP 协议周期性抓取被监控组件的状态,这样做的好处是任意组件只要提供 HTTP 接口就可以接入监控系统,不需要任何 SDK 或者其他的集成过程。这样做非常适合虚拟化环境比如 VM 或者 Docker 。

Prometheus 应该是为数不多的适合 Docker、Mesos、Kubernetes 环境的监控系统之一。

1.Prometheus 优势


易于管理:

  • Prometheus核心部分只有一个单独的二进制文件,不存在任何的第三方依赖(数据库,缓存等等);

  • 唯一需要的就是本地磁盘,因此不会有潜在级联故障的风险。

强大的查询语言 PromQL:

  • Prometheus 内置一个强大的数据查询语言 PromQL,通过 PromQL 可以实现对监控数据的查询、聚合。

  • 同时 PromQL 也被应用于数据可视化(如 Grafana)以及告警中。

高效:

  • 对于监控系统而言,大量的监控任务必然导致有大量的数据产生。而 Prometheus 可以高效的处理这些数据。

可扩展:

  • Prometheus 支持联邦集群,可以让多个 Prometheus 实例产生一个逻辑集群;

  • 当单实例 Prometheus 处理的任务量过大时,通过使用功能分区(sharding)+ 联邦集群(federation)可以对其进行扩展。

易于集成:

  • 目前官网提供了多种语言的客户端 SDK,基于这些 SDK 可以快速让应用程序纳入到监控系统中,同时还支持与其它的监控系统集成。

可视化:

  • Prometheus Server 自带一个 UI,通过这个 UI 可以方便对数据进行查询和图形化展示;

  • 同时还可以对接 Grafana 可视化工具展示精美监控指标。

2.Prometheus 基础架构


在这里插入图片描述

如上图,Prometheus 主要由以下部分组成:

  • Prometheus:主要是负责存储、抓取、聚合、查询方面。

  • Alertemanager:主要是负责实现报警功能。

  • Pushgateway:主要是实现接收有 Client-push 过来的指标数据,在指定的时间间隔,有主程序来抓取。

  • *_exporter:主要是负责采集物理机、中间件的信息。

二、Prometheus 安装

==================================================================================

准备工作:

| 主机名 | 操作系统 | IP 地址 |

| :-- | :-- | :-- |

| Prometheus | CentOS 7.4 | 192.168.1.1 |

| Client | CentOS 7.4 | 192.168.1.2 |

| Granfana | CentOS 7.4 | 192.168.1.3 |

  • 注意:在所有节点上安装 ntpdate 工具,并进行时间同步(因为 Prometheus 对时间要求非常严格)

yum -y install ntpdate

/usr/sbin/ntpdate ntp1.aliyun.com

1.下载


[root@Prometheus ~]# wget https://github.com/prometheus/prometheus/releases/download/v2.16.0/prometheus-2.16.0.linux-amd64.tar.gz

[root@Prometheus ~]# tar xf prometheus-2.16.0.linux-amd64.tar.gz

[root@Prometheus ~]# mv prometheus-2.16.0.linux-amd64 /usr/local/prometheus

2.配置


[root@Prometheus ~]# useradd -s /sbin/nologin prometheus

[root@Prometheus ~]# chown -R prometheus:prometheus /usr/local/prometheus/

[root@Prometheus ~]# vim /usr/lib/systemd/system/prometheus.service

[Unit]

Description=prometheus

After=network.target

[Service]

User=prometheus

Group=prometheus

WorkingDirectory=/usr/local/prometheus

ExecStart=/usr/local/prometheus/prometheus

[Install]

WantedBy=multi-user.target

[root@Prometheus ~]# systemctl daemon-reload

[root@Prometheus ~]# systemctl enabled --now prometheus # 启动并开启自启

当启动 Prometheus 后,便可以通过 9090 端口来访问 Prometheus 自带的 UI 界面:

在这里插入图片描述

3.后端存储配置


  • 默认情况下 Prometheus 会将采集的数据存储到本机的 /usr/local/prometheus/data 目录,存储数据的大小受限和扩展不便;

  • 所以这里使用 influxdb 作为后端的数据库来存储数据。

1)安装

[root@Prometheus ~]# wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.8.x86_64.rpm

[root@Prometheus ~]# yum -y localinstall influxdb-1.7.8.x86_64.rpm

[root@Prometheus ~]# cp /etc/influxdb/influxdb.conf /etc/influxdb/influxdb.conf.default

[root@Prometheus ~]# systemctl enable --now influxdb

2)验证

[root@Prometheus ~]# influx

Connected to http://localhost:8086 version 1.7.8

InfluxDB shell version: 1.7.8

create database prometheus;

exit

在这里插入图片描述

3)配置 Prometheus 集成 infuxdb

[root@Prometheus ~]# vim /usr/local/prometheus/prometheus.yml

在最后面添加:

remote_write:

  • url: “http://localhost:8086/api/v1/prom/write?db=prometheus”

remote_read:

  • url: “http://localhost:8086/api/v1/prom/read?db=prometheus”

[root@Prometheus ~]# systemctl restart prometheus # 重启 Prometheus

  • 注意:如果你们 influxdb 配置密码,请参考 官网文档 来进行配置。

三、使用 Prometheus 实现系统监控

=========================================================================================

  • 因为 Prometheus 并不能直接监控服务,其主要任务负责数据的收集,存储并对外提供数据查询支持;

  • 因此,为了能够监控到某些东西,如:主机的 CPU 使用率,我们需要使用到 Exporter。

1.安装 Node_Exporter


最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
)]

[外链图片转存中…(img-rWU533LR-1715868180918)]

[外链图片转存中…(img-iPC93CjI-1715868180918)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值