云原生监控平台 Prometheus 的相关概念及部署

这篇具有很好参考价值的文章主要介绍了云原生监控平台 Prometheus 的相关概念及部署。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 Prometheus简介

云原生监控平台 Prometheus 的相关概念及部署

      Prometheus 是一个开源的系统监控和报警系统,在 2012 年由 SoundCloud 公司创建,并于 2015 年正式发布。2016 年,Prometheus 正式加入 CNCF (Cloud Native Computing Foundation),成为继kubernetes之后第二个在CNCF托管的项目, 现已广泛用于在容器和微服务领域中得到了广泛的应用,当然不仅限于此Prometheus 本身基于Go语言开发的一套开源的系统监控报警框架和时序列数据库(TSDB)。

Prometheus 的监控功能很完善和全面,性能也足够支撑上万台规模的集群。

网站:Prometheus - Monitoring system & time series database

github:https://github.com/prometheus

其特点主要如下:

  • 支持多维数据模型:由度量名和键值对组成的时间序列数据

  • 内置时间序列数据库TSDB(Time Series Database )

  • 支持PromQL(Prometheus Query Language)查询语言,可以完成非常复杂的查询和分析,对图表展示和告警非常有意义

  • 支持HTTP的Pull方式采集时间序列数据

  • 支持PushGateway采集瞬时任务的数据

  • 支持服务发现和静态配置两种方式发现目标

  • 多种可视化和仪表盘,支持第三方 dashboard, 比如:Grafana

云原生监控平台 Prometheus 的相关概念及部署

数据特点

  • 监控指标,采用独创的指标格式,我们称之为Prometheus格式,这个格式在监控场景中非常常见。

  • 数据标签,支持多维度标签,每个独立的标签组合都代表一个独立的时间序列

  • 数据处理,prometheus内部支持多种数据的聚合、切割、切片等功能。

  • 数据存储,prometheus支持双精度浮点型数据存储,缺点就是,不能存储文本,所以无法对日志的数据采集,只不过它有替代产品软件叫loki。

适用场景

        Prometheus非常适合记录任何纯数字时间序列。它既适合以机器为中心的监控场景,也适合于高度动态的面向服务的体系结构的监控场景。尤其是在微服务世界中,它对多维数据收集和查询的支持是一种特别的优势。

       Prometheus的设计旨在提高可靠性,使其成为中断期间要使用的系统,以使您能够快速诊断问题。Prometheus服务器都是独立的,而不依赖于网络存储或其他远程服务。当基础结构的其他部分故障时,您可以依靠它,并且无需设置广泛的基础结构即可使用它。

       由于Prometheus重视可靠性。在故障情况下,我们可以查看有关系统的可用统计信息。但是如果您需要100%的准确性,则Prometheus并不是一个不错的选择,因为所收集的数据可能不会足够详细和完整。在这种情况下,最好使用其他系统来收集和分析数据以进行计费,并使用Prometheus进行其余的监视

2 Prometheus 架构

官方文档: Overview | Prometheus

云原生监控平台 Prometheus 的相关概念及部署

     Prometheus 的主要模块包括:Prometheus server, exporters, Pushgateway, PromQL, Alertmanager 以及图形界面

主要组件:

  • prometheus :

    时序数据存储、监控指标管理

  • 可视化:

    prometheus web UI :集群状态管理、promQL

    grafana:非常全面的可视化套件

  • 数据采集

    exporter:为当前的客户端暴露出符合prometheus规格的数据指标

    pushgateway :拉模式下数据的采集工具

  • 监控目标

    服务发现 :文件方式、dns方式、console方式、k8s方式

  • 告警:

    alertmanager

3 Prometheus 数据模型

       Prometheus中存储的数据为时间序列,即基于同一度量标准或者同一时间维度的数据流。除了时间序列数据的正常存储之外,Prometheus还会基于原始数据临时生成新的时间序列数据,用于后续查询的依据或结果

每个时间序列都由metric名称和标签(可选键值对)组合成唯一标识  

3.1 metric 名字

  • 该名字必须有意义,用于表示 metric 的一般性功能,例如:http_requests_total, 表示 http 请求的总数

  • metric 名字由 ASCII 字符,数字,下划线,以及冒号组成,且必须满足正则表达式 [a-zA-Z]:[a-zAZ0-9_:]*的查询需求

  • 注意:冒号是为用户定义的记录规则保留的

云原生监控平台 Prometheus 的相关概念及部署

3.2 标签

  • 标签是以键值对的样式而存在,不同的标签用于表示时间序列的不同维度标识

  • 基本格式:

