运维监控系统实战笔记
秦晓辉
快猫星云联合创始人,Open-Falcon、Nightingale、Categraf 核心研发
9147 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 25 讲
运维监控系统实战笔记
15
15
1.0x
00:00/00:00
登录|注册

10|监控概论(下):监控数据的采集方式及原理

你好,我是秦晓辉。
上一讲我们介绍了监控的几个方法论,知道了哪些指标比较关键,但是具体如何采集呢?这又是一个非常重要的话题。这一讲我们就来剖析一下常见的采集数据的技术手段,了解了这些,我们就可以写自己的采集器,或者扩展很多采集器的能力了,对很多监控数据也会拥有原理层面的理解。
第一个版本的 Falcon-AgentCategraf 都是我来主笔的,在设计的过程中,我深刻认识到采集方法的多样性,比如读取 /proc 目录、执行系统调用、执行命令行工具、远程黑盒探测、远程拉取特定协议的数据、连到目标上去执行指令获取输出、代码埋点、日志分析提取等各种各样的方法。这一讲我会从中挑选一些比较典型的手段分享给你。下面我们就按照使用频率从高到低依次看一下,先来看读取 /proc 目录的方式。

读取 /proc 目录

/proc 是一个位于内存中的伪文件系统,该目录下保存的不是真正的文件和目录,而是一些“运行时”信息,Linux 操作系统层面的很多监控数据,比如内存数据、网卡流量、机器负载等,都是从 /proc 中获取的信息。
我们先来看一下内存相关的指标。
[root@dev01.nj ~]# cat /proc/meminfo
MemTotal: 7954676 kB
MemFree: 211136 kB
MemAvailable: 2486688 kB
Buffers: 115068 kB
Cached: 2309836 kB
...
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入探讨了监控数据的采集方式及原理,覆盖了多种技术手段。首先介绍了通过读取 `/proc` 目录和执行命令行工具的方式来获取Linux操作系统层面的监控数据。接着讨论了远程黑盒探测的方法,包括 ICMP、TCP 和 HTTP 探测,以及黑盒监控和白盒监控的区别。此外,还提到了通过提供 HTTP 接口暴露监控指标数据的采集方式。文章还详细介绍了拉取特定协议的数据的方法,以及连接到目标对象执行命令的方式,分别以Elasticsearch、RabbitMQ、Kubelet、MySQL和Redis为例进行了说明。最后,提到了应用监控和业务监控的两种典型采集手段,即埋点和日志解析。整体而言,本文对监控数据采集原理进行了深入浅出的介绍,对于想要深入了解监控数据采集原理的读者具有很高的参考价值。 文章内容涵盖了多种监控数据采集方式,从操作系统层面到远程黑盒探测,再到应用监控和业务监控的典型采集手段,全面解析了监控数据采集的原理和方法。通过介绍代码埋点、统一框架开发、JavaAgent 技术以及日志解析等多种技术手段,为读者提供了丰富的监控数据采集思路和方法。同时,作者还提到了监控数据采集的复杂性,鼓励读者在评论区留言讨论其他方法,为读者提供了更多思考和交流的空间。整体而言,本文内容丰富、深入,适合对监控数据采集感兴趣的读者阅读学习。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《运维监控系统实战笔记》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(6)

  • 最新
  • 精选
  • MrPolo
    請教老師會介紹到 open telemetry 這塊嗎,最近看到這似乎把 log,trace,metric 都包進去了?

    作者回复: categraf、grafana-agent,也是把3块都包进去了,后面的章节主要是专注metrics采集

    2023-01-30归属地:中国台湾
    3
  • hshopeful
    在我的认知范围内,关于监控数据的采集方式,老师已经讲得很全面的,还有一种方式其实跟上面的类似: 很多年之前有些开源软件会将自身计算好的指标维护在本地日志中,agent 读取日志,不需要做正则匹配,直接获取指标;当然这种方式随着 prometheus 的流行,这些开源软件都会将计算好的指标通过接口提供出去。 还有哪些方式,希望老师能讲一下,谢谢!

    作者回复: 👍🏻

    2023-01-30归属地:湖北
    3
  • peter
    请教老师两个问题: Q1:MySQL的max_connections是同时最大连接数吗? 文中有这一句:“max_connections 就是最大连接数,这个数值默认是 151”。max_connections是累计连接数吗?还是同时最大连接数? 如果是同时连接数,设置为5000是不是太大了? Q2:统一框架是否有开源的实现?

    作者回复: 1,是同时最大连接数,具体应该设置为多大,跟机器资源和业务相关,可以统计一下你们现有的库的情况 2,什么统一框架?采集么?大部分agent都是开源的,比如Telegraf、categraf、Datadog-agent、Grafana-agent

    2023-01-30归属地:北京
    1
  • Geek_986cad
    思考题: 有些监控信息并不能直接采集,也不能通过监控软件已有的函数等功能计算得出。 比如我们如果关心 mysql 数据库 24h 之内的主从切换次数的信息, 如果想采集这类信息,就需要在被采集端编写监控程序,最后再把数据“推”,“拉”到监控服务器。

    作者回复: 👍🏻

    2023-02-03归属地:北京
  • Prometheus 协议数据 是 Prometheus 定义好的规范吗? 其他中间件按照这个协议实现,Prometheus 就可以直接解析

    作者回复: 是的

    2023-01-30归属地:广东
  • 隆哥
    老师,后面会说k8s内部署promethes和如何配置告警规则啥的嘛,这块是刚需呢!!!

    作者回复: 看目录就知道了,会有一些涉及

    2023-01-30归属地:福建
收起评论
显示
设置
留言
6
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部