无痛入门Prometheus:一个强大的开源监控和告警系统,如何快速安装和使用?

news2024/10/2 20:27:49

一、前生今世

Prometheus 是完全开源的系统监控和告警工具包,它受 Google 内部的 BorgMon 监控系统启发,由前Google 工程师从 2012 年开始在 SoundCloud 以开源软件的形式进行研发,自此以后,许多公司和组织都采用了Prometheus 作为监控告警工具。Prometheus 的开发者和用户社区非常活跃,它现在是一个独立的开源项目,可以独立于任何公司进行维护。

自2012年推出以来,许多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发者和用户社区。它现在是一个独立的开源项目,独立于任何公司进行维护。为了强调这一点,并明确项目的治理结构,Prometheus 于 2016 年加入 云原生计算基金会,成为继Kubernetes之后的第二个托管项目。

Prometheus的主要特点是:

  • 多维数据模型,其中时间序列数据由指标名称和键/值对标识
  • PromQL,一种 利用此维度的灵活查询语言
  • 不依赖分布式存储;单个服务器节点是自治的
  • 时间序列收集通过 HTTP 上的拉模型进行
  • 通过中间网关支持推送时间序列
  • 通过服务发现或静态配置发现目标
  • 多种图形和仪表板支持模式

二、架构图

下图说明了 Prometheus 的架构及其一些生态系统组件:

三、安装

开启内核路由转发

echo -e "net.ipv4.ip_forward = 1\nnet.ipv4.conf.default.rp_filter = 0 \nnet.ipv4.conf.all.rp_filter = 0" >> /etc/sysctl.conf  sysctl -p

创建配置文件

vim prometheus.yml
# my global config
global:
  scrape_interval:     15s # 采集被监控段指标的一个周期
  evaluation_interval: 15s # 告警评估的一个周期

# 告警的配置文件
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

# 告警规则配置
rule_files:
  # - "first_rules.yml"
# 被监控端的配置,目前只有一个节点,就是prometheus本身
scrape_configs:
  - job_name: 'prometheus'
    static_configs:
    - targets: ['localhost:9090']

启动镜像,将主配置文件挂载到容器内

docker run -d  -p 9090:9090 \
--name prometheus  \
--restart on-failure  \
-v /data/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus

执行后需要下载镜像文件,需要等待一会。

完全启动后可以,访问Prometheus自带的UI:http://xx.xx.xx.xx:9090/

自带的WEB UI比较简单,后面会说到功能比较全面dashboard grafana。

四、使用

cAdvisor 是 Google 开源的容器监控工具,它可以收集容器的资源使用情况、网络流量、文件系统使用情况等指标数据。cAdvisor 可以部署在 Kubernetes 集群中的每个节点上,以收集集群中所有容器的监控数据。

cAdvisor 部署的目的如下:

  • 监控容器的运行状态:cAdvisor 可以收集容器的资源使用情况、网络流量、文件系统使用情况等指标数据,这些数据可以帮助我们了解容器的运行状态,并及时发现异常情况。
  • 分析容器的性能瓶颈:通过分析 cAdvisor 收集的监控数据,我们可以分析容器的性能瓶颈,并采取措施进行优化。
  • 提高容器的资源利用率:通过监控容器的资源使用情况,我们可以合理分配资源,提高容器的资源利用率。

cAdvisor 是 Kubernetes 集群中必不可少的监控工具,它可以帮助我们更好地了解和管理容器。

cAdvisor 的优势

  • 开源:cAdvisor 是完全开源的,可以免费使用。
  • 轻量级:cAdvisor 是一个轻量级的应用程序,不会给集群带来太大的负载。
  • 易用:cAdvisor 的配置和使用都非常简单。

cAdvisor 的缺点

  • 数据存储能力有限:cAdvisor 默认会将监控数据存储在内存中,如果数据量较大,可能会导致内存溢出。
  • 可视化能力有限:cAdvisor 本身没有提供可视化工具,需要使用第三方工具来可视化监控数据。

cAdvisor 的部署

  • 使用 Helm 部署:Helm 是一个 Kubernetes 包管理工具,可以使用 Helm 来部署 cAdvisor。
  • 使用 Docker 部署:cAdvisor 可以作为 Docker 容器运行,可以使用 Docker 来部署 cAdvisor。
  • 手动部署:可以下载 cAdvisor 的二进制文件,并手动部署到 Kubernetes 集群中。

下面介绍docker部署cAdvisor:

docker run -d   \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:ro  \
--volume=/sys:/sys:ro  \
--volume=/var/lib/docker/:/var/lib/docker:ro  \
--volume=/dev/disk/:/dev/disk:ro \
--publish=8080:8080 \
--detach=true \
--name=cadvisor \
google/cadvisor:latest

访问该地址,就能看到实时采集到的数据:http://xx.xx.xx.xx:8080/containers/

http://xx.xx.xx.xx:8080/metrics/ 就是cAdvisor提供的数据接口。

