SLS基于telegraf的监控快捷接入

简介: 介绍sls基于telegraf提供的监控模板快捷接入功能

telegraf简介

Telegraf是InfluxData开发的一个数据采集器(collector), 用来收集各种监控数据, 因为其非常灵活的插件体系, 社区贡献了大量的采集插件, 从操作系统层面的指标到各种数据库, 中间件的插件应有尽有.

Telegraf vs Prometheus Exporter

在开源届另一个非常流行的监控方案是Prometheus, 在云原生里几乎就是标准, Prometheus本身是pull模型, 因此对于使用者来说只需要把需要采集的监控数据暴露出来, 最主要的方式就是exporter. 官网也有一个长长的exporter列表: Exporters and integrations | Prometheus
可以看出来telegraf和Prometheus exporter实现的功能是比较类似的, 但由于Prometheus exporter本身是只给Prometheus使用的, 因此他跟telegraf之间也有一些差别:

开发模式

Prometheus exporter是独立开发的, 每个exporter都有自己的代码仓库和维护人员, 没有统一的社区进行管理, telegraf则是将所有插件维护在一个代码仓库下, 好处是可以在全局进行考虑, 例如类似功能的插件可以进行合并, 以减少用户的选择成本, 或者当某个功能可以通过一些配置组合实现时就不必重新开发, 代码可以复用

部署方式

Prometheus exporter是独立部署的, 每个exporter需要监听一个端口来提供http服务, 而telegraf是单实例部署, 也不监听端口
在某些场景下, 比如jvm的监控, exporter有更好的集成, 通过一个javaagent就可以完成对jmx指标的采集和暴露, 对于telegraf来说则需要借助jolokia将jmx协议转换成http协议再进行采集

配置管理

每个Prometheus exporter都有自己的配置文件, 也没有共通的配置文件规范, 意味着开发者可以自行选择, 可以用yaml也可以用json, 或者用命令行参数控制等, telegraf则有统一的配置文件规范, 使用toml格式, 其中相同名称的字段含义也是相同的, 因为在同一个代码仓库维护, 维护者会进行把关
当需要对label做一些自定义时, 例如重命名一个label, 或者添加删除某个label, 忽略一些不需要的metric, Prometheus的配置维护在服务端, telegraf中这些配置是和采集配置在一起的, 可以通过processor插件做各种处理

对于小规模的用户自行围绕Prometheus构建监控系统来说, Prometheus exporter提供了更好的灵活性, 同时和Prometheus, grafana的整合都更好, 但当平台需要集成采集的配置管理时, 会带来额外的复杂度, 基于以上考虑, SLS决定集成telegraf作为一个logtail的插件, 提供各种监控采集的能力
当然, 由于SLS出色的开放性, 原先使用Prometheus的用户无需改变使用习惯, 我们支持Prometheus remote write写入, 并且兼容查询API, 因此telegraf接入的方式对于这部分用户来说只是多了一个选择

使用telegraf的痛点

  1. 需要自行管理配置文件的下发, 更新等
  2. 开源软件总是提供尽量灵活的配置, 但缺少最佳实践, 需要用户去探索
  3. 数据之间难以打通, 需要制定label的规范(exporter也有同样的问题)

SLS通过将telegraf作为logtail的插件来统一管理他的部署和配置下发更新, 提供了图形化配置界面, 统一了label等规范, 并且提供了内置的dashboard来解决以上问题

logtail telegraf插件的工作机制

自动安装

当logtail初次获取到telegraf插件的配置时, 会自动下载telegraf进行安装

中心化配置管理

logtail配置中包含了telegraf配置, logtail拿到时会将其提取出来, 生成对应的telegraf配置, 更新和删除也与logtail配置同步, 由于logtail配置在sls服务端进行管理, 因为telegraf也同时拥有了中心化配置管理的能力

采集

logtail实现了influxdb的http协议, 在telegraf中的output使用influxdb, 输出目标填写logtail地址(用户无需填写, 创建采集配置时自动生成), telegraf的数据将通过logtail中转写入sls服务端存储
6FF0F452-8280-41F3-BE99-1FCE2C7539AC.png

模板化监控配置

SLS不仅负责了telegraf的配置的生命周期管理, 甚至也会帮助用户来生成最佳实践的配置, 对用户来说只需要通过图形化的界面wizard即可完成配置:
0648B647-9422-40F5-A60D-29946FFA1BB3.png
在这个简单的页面背后, 我们也做了不少工作, 例如其中集群名称是我们作为最佳实践要求用户填写的, 否则需要依赖采集插件是否产出了相关的label, 如果没有则用户的数据就会混在一起. 统一提供了instance label, 让用户在采集不同的中间件时都可以用相同的label识别, 实际telegraf插件的开发者在表达instance这个含义时可能使用instance, 也可能使用server, host等名称, 很容易混淆; 我们也根据最佳实践去除了一些几乎没用的指标来节省存储空间, 对一些指标的命名做了规范化等
完成接入配置后, 我们也提供了自动生成的dashboard:
E2E7498C-CC51-4920-99D2-9BA3B5E9DE66.png
F51123D5-D934-437B-9F77-4396A5D8380C.png
C885D5FD-0BDA-4010-9D34-7947F1B94B9B.png

