prometheus+grafana监控linux之入门(一)

prometheus+grafana监控linux之入门(一)

prometheus官方网站:https://prometheus.io
prometheus下载地址:https://prometheus.io/download/
(一些常用的软件都在此下载)

一、prometheus简介

prometheus,中文叫普罗米修斯,最初是在SoundCloud上构建的开源系统监视和警报工具包。现在是一个独立的开源项目,并且独立于任何公司进行维护。prometheus也是一个时序数据库,非常适合记录任何纯数字时间序列,存储的是时序数据,即按相同的时序(相同的明=名称和标签),以时间维度存储连续的数据集合。
时序(time series)是由名字(Metric)以及一组key/value标签定义的,key值是协调世界时(UTC),UTC协调世界时即格林威治平太阳时间,是指格林威治所在地的标准时间,也是表示地球自转速率的一种形式,UTC基于国际原子时间
想要使用prometheus监控linux,理解生态组件与工作流程是非常重要的

二、prometheus的作用

系统监视和警报工具,做时序存储的数据库

三、prometheus的主要特点

1.多维度数据模型
-时间序列数据通过 metric 名和键值对(标签)来区分。
-所有的 metrics 都可以设置任意的多维标签。
-数据模型更随意,不需要刻意设置为以点分隔的字符串。
-可以对数据模型进行聚合,切割和切片操作。
-支持双精度浮点类型,标签可以设为全 unicode。
2.灵活的查询语言PromQL :可以对一个语句进行乘法、加法、连接、取分数位等操作。
3.不依赖任何分布式存储;单服务器节点是自治的
4.通过拉取(pull)方式采集数据,或者通过中间网关推送(push)方式采集数据
5.通过服务发现或者静态配置(配置文件)来发现监控目标
6.支持多种图形界面展示方式(grafana)

四、Prometheus的体系结构及其某些生态系统组件与工作流程

prometheus+grafana监控linux之入门(一)_第1张图片

4.1工作流程

4.1.1.Prometheus server定期从配置好的jobs或者exporters中拉取metrics,或者接收来自Pushgateway发送过来的metrics,或者从其它的Prometheus server中拉metrics。
4.1.2.Prometheus server在本地存储收集到的metrics,并运行定义好的alerts.rules,记录新的时间序列或者向Alert manager推送警报。
4.1.3.Alertmanager根据配置文件,对接收到的警报进行处理,发出告警。
4.1.4.在图形界面中,通过promQL采集数据,实现数据的可视化

4.2生态组件之Prometheus Server(prometheus)

Prometheus Server:是Prometheus组件中的核心部分,负责实现对监控数据的获取,存储及查询。
Prometheus Server可以通过静态配置yml文件管理监控目标,也可以配合使用Service Discovery的方式写入其他文件并启用文件发现(file_sd)功能让其自行侦听配置文件变化,并从这些监控目标中获取数据。
Prometheus Sever需要对采集到的数据进行存储,Prometheus Server本身就是一个TSDB实时数据库,将采集到的监控数据按照时间序列的方式存储在本地磁盘当中。而且对外提供了自定义的PromQL,实现对数据的查询以及分析。
Prometheus使用pull方式从节点暴露出来的端口拉取配置。

4.3生态组件之job/exporter(第三方软件:数据采集)

Exporters:Exporter将监控数据采集的端点通过HTTP服务的形式暴露给Prometheus Server,Prometheus Server通过访问该Exporter提供的端口,即可以获取到需要采集的监控数据,是Prometheus主要的指标来源。比如node-exporter。
exporter需要配置在prometheus.yml的targets标签中。

4.4生态组件之pushgateway(自定义数据推送)

pushgateway类似于一个中转站,Prometheus的server端只会使用pull方式拉取数据,但是某些节点因为某些原因只能使用push方式推送数据,那么它就是用来接收push而来的数据并暴露给Prometheus的server拉取的中转站。
如果你想监控的数据在node-exporter中没有采集,在linux中可以用命令查出来,可以将linux查询出的数据发送到pushgateway上,即可以进行一些自定义的监控。

4.5生态组件之AlertManager(告警)

AlertManager:可以通过在配置文件中基于PromQL创建告警规则,如果满足PromQL定义的规则,则会产生一条告警。发出报警。在Prometheus Server中支持常见的接收方式有:电子邮件,微信,钉钉 等,也可以结合grafana直接推送到AlertManager的展示页面中。

4.6生态组件之Grafana(展示面板)

Grafana等其他API客户端可以通过PromQL查询语言查询Prometheus中存储的数据。对于已经存储的历史数据,Prometheus提供虽然也可以使用PromQL语言进行查询,并自带了一个简易的UI界面,可以在界面上进行查询、绘图、查看配置、告警等等。但是Prometheus自带的UI界面太过简陋,而Grafana提供的界面非常的美观,且可以长期保留所以将Grafana与Prometheus配合使用。

五、prometheus统计Metric的四种类型

Counter计数器:用于累计值,只增不减;如请求的个数,结束的任务数,出现的错误数, CPU时间,API访问总次数,异常发生次数等
Gauge计量器:常规数值,如温度,可任意加减。其为瞬时的,与时间没有关系的,可以任意变化的数据。
Histogram: 柱状图,用于观察结果采样,分组及统计,如:请求持续时间,响应大小。其主要用于表示一段时间内对数据的采样,并能够对其指定区间及总数进行统计。根据统计区间计算
Summary: 类似Histogram,用于表示一段时间内数据采样结果,其直接存储quantile数据,而不是根据统计区间计算出来的。不需要计算,直接存储结果
prometheus+grafana监控linux之入门(一)_第2张图片

你可能感兴趣的:(运维)