AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

小米开源监控 Open-Falcon 收录汽车之家贡献的 Win 版 Agent

本文转载自小米运维

  • 2018-11-16
  • 本文字数:1970 字

    阅读完需:约 6 分钟

小米开源监控Open-Falcon收录汽车之家贡献的Win版Agent

前沿

小米 Open-Falcon 监控系统自 2015 年开源以来,以其丰富的插件,灵活的架构,良好的性能表现,高效的告警策略等特性,赢得的众多互联网公司的青睐。


汽车之家也一直关注着 Open-Falcon 的发展,系统平台团队通过对 Open-Falcon 的二次开发,打造了汽车之家的监控系统。这套系统负责了汽车之家所有服务器基础监控,URL 监控,日志监控等重要功能。作为公司基础系统,稳定高效的支撑了近万台服务器的监控,告警工作。

设计

初衷

汽车之家除 Linux 服务器外,还有很多业务运行在 Windows 机器上,所以对 Windows 服务器基础监控,IIS,SQL Server 等 Windows 服务的监控也非常重要。但是 Open-Falcon 未全面覆盖 Windows 系统,没有官方的 Windows Agent 去做数据的采集。社区中开源的脚本都是通过计划任务的方式采集。而我们希望的是 Open-Falcon 在 Windows 下的 Agent 采集的逻辑和架构与 Linux 下保持一致,方便监控平台管理,控制 Agent。

目标

我们的设计目标有以下几点:


  1. 可以服务的形式运行在 Windows 服务器上,不用配置计划任务

  2. 支持采集 Windows 服务器基础监控项

  3. 支持采集 IIS,SQL Server 的监控项采集

  4. 提供和 Linux Agent 一样的 push 数据接口,支持第三方 push 数据

  5. 与 Linux Agent 其他功能保持一致


基于以上几点我们自研了之家的 Open-Falcon Windows Agent。

实现

代码架构


Windows-Agent 的代码架构如上图所示。程序启动后,会启动 5 个线程。每个线程都会按照配置好的时间间隔定时采集所需信息。


  • basic thread 基础监控项采集线程,通过 psutil 这个跨平台的库,可以轻松获取操作系统进程和系统利用率等信息。

  • IIS thread IIS 数据采集线程,通过 winstats 这个库,定时的采集 IIS 站点的连接数,IIS 站点的 cpu 使用率等数据。

  • SQL Server thread SQL server 数据采集线程,同样通过 winstats, 获取到 SQLServer 内存和 I/O 相关数据。

  • status thread Agent 自身状态线程。这一点和 Linux Agent 的功能一样, 定时向 HearbeatServer 汇报自己 Agent 的状态。这样在我们的监控平台上就可以向管理 Linux 服务器一样的管理这些 Windows 服务器。

  • HTTP HTTP 线程会开启一个 HTTP 服务提供 push 接口,和 LinuxAgent 一样,用户可以选择通过该 push 接口,把自定义的数据 push 给 Agent。方便第三方数据的接入。

数据传输

Open-Falcon Linux 下的 Agent 启动之后,会和 transfer 组件建立长连接,通过 Transfer.Update 这个 RPC 调用,把 Agent 采集到的监控数据传输给 transfer,后面的事情就全部交由 Open-Falcon 处理。Agent 自身状态的汇报也同样方式,通过 Agent.ReportStatus 这个 RPC 调用和 Hearbeat Server 交互,上报自身状态。在 Windows 下,我们要采用同样的方式和 transfer 组件,Hearbeat Server 组件进行数据的传输,不同的是,Linux 下的 Agent 是 golang 实现,可以方便的使用 golang 原生的 JSONRpc 处理 RPC 调用,而我们 Windows 下的 Agent 使用 python 开发,所以我们自己实现了 jsonrpc 的 client,来模拟 Linux 下的处理。保证我们的 Agent 行为和 Linux 下的 Agent 一致。

如何变身 Windows 服务

Windows Agent 通过 pypiwin32 这个库,把 python 代码变成了服务安装到了 Windows 服务器上。这个库怎么用呢?Demo 如下:



首先要继承 win32serviceutil.ServiceFramework 这个类,然后分别实现构造方法,停止运行方法 SvcStop, 以及启动方法 SvcStop。最后在主方法中调用 win32serviceutil.HandleCommandLine(AppServerSvc)。就可以通过 python agent.py install 安装服务,python agent.py start 启动服务,有兴趣的同学不妨可以自己试试。

配置文件

Windows Agent 的配置文件也和 Linux Agent 一下保持一致,如果你熟悉了 Linux 下的配置,甚至可以直接 copy 到 Windows 服务器下。具体的配置解释如下:




安装

实战

目前 Windows Agent 运行在汽车之家上千台 Windows 服务器下 2 年多时间,始终保持了稳定,可靠的数据采集,同时对资源的消耗也非常小。


