prometheus安装及使用入门

news2024/11/17 20:21:49

在这里插入图片描述

文章目录

  • 前言
  • 一. prometheus介绍
    • 1.1 prometheus的起源
    • 2.1 prometheus的特点
  • 二. prometheus的安装
    • 2.1 实验环境
    • 2.2 安装前准备
    • 2.3 开始安装prometheus
      • 2.3.1 下载并解压prometheus server
      • 2.3.2 安装过程
      • 2.3.3 启动并查看端口
      • 2.3.4 打开浏览器查看图形界面
  • 总结

前言

云原生四象限: 容器,微服务,DevOPS ,编排通信。 【云原生专栏】就是基于这四个象限展开的,今天的内容是promehtues系列的安装和入门。建议从第一篇文章 prometheus 的基础入门 开始学习。

一. prometheus介绍

1.1 prometheus的起源

Prometheus 是由 SoundCloud 开源监控告警解决方案,从 2012 年开始编写代码,再到 2015 年 github 上开源以来,已经吸引了 2W+ 关注,以及很多大公司的使用;

2016 年 Prometheus 成为继 k8s 后,第二名 CNCF(Cloud Native Computing Foundation) 成员。

promehtues 的灵感来自谷歌的Borgmon,作为新一代开源解决方案,很多理念与 Google SRE 运维之道不谋而合。

Prometheus由开源编程语言Go编写,并且是在Apache 2.0许可证下授权的。

特别适合K8S 的架构上,作为一个数据监控解决方案,它由一个大型社区支持,有来自700多家公司的6300个贡献者,13500个代码提交和7200个拉取请求

2.1 prometheus的特点

Prometheus官网上的自述是:“From metrics to insight.Power your metrics and alerting with a leading open-source monitoring solution.”

翻译过来就是:从指标到洞察力,Prometheus通过领先的开源监控解决方案为用户的指标和告警提供强大的支持。

主要有以下四个特点:

  • 通过PromQL实现多维度数据模型的灵活查询。
  • 定义了开放指标数据的标准,自定义探针(如Exporter等),编写简单方便。
  • PushGateway组件让这款监控系统可以接收监控数据。
  • 提供了VM和容器化的版本。

除此之后还有如下特点:

  • Go语言编写,拥抱云原生。
  • 采用拉模式为主、推模式为辅的方式采集数据。
  • 二进制文件直接启动,也支持容器化部署镜像。
  • 支持多种语言的客户端,如Java、JMX、Python、Go、Ruby、.NET、Node.js等语言。
  • 支持本地和第三方远程存储,单机性能强劲,可以处理上千target及每秒百万级时间序列。
  • 高效的存储。平均一个采样数据占3.5B左右,共320万个时间序列,每30秒采样一次,如此持续运行60天,占用磁盘空间大约为228GB
  • 出色的可视化功能。Prometheus拥有多种可视化的模式,比如内置表达式浏览器、Grafana集成和控制台模板语言。它还提供了HTTP查询接口,方便结合其他GUI组件或者脚本展示数据。
  • 精确告警。Prometheus基于灵活的PromQL语句可以进行告警设置、预测等,另外它还提供了分组、抑制、静默等功能防止告警风暴

prometheus也有一定的局限性,比如:

  • prometheus主要针对性能和可用性监控,不适用于针对日志(Log)、事件(Event)、调用链(Tracing)等的监控
  • Prometheus关注的是近期发生的事情,而不是跟踪数周或数月的数据。因为大多数监控查询及告警都针对的是最近(通常不到一天)的数据。Prometheus认为最有用的数据是最近的数据,监控数据默认保留15天。
  • 本地存储有限,存储大量的历史数据需要对接第三方远程存储
  • Prometheus的监控数据并没有对单位进行定义。
  • Prometheus对数据的统计无法做到100%准确,如订单、支付、计量计费等精确数据监控场景。

关于prometheus更详细的简介,参见文章: prometheus监控基础知识入门详解

二. prometheus的安装

2.1 实验环境

系统:CentOS 7.9
配置:4cpu、2g内存
安装软件:prometheus server

软件官网: https://prometheus.io/download/

在这里插入图片描述

2.2 安装前准备

  • 关于prometheus的时间问题

