grafana

使用 Prometheus-Operator 监控 Calico

孤人 提交于 2020-08-14 15:56:02
原文链接: https://fuckcloudnative.io/posts/monitoring-calico-with-prometheus-operator/ Calico 中最核心的组件就是 Felix ,它负责设置路由表和 ACL 规则等,以便为该主机上的 endpoints 资源正常运行提供所需的网络连接。同时它还负责提供有关网络健康状况的数据(例如,报告配置其主机时发生的错误和问题),这些数据会被写入 etcd,以使其对网络中的其他组件和操作人员可见。 由此可见,对于我们的监控来说,监控 Calico 的核心便是监控 Felix , Felix 就相当于 Calico 的大脑。本文将学习如何使用 Prometheus-Operator 来监控 Calico。 本文不会涉及到 Calico 和 Prometheus-Operator 的部署细节,如果不知道如何部署,请查阅官方文档和相关博客。 1. 配置 Calico 以启用指标 默认情况下 Felix 的指标是被禁用的,必须通过命令行管理工具 calicoctl 手动更改 Felix 配置才能开启,需要提前配置好命令行管理工具。 本文使用的 Calico 版本是 v3.15.0 ,其他版本类似。先下载管理工具: $ wget https://github.com/projectcalico/calicoctl

【最佳实践】esrally:Elasticsearch 官方压测工具及运用详解

送分小仙女□ 提交于 2020-08-14 10:56:47
作者介绍 魏彬,普翔科技 CTO,开源软件爱好者,中国第一位 Elastic 认证工程师,《Elastic日报》和 《ElasticTalk》社区项目发起人,被 elastic 中国公司授予 2019 年度合作伙伴架构师特别贡献奖。对 Elasticsearch、Kibana、Beats、Logstash、Grafana 等开源软件有丰富的实践经验,为零售、金融、保险、证券、科技等众多行业的客户提供过咨询和培训服务,帮助客户在实际业务中找准开源软件的定位,实现从 0 到 1 的落地、从 1 到 N 的拓展,产生实际的业务价值。 为什么要压测 关于压测,我们先来看下百度百科上的一个定义。 压测,即压力测试,是确立系统稳定性的一种测试方法,通常在系统正常运作范围之外进行,以考察其功能极限和隐患。 从定义不难看出压测的目的,是要测出一个系统的极限 来源: oschina 链接: https://my.oschina.net/u/4410617/blog/4306305

Kubernetes Pod OOM 排查日记

孤街浪徒 提交于 2020-08-14 10:20:18
一、发现问题 在一次系统上线后,我们发现某几个节点在长时间运行后会出现内存持续飙升的问题,导致的结果就是Kubernetes集群的这个节点会把所在的Pod进行驱逐OOM;如果调度到同样问题的节点上,也会出现Pod一直起不来的问题。我们尝试了杀死Pod后手动调度的办法(label),当然也可以排除调度节点。但是在一段时间后还会复现,我们通过监控系统也排查了这段时间的流量情况,但应该和内存持续占用没有关联,这时我们意识到这可能是程序的问题。 二、现象-内存居高不下 发现个别业务服务内存占用触发告警,通过 Grafana 查看在没有什么流量的情况下,内存占用量依然拉平,没有打算下降的样子: 并且观测的这些服务,早年还只是 100MB。现在随着业务迭代和上升,目前已经稳步 4GB,容器限额 Limits 纷纷给它开道,但我想总不能是无休止的增加资源吧,这是一个很大的问题。 三、Pod频繁重启 有的业务服务,业务量小,自然也就没有调整容器限额,因此得不到内存资源,又超过额度,就会进入疯狂的重启怪圈: 重启将近 200 次,告警通知已经爆炸! 四、排查 猜想一:频繁申请重复对象 出现问题服务的业务特点,那就是基本为图片处理类的功能,例如:图片解压缩、批量生成二维码、PDF 生成等,因此就怀疑是否在量大时频繁申请重复对象,而程序本身又没有及时释放内存,因此导致持续占用。 内存池

spring boot2 配置监控 prometheus+Grafana

久未见 提交于 2020-08-14 05:43:02
1.POM添加依赖包 <!--监控报警--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> </dependency> 2.添加配置 #prometheus配置 监控 management.metrics.export.prometheus.enabled=true management.metrics.export.prometheus.step=1ms management.metrics.export.prometheus.descriptions=true management.endpoint.prometheus.enabled=true management.endpoints.web.exposure.include=health,info,env,prometheus,metrics,httptrace,threaddump,heapdump

快速安装grafana,展示漂亮的图表

我的未来我决定 提交于 2020-08-14 05:07:59
  简介   grafana 是一款采用 go 语言编写的开源应用,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具,目前已经支持绝大部分常用的时序数据库。      安装 CentOS、RHEL、Fedora 上可以直接使用 yum 直接安装 wget -c -t 0 https://dl.grafana.com/oss/release/grafana-6.6.2-1.x86_64.rpm sudo yum install grafana-6.6.2-1.x86_64.rpm -y Ubuntu、Debian 上安装 sudo apt-get install -y adduser libfontconfig1 wget https://dl.grafana.com/oss/release/grafana_6.6.2_amd64.deb sudo dpkg -i grafana_6.6.2_amd64.deb OpenSUSE and SUSE 上安装 wget https://dl.grafana.com/oss/release/grafana-6.6.2-1.x86_64.rpm sudo rpm -i --nodeps grafana-6.6.2-1.x86_64.rpm      二进制文件安装   Go 程序跨平台