下图为 Agent 作为服务运行:



下图为 Agent 进程的消耗,由于我们内部的 Agent 监控项要比开源的版本多,所以内存占用大概有 30M 左右,开源版本的内存占用会小于这个数值。



下图为采集到的 IIS 站点的 cpu 使用率监控数据:



下图为 SQL Server 采集监控数据:


开源

在公司的支持下,我们将代码以 Apache 许可证开源。目前 WindowsAgent 组件已经被 Open-Falcon 社区收录,为更多 Windows 用户提供支持。



相关文档以及代码参见:


https://github.com/AutohomeRadar/Windows-Agent/

后续计划

我们计划下一步为 Windows Agent 加入更多的特性。例如对插件的支持,添加更丰富的监控项等。同时,汽车之家对 Open-Falcon 还做了很多的二次开发,比如告警的升级机制,多种维度的告警收敛,URL 监控,网络监控等,并且已经应用到生产环境当中。以后我们也会把通用的组件开源,回馈社区。


2018-11-16 22:102383

评论

发布
暂无评论
发现更多内容

百度文库、百度网盘联合发布「沧舟OS」内容操作系统,开放MCP Server,华为、三星、牛听听成首批接入客户

极客天地

APP和小程序需要注册域名吗?

国科云

什么是财务管理系统?一文看清其功能及作用!

积木链小链

数字化转型 智能制造

PingCAP “一号员工”唐刘:回顾我与 TiDB 的十年成长之旅

TiDB 社区干货传送门

告别重复繁琐!Apipost参数描述库让API开发效率飙升!

数据追梦人

最终一致性正在成为主流:现代分布式应用的数据管理新范式

tapdata

数据一致性 数据同步 实时数据 最终一致性 强一致性

百度优选成全球首家支持MCP的电商平台

极客天地

详解金仓数据库KingbaseES主备流复制集群数据块恢复神器auto_bmr

金仓技术

KingbaseES 金仓数据库

详解金仓数据库KFS双轨并行不停机方案

金仓技术

KingbaseES 金仓数据库 KFS KES

对比2款国产远控软件,贝锐向日葵更优

科技热闻

数智化转型进阶之路:从数据底座到业务增长,企业需要怎样的数据库支撑?

TiDB 社区干货传送门

数据库架构选型

告别手动填参数!Apipost黑科技让接口调试效率翻倍

数据追梦人

OneNote Embedded 文件滥用检测

天翼云开发者社区

Onenote

伊克罗德信息亮相亚马逊云科技合作伙伴峰会,以ECRobot 智能云迁移助手在GenAI Tech Game比赛勇夺金牌!

伊克罗德信息科技

云计算 AI 亚马逊云

TiDB 企业管理器:TEM v3.0.0 体验

TiDB 社区干货传送门

关于我的第一个产品!

沉浸式趣谈

倒计时!中关村科学城工业软件创新暨开源峰会28日启幕,会议亮点抢先看

极客天地

基于 MCP 的 AI Agent 应用开发实践

字节跳动开源

开源 AI Agent MCP 模型上下文协议 Agent TARS

我的内存去哪儿了?

TiDB 社区干货传送门

监控 TiKV 底层架构

【等保小知识】未联网的独立单位网络是否需要等保备案以及定级?

行云管家

等保 等保测评 等保2.0

用友BIP企业AI全栈云:沉浸式体验六大智慧采购新场景

用友BIP

百度文库、百度网盘联合发布「GenFlow超能搭子」、「AI笔记」,打造“聪明又能干”的超级生产力

极客天地

“AI赋能·共享城市安全”2025杭州安防产品展·浙江安博会

AIOTE智博会

“陆海空”立体组网!福建移动助力鹭岛打造5G-A全面示范之城

极客天地

如何检测 Sliver C2 框架活动

天翼云开发者社区

sliver

面对开源大模型浪潮,基础模型公司如何持续盈利?

Baihai IDP

开源 AI 商业模式 基础模型 LLM

RapidFS 为昆仑芯 3 万卡集群加速,国产化平台 TiB 级吞吐让数据随叫随到

Baidu AICLOUD

分布式缓存 JuiceFS #存储加速

五一假期放肆嗨,ROG电竞显示器高刷臻品畅玩游戏!

新消费日报

【行业知识】绿色能源产业使用堡垒机的原因看这里!

行云管家

网络安全 等保 等保测评 等保评测

安徽建工集团上线数智管控平台 驱动高质量发展

用友BIP

深入研究:Shopee商品列表API接口详解

tbapi

shopee API shopee商品列表接口 shopee商品采集

小米开源监控Open-Falcon收录汽车之家贡献的Win版Agent
_软件工程_InfoQ精选文章