<metric name>{<label name>=<label value>, …}
#示例样式:
http_requests_total{method="POST",endpoint="/api/tracks"}
解析: http_requests_total{method="POST"} 表示所有 http 请求中的 POST 请求,
endpoint="/api/tracks"表示请求的url地址是/api/tracks。
当 method="GET" 时,则为新的一个 metric
  • 标签中的键名由 ASCII 字符,数字,以及下划线组成,且必须满足正则表达式 [a-zA-Z: [a-zA-Z0- 9:]*。以__头的标签名称保留供内部使用

  • 标签值可以包含任何Unicode字符,标签值为空的标签被认为等同于不存在的标签

查询语言允许基于这些维度进行过滤和聚合。更改任何标签值,包括添加或删除标签,都会创建一个新的时间序列

云原生监控平台 Prometheus 的相关概念及部署

4 Prometheus 部署

4.1 常见部署方式

  • 包安装

    RHEL系统: prometheus-rpm/release - Results in prometheus-rpm/release

    Ubuntu和Debian可直接使用apt命令安装

  • 二进制安装 Download | Prometheus

  • 基于 docker 运行 Installation | Prometheus

  • 基于 kubernetes operator 安装 https://github.com/coreos/kube-prometheus

4.2 docker 镜像直接启动

#安装docker
[root@master1 ~]# yum install docker -y
[root@master1 ~]# systemctl enable --now docker

#将prometheus镜像包上传到linux系统中
#导入镜像
#docker load -i prometheus.tar

[root@master1 ~]# docker run -d --name prometheus -p 9090:9090 prom/prometheus

 浏览器访问:http://prometheus服务器:9090/

云原生监控平台 Prometheus 的相关概念及部署

4.3 二进制安装 prometheus

4.3.1 下载二进制包并解压

官方下载: Download | Prometheus

[root@master1 ~]#wget https://github.com/prometheus/prometheus/releases/download/v2.35.0/prometheus-2.35.0.linux-amd64.tar.gz

[root@master1 ~]#ls -l prometheus-2.35.0.linux-amd64.tar.gz 
-rw-r--r-- 1 root root 80620181 Apr 21 10:07 prometheus-2.35.0.linux-amd64.tar.gz

[root@master1 ~]#tar xf prometheus-2.35.0.linux-amd64.tar.gz 

[root@master1 ~]#ln -s /root/prometheus-2.35.0.linux-amd64 /usr/local/prometheus

[root@master1 ~]#cd /usr/local/prometheus

[root@master1 /usr/local/prometheus]#ls
console_libraries  consoles  LICENSE  NOTICE  prometheus  prometheus.yml  promtool

[root@master1 /usr/local/prometheus]#mkdir bin conf data

[root@master1 /usr/local/prometheus]#mv prometheus promtool bin/

[root@master1 /usr/local/prometheus]#mv prometheus.yml conf/

[root@master1 /usr/local/prometheus]#useradd -r -s /sbin/nologin prometheus

[root@master1 /usr/local/prometheus]#chown -R prometheus.prometheus /usr/local/prometheus/

[root@master1 /usr/local/prometheus]#cd

[root@master1 ~]#vim /etc/profile.d/prometheus.sh
export PROMETHEUS_HOME=/usr/local/prometheus
export PATH=${PROMETHEUS_HOME}/bin:$PATH

[root@master1 ~]#source /etc/profile.d/prometheus.sh

#查看配置文件,默认可不修改
[root@master1 ~]#grep -Ev "^ *#|^$" /usr/local/prometheus/conf/prometheus.yml
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.
alerting:
  alertmanagers:
    - static_configs:
        - targets:
rule_files:
scrape_configs:
  - job_name: "prometheus"
    static_configs:
      - targets: ["localhost:9090"]
     
#属性解析:主要是global和 scrape_configs 两部分的配置,在这里目前我们保持默认即可

#检查配置文件是否正确
[root@master1 ~]#promtool check config /usr/local/prometheus/conf/prometheus.yml
Checking /usr/local/prometheus/conf/prometheus.yml
 SUCCESS: /usr/local/prometheus/conf/prometheus.yml is valid prometheus config file syntax

4.3.2 创建service文件

[root@master1 ~]#vim /lib/systemd/system/prometheus.service
[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io/docs/introduction/overview/
After=network.target

[Service]
Restart=on-failure
User=root
WorkingDirectory=/usr/local/prometheus/
ExecStart=/usr/local/prometheus/bin/prometheus --config.file=/usr/local/prometheus/conf/prometheus.yml
ExecReload=/bin/kill -HUP $MAINPID
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target

#配置解析:
#我们需要将定制的prometheus的配置文件和数据目录作为启动参数配置好
#其它的参数,可以基于prometheus --help 查看更多

[root@master1 ~]#systemctl daemon-reload

[root@master1 ~]#systemctl restart prometheus

[root@master1 ~]#systemctl status prometheus

[root@master1 ~]#ss -tnlp |grep prometheus
LISTEN 0      4096               *:9090            *:*    users:(("prometheus",pid=6488,fd=8))

#结果显示:可以看到当前主机上可以看到一个端口9090,可通过下面地址看到prometheus的服务页面

4.3.3 测试访问

浏览器访问: http://192.168.3.21:9090/

云原生监控平台 Prometheus 的相关概念及部署文章来源地址https://www.toymoban.com/news/detail-499516.html

到了这里,关于云原生监控平台 Prometheus 的相关概念及部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于Prometheus+Grafana搭建监控平台(Windows/Linux环境exporter部署)

    1.1 Prometheus是什么?Prometheus(普罗米修斯)是一个最初在SoundCloud上构建的监控系统。自2012年成为社区开源项目,拥有非常活跃的开发人员和用户社区。为强调开源及独立维护,Prometheus于2016年加入云原生云计算基金会(CNCF),成为继Kubernetes之后的第二个托管项目。 Prometheus

    2024年01月19日
    浏览(68)
  • 采用Prometheus+Grafana+Altermanager搭建部署K8S集群节点可视化监控告警平台

    采用 \\\"Prometheus+Grafana\\\"的开源监控系统,安装部署K8S集群监控平台。 并使用Altermanager告警插件,配合使用企业微信,实现系统集群监控报警机制。 主机名称 IP地址 安装组件 m1 192.168.200.61 Prometheus+Grafana+Alertmanager+node_exporter m2 192.168.200.62 node_exporter m3 192.168.200.63 node_exporter n1 192

    2024年02月11日
    浏览(41)
  • 云原生监控系统Prometheus:基于Prometheus构建智能化监控告警系统

    目录 一、理论 1.Promethues简介 2.监控告警系统设计思路 3.Prometheus监控体系 4.Prometheus时间序列数据 5.Prometheus的生态组件 6.Prometheus工作原理 7.Prometheus监控内容 8.部署Prometheus 9.部署Exporters 10.部署Grafana进行展示 二、实验 1.部署Prometheus 2.部署Exporters 2.监控远程MySQL 3.部署Grafana进行

    2024年02月07日
    浏览(34)
  • Prometheus相关的主机监控指标

    CPU负载指标 node_load1 node_load5 node_load15 以上三个指标为主机CPU平均负载,分别对应一分钟、五分钟和十五分钟的时间间隔。CPU负载是指某段时间内占用CPU时间的进程和等待CPU时间的进程数之和。一般来说,cpu负载数/cpu核数如果超过0.7,应该开始关注机器性能情况 ,如果超过

    2023年04月17日
    浏览(25)
  • 云原生系列之使用prometheus监控nginx

    大家好,又见面了,我是沐风晓月,本文主要讲解云原生系列之使用prometheus监控nginx 文章收录到 csdn 我是沐风晓月的博客 【prometheus监控系列】专栏 ,此专栏是 沐风晓月 对云原生prometheus的的总结,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。 如果文章有什么

    2024年02月02日
    浏览(34)
  • 云原生系列之使用prometheus监控redis集群实战

    本次实战使用prometheus监控redis集群,如果你只想监控redis的某一个单机服务,可以参考: 超级实用,解密云原生监控技术,使用prometheus轻松搞定redis监控 本文中的是prometheus已经安装好,如果你还未安装,可以参考上一篇文章:prometheus安装及使用入门 若你想监控其他服务可以

    2023年04月14日
    浏览(30)
  • 【云原生】Prometheus 监控系统的初步了解与系统搭建

    promethues是一个开源的系统监控和报警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF托管的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,同时也支持多种exporter采集数据,还支持pushgateway进行数据上报,Prometheus性能足够支撑上万台规模的集群。

    2024年02月08日
    浏览(29)
  • 【云原生•监控】基于Prometheus实现自定义指标弹性伸缩(HPA)

    「Autoscaling即弹性伸缩,是Kubernetes中的一种非常核心的功能,它可以根据给定的指标(例如 CPU 或内存)自动缩放Pod副本,从而可以更好地管理和利用计算资源,提高系统的可用性和性能,同时减少开销和成本。弹性伸缩可以解决服务负载存在较大波动或资源实际使用与预估

    2024年02月14日
    浏览(32)
  • 统一观测丨使用 Prometheus 监控云原生网关,我们该关注哪些指标?

    可观测体系的概念由来已有,随着分布式微服务迅猛发展,对可观测体系的依赖也越来越深,可观测体系通常包括 Metrics、Tracing、Logging 三类数据,再外加报警机制,即可构成完整的监控报警机制,业界对可观测也有系统性说明,如下: 回到我们日常问题排查,基本路径大致

    2024年02月09日
    浏览(25)
  • Prometheus+Grafana 监控平台实践-搭建&常用服务监控&告警

    Prometheus 是一个开放性的监控解决方案,通过各种 Exporter 采集当前主机/服务的数据,和 Grafana 相结合可以实现强大的监控和可视化功能 本篇将分享使用 docker compose 构建 Prometheus+Grafana,并监控之前文章所搭建的主机服务,分享日常使用的一些使用经验 文章较长,已安装可略

    2024年02月05日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包