Prometheus

prometheus+grafana 监控生产环境机器的系统信息、redis、mongodb以及jmx

一笑奈何 提交于 2020-05-03 20:39:08
互相学习探讨的添加我WX: shaozheng4455 (备注博客园) 介绍: 为了更好的对生产环境的一些中间件和操作系统的运行情况进行可视化的展示,近期了解了下prometheus加上grafana来实现这种效果,由于prometheus是新出来的开源项目,所以,监控的插件还不是很多,但是对基本的一些需求能够满足。 Prometheus 是源于 Google Borgmon 的一个开源监控系统,用 Golang 开发。被很多人称为下一代监控系统。 Prometheus 基本原理是通过 HTTP 协议周期性抓取被监控组件的状态,这样做的好处是任意组件只要提供 HTTP 接口就可以接入监控系统,不需要任何 SDK 或者其他的集成过程。这样做非常适合虚拟化环境比如 VM 或者 Docker 。 Prometheus 应该是为数不多的适合 Docker、Mesos 、Kubernetes 环境的监控系统之一。 输出被监控组件信息的 HTTP 接口被叫做 exporter 。目前互联网公司常用的组件大部分都有 exporter 可以直接使用,比如 Varnish、Haproxy、Nginx、MySQL、Linux 系统信息 (包括磁盘、内存、CPU、网络等等)。 Grafana 是一个开源的图表可视化系统,简单说图表配置比较方便、生成的图表比较漂亮。但是 Prometheus 还比较新

kubernetes监控终极方案-kube-promethues

醉酒当歌 提交于 2020-05-02 17:51:13
kube-promethues简介 前面我们学习了 Heapster+cAdvisor方式监控 ,这是Prometheus Operator出现之前的k8s监控方案。后来出现了Prometheus Operator,但是目前Prometheus Operator已经不包含完整功能,完整的解决方案已经变为kube-prometheus。项目地址为: https://github.com/coreos/kube-prometheus 这个仓库包括:kubernetes清单、granfana dashboard以及promethues rules。同时还包括容易上手的安装脚本。 组件包括: The Prometheus Operator 高可用 Prometheus 高可用 Alertmanager Prometheus node-exporter Prometheus Adapter for Kubernetes Metrics APIs kube-state-metrics Grafana kube-promethues架构 上图是 Prometheus-Operator 官方提供的架构图,其中 Operator 是最核心的部分,作为一个控制器,他会去创建 Prometheus 、 ServiceMonitor 、 AlertManager 以及 PrometheusRule 4个

强大的Grafana k8s 插件

陌路散爱 提交于 2020-05-02 17:50:56
原文参考: https://i4t.com/4152.html 参考: https://blog.csdn.net/mailjoin/article/details/81389700 插件链接: https://grafana.com/grafana/plugins/grafana-kubernetes-app 备注:--query.max-samples=50000000 要设置为50000000,否则前端页面会有报错信息。 grafana k8s插件用于集群中的Prometheus部署。收集的指标包括高级别群集和节点统计信息以及较低级别的容器和容器统计信息。使用高级指标进行提醒,使用低级指标进行故障排除。 强大的Grafana k8s 插件 Grafana Prometheus 持久化安装 在早期的版本中 Kubernetes 提供了 heapster、influxDB、grafana 的组合来监控系统,所以我们可以在 Dashboard 中看到 heapster 提供的一些图表信息,在后续的版本中会陆续移除掉 heapster,现在更加流行的监控工具是 prometheus,prometheus 是 Google 内部监控报警系统的开源版本,是 Google SRE 思想在其内部不断完善的产物,它的存在是为了更快和高效的发现问题,快速的接入速度

idou老师教你学istio2:监控能力介绍

