目录
一、Prometheus的概述
1.Prometheus简介
Prometheus是一款具备开源的监控,是一种TSDB(时序数据库),复制于谷歌的borgmon监控系统,对k8s容器的监控非常适用。
Prometheus可以很好地记录任何纯数字时间序列。是位可靠性而设计的,既适用于以机器为中心的监视,也适用于高度动态的面向服务的体系结构的监视,系统中断期间依旧可以监控使用的系统。
2.Prometheus优点
(1)可以自定义多维数据模型,储存更加高效
(2)具有灵活且强大的查询语句(PromQL),不依赖分布式储存
(3)支持单节点工作,可通过pull方式采集时序数据
(4)可以通过push gateway进行时序列数据库推送
(5)可以通过服务发现或静态配置去获取要采集的目标服务器(sd server discover)多种可视化图表及仪表盘支持
3."抓取"数据的方式
首先收集数据分为白盒监控、黑盒监控
白盒监控:自省方式,被监控端内部,可以自己生成指标,只要等待监控系统来采集时提供出去即可
黑盒监控:对于被监控系统没有侵入性,对其没有直接"影响",这种类似于基于探针机制进行监控(snmp协议)
其次Prometheus属于白盒监控,支持通过以下三种类型的途径从木板上抓取指标数据
Exporters :指标暴露器;工作在被监控端,周期性的抓取数据并转换为pro兼容格式等待prometheus来收集,自己并不推送
Instrumentation:应用程序内置的指标暴露器;指被监控对象内部自身有数据收集、监控的功能,只需要prometheus直接去获取
Pushgateway:专用于收集短周期、临时的任务,等待prometheus拉取
4.Prometheus特性
①多维的数据模型(基于时间序列的Key、value键值对)
②灵活的查询和聚合语言PromQL
③提供本地存储和分布式存储
④通过基于HTTP和HTTPS的Pull模型采集时间序列数据(pull数据的拉取,时间序列:每段 时间点的数据值指标,持续性的产生。横轴标识时间,纵轴为数据值,一段时间内数值的动态变化,所有的点连线形成大盘式的折线图)
⑤可利用Pushgateway (Prometheus的可选中间件)实现Push模式
⑥可通过动态服务发现或静态配置发现目标机器(通过consul自动发现和收缩)
⑥支持多种图表和数据大盘
5.Prometheus生态组件
Prometheus Server | 收集和储存时间序列数据 |
Client Library |
目的在于为那些期望原生提供Instrumentation功能的应用程序提供便捷的开发途径 |
Exporters |
指标暴露器 |
Push Gateway | 接收那些通常由短期作业生成的指标数据的网关 |
Prometheus Service Discovery(sd) | 服务动态发现待监控的Target,发送告警信息 |
Prometheus scrape | 数据采集器 |
Alertmanager |
由告警规则对接 |
应用程序内置的指标暴露器 |
Instrumentation |
Data Visualization(Dashboards) | (prome-UI界面) |
二、运维监控平台设计思路
1.设计三个步骤
(1)数据收集模块
(2)数据提取模块(prometheus-TSDB,查询语言是promQL)
(3)监控告警模块(布尔值表达式判断是否需要告警,不成立是健康状态)
2.细划分为6层
第一层:数据收集层(多渠道监控数据)
第二层:数据展示层(数据生成曲线图展示)
第三层:数据提取层(定时采集数据到监控模块)
第四层:告警规则配置层(告警规则设置、告警伐值设置)
第五层:告警事件生成层(实时记录告警事件、形成分析图表)
第六层:用户展示管理层(同一用户管理、集中监控、集中维护)
三、部署 prometheus
1.关掉防火墙机制
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# setenforce 0
2.安装prometheus
[root@localhost ~]# rz -E #上传相关prometheus的软件包
rz waiting to receive.
[root@localhost ~]# ls
prometheus-2.27.1.linux-amd64.tar.gz ...
[root@localhost ~]# tar zxvf prometheus-2.27.1.linux-amd64.tar.gz -C /usr/local/
[root@localhost ~]# cd /usr/local/prometheus-2.27.1.linux-amd64
[root@localhost prometheus-2.27.1.linux-amd64]# ./prometheus
3.浏览器查看
#另开一个终端查看
[root@localhost ~]# netstat -natp | grep 9090
tcp6 0 0 :::9090 :::* LISTEN 76580/./prometheus