【IT运维】普罗米修斯基本介绍及监控平台部署(Prometheus+Grafana)_普罗米修斯监控

本文介绍了普罗米修斯作为时间序列数据库的主要优点,包括高性能和低存储成本。普罗米修斯监控原理涉及通过HTTP拉取数据,支持多维度数据模型和灵活查询。文章详细阐述了Prometheus的部署过程,包括监控服务端、远程业务机器和MySQL服务,以及如何使用Grafana进行数据展示和告警。
摘要由CSDN通过智能技术生成
  • 实时运维监控数据,网卡流量图,服务的当前状态,资源的使用情况,比如说,你所监控的内容出现了直线飙升、断崖式下跌、断线,一般都意味着出现了问题,不管是什么时候发生的,都要赶紧查一下出了什么问题

1.1、时间序列数据库的主要优点

时间序列数据库主要用于指处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时间序列数据。

  • 性能好

关系型数据库对于大规模数据的处理性能糟糕,这一点可以从I/O上有明显的体现。使用NOSQL可以比较好的处理大规模数据,但是依然比不上时间序列数据库。

  • 存储成本低

由于采用的是metrics:key=value(标签:关键字=值)的数据存储方式,又使用了高效的压缩算法,平均消耗的存储成本在3.5个字节左右 ,所以比较节省存储空间 ,并且能有效降低IO

Prometheus有着非常高效的时间序列数据存储方法,每个采样数据仅仅占用3.5byte左右空间,上百万条时间序列数据,每隔30秒采集一次,保留60天,大概占用200多G的空间(来自官方文件数据)

1.2、Prometheus主要特征

  1. 多维度数据模型,可以通过多个维度对数据建模,也可以通过多个维度对数据进行查询
  2. 灵活的查询语言,提供灵活的PromQL查询方式,还提供了HTTP查询接口,可以很方便地结合Grafana等组件展示数据
  3. 不依赖分布式存储,支持单节点的本地存储。通过Prometheus自带的时序数据库,可以完成每秒百万及的数据存储,如果需要存储大量历史数据,还可以对接第三方的时序数据库
  4. 以HTTP方式,通过pull模型拉取时间序列数据,并提供了开放的指标数据标准
  5. 也可以通过中间网关支持push模型
    这种推,拉监控其实就是主动和被动监控,默认情况下是以pull(拉)的方式,也就是监控主机去找被监控主机将数据要过来,如果要实现push(推)的方式需要中间网关的支持,这只是与zabbix的叫法不同而已
  6. 通过服务发现或者静态配置来发现目标服务对象
  7. 支持多种多样的图表和界面展示,可以使用第三方的工具来展示内容,如Grafana

1.3、Prometheus监控原理

  1. Prometheus Server负责定时在目标上抓取metrics(指标)数据,
  2. 每个抓取目标[主机、服务]都需要暴露一个HTTP服务接口用于Prometheus定时抓取。也就是说prometheus会将获取到的监控数据打包成一个可访问的web页面,通过访问指定的url来确定主机的状态

Pull方式的优势是能够自动进行上游监控和水平监控,配置更少,更容易扩展,更灵活,更容易实现高可用。简单来说就是Pull方式可以降低耦合。由于在推送系统中很容易出现因为向监控系统推送数据失败而导致被监控系统瘫痪的问题。因为如果同一时间有很多被监控主机都把数据推送给监控主机的话,就很可能导致监控主机处理不过来,所以通过Pull方式,被采集端无需感知监控系统的存在,完全独立于监控系统之外,这样数据的采集完全由监控系统控制。

1.4、Prometheus配置文件六个大配置段的含义

  • 下面这张图展示了Prometheus的架构和各个组件是如何交互和协作的
    在这里插入图片描述

  • prometheus配置文件各个大配置段

    • scrape_configs 采集配置段 做采集器
    • rule_files 告警、预聚合配置文件段
    • remote_read 远程查询段
    • remote_write 远程写入段
    • alerting: Alertmanager信息段
  • 优秀的开源项目大多是模块化的,能让使用者根据业务场景自行决定开启哪些配置

对应的配置段 用途
采集配置段 做采集器,数据保存在本地
采集配置段 + 远程写入段 做采集器+传输器,数据保存在本地+远端存储
远程查询段 做查询器,查询远端存储数据
采集配置段 + 远程查询段 做采集器+查询器,查询本地数据+远端存储数据
采集配置段 + Alertmanager信息段 + 告警配置文件段 做采集器+告警触发器,查询本地数据生成报警发往Alertmanager
远程查询段 + Alertmanager信息段 + 告警配置文件段 做远程告警触发器,查询远端数据生成报警发往Alertmanager
远程查询段+远程写入段 + 预聚合配置文件段 做预聚合指标,生成的结果集指标写入远端存储
  • yaml具体配置格式
# 全局配置段
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: 10s 
  # 查询日志,包含各阶段耗时统计
  query\_log\_file: /opt/logs/prometheus_query_log
  # 全局标签组
  # 通过本实例采集的数据都会叠加下面的标签
  external\_labels:
    account: 'huawei-main'
    region: 'node1'

# Alertmanager信息段
alerting:
  alertmanagers:
  - scheme: http
    static\_configs:
    - targets:
      - "localhost:9090"

# 告
使用 PrometheusGrafana 监视基于 Jetty 的 Java 应用程序可以帮助你收集和分析应用程序的性能指标,并据此进行优化和调整。下面是一些基本步骤: 1. 安装 PrometheusGrafana。可以从官网下载并安装它们,也可以使用 Docker 镜像启动。 2. 在应用程序中添加 Prometheus 客户端库。这个库提供了一些 API,可以让应用程序将性能指标暴露给 Prometheus。 3. 在应用程序的启动脚本中添加启动参数,以启用 Prometheus 客户端库。例如,可以添加以下参数: ``` -javaagent:/path/to/prometheus/jmx_prometheus_javaagent.jar=8080:/path/to/config.yml ``` 这个参数会启动一个 Java 代理,将应用程序的性能指标暴露给 Prometheus。8080 是代理监听的端口号,config.yml 是代理的配置文件。 4. 在 Prometheus 的配置文件中添加监控目标。例如,可以添加以下配置: ``` - job_name: 'jetty' metrics_path: '/metrics' static_configs: - targets: ['localhost:8080'] ``` 这个配置告诉 Prometheus 监视名为 "jetty" 的目标,并从该目标的 /metrics 路径获取指标。目标地址为 localhost:8080。 5. 启动应用程序和 Prometheus,并验证指标是否被成功收集。可以使用 Prometheus 的 Web UI 来查看指标。 6. 在 Grafana 中创建仪表盘,将应用程序的指标展示出来。可以使用 Grafana 的模板和图表来构建仪表盘。 这些步骤只是一个简单的指导,具体的实现可能因应用程序和环境的不同而有所不同。但总的来说,使用 PrometheusGrafana 监视基于 Jetty 的 Java 应用程序是相对简单和方便的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值