之前Prometheus 为避免时区混乱,在所有组件中专门使用 Unix Time 和 Utc 进行显示。不支持在配置文件中设置时区,也不能读取本机 /etc/timezone 时区。

其实这个限制是不影响使用的:

如果做可视化,Grafana是可以做时区转换的。

如果是调接口,拿到了数据中的时间戳,你想怎么处理都可以

而且从2.1.6 开始新版 Web UI已经引入了Local Timezone 的选项。如果觉得不是本地时间不舒服就可以修改此处,让时间同步为本地时间。

在这里插入图片描述

  • 避免时间不同步导致的数据读取问题
    在prometheus使用过程中,容易发生时间不同步导致数据不读取或者主控菜单栏下面有一串错误提示,显得格外刺眼。

为此我们可以提前设置时间同步

1. 查看时区

查看时区是否正确
# timedatectl status
     Local time: Fri 2022-12-30 21:15:08 CST
  Universal time: Fri 2022-12-30 13:15:08 UTC
        RTC time: Fri 2022-12-30 13:15:10
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: n/a
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a
#或
# ll /etc/localtime 
lrwxrwxrwx. 1 root root 35 Nov  3 15:46 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai

2. 设置时区

# timedatectl set-timezone Asia/Shanghai
#或
# rm -f /etc/localtime
# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

代码注释:
-f:强制删除文件和目录,在rm命令中加上-f可以强制删除文件或目录。
-s:对源文件建立符号链接(软连接)。

3. 时间同步

  • 安装ntpdate
# yum install -y ntpdate
  • 添加定时任务
# crontab -e
5 * * * * /usr/sbin/ntpdate -u ntp1.aliyun.com >/dev/null & #设置每5分钟同步一次时间

#查看定时任务
# crontab -l
5 * * * * /usr/sbin/ntpdate -u ntp1.aliyun.com >/dev/null & 
  • 常用的NTP服务器
中国国家授时中心:210.72.145.44
NTP服务器(上海) :ntp.api.bz
美国: time.nist.gov
复旦: ntp.fudan.edu.cn
微软公司授时主机(美国) :time.windows.com
北京邮电大学 : s1a.time.edu.cn
清华大学 : s1b.time.edu.cn
北京大学 : s1c.time.edu.cn
阿里云:time1.aliyun.com

2.3 开始安装prometheus

2.3.1 下载并解压prometheus server

官方下载地址: https://prometheus.io/download/

在这里插入图片描述
从官方或者github下载prometheus页面,选择对应系统的版本进行下载。

注意:官方的下载页面只显示最新版的prometheus,而github可以找到最新和以前的版本的prometheus。

在这里插入图片描述

2.3.2 安装过程

#创建存放prometheus的文件夹
# mkdir -p /apps
#进入文件夹
# cd /apps
#下载prometheus最新的LTS版本
# wget https://github.com/prometheus/prometheus/releases/download/v2.37.5/prometheus-2.37.5.linux-amd64.tar.gz
#解压prometheus
# tar xvf prometheus-2.37.5.linux-amd64.tar.gz
#给prometheus做软连接
# ln -sv /apps/prometheus-2.37.5.linux-amd64 /apps/prometheus
‘/apps/prometheus’ -> ‘/apps/prometheus-2.37.5.linux-amd64’

代码注释:

-p:若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录。
-sv:

  • -s:创建符号链接(软链接)。
  • -v:输出每个链接文件的名称。

2.3.3 启动并查看端口

1. 前台启动prometheus Server

# cd /apps/prometheus
# ls
console_libraries  consoles  LICENSE  NOTICE  prometheus  prometheus.yml  promtool
# ./prometheus

如图表示启动成功:
在这里插入图片描述
2. 查看prometheus端口和进程

在终端打开新的窗口,查看prometheus的端口和进程。

# ss -tnl
State      Recv-Q Send-Q              Local Address:Port                             Peer Address:Port              
LISTEN     0      128                             *:22                                          *:*                  
LISTEN     0      128                          [::]:9090                                     [::]:*                  
LISTEN     0      128                          [::]:22                                       [::]:*                  
# ps -ef | grep prometheus
root       1663   1305  0 22:09 pts/0    00:00:00 ./prometheus
root       1687   1377  0 22:12 pts/1    00:00:00 grep --color=auto prometheus