后续也会进一步整合预置的告警规则, 让用户一键开启即可完成整个监控所需工作

数据源支持情况

FF08F716-D19D-463A-94BC-52C2BEA8A778.png
新的数据源在持续开发中, 也欢迎大家反馈需要接入的数据源, 如果认可我们做的事情, 也欢迎加入: SLS团队长期招聘人才,欢迎对大数据、监控、可观察性、前端可视化、移动端开发、机器学习等有兴趣的同学可发简历至邮箱: luoxing.klx@alibaba-inc.com
也欢迎加入我们的用户交流群或微信公众号了解SLS的最新信息
image.png

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
3月前
|
存储 Prometheus 监控
Prometheus vs. ELK Stack:容器监控与日志管理工具的较量
随着容器化技术的广泛应用,容器监控与日志管理成为了关键任务。本文将对两种常用工具进行比较与选择,分别是Prometheus和ELK Stack。Prometheus是一款开源的监控系统,专注于时序数据的收集和告警。而ELK Stack则是一套完整的日志管理解决方案,由Elasticsearch、Logstash和Kibana三个组件组成。通过比较它们的特点、优势和适用场景,读者可以更好地了解如何选择适合自己需求的工具。
|
4月前
|
Kubernetes 监控 容器
k8s学习-CKA真题-监控Pod日志
k8s学习-CKA真题-监控Pod日志
78 0
|
1月前
|
Prometheus 监控 Kubernetes
Kubernetes 集群监控与日志管理实践
【2月更文挑战第29天】 在微服务架构日益普及的当下,Kubernetes 已成为容器编排的事实标准。然而,随着集群规模的扩大和业务复杂度的提升,有效的监控和日志管理变得至关重要。本文将探讨构建高效 Kubernetes 集群监控系统的策略,以及实施日志聚合和分析的最佳实践。通过引入如 Prometheus 和 Fluentd 等开源工具,我们旨在为运维专家提供一套完整的解决方案,以保障系统的稳定性和可靠性。
|
28天前
|
Prometheus 监控 Kubernetes
Kubernetes 集群的监控与日志管理实践
【2月更文挑战第31天】 在微服务架构日益普及的今天,容器编排工具如Kubernetes已成为部署、管理和扩展容器化应用的关键平台。然而,随着集群规模的扩大和业务复杂性的增加,如何有效监控集群状态、及时响应系统异常,以及管理海量日志信息成为了运维人员面临的重要挑战。本文将深入探讨 Kubernetes 集群监控的最佳实践和日志管理的高效策略,旨在为运维团队提供一套系统的解决思路和操作指南。
26 0
|
2月前
|
存储 监控 关系型数据库
ELK架构监控MySQL慢日志
ELK架构监控MySQL慢日志
|
2月前
|
消息中间件 存储 监控
利用Scala编写公司内部监控软件的实时日志监控模块
在当今的软件开发领域,监控是确保系统稳定性和性能的关键一环。随着公司业务的不断扩展,我们迫切需要一套高效、可靠的实时日志监控系统,以及能够自动提交数据到网站的解决方案。本文将介绍如何利用Scala编写公司内部监控软件的实时日志监控模块,并探讨如何自动将监控到的数据提交到网站。
140 2
|
3月前
|
Prometheus 监控 Cloud Native
Prometheus VS ELK Stack:容器监控与日志管理工具的比较与选择
在容器化时代,有效的容器监控与日志管理工具对于确保应用程序的可靠性和可维护性至关重要。本文将比较两个主流工具,Prometheus和ELK Stack,探讨它们在容器监控和日志管理方面的特点、优势和适用场景,帮助读者做出明智的选择。
|
7月前
|
机器学习/深度学习 存储 监控
电脑监控软件中上网日志分析的重要性与挑战
咱们今天来谈谈上网日志分析算法吧,上网日志分析算法可不是一般的香饽饽,可以将上网日志分析算法看做是咱们电脑监控软件的得力助手,不仅能帮咱们监控、分析,还能精心照顾咱们电脑用户的上网行为,就像是一位贴心的管家。接下来就让咱们一起看看上网日志分析算法在电脑监控软件这个领域的研究和应用吧——
166 1
|
4月前
|
SQL 存储 监控
使用CloudLens for SLS监控Project资源配额最佳实践
本文主要介绍如何使用CloudLens for SLS中全局错误日志、监控指标做Project 资源配额的水位监控 、超限监控 以及 如何提交资源配额提升申请。
79337 19
使用CloudLens for SLS监控Project资源配额最佳实践
|
5月前
|
SQL 监控 关系型数据库
给Mysql加语句监控日志
给Mysql加语句监控日志
64 0