一、Prometheus的概述
1、简介
Prometheus是一款具备开源的监控,是一种TSDB(时序数据库),复制于谷歌的borgmon监控系统,对k8s容器的监控非常适用。Prometheus可以很好地记录任何纯数字时间序列。是位可靠性而设计的,既适用于以机器为中心的监视,也适用于高度动态的面向服务的体系结构的监视,系统中断期间依旧可以监控使用的系统。
2、优点
- 可以自定义多维数据模型,储存更加高效
- 具有灵活且强大的查询语句(PromQL),不依赖分布式储存
- 支持单节点工作,可通过pull方式采集时序数据
- 可以通过push gateway进行时序列数据库推送
- 可以通过服务发现或静态配置去获取要采集的目标服务器(sd server discover)多种可视化图表及仪表盘支持
3、"抓取"数据的方式
首先收集数据分为白盒监控、黑盒监控
- 白盒监控:自省方式,被监控端内部,可以自己生成指标,只要等待监控系统来采集时提供出去即可
- 黑盒监控:对于被监控系统没有侵入性,对其没有直接"影响",这种类似于基于探针机制进行监控(snmp协议)
其次Prometheus属于白盒监控,支持通过以下三种类型的途径从木板上抓取指标数据:
- Exporters :指标暴露器;工作在被监控端,周期性的抓取数据并转换为pro兼容格式等待prometheus来收集,自己并不推送
- Instrumentation:应用程序内置的指标暴露器;指被监控对象内部自身有数据收集、监控的功能,只需要prometheus直接去获取
- Pushgateway:专用于收集短周期、临时的任务,等待prometheus拉取
4、Prometheus生态组件
- Prometheus Server:服务端;收集和储存时间序列数据;
- Client Library:客户端库;目的在于为那些期望原生提供Instrumentation功能的应用程序提供便捷的开发途径
- Exporters :指标暴露器
- Push Gateway:接收那些通常由短期作业生成的指标数据的网关
- Prometheus Service Discovery(sd):服务动态发现待监控的Target,发送告警信息
- Prometheus scrape:数据采集器
- Alertmanager:由告警规则对接
- Instrumentation:应用程序内置的指标暴露器
- Data Visualization(Dashboards):(prome-UI界面)
二、Prometheus部署
服务器分配主机名 | 地址 | 安装包 |
---|---|---|
prometheus | 192.168.35.40 | prometheus-2.27.1.linux-amd64.tar.gz |
server1 | 192.168.35.10 | node_exporter-1.1.2.linux-amd64.tar.gz |
server2 | 192.168.35.20 | |
server3 | 192.168.35.30 |
1、准备工作关闭防火墙及安全机制,修改主机名
hostnamectl set-hostname prometheus #其他主机分别设置server1.2.3
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vim /etc/reslove.conf
nameserver 114.114.114.114
ntpdate ntp1.aliyun.com #时间同步;时间同步必须要做,不然会报错
2、安装包下载
方法一:同步源的方式下载
cat > letc/ yum.repos.d/prometheus.repo <<EOF
[prometheus]
name=prome