代码解释:
解释:
-tnl:

  • -t:仅显示TCP套接字。
  • -n:不解析服务名称。
  • -l:显示监听状态的套接字。
    -ef:
  • -e:显示所有的程序。
  • -f:显示UID,PPIP,C与STIME栏位。

2.3.4 打开浏览器查看图形界面

浏览器访问: ip地址:9090

在这里插入图片描述

总结

本文主要介绍了prometheus的特点,以及promethues的安装入门,后续我们会基于此环境来学习。
在云原生的道路上,一起加油。

记得一键三连,鼓励下作者哦,我是沐风晓月,在月亮初升的地方开始一天的学习。

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

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

相关文章

【应用】SpringCloud -- Sentinel

SpringCloud -- SentinelSentinel 概述Sentinel 的安装与启动Sentinel 微服务创建Sentinel 规则流控规则热点规则熔断规则授权规则Sentinel 其他常用功能规则持久化自定义异常Sentinel 概述 sentinel 官方文档 随着微服务的流行,服务和服务之间的稳定性变得越来越…

三十五、Kubernetes1.25中Ingress使用

1、概述在上篇文章中我们详解销售了Ingress是什么、有什么用以及怎么安装,如果没有看的建议先看下,然后再来看这篇文章,上篇文章地址:https://blog.csdn.net/u011837804/article/details/128564606这篇文章我们用实际操作&#xf…

vs鼠标右键“管理NuGet程序包”无响应

其他C#开发问题参考我的:C#基础知识体系框架图,及起对应我发过的博客 问题:下载SharpDX的开源示例代码,鼠标右键无法正常打开NuGet下载依赖,而在本地自己创建的项目中可以正常下载 原因:缺少.sln文件 解决…

定时任务Demo总结(推荐最后一种)