心不动则不痛 提交于 2020-05-02 17:23:04
我们知道每个pod内都会有一个Envoy容器,其具备对流入和流出pod的流量进行管理,认证,控制的能力。Mixer则主要负责访问控制和遥测信息收集。 如拓扑图所示,当某个服务被请求时,首先会请求istio-policy服务,来判定是否具备访问资格,若具备资格则放行反之则请求不会被下发到服务。这一切的访问信息,都会被记录在Envoy中,之后会上报给mixer作为原始数据。遥测数据的收集及其他功能完全是灵活可控的,你既可以配置新的收集指标和日志,也可以完全禁用这些功能。 1.Prometheus的应用和指标介绍 Prometheus是一款开源的监控和告警系统,2016年加入CNCF,以其灵活的检索语言,高效的数据存储方式以及多维度的数据模型使得越来越多的人使用。Istio自0.8开始就默认的将Prometheus包含在内,我们可以通过查询service或者pod看到普罗的运行状态和地址。点开Prometheus界面,UI十分简洁明了。 用户在Expression内输入想要查询数据的表达式,并且再输入的过程中,普罗还会在已有的指标中做出提示方便用户查找。我们输入一个简单的查询表达式istio_requests_total,点击Execute,在图形界面中,将鼠标放到图中的折线可以看到请求的详细信息。 详细信息中的每一项都可以作为选定参考指标的特性

idou老师教你学Istio 25:如何用istio实现监控和日志采集

怎甘沉沦 提交于 2020-05-02 16:32:16
大家都知道istio可以帮助我们实现灰度发布、流量监控、流量治理等功能。每一个功能都帮助我们在不同场景中实现不同的业务。那Istio是如何帮助我们实现监控和日志采集的呢? 这里我们依然以Bookinfo应用程序作为贯穿此任务的示例程序。首先在集群中安装并部署Istio。 1 收集遥测数据 创建一个新的YAML文件,用来保存Istio将自动生成和收集的新度量标准和日志流的配置。如下图所示: 通过命令$ kubectl apply -f new_telemetry.yaml推送刚刚配置的YAML文件。然后去请求应用程序来生成流量,例如在本用例中就可以访问Bookinfo完成访问。 接下来我们就可以验证是否采集到了刚刚的请求数据。在Kubernetes环境中,通过执行以下命令为Prometheus设置端口转发: $ kubectl -n istio-system port-forward $(kubectl -n istio-system get pod -l app=prometheus -o jsonpath='{.items[0].metadata.name}') 9090:9090 & 通过Prometheus UI查看新指标的值。执行对istio_double_request_count度量值的查询。Console选项卡中显示的表 包含类似于以下内容的条目:

idou老师教你学Istio :如何用istio实现监控和日志采集

馋奶兔 提交于 2020-05-02 16:31:56
大家都知道istio可以帮助我们实现灰度发布、流量监控、流量治理等功能。每一个功能都帮助我们在不同场景中实现不同的业务。那Istio是如何帮助我们实现监控和日志采集的呢? 这里我们依然以Bookinfo应用程序作为贯穿此任务的示例程序。首先在集群中安装并部署Istio。 1 收集遥测数据 创建一个新的YAML文件,用来保存Istio将自动生成和收集的新度量标准和日志流的配置。如下图所示: 通过命令$ kubectl apply -f new_telemetry.yaml推送刚刚配置的YAML文件。然后去请求应用程序来生成流量,例如在本用例中就可以访问Bookinfo完成访问。 接下来我们就可以验证是否采集到了刚刚的请求数据。在Kubernetes环境中,通过执行以下命令为Prometheus设置端口转发: $ kubectl -n istio-system port-forward $(kubectl -n istio-system get pod -l app=prometheus -o jsonpath='{.items[0].metadata.name}') 9090:9090 & 通过Prometheus UI查看新指标的值。执行对istio_double_request_count度量值的查询。Console选项卡中显示的表 包含类似于以下内容的条目:

idou老师教你学Istio 26:如何使用Grafana进行可视化监控

瘦欲@ 提交于 2020-05-02 15:09:24
使用Grafana插件进行监控是Istio提供的监控能力之一。Istio提供丰富的监控能力,Grafana插件在Istio对Prometheus支持的基础上,为用户提供基于网页仪表面板的可视化监控效果,使用户更加直观地查看到实时通信状况。 在前面“ 如何使用Prometheus监控” 的文章中,我们已经介绍istio如何通过它的核心组件Mixer收集用户的访问数据,配合一系列后端基础设施,转换为Prometheus后端接收的形式,提供日志、监控、配额、检查等核心运维功能。Istio基本安装支持Grafana插件,并默认结合Prometheus数据源和Istio Dashboard。Grafana配合Prometheus实现强大的监控功能,它将Prometheus得到的指标数据转换到可视化仪表界面上,从而帮助用户进行监控,并根据用户设置的机制支持报警服务。因此,Istio将Prometheus中存储的数据,通过Grafana直观清晰地展现出来。 Grafana是一个开源的度量分析与可视化插件,可用作时间序列数据和应用程序分析,具有强大UI能力。它自称为适用于所有指标的分析平台,允许用户查询,可视化,提醒和理解应用指标,并基于数据驱动创建,探索和共享仪表板,提供一个更易于使用的可视化度量工具。 Grafana的特点有: 1. 形象化:拥有折线图和直方图等大量可视化选项

