Monitoring 实现类似于云观察的度量聚合器,用于实时监控应用程序

Monitoring 实现类似于云观察的度量聚合器,用于实时监控应用程序,monitoring,daemon,elastic-stack,metrics,amazon-cloudwatch,Monitoring,Daemon,Elastic Stack,Metrics,Amazon Cloudwatch,我想设计类似于amazon cloud watch的东西,用于实时监控我自己的应用程序,并在我自己的机器集群(而不是AWS集群)中运行 基本要求: 能够从应用程序中发布时间和计数指标,并在类似Kibana的仪表板中查看它们 无缝支持从用Python、Java和Node.js编写的应用程序发布指标 我认为可行的方法,但我需要以下方面的建议: 我正在考虑编写一个守护进程,它将在集群中的所有主机上运行 应用程序将以该守护进程能够理解的格式将度量发布到文件系统。不确定如何为使用不同语言编写的应用程

我想设计类似于amazon cloud watch的东西,用于实时监控我自己的应用程序,并在我自己的机器集群(而不是AWS集群)中运行

基本要求:

  • 能够从应用程序中发布时间和计数指标,并在类似Kibana的仪表板中查看它们
  • 无缝支持从用Python、Java和Node.js编写的应用程序发布指标
我认为可行的方法,但我需要以下方面的建议:

  • 我正在考虑编写一个守护进程,它将在集群中的所有主机上运行
  • 应用程序将以该守护进程能够理解的格式将度量发布到文件系统。不确定如何为使用不同语言编写的应用程序创建此合同
  • 守护进程将每隔5秒提取此信息并将其发布到麋鹿。不确定守护进程将如何区分一个应用程序和另一个应用程序。我想我必须创建一些度量注册表服务来注册应用程序。我不确定metric registry将处理哪些方面

非常感谢您的指点。

了解您的基本要求

  • 创建一个简单的java(或您选择的语言)应用程序,将数据发送到elastic search,比如ElasticSearchClientSender。检查,我们使用它将数据发送到我们的ES。用正确的别名设置kibana。在您的情况下,可能不需要将其创建为模块,因为您可以只创建一个代码段并将其插入到希望将其数据发布到ES的应用程序中
如果您仍然需要其他的cloudwatch指标,您可以尝试以下选项

  • 把你掩护起来编辑他们也有一个用于python、NodeJ和其他的(我们主要使用python)
  • 或者在我们的例子中,我们已经将每个模块设置为拥有自己的Cloudwatch日志组,因此我们的弹性搜索发送器模块拥有自己的日志组。概述。为模块设置Cloudwatch日志组后,请确定要在度量中显示的关键字,并根据需要记录数据,请参考以下内容
另一种方法


基于您列出的其他方法,也许值得一试,而不是创建一个模块,用lambda代码片段发送数据,您仍将有一段代码作为独立的应用程序,您将根据您的设置或一些aws服务设置如何触发它。对于您的基本要求,您是否愿意创建一个简单的模块,仅用于将数据推送到弹性搜索(我们使用ES和kibana)?如果是,该模块将把数据推送到弹性搜索,您可以尝试检查、配置模块日志以指向cloudwatch日志组,并基于cloudwatch日志组创建一个。这将创建一个度量。或者这在你的情况下是不可取的?是的,我愿意创建一个简单的模块。我找到了一些开源项目,但不确定这是否有用。我没有使用prometheus.io,但看起来他们也集成了Elasticsearch。你有没有读过一本书?您最好尝试创建一个简单的应用程序,将数据推送到度量,使用prometheus.io或filebeat,这取决于您发现什么更容易使用,然后决定什么更适合您的需要。我不希望AWS有任何依赖性。我更愿意编写自己的应用程序,用于从应用程序发布度量。这里有1点需要考虑。用不同语言编写的应用程序将如何生成度量?2.度量收集器将如何读取这些度量?3.metric collector将如何将这些指标发布到Kibana仪表板。您有什么建议吗?