大数据-217 Prometheus 安装设置 启动服务 监控服务

打印 上一主题 下一主题

主题 906|帖子 906|积分 2718

点一下关注吧!!!非常感谢!!连续更新!!!

目前已经更新到了:



  • Hadoop(已更完)
  • HDFS(已更完)
  • MapReduce(已更完)
  • Hive(已更完)
  • Flume(已更完)
  • Sqoop(已更完)
  • Zookeeper(已更完)
  • HBase(已更完)
  • Redis (已更完)
  • Kafka(已更完)
  • Spark(已更完)
  • Flink(已更完)
  • ClickHouse(已更完)
  • Kudu(已更完)
  • Druid(已更完)
  • Kylin(已更完)
  • Elasticsearch(已更完)
  • DataX(已更完)
  • Tez(已更完)
  • 数据挖掘(已更完)
  • Prometheus(正在更新…)
章节内容

上节我们完成了如下的内容:


  • KMeans 基于轮廓系数来选择 n_clusters

Prometheus

架构设计

Prometheus 的核心架构设计简单明白,包括以下组件:


  • Prometheus Server:负责收罗、存储时间序列数据,并提供查询服务。它通过 HTTP 协议从指定的服务端点(targets)拉取数据。
  • Exporter:负责将差异系统的监控指标转换为 Prometheus 可读取的格式,好比 node_exporter 可以监控主机的 CPU、内存等资源,blackbox_exporter 可以进行网站的可达性查抄。
  • Alertmanager:用来处理 Prometheus 产生的报警。当满意指定的报警条件时,Alertmanager 可以将报警信息发送到邮件、Slack、PagerDuty 等多种渠道。
  • Pushgateway:实用于短生命周期的批处理任务,将数据主动推送给 Prometheus。
  • 客户端库(Client Libraries):允许开发者在应用步伐代码中直接定义并记录自定义的监控指标,如请求数、延迟等。
官方网站

  1. https://prometheus.io/download/
复制代码
这里用 2.53.2

数据模子

Prometheus 的数据模子基于键值对存储时间序列数据。它的数据单位是 时间序列,每个时间序列由 唯一的 metric 名称 和一组 标签(labels) 构成。标签使得用户可以灵活地标记和筛选数据,好比 http_requests_total{method=“GET”, status=“200”} 表现获取到的 HTTP 请求总数。
数据收罗方式

Prometheus 的数据收罗采用 Pull 模子,即 Prometheus 定期从指定的目标端点(targets)拉取数据。这种模子对分布式系统尤其实用,由于可以灵活设置并自动发现服务(通过与 Kubernetes 集成),无需每个服务都主动上报数据。
查询语言(PromQL)

Prometheus 提供了一种强大的查询语言 PromQL,用于查询和分析存储的数据。PromQL 允许用户对数据进行复杂的运算和聚合,比方:


  • rate(http_requests_total[5m]):盘算已往 5 分钟的 HTTP 请求速率。
  • avg_over_time(cpu_usage[1h]):盘算已往 1 小时的 CPU 使用率均匀值。 PromQL 支持过滤、聚合、运算符、时间窗口等利用,使得用户可以灵活地分析监控数据。
应用场景



  • 在业务层作用埋点系统:支持多种语言(Go、Python、Ruby 等等),我们可以通过客户端对核心业务进行埋点,如下单流程、添加购物车等等
  • 在应用层作用监控系统:一些主流应用可以通过官方或者第三方的导出器,来对这些应用做核心指标的网络,如 Redis、MySQL
  • 在系统层用作系统监控除了常用软件,Prometheus 也有相关系统层和网络层 exporter,用于监控服务器或者网络
  • 集成其他监控 Prometheus 还可以通过各种 exporter,集成其他的监控系统,网络监控数据,如 AWS CloudWatch、JMX、Pingdom 等等。
我们需要完成:


  • 在监控服务器上安装 Prometheus
  • 在被监控的环境上安装 export
  • 安装 Grafana
下载设置

  1. cd /opt/software
  2. wget https://github.com/prometheus/prometheus/releases/download/v2.53.2/prometheus-2.53.2.linux-amd64.tar.gz
复制代码
实行结果如下所示:

解压设置

  1. tar -zxvf prometheus-2.53.2.linux-amd64.tar.gz
  2. mv prometheus-2.53.2.linux-amd64 ../servers/
复制代码
实行结果如下所示:

修改设置

解压设置,修改设置文件,在项目对应目次下:
  1. cd /opt/servers/prometheus-2.53.2.linux-amd64
  2. vim prometheus.yml
复制代码
实行的结果如下所示:

我们需要进行一些设置:
  1. # my global config
  2. global:
  3.   scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  4.   evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  5.   # scrape_timeout is set to the global default (10s).
  6. # Alertmanager configuration
  7. alerting:
  8.   alertmanagers:
  9.     - static_configs:
  10.         - targets:
  11.           # - alertmanager:9093
  12. # Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
  13. rule_files:
  14.   # - "first_rules.yml"
  15.   # - "second_rules.yml"
  16. # A scrape configuration containing exactly one endpoint to scrape:
  17. # Here it's Prometheus itself.
  18. scrape_configs:
  19.   # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  20.   - job_name: "prometheus"
  21.     # metrics_path defaults to '/metrics'
  22.     # scheme defaults to 'http'.
  23.     static_configs:
  24.       - targets: ["localhost:9090"]
  25.       
  26.   - job_name: "h121-wzk-icu"
  27.     static_configs:
  28.       - targets: ["h121.wzk.icu:9100"]
  29.   - job_name: "h122-wzk-icu"
  30.     static_configs:
  31.       - targets: ["h122.wzk.icu:9100"]
  32.       
  33.   - job_name: "h123-wzk-icu"
  34.     static_configs:
  35.       - targets: ["h123.wzk.icu:9100"]
  36.       
  37.   - job_name: "wzk-icu-grafana"
  38.     static_configs:
  39.       - targets: ["h121.wzk.icu:9091"]
复制代码
对应的内容如下图所示:

启动服务

设置完成后,只需要运行起来这个软件:
  1. cd /opt/servers/prometheus-2.53.2.linux-amd64
  2. ./prometheus
复制代码
实行结果如下图所示:

我们通过 URL可以看到自带的监控界面:
  1. http://h121.wzk.icu:9090/
复制代码
访问结果如下所示:

我们选择 Targets 选项:
  1. http://h121.wzk.icu:9090/
  2. targets?search=
复制代码
可以看到如下的内容:

Alerting 和通知

Prometheus 可以基于查询结果设定报警规则,好比当 CPU 使用率超过 80% 连续一定时间,就可以触发报警。Prometheus 的 Alertmanager 负责管理和路由报警,支持去重、分组、静默处理等功能,帮助团队更高效地处理报警变乱。Alertmanager 可以与多个通知平台集成,如 Slack、邮件、PagerDuty、OpsGenie 等。
存储机制

Prometheus 的数据默认会生存在本地磁盘中,使用 TSDB(时间序列数据库) 存储引擎,以时间块的形式进行存储和压缩。为了满意长时间的数据保留和查询需求,Prometheus 也支持通过远程存储(如 Cortex、Thanos)扩展数据的持久化和高可用性。
服务发现

Prometheus 提供了多种服务发现机制,可以或许自动发现新的监控目标。它支持静态设置、DNS 服务发现、文件服务发现以及多种平台的自动发现,好比 Kubernetes、Consul、Amazon EC2、Azure 等,使得 Prometheus 可以或许动态地发现容器、Pod、VM 等新资源,淘汰运维人员的手动利用。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用户云卷云舒

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表