php发展

首页 » 常识 » 常识 » prometheus和grafana服
TUhjnbcbe - 2021/6/15 9:13:00
中医如何治疗白癜风 http://pf.39.net/bdfyy/bdfzg/180401/6140851.html
prometheus服务监控

注:文档仅记录在linux下进行的一系列操作;安装前准备:

安装wget,用于下载文件,命令:

yuminstallwget-y

安装lrzsz,用于上传文件资料,命令:

yuminstalllrzsz-y

如果要跨机器访问需要开启端口号,在root用户下使用命令(表示要开启的端口号):

firewall-cmd--zone=public--add-port=/tcp--permanent

4.重启防火墙:

firewall-cmd--reloadPrometheus介绍:

Prometheus受启发于Google的Brogmon监控系统(相似的Kubernetes是从Google的Brog系统演变而来),从年开始由前Google工程师在Soundcloud以开源软件的形式进行研发,并且于年早期对外发布早期版本。年5月继Kubernetes之后成为第二个正式加入CNCF基金会的项目,同年6月正式发布1.0版本。年底发布了基于全新存储层的2.0版本,能更好地与容器平台、云平台配合。

Prometheus核心部分只有一个单独的二进制文件,不存在任何的第三方依赖(数据库,缓存等等)。唯一需要的就是本地磁盘,因此不会有潜在级联故障的风险。

Prometheus基于Pull模型的架构方式,可以在任何地方(本地电脑,开发环境,测试环境)搭建我们的监控系统。对于一些复杂的情况,还可以使用Prometheus服务发现(ServiceDiscovery)的能力动态管理监控目标。所有采集的监控数据均以指标(metric)的形式保存在内置的时间序列数据库当中(TSDB)。所有的样本除了基本的指标名称以外,还包含一组用于描述该样本特征的标签。

每一条时间序列由指标名称(MetricsName)以及一组标签(Labels)唯一标识。每条时间序列按照时间的先后顺序存储一系列的样本值。表示维度的标签可能来源于你的监控对象的状态,比如code=或者content_path=/api/path。也可能来源于的你的环境定义,比如environment=produment。基于这些Labels我们可以方便地对监控数据进行聚合,过滤,裁剪。

Prometheus内置了一个强大的数据查询语言PromQL。通过PromQL可以实现对监控数据的查询、聚合。同时PromQL也被应用于数据可视化(如Grafana)以及告警当中。

通过PromQL可以轻松回答类似于以下问题:

在过去一段时间中95%应用延迟时间的分布范围

预测在4小时后,磁盘空间占用大致会是什么情况

CPU占用率前5位的服务有哪些(过滤)

对于监控系统而言,大量的监控任务必然导致有大量的数据产生。而Prometheus可以高效地处理这些数据,对于单一PrometheusServer实例而言它可以处理:

数以百万的监控指标

每秒处理数十万的数据点

Prometheus生态结构:

Prometheus生态结构图如下所示:

prometheus获取服务数据的方式有两种:pull和push两种模式,默认支持pull模式,配置简单,操作容易,配合一系列的Exporter可以很容易获取metircs接口数据,push模式需要pushgateway的支持,且需要自己实现一些操作,包括数据添加、更新、删除操作的数据到prometheus的pushgateway中,官方对push模式这样说的:

使用Pushgateway有几个陷阱:

通过单个Pushgateway监控多个实例时,Pushgateway成为单点故障和潜在瓶颈。

您通过up指标(每次刮除时生成)丢失了Prometheus的自动实例运行状况监控。

Pushgateway永远不会忘记推送到它的系列,并将永远暴露给Prometheus,除非这些系列是通过Pushgateway的API手动删除的。

Prometheus对比Zabbix:ZabbixPrometheus后端用C开发,界面用PHP开发,定制化难度很高。后端用golang开发,前端是Grafana,JSON编辑即可解决定制化难度较低集群规模上限为1个节点支持更大的集群规模,速度也更快更适合监控物理机环境更适合云环境的监控,对OpenStack,Kubernetes有更好的集成监控数据存储在关系型数据库内,如MySQL,很难从现有数据中扩展维度监控数据存储在基于时间序列的数据库内,便于对已有数据进行新的聚合安装简单,zabbix-server一个软件包中包括了所有的服务端功能安装相对复杂,监控、告警和界面都分属于不同的组件图形化界面比较成熟,界面上基本上能完成全部的配置操作界面相对较弱,很多配置需要修改配置文件发展时间更长,对于很多监控场景,都有现成的解决方案年后开始快速发展,但发展时间较短,成熟度不及ZabbixPrometheus工作流程:

1、PrometheusServer定期从配置好的jobs或者exporters中拉metrics,或者接收来自PushGateway发过来的metrics,或者从其他的PrometheusServer中拉metrics。2、PrometheusServer在本地存储收集到的metrics,并运行已定义好的预警规则,记录新的时间序列或者向Alertmanager推送警报。3、Alertmanager根据配置文件,对接收到的警报进行处理,发出告警。4、在图形界面(Grafana)中,采集数据,将其可视化。

Prometheus客户端库主要提供四种主要的metric类型:

Counter(计数器):-说明:Counter是一个累积度量,它表示一个单调递增的Metrics,其值只能在重启时递增或重置为零;-场景:可以使用Counter来表示

1
查看完整版本: prometheus和grafana服