搭建Prometheus监控报警系统

什么是Prometheus?

Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(PSDB)。Prometheus是使用go语言开发,是Google BorgMon监控系统的开源版本。
2016年由Google发起linux基金会旗下的原生云基金会(Cloud Native Computing Foundation), 将Prometheus纳入其下第二大开源项目。
Prometheus目前在开源社区相当活跃
Prometheus和Heapster(Heapster是K8S的一个子项目,用于获取集群的性能数据。)相比功能更完善、更全面。
Prometheus性能也足够支撑上万台规模的集群
Prometheus的特点
多维度数据模型
灵活的查询语言
不依赖分布式存储,单个服务器节点是自主的
通过基于HTTP的pull方式采集时序数据
可以通过中间网关进行时序数据推送
通过服务发现或者静态配置来发现目标服务对象
支持多种多样的图表和界面展示,比如Grafana等。
官网地址:https://prometheus.io/
架构图

在这里插入图片描述
在这里插入图片描述
基本原理
Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控状态。不需要任何SDK或者其他的集成过程。这样做非常适合做虚拟化环境监控系统,比如vm docker k8s等。输出被监控组件信息的HTTP接口被叫做exporter。目前互联网公司常用的组件大部分都有exporter可以直接使用,比如vmrnish、haproxy、nginx、mysql、linux系统信息(包括磁盘、内存、CPU、网络等)

服务过程
Prometheus daemon 负责定时去目标上抓取metrics(指标)数据。没抓取目标需要暴露一个HTTP服务的接口,给他定时抓取。Prometheus支持通过配置文件、文本文件、zookeeper、consul、dns srv lookup等方式指定抓取目标。Prometheus采用pull的方式进行监控,即服务器可以直接通过目标pull数据或者间接地通过中间网关来push数据。

Prometheus在本地存储抓取的所有数据,并通过一定规则进行清理和整理数据,并把得到的结果存储到新的时间序列中

Prometheus通过promql和其他api可视化地展示收集的数据。Prometheus支持很多方式的图标可视化,列如grafana、自带的Prometheus以及自身提供的模板引擎等等。Prometheus提供HTTP api的查询方式,自定义所需要的输出

pushgateway支持client主动推送metrics pushgateway,而Prometheus只是定时去gateway上抓取数据

aletmanager 是独立于Prometheus的一个组件,可以支持Prometheus的查询语句,提供十分灵活的报警方式

三大套件

server主要负责数据采集和存储,提供promql查询语言的支持
alermanager报警管理器,用来进行报警
push gateway支持临时性job主动推送指标的中间网关

安装Prometheus
安装前准备

建立相关文件夹

mkdir -p /home/chenqionghe/promethues
mkdir -p /home/chenqionghe/promethues/server
mkdir -p /home/chenqionghe/promethues/client
touch /home/chenqionghe/promethues/server/rules.yml
chmod 777 /home/chenqionghe/promethues/server/rules.yml

https://www.cnblogs.com/chenqionghe/p/10494868.html

发布了198 篇原创文章 · 获赞 17 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/weixin_42506599/article/details/104827379