全托管文章智能采集系统(2.自建or托管,如何选择托管Prometheus监控?(组图))

优采云 发布时间: 2022-03-29 11:25

  全托管文章智能采集系统(2.自建or托管,如何选择托管Prometheus监控?(组图))

  前言

  Prometheus 是最受欢迎的开源监控系统,更新迭代速度最快,社区最活跃。相信大部分人或多或少都听说过,也有不少人跃跃欲试。本文将带你用最少的时间打开普罗米修斯新世界的大门。

  本文由三部分组成:

  1. 普罗米修斯介绍。

  2. 自建还是托管,如何选择?

  3. 简单演示如何使用托管 Prometheus 监控。

  普罗米修斯简介

  什么是普罗米修斯?

  Prometheus 是一个开源的监控系统,类似于 Kubernetes,Prometheus 的灵感来自 Google 的 Borgman 监控系统,Kubernetes 也是从 Google 的 Borg 演变而来的。Prometheus 于 2012 年启动,由 SoundCloud 内部工程师开发,于 2015 年 1 月发布。2016 年 5 月,成为继 Kubernetes 之后第二个正式加入云原生计算基金会(CNCF)的项目。在最常见的 Kubernetes 容器管理系统中,Prometheus 通常用于监控。

  Prometheus的应用场景?

  可观测性监控分为:指标、链接、日志。Prometheus 提供的是指标监控。

  

  从监控层来看,Prometheus 几乎涵盖了业务监控/应用层监控/中间件监控/系统层监控。结合告警和Grafana,提供一站式全方位监控系统,帮助企业快速发现和定位问题,缓解故障对业务的影响。

  

  如何选择托管或自建?

  基于开源系统的自建Prometheus,学习成本、使用成本和后期维护成本都比较高。近两年,以AWS、腾讯、阿里巴巴为代表的云厂商纷纷出现在市场上提供托管的Prometheus监控服务,不仅给企业带来了更多的选择,同时也增加了前期研究和后期决策的成本在某种程度上。自建和托管的优缺点是什么?哪种解决方案适合我的业务?

  一、自己搭建Prometheus会遇到什么问题

  自建Prometheus的优势在于可以根据公司自身情况灵活配置定制化的监控方案。然而,随着越来越多的企业开始构建自己的 Prometheus 监控解决方案,一些无法回避的突出问题也逐渐浮现。麻烦的生意。

  1. 对于中小企业来说,使用成本高

  自建Prometheus的使用成本包括机器资源成本和人工成本,其中最重要的是人工成本。人工成本包括:

  由于中小企业的运维团队规模较小,一般不超过5人,有的甚至只有一两个人,构建和维护一套Prometheus监控服务显然难度很大。

  2. 对于大型企业,扩展性差,性能瓶颈

  大型企业或快速成长的中型企业,在业务发展初期,自建Prometheus监控,但随着业务量的快速增长,意味着更多的资源投入,对监控的要求更高,自建Prometheus开始暴露出可扩展性差、性能瓶颈等问题,让企业​​运维面临巨大挑战。

  二、托管Prometheus相对于自建的优势

  1. 开箱即用

  2. 低成本

  3. 更具可扩展性

  数据存储容量不受限制,不限于本地磁盘。可以结合腾讯云自研的分片调度技术,实现动态伸缩,满足用户弹性需求,支持负载均衡。解决开源 Prometheus 无法横向扩展的痛点。

  4. 高性能

  轻量级、低资源消耗,Agent只占用不到1G的内存即可完成数据采集。

  5. 更可靠

  结合腾讯云的云存储服务和自身的复制能力,可用性更强,系统中断次数减少。

  6. 主动服务

  多种开源增强监控和操作能力,如健康检查、代理管理等。

  如何使用托管普罗米修斯?

  一、先决条件:

  **1.购买Prometheus实例(**需要和被监控的云服务器在同一个vpc下,可以实现网络互通)

  一世。创建一个新的 Prometheus 实例

  登录Prometheus监控服务控制台:新建Prometheus实例。

  

  ii. 实例规格、网络选择

  选择同一个vpc网段,保证Prometheus可以和需要采集的云服务器网段一致,这样数据就可以采集了。可根据业务上报量选择实例规格。

  

  

  Prometheus 实例价目表:

  

  2. 安装代理

  一世。在 Prometheus 控制台中创建一个新的 Agent

  Prometheus Monitoring -> Agent Management -> New in Agent,输入Agent名称并保存。

  

  ii. 按照命令在云服务器上安装Agent

  Prometheus监控-->代理管理-->进入代理-->安装指南

  根据页面上的安装指南,运行命令将Agent安装在上报数据的同一个云服务器上。

  

  安装成功后,执行以下命令查看Agent状态

  systemctl status prometheus

  

  

  二、访问云服务器的基本指标

  1. 下载并安装 node_expoter

  在要上报的云服务器上,下载安装node_expoter(采集exporter为基础指标数据)

  可以从 Prometheus 开源官网下载:

  #node_exporter

  也可以直接执行以下命令下载解压:

  wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gztar -xvf node_exporter-1.3.1.linux-amd64.tar.gz

  文件目录如下:

  

  2. 运行node_exporter 采集基本监控数据

  一世。执行 node_exporter

  ./node_exporter

  如下图所示,基本监控数据已经成功到达采集。

  

  ii. 基本监控数据可以通过如下命令暴露在9100端口

  curl 127.0.0.1:9100/metrics

  

  3. 添加爬取任务

  进入 Prometheus 监控 --> 代理管理 --> 抓取任务 --> 新建

  在爬取任务管理页面新建爬取任务。如下所示:

  

  

  爬取任务的参考配置如下:

  job_name: cvm_node_exporterhonor_timestamps: falsescrape_interval: 30smetrics_path: /metricsscheme: httpstatic_configs:- targets: - 114.132.244.109:9100

  4. 检查数据是否上报成功

  Prometheus 控制台 -> Grafana 图标,点击进入 Grafana。

  

  

  如上图,去探索搜索{job="cvm_node_exporter"}看看有没有数据。如果有数据,则报告成功。

  5. 配置仪表板界面

  Dashboard界面中的每个产品都会有一些现成的json文件,可以直接导入。

  官网地址:

  一世。下载仪表板文件

  然后点击搜索node_exporter,选择最新的Dashboard。

  

  ii. 导入Dashboard的json文件

  Prometheus控制台->基本信息->Grafana地址,点击进入Grafana。

  Grafana 控制台 --> 创建 --> 导入 --> 在上传 JSON 文件中上传仪表板文件。

  

  

  三、访问云服务器业务层指标

  Prometheus根据不同的监控场景提供了四种指标类型:Counter、Gauge、Historgram和Summary。Prometheus 社区提供多种开发语言的 SDK。每种语言的用法基本相似,主要是开发语言语法不同。下面主要以Go为例,使用Counter指标类型上报自定义监控指标数据。

  柜台

  count类型,数据是一个单调递增的指标,服务重启后会重置。计数器可用于监控请求/异常/用户登录/订单的数量等。

  如何通过Counter监控订单数量:

  package order

import (

"github.com/prometheus/client_golang/prometheus"

"github.com/prometheus/client_golang/prometheus/promauto"

)

// 定义需要监控 Counter 类型对象

var (

opsProcessed = promauto.NewCounterVec(prometheus.CounterOpts{

Name: "order_service_processed_orders_total",

Help: "The total number of processed orders",

}, []string{"status"}) // 处理状态

)

// 订单处理

func makeOrder() {

opsProcessed.WithLabelValues("success").Inc() // 成功状态

// opsProcessed.WithLabelValues("fail").Inc() // 失败状态

// 下单的业务逻辑

}

  例如,使用 rate() 函数获取订单的增长率:

  rate(order_service_processed_orders_total[5m])

  采集数据

  完成相关业务自定义监控跟踪点后,发布应用,通过Prometheus即可抓取监控指标数据。采集完成后等待几分钟,即可在集成Prometheus监控服务的Grafana中查看业务指标监控数据。

  

  了解腾讯云 Prometheus 监控服务:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线