Kubernetes之(十九)资源指标和集群监控

不想你离开。 提交于 2020-05-02 05:08:44
[toc] Kubernetes之(十九)资源指标和集群监控 资源指标和资源监控 一个集群系统管理离不开监控,同样的Kubernetes也需要根据数据指标来采集相关数据,从而完成对集群系统的监控状况进行监测。这些指标总体上分为两个组成:监控集群本身和监控Pod对象,通常一个集群的衡量性指标包括以下几个部分: 节点资源状态:主要包括网络带宽、磁盘空间、CPU和内存使用率 节点的数量:即时性了解集群的可用节点数量可以为用户计算服务器使用的费用支出提供参考。 运行的Pod对象:正在运行的Pod对象数量可以评估可用节点数量是否足够,以及节点故障时是否能平衡负载。 另一个方面,对Pod资源对象的监控需求大概有以下三类: Kubernetes指标:监测特定应用程序相关的Pod对象的部署过程、副本数量、状态信息、健康状态、网络等等。 容器指标:容器的资源需求、资源限制、CPU、内存、磁盘空间、网络带宽的实际占用情况。 应用程序指标:应用程序自身的内建指标,和业务规则相关 metrics-server 在新一代的Kubernetes指标监控体系当中主要由核心指标流水线和监控指标流水线组成: 核心指标流水线:是指由kubelet、、metrics-server以及由API server提供的api组成,它们可以为K8S系统提供核心指标,从而了解并操作集群内部组件和程序

k8s 容器的资源需求,资源限制-监控-资源指标API及自定义指标API

﹥>﹥吖頭↗ 提交于 2020-05-02 04:37:36
POD资源: requests:需求,最低保障 limits:限制,硬限制 CPU: 一颗逻辑CPU(一个核心) 1=1000微核,millicores 500m=0.5CPU 内存: E、P、T、G、M、K Ei、Pi、Ti、Gi、Mi、Ki、 Qos: Guranteed:最高优先级, 确保、保证 同时设置了CPU和内存的requests和limits, cpu.limits=cpu. requests memory.limits=memory.limits Burstable:中间优先级, 至少有一个容器设置CPU或者内存资源requests的属性,当内存资源比较紧缺时将requests分配占用较大的停止 cpu.limits>cpu. requests memory.limits>memory.limits BestEffort:最低优先级, 自动配置,当内存资源比较紧缺时,BestEffort会被优先退出,确保其他类型的正常运行 没有任何一个设置 resources: limits: memory: 1024Mi cpu: 2 requests: cpu: 500m memory: 512Mi HeapSter:(新版本被整合在kubernetes内部,kube1.1后废弃) cAdvisor:收集各node节点上面内存,硬盘,cpu的资源,可以在单节点上面查看采集的结果

Prometheus Node_exporter metrics 之 Basic CPU / Mem / Disk Info

我是研究僧i 提交于 2020-05-02 02:17:15
Basic CPU / Mem / Disk Info 1. CPU Cores 物理 CPU 的核数 cat /proc/cpuinfo| grep "cpu cores"| uniq type:Singlestat Unit: short metrics: count(count(node_cpu_seconds_total{instance=~\"$node:$port\",job=~\"$job\"}) by (cpu)) 2. Total RAM 内存大小 cat /proc/meminfo | grep MemTotal type:Singlestat Unit: bytes metrics: node_memory_MemTotal_bytes{instance=~\"$node:$port\",job=~\"$job\"} 3. Total SWAP 交换分区的大小 cat /proc/swaps type:Singlestat Unit: bytes metrics: node_memory_SwapTotal_bytes{instance=~\"$node:$port\",job=~\"$job\"} 4. Total RootFS 根文件系统总空间 type:Singlestat Unit: bytes metrics: node_filesystem