搭建Prometheus监控报警系统
什么是Prometheus?Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(PSDB)。Prometheus是使用go语言开发,是Google BorgMon监控系统的开源版本。2016年由Google发起linux基金会旗下的原生云基金会(Cloud Native Computing Foundation), 将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
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)