官网:https://prometheus.io/
prometheus是最初在SoundCloud上构建的开源系统监视和警报工具包。
自2012年成立以来,许多公司和组织都采用prometheus,该项目拥有非常活跃的开发人员和用户社区。 现在,它是一个独立的开源项目,并且独立于任何公司进行维护。
prometheus在2016年加入了Cloud Native Computing Foundation,这是继Kubernetes之后的第二个托管项目。
一个多维数据模型,其中包含通过度量标准名称和键/值对标识的时间序列数据
PromQL,一种灵活的查询语言
不依赖分布式存储; 单服务器节点是自治的
时间序列收集通过HTTP上的拉取进行
通过中间网关支持推送时间序列
通过服务发现或静态配置发现目标
多种图形和仪表板支持模式
主要负责数据的采集和存储,提供PromQL查询语言支持
Retrieval
采样模块,prometheus的服务器在哪里拉取数据,检索拉取到的数据分发给 TSDB进行存储
TSDB
存储模块默认本地存储为TSDB
HTTP server
提供http接口查询和面板,默认端口为9090
short-lived jobs
存在时间不足以被删除的短暂或批量业务,无法通过pull的方式 拉取,需要使用push的方式,与pushgeteway结合使用
服务发现,prometheus支持多种服务发现机制:文件,DNS,k8s,openstack,等,基于服务发现的过程,通过第三方接口,prometheus查询到需要监控的target列表,然后轮询这些target获取监控数据
官方提供的客户端类库有go,java,python,ruby
支持临时性的job主动推送指标的中间网关,prometheus默认通过pull方式从exporters拉取,但有些情况我们是不允许promethes与exporters直接进行通信的,这时候我们可以使用pushgateway由客户端主动push数据到pushgateway,在由prometheus拉取。很多时候我们需要自定义一些组件来采集
使用rails开发的dashboard,用于可视化指标数据
支持其他数据源的指标导入到prometheus,支持数据库,硬件,消息中间件,存储系统,http服务器,jmx等
负责收集目标对象的性能数据,并通过http接口供prometheus server获取,只要符合接口格式,就可以被采集
一个组件,用来进行报警
命令行工具
定期从配置好的jobs或者exporters中拉取metrics(指标),或者接受来自pushgateway发过来的metrics,或者从其他的prometheus server中拉取metrics。
prometheus server 在本地存储收集到的metrics,并运行已经定义好的arlt.rules,记录新的时间序列或者向alertmanager推送报警。
Alertmanager根据配置文件,对接受的警报进行处理,发出告警。
在图形界面中,可视化采集数据,可以使用别人写好的grafana模板。
此处下载的版本为2.17.1
wget https://github.com/prometheus/prometheus/releases/download/v2.17.1/prometheus-2.17.1.linux-amd64.tar.gz
解压
tar zxvf prometheus-2.17.1.linux-amd64.tar.gz
把解压后的目录移动到/usr/local/下,并更名为prometheus
# mv prometheus-2.17.1.linux-amd64 /usr/local/
# mv prometheus-2.17.1.linux-amd64 prometheus
查看prometheus目录下的文件
[root@st-53 /usr/local/prometheus]# ls
console_libraries LICENSE prometheus promtool
consoles NOTICE prometheus.yml tsdb
查看prometeus的版本信息:
[root@st-53 /usr/local/prometheus]# ./prometheus --version
prometheus, version 2.17.1 (branch: HEAD, revision: ae041f97cfc6f43494bed65ec4ea4e3a0cf2ac69)
build user: root@806b02dfe114
build date: 20200326-16:18:19
go version: go1.13.9
可以看到prometheus版本的相关信息,以及go的版本信息。
启动prometheus服务,以后台方式启动
[root@st-53 /usr/local/prometheus]# ./prometheus &
[1] 4746
在浏览器中输入IP查看(默认端口是9090):