全托管文章智能采集系统(腾讯云监控产品经理谢莹莹:如何使用托管Prometheus监控)

优采云 发布时间: 2022-04-02 22:04

  全托管文章智能采集系统(腾讯云监控产品经理谢莹莹:如何使用托管Prometheus监控)

  谢莹莹

  腾讯云监控产品经理,毕业于哈尔滨工业大学,硕士。目前主要负责腾讯云Prometheus监控服务和Grafana可视化服务的产品工作,在to B商业产品领域有丰富的经验。

  前言

  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下,可以实现网络互通) i. 新建 Prometheus 实例 登录 Prometheus 监控服务控制台:新建 Prometheus 实例。

  [点击查看大图]

  ii. 实例规格、网络选择

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

  [点击查看大图]

  Prometheus 实例价目表:

  [点击查看大图]

  2. 安装代理 i。在 Prometheus 控制台中创建一个新的 Agent

  Prometheus Monitoring --> Agent Management --> 在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注意:targets 下的 IP 地址要改成自身 CVM 监控数据的地址。

  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平台。你想自己试试吗?试一试搭建的全过程,也试一试腾讯云托管 Prometheus 的出色性能?

  在腾讯云春季采购大促之际,Prometheus托管服务为您提供了阅读文章并跃跃欲试后体验服务的绝佳机会:

  本次大促,Prometheus新用户首月可配置基础1包,价格低至30折!也就是说,以 200 出头的价格,你就可以拥有一个高可用、高可靠的 Prometheus 平台。

  当然,我们也没有忘记一直支持和喜爱我们的老用户。所有实例包均可配置 20% 的折扣,使用期限为 1 至 12 个月。为您的运维平台在来年的顺利运行打下坚实的基础。

  我们的活动仅在 3 月 31 日结束。在这温暖的春日里,你还在等什么?点击【阅读原文】详细了解我们的特价优惠!

  希望我们的服务能给您的系统带来稳定良好的体验!

  联系我们

  如有任何问题,欢迎加入云监控技术交流群~

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线