方法一: 线程实现 Runnable 接口 Thread thread new Thread(new Runnable() {Overridepublic void run() {while (true) {SimpleDateFormat sdf new SimpleDateFormat("HH:mm:ss.SSS");String dateStr sdf.format(new Date());System.out.println(&quo…

1.【SpringBoot源码】如何搭建SpringBoot源码调试环境?

目录 一、环境安装要求 二、从github上将SpringBoot源码项目下载下来 三、将SpringBoot源码项目导入到IDEA中 四、编译构建SpringBoot源码项目 五、运行SpringBoot自带的sample 一、环境安装要求 IntelliJ IDEAJDK1.8Maven3.5以上 二、从github上将SpringBoot源码项目下载…

嵌入式开发者的选择——用RTOS,还是不用RTOS?

多年来,随着新技术的引入以及用户和应用程序的不同需求,嵌入式开发人员发生了变化。正如所有嵌入式东西一样,没有两次流程是相同的。然而,我们应对设计挑战的方式有一些共同之处。你总是从系统级别开始,需要从最终应用…

深入 ServiceWorker,消息推送,后台同步,一网打尽

上一章讲到了ServiceWorker的基础使用,但是它的功能不仅仅只有这些,还有很多很多,比如消息推送,后台同步,甚至还有WebRTC,这一章我们来进阶ServiceWorker。 前期准备 在开始之前,我们先做一下…

【分布式微服务】SpringBoot启动原理

一、SpringBoot启动类 SpringBootApplication(exclude DataSourceAutoConfiguration.class) public class PracticeApplication {public static void main(String[] args) {SpringApplication.run(PracticeApplication.class, args);} }二、源码解析 /*** Static helper that …

云原生安全方案介绍

方案介绍 安全狗云原生应用安全解决方案(CNAPP, Cloud-Native Application Protection Platform)采用主机安全Agent和安全容器相结合的技术,既落地了“安全左移”的概念,又能对云原生容器做全面保护,同时能灵活地跟容器编排体系相结合&#x…

map find/count源码分析

参考博客&#xff1a;c map find方法源码解析 众所周知&#xff0c;如果一个数据结构想作为map的key&#xff0c;则必须重载 operator < 否则编译将会报错。但是operator 则是不需要的。那么当查找某个key是否存在的时候&#xff0c;map内部是怎么实现的呢&#xff1f; 结…

1301738-40-8,Bis-maleimides-amine,双马来酰亚胺-氨基

一、基础产品数据&#xff08;Basic Product Data&#xff09;&#xff1a;CAS号&#xff1a;1301738-40-8中文名&#xff1a;三臂双马来酰亚胺-氨基&#xff0c;双马来酰亚胺-氨基&#xff0c;活性交联剂&#xff0c;异官能团三臂交联剂英文名&#xff1a;Bis-Maleimides amin…

【C语言进阶】柔性数组

目录一&#xff1a;柔性数组的特点二&#xff1a;柔性数组的使用三&#xff1a;模拟实现柔性数组在C99中&#xff0c;结构中的最后一个元素允许是未知大小的数组&#xff0c;这就叫做柔性数组成员 以下是柔性数组的两种写法&#xff1a; //写法一&#xff1a; struct S {int n…

Python笔记 · 鸭子类型 / Duck Typing

1. 问题的由来 我初次意识到鸭子类型在存在是在学习Sklearn时&#xff0c;在《Hands-On Machine Learing》一书的第二章&#xff0c;作者提供了一个自定义的Tansformer&#xff0c;使用自定义Transformer的好处在于&#xff1a;你既可以实现自己需要的数据处理逻辑&#xff0c…

【应用】SpringCloud -- Gateway

SpringCloud -- GatewayGateway 网关概述Gateway 的功能Gateway 核心概念Gateway 网关搭建Gateway 的配置及使用predicate 断言filter 过滤器GlobalFilter 全局过滤器Gateway 的几点问题过滤器执行顺序跨域问题Gateway 网关概述 Gateway 的功能 在微服务当中&#xff0c;有很…

PG15 pg_basebackup 代码解析

背景 先前 PG 版本 pg_basebackup 的代码较为复杂&#xff0c;pg_basebackup 在备份过程中做了很多事情&#xff0c;但这部分代码逻辑没有完全解耦&#xff0c;导致一个文件里包含了很多功能的逻辑&#xff0c;影响了代码的可读性和可修改性。 因此&#xff0c;PG 15 针对这部…

模电学习3. 差模、共模干扰与安规电容

模电学习3. 差模、共模干扰与安规电容一、简介1. 安规2. 电源安规标准二、差模干扰与共模干扰1. 共模干扰2. 差模干扰&#xff08;1&#xff09;定义&#xff08;2&#xff09;来源与特性3. 测量4. 消除电源线路中的差模干扰&#xff08;1&#xff09;差模电容5. 消除电源线路中…

TOOM加强网络舆情监控制定处置预案,抓好舆情监控管理?

舆情预案是指根据对未来舆情发展趋势的预测&#xff0c;制定预先准备的舆情处置方案&#xff0c;以应对可能出现的舆情危机。舆情预案包括舆情预警体系、舆情应对策略、应对措施等内容&#xff0c;旨在在舆情危机发生前进行有效的预防和准备&#xff0c;避免舆情危机扩大&#…

95. BERT预训练数据代码

为了预训练之前实现的BERT模型&#xff0c;我们需要以理想的格式生成数据集&#xff0c;以便于两个预训练任务&#xff1a;遮蔽语言模型和下一句预测。一方面&#xff0c;最初的BERT模型是在两个庞大的图书语料库和英语维基百科的合集上预训练的&#xff0c;但它很难吸引这本书…

Zookeeper 教程

Zookeeper 教程Zookeeper 概述分布式应用Zookeeper 架构图ZooKeeper当中的主从与主备&#xff1a;Zookeeper的特性分布式应用的优点分布式应用的挑战什么是Apache ZooKeeper&#xff1f;ZooKeeper的好处Zookeeper 基础ZooKeeper的架构层次命名空间Znode的类型Sessions&#xff…

九龙证券|外资放大招,400亿巨头狂飙!这只翻倍股却突然崩了

昨日超级“开门红”之后&#xff0c;今天上午港股又有多只重磅个股大幅涨超10%。 今日上午&#xff0c;港股整体窄幅震荡&#xff0c;上午收盘&#xff0c;恒生指数微跌0.05%&#xff0c;恒生科技指数涨0.22%。 职业板块方面&#xff0c;媒体、软件服务、电信等涨幅居前&#…