然后修改prometheus.yml

vim /data/prometheus/prometheus.yml

修改prometheus的配置文件,复制一个job文件,job_name 指名称,targets为cAdvisor服务器地址ip和端口

# global config
global:
  scrape_interval:     15s # 采集被监控段指标的一个周期
  evaluation_interval: 15s # 告警评估的一个周期

# 告警的配置文件
alerting:
  alertmanagers:
  - static_configs:
    - targets:

# 告警规则配置
rule_files:
  # - "first_rules.yml"
# 被监控端的配置,目前只有一个节点,就是prometheus本身
scrape_configs:
  - job_name: 'prometheus'
    static_configs:
    - targets: ['localhost:9090']
  - job_name: 'prometheus docker'
    static_configs:
    - targets: ['10.9.2.50:8080']

修改完成重启prometheus

docker restart prometheus

http://xx.xx.xx.xx:9090/targets 可以看到监控指标说明获取数据成功

五、监控界面

Grafana 是一个开源的监控和可视化工具,它可以连接到各种数据源,并以图表、仪表盘和报表的形式展示数据。Grafana 可以用于监控任何类型的系统,包括 Kubernetes 集群、Web 应用程序、IoT 设备等。

Grafana 的功能

  • 连接到各种数据源:Grafana 支持连接到各种数据源,包括 Prometheus、InfluxDB、Elasticsearch、MySQL、PostgreSQL 等。
  • 以图表、仪表盘和报表的形式展示数据:Grafana 提供了丰富的图表类型,可以满足不同的数据展示需求。
  • 支持自定义仪表盘:Grafana 允许用户自定义仪表盘,以满足特定的监控需求。
  • 支持报警:Grafana 可以将报警通知发送到 Slack、邮件等方式。

Grafana 的优势

  • 开源:Grafana 是完全开源的,可以免费使用。
  • 灵活:Grafana 可以连接到各种数据源,并以各种方式展示数据。
  • 易用:Grafana 的配置和使用都非常简单。

Grafana 的缺点

  • 数据存储能力有限:Grafana 本身没有提供数据存储功能,需要使用第三方工具来存储数据。
  • 可视化能力有限:Grafana 提供的图表类型有限,可能无法满足复杂的监控需求。

Grafana 的部署

  • 使用 Docker 部署:Grafana 可以作为 Docker 容器运行,可以使用 Docker 来部署 Grafana。
  • 手动部署:可以下载 Grafana 的二进制文件,并手动部署到服务器上。

下面是docker方式部署grafana

docker  run -d --name=grafana  -p 3000:3000  grafana/grafana

执行后,下载镜像并启动。http://xx.xx.xx.xx:3000,默认用户名/密码:admin/admin

选择 "Add your first data source"

进入后选择Prometheus

填写相关信息

添加Prometheus模板

输入id号,193

下拉,选择Prometheus,然后Import

成功展示来由Prometheus数据


如果文章对你有帮助,欢迎关注+点赞!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1072039.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker学习笔记 - 极简极入门级

Docker学习笔记 - 极简极入门级 文章目录 Docker学习笔记 - 极简极入门级前言架构命令docker pulldocker pushdocker imagesdocker rmidocker rundocker stop/start/restartdocker rmdocker psdocker execdocker logsdocker save/loaddocker inspectdocker builddocker network…

2023年中国香樟木家具行业分析:定制化和个性化的需求不断增加[图]

香樟木是一种常见的木材,它在家具行业中被广泛使用。香樟木家具行业定义是指使用香樟木材料制造的家具产品的生产、销售和相关业务活动。 香樟木家具行业分类 资料来源:共研产业咨询(共研网) 香樟木家具的生产主要集中在少数大型…

vue-slot插槽

作用:让父组件可以向子组件中任意位置插入html结构,也是组件通信方式的一种,适用于父组件》子组件 分类: 默认插槽、具名插槽、作用域插槽 定义子组件时使用slot组件,在使用子组件是可以决定是否插入具体的html代码 默认插槽 如…

Survey on Cooperative Perception in an Automotive Context 论文阅读

论文链接 Survey on Cooperative Perception in an Automotive Context 0. Abstract 本文就协同基础设施领域提供相关环境的调查回顾了感知中涉及的主要模块:定位,目标检测和跟踪,地图生成提供了协同感知的 SWOT 1. Intro 无人驾驶汽车的背…

万宾荣获深圳应博会“全球应急产业先锋奖”创始人发表峰会演讲

今年5月,住房和城乡建设部表示将全面启动的城市基础设施生命线安全工程工作,通过各类智能感知设备等数字化手段,及早发现和管控城市燃气、桥梁、供水、排水防涝等领域的风险隐患,切实提高城市安全保障能力、维护人民生命财产安全&…

基于SpringBoot的足球联赛管理系统

