有没有一种简单的方法可以在 dynatrace 中找到所有主机上的所有 JVM?

Is there an easy way to find all JVMs across all hosts in dynatrace?

有没有一种简单的方法可以通过任何 java 进程搜索所有主机的 dynatrace。基本上试图在我们的任何服务器上找到任何 jvm 运行。需要知道它是什么服务器,什么 java 供应商,什么 java 版本,如果可能的话什么技术正在使用 jvm。我基本上需要拿出一个 java 版本的清单,这些版本没有数据并且不受支持,看起来我应该能够在 dynatrace 中轻松找到它,而不是手动在一百台服务器上闲逛(其中许多服务器我可能无法直接访问)。

如果我打开单个主机并单击一个进程(例如弹性搜索),如果我展开属性(EXE=java,JVM 供应商=OpenJDK,JVM 版本=13.0.0,我可以看到此信息。 2 等)。它似乎也知道该过程是一个弹性搜索实例与 tomcat 或其他东西 (Type=Elasticsearch)。我只是不确定如何查询所有 hosts/processes 运行 一个 jvm。

您可以使用 "autotagging" functionality 将公共标记应用于任何具有 JVM 的进程,请参阅 "Settings -> Tags -> Automatically applied tags"。

例如将其命名为 "jvm"。

选择"Rule applies to" - "process groups"。

在规则中您可以使用 "Technology" - "Java" 作为选择。

虽然在这种情况下需要 none,但您似乎至少需要在这里定义一些条件,因此任何虚拟条件都可以,例如"Java main class" - "does NOT begin with" - "zzzzz".

应用自动标记后不久,您应该会在 UI 中看到每个 JVM 进程显示新标记。

然后您可以使用 Dynatrace REST API for "processes" 查询带有标签 "jvm" 的所有进程并从那里进一步过滤。

如果您设法为 "outdated" 在您的情况下意味着什么定义条件,您也可以在此类进程上放置一个标签 "outdated jvm" 并能够获得实际列表直接匹配jvms.