开源的系统和应用采集软件Tsar的背景、设计思路和用法、模块开发以及未来规划

优采云 发布时间: 2021-05-07 22:14

  开源的系统和应用采集软件Tsar的背景、设计思路和用法、模块开发以及未来规划

  摘要:在活动LinuxCon + ContainerCon + CloudOpen China(简称LC 3))上,开放源代码人员会议,阿里云CDN团队的无保留意见(花哨名称),共享开放源代码系统和应用程序采集软件沙皇的背景,设计思想和用法,模块开发以及未来计划。

  在LinuxCon + ContainerCon + CloudOpen China(简称LC 3)),开源人员大会,阿里云CDN团队未使用的观点(花哨名称)的情况下,与您分享了开源系统和应用程序采集沙皇软件背景,设计思路和用法,模块开发和未来计划。

  实际上,当阿里巴巴进行系统或应用程序监视时,这是一个主意。团队学生在实际使用过程中更自在,并且软件的可伸缩性,稳定性和易用性也更好,因此,目前在所有计算机上,他们都被部署为基本的监视代理程序,以提供稳定的数据支持,并且对外开放。

  沙皇的背景

  对于在线SA / PE / R&D,在开发和部署软件时,他需要注意软件的操作,并且需要转到顶部查看诸如CPU /内存之类的基本指标。整个服务器的/ network / IO是否可以,请为这些指标找到一些软件瓶颈和有针对性的优化。实际上,现在市场上有很多类似的软件,所有这些软件都有一定程度的特异性。它可能只是采集的一部分。每个软件采集的指示器均不同,并且这些指示器的用法不一致。因此,对用户的要求很高,他们需要知道如何使用所有监视软件,这对于解决在线问题非常不便。这也是我们最初的痛点。我们发现我们拥有所有数据,但是如何链接和使用它们并不方便。因此,我们有了沙皇的想法。

  

  下图显示了当前在线可用的许多命令的用法。整个Linux工作站中的所有级别都有一些相应的命令。用户的学习和入门成本(例如操作和维护)非常高,这不利于我们统一进行操作。监视器。

  需求和解决方案

  因此,我们的首要要求是拥有一个简单且易于使用的采集软件,该软件应具有完整的基本数据,最好是应用程序数据。因为刚才列出的指标都是常规指标,但是我们拥有应用程序软件,因此我们想了解应用程序软件上的一些数据,例如QPS和响应时间。当前的开源软件不被支持,并且企业需要编写自己的采集工具来进行数据采集和监视。

  此外,我们希望可以在数据之间建立一些数据关联。例如,如果当前的CPU很高,是否会引起其他数据指示器的某些波动?需要对这些指标进行比较以确定问题所在。

  同时,应该对数据进行过滤和实时脱机查看,并且可以将其长时间存储在本地或远程发送,以方便中心进行数据分析和挖掘。

  根据这些要求,我们的解决方案是模仿Sar。 Sar本身是实现系统指标的系统活动报告采集。我们在此基础上进行了一些扩展。除了系统级数据采集外,Tsar还可以在应用程序级采集上使用。它也可以模块化并支持扩展。例如,现在采集有十个指标。如果您要使用其他应用程序指标和业务数据采集,则可以轻松地在Tsar 采集中编写一个模块。它还支持简单的警报和远程发送。

  设计和用法

  Tsar的原理非常简单,主要利用动态库的特性。我们的每个采集模块都将实现某些功能,例如采集功能,分析处理功能以及注册期间提供的模块。基本字段,例如模块名称,模块中收录的字段,这些字段来自采集,采集之后如何处理和输出,这些功能已在Tsar框架中注册,并且在以下情况下调用这些指令:每个周期都转到采集 采集的功能和整个数据的输出。

  整个模块的注册和执行过程如下:

  

  下图是Tsar功能的大图,最下面是系统计数器和软件接口,每个特定模块均基于Sar实现许多系统指标采集,此外应用软件还提供了LVS, Nginx等。更常见的应用程序软件模块。

  在上述采集处理中,将对模块执行一些过滤处理,并将具体执行每个模块的采集功能,并根据格式获取数据并进行格式化。该框架将格式化数据并将其存储在/var/log/tsar.data中。我们采集所有原创数据都以文件的形式存储。与Sar有所不同。沙皇中的字段可读,Sar无法看到其中的含义。

  数据采集到达后,它支持发送到远程端,例如将其发送到网络接口,或将其发送到MySql,Nagios等。此外,数据显示分为两部分,分为实时显示和历史显示。在实时显示中,您需要每秒查看指示器的外观。历史显示是过去每分钟数据的历史。回放。目前,Tsar支持以秒,分钟和天等不同维度显示数据。

  沙皇的使用

  Tsar的用法相对简单,无论使用哪种模块,它都是共享的。上面最常用的命令是check命令,该命令输出系统的最新监视指示器。有了这个功能,所有基本软件的采集基本上可以每分钟调用一次检查,获取最后一分钟的监视数据,并将该数据带到我们的监视平台上进行一些监视配置和集中处理。该说明最常用。

  

  -c是定时执行指令。这样,您当前打开的模块的所有采集功能将被执行一次,获取数据,并将数据保存在tsar.data的原创文件中。供将来使用。

  -i用于指定间隔,几秒钟或几分钟。

  下图是一些用法的屏幕截图。在实时模式下,您可以指定-l或--live,并且可以实时采集模块数据并实时分析结果。如果未指定,则默认为脱机。时间间隔,如果未指定-i,则默认值为秒和分钟,每秒显示一次实时采集,每分钟显示一次离线。您还可以指定一个模块--mod_name。如果指定几个模块,则可以显示几个指示器。这样,您可以在一个屏幕上显示您关注的指标,以便查看它们之间的影响和关系,从而找到问题的症结所在。

  

  沙皇还支持多个项目模块。有时一个系统指示器有多个实例。此处反映了项目概念,可以更灵活地显示数据。此外,--check是要查看我们的最新数据,它将在该行的最后一分钟显示每个指标和字段,对于某些监视处理而言非常方便。

  

  Tsar本身是一个独立的软件,可以为其他系统提供丰富的数据源输入。

  原创链接

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线