基于SpringBoot的足球联赛管理系统 开发语言:Java数据库:MySQL技术:SpringBootMyBatisVue工具:IDEA/Ecilpse、Navicat、Maven 系统展示 首页 详情 管理员界面 摘要 基于Spring Boot的足球联赛管理系统代表了一种现代体育赛事管…

这15个海运提单的雷区 你知道吗?

海运提单中英文对照 海运提单主要项目填制说明 1、托运人(Shipper):即与承运人签订运输契约,委托运输的货主,即发货人。在信用证支付方式下,一般以受益人为托运人;托收方式以托收的委托人为托运人。另外,根据《UCP500》…

【uniapp】subnvue组件数据更新视图未更新问题

背景 : 页面中的弹窗使用了subnvue来写, 根据数据依次展示一个一个的弹窗, 点击"关闭"按钮关闭当前弹窗, 显示下一个弹窗 问题 : 当点击关闭时( 使用的splice() ), 数据更新了 , 而视图没有更新, 实际上splice() 是不仅更新数据, 也可以更新视图的 解决 : this.$fo…

Linux配置JAVA_HOME

[rootlocalhost ~]# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.3 LTS Release: 22.04 Codename: jammy1.下载jdk 官网下载地址 2.将下载好的软件包解压到指定目录 tar -zxf /usr/local/software/jdk-…

雪莱的式子武汉2023(分析+快速幂)

传送门:登录—专业IT笔试面试备考平台_牛客网 思路: 对于每一种质因子,如果他在μ()函数中出现两次,那这种情况对答案贡献为0,所以我们可以只讨论每一种因子出现0,1次的情况。 对于…

Altium Designer实用系列(一)----原理图导入PCB、PCB板子外形、多层板绘制等

一、原理图导入PCB 绘制原理图就不必多说了,根据自己电路的需求,去设计电源、芯片的外围电路、MCU外设分配就好。接下来主要介绍的是在导入PCB前对原理图的检查: 元器件标号注解 元器件封装确认:工具->封装管理器&#xff1…

美团代运营优势成都优优聚告诉你!

美团代运营是一种全新的商务服务模式,通过委托美团平台进行运营管理,以提升企业销售业绩和品牌影响力为目标。美团代运营有着许多优势,下面我们来详细了解一下。 首先,美团代运营具有强大的用户流量。作为中国最大的本地生活服务平…

wpf中prism框架

安装prism包: 添加引用 using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Linq; using System.Threading.Tasks; using System.Windows; using Prism.DryIoc; using Prism.Ioc;namespace PrismDemo …

一文了解高压放大器的应用

高压放大器是一种能够将低压信号放大到高电压信号的设备或电路。它在许多领域中都有广泛的应用。以下是一些常见的高压放大器的应用领域。 实验室和科学研究:高压放大器在实验室研究和科学领域中扮演着重要的角色。例如,在物理学、化学、生物学等领域的研…

CRM系统软件如何防止客户流失

客户资源是很重要的资产,防止客户数据丢失是所有企业都非常重视的事情。在日常经营管理中,员工离职、工作交接、数据整理都会造成客户数据丢失的情况。作为企业管理工具,CRM客户管理系统都有哪些手段防止客户流失? 1、客户资源存…

【JavaEE重点知识归纳】第6节:数组

目录 一:数组的基本概念 1.什么是数组 2.数组的创建和初始化 3.数组的使用 ​编辑二:数组是引用类型 1.了解JVM的内存分布 2.基本类型变量和引用类型变量的区别 3.认识null 三:数组的应用场景 1.保存数据 2.作为函数的参数 3.作为…

MFC 鼠标悬停提示框

MFC 鼠标悬停提示框 运行效果 在MFC窗口中添加一个控件 工具栏中拖拽List Box到MFC窗口给List Box添加变量 CListBox m_listbox 增加成员变量 CWnd* m_tip_parent_wnd; CToolTipCtrl m_tip;给m_listbox创建提示框 void create_tip_window(CWnd* tip_wnd, CToolTipCtrl* ti…

2023年中国心血管疾病患病人数,心血管疾病用药市场规模分析:化学药占比最大[图]

心脑血管疾病是指由于高脂血症、血液黏稠、动脉粥样硬化、高血压等导致的心脏、大脑及全身组织发生缺血性或出血性疾病的通称。其中,常见的心血管疾病有心脏病、冠心病、老年瓣膜病、心律失常、心肌炎等;脑血管疾病主要分为缺血性脑血管疾病和出血性脑血…

TCP/IP(一)学习资料

一 学习资料 ① 看懂文系列前期需要知识储备 1、掌握一定的计算机基础,掌握既基本概念即可 --> 计算机原理、操作系统2、掌握一些数学知识 --> 进制转换、bytes、bit等 ② 参考资料 背景: 1、自己不是科班出身的计算机专业2、虽…

二叉树的最大深度[简单]

优质博文:IT-BLOG-CN 一、题目 给定一个二叉树root,返回其最大深度。 二叉树的最大深度是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:3 示例 2&#xff1a…