斗鱼 Juno 监控中心的设计与实现

此生再无相见时 提交于 2020-08-14 03:09:28
前言 伴随微服务的推广,程序粒度的日趋小型化,服务数量逐渐增长,需要更多的关注服务本身的监控,服务上下游服务情况,以及相关数据源中间件的状态。我们需要更加多维度服务监控,能够对服务调用链路进行可视化、对目标服务调用时客户端与服务端的实时监控。在 Juno 监控中心,我们尝试解决这些问题。 为什么需要监控中心 在行业内越来越多的公司需要开发人员懂得服务器基础架构、操作系统、网络、语言特性、业务整体架构、面对线上问题快速分析快速定位、还包括服务性能调优,对这些方面的要求就是 Google 倡导的 SRE(站点可靠性工程师)。这项工作依赖于很多工具才能顺利完成,例如日志系统、发布系统、监控系统等等。 在斗鱼微服务管理系统 Juno,其中的监控中心的设计就是为协助开发人员进行高效的服务稳定性维护工作,完成对微服务系统的健康支持: 水位瓶颈,在斗鱼进行全链路压测,通过监控系统可以找到服务链路中的瓶颈,了解核心项目的具体水位; 故障预防,采用环比和同步数据进行服务健康波动分析,进行一定程度上的异常预防; 故障排查,线上故障快速定位,给出服务调用链路,从监控异常数据开始分析,排查影响范围,定位问题触发点。 主流产品差异性 只针对市场上的免费解决方案进行分析,目前分析的 Zabbix、Nagios 都比较偏向于基础运维监控工具。Juno 监控中心是 Grafana 和 Prometheus

scrapy自定义扩展(extensions)实现实时监控scrapy爬虫的运行状态

℡╲_俬逩灬. 提交于 2020-08-13 18:33:03
效果图: 废话 如何知道你写的爬虫有没有正常运行,运行了多长时间,请求了多少个网页,抓到了多少条数据呢?官方其实就提供了一个字典就包含一些抓取的相关信息:crawler.stats.get_stats(),crawler是scrapy中的一个组件。你可以在很多组件中访问他,比如包含from_crawler(cls, crawler)方法的所有组件。 既然能得到scrapy的运行状态,想要实时显示出来应该也很简单吧。同样是使用上一篇博客用到的influxdb+grafana来展示数据,我们只需要将scrapy的一些运行信息实时同步到influxdb这个数据库,就能通过grafana以图的形式来展示出数据库里的内容了。 写数据库 如何实时将字典同步到数据库呢?这里肯定要设定一个同步的时间间隔,假设是5秒。那么我们的需求就是让scrapy每5秒写一次爬虫运行状态的信息到数据库,上面提到能访问到crawler.stats.get_stats()这个的组件有很多,比如中间件、管道、爬虫。我们应该在哪个组件中同步信息? 这个我们可以先看一些内置的组件分别实现了什么功能,然后看和需求最相似的功能。很明显,功能最为合适的是extensions这个组件了,有很多人可能都没有用过这个组件,我在看很多博客都很少有提到这个组件的,因为这个组件能做的事,其他也能做,用它只是为了让分工更明确而已

kubernetes云平台管理实战:k8s弹性伸缩(十八)

為{幸葍}努か 提交于 2020-08-13 09:39:52
一、什么是弹性伸缩 Horizontal Pod Autoscaler的操作对象是Replication Controller、ReplicaSet或Deployment对应的Pod,根据观察到的CPU使用量与用户的阈值进行比对,做出是否需要增减实例数量的决策。controller目前使用heapSter来检测CPU使用量,检测周期默认是30秒 二、创建hpa nginx-rc.yaml [root@master hpa]# cat nginx-rc.yaml apiVersion: v1 kind: ReplicationController metadata: name: myweb1 spec: replicas: 2 selector: app: myweb1 template: metadata: labels: app: myweb1 spec: containers: - name: myweb1 image: 192.168.118.18:5000/nginx:1.13 ports: - containerPort: 80 resources: limits: cpu: 100m memory: 50Mi requests: cpu: 100m memory: 50Mi 创建检查 [root@master hpa]# kubectl create -f nginx

kubernetes云平台管理实战:部署heapster监控(十七)

纵然是瞬间 提交于 2020-08-13 08:13:40
一、实验准备 1、文件结构与组成 [root@master heapster-influxdb]# ll total 20 -rw-r--r-- 1 root root 414 May 13 16:35 grafana-service.yaml -rw-r--r-- 1 root root 694 May 21 12:14 heapster-controller.yaml -rw-r--r-- 1 root root 249 May 13 16:36 heapster-service.yaml -rw-r--r-- 1 root root 1627 May 13 17:19 influxdb-grafana-controller.yaml -rw-r--r-- 1 root root 259 May 13 16:37 influxdb-service.yaml 2、具体内容 grafana-service.yaml [root@master heapster-influxdb]# cat grafana-service.yaml apiVersion: v1 kind: Service metadata: labels: kubernetes.io/cluster-service: 'true' kubernetes.io/name: monitoring-grafana name