Telegraf - 如何监控多个 Tomcat 实例?

Telegraf - how to monitor multiple Tomcat instances?

我设法从单个 Tomcat 实例收集数据到 Telegraf,如下所示。

[[inputs.tomcat]]
  ## URL of the Tomcat server status
   url = "http://127.0.0.1:19090/manager/status/all?XML=true"

  ## HTTP Basic Auth Credentials
   username = "admin"
   password = "fD*(*DSS"

  ## Request timeout
  # timeout = "5s"

  ## Optional SSL Config
  # ssl_ca = "/etc/telegraf/ca.pem"
  # ssl_cert = "/etc/telegraf/cert.pem"
  # ssl_key = "/etc/telegraf/key.pem"
  ## Use SSL but skip chain & host verification
  # insecure_skip_verify = false

现在,我想监控多个Tomcat个实例,但是好像没有如何监控多个的例子。有人知道吗?

据我所知有几种方法。

1) 最简单的方法是创建、使用并尝试使用不同的配置文件,您可以在其中创建 tomcat1.conf 将其放置在 /etc/telegraf/telegraf.d/tomcat1.conf 文件夹下,您最终会使用相同的插件您在上面提到过 (inputs.tomcat),同样,为 tomcat2.conf 等创建另一个配置文件。对于所有 Tomcat 实例。这样您就可以监控多个 Tomcat 实例。看看有没有帮助!这种方法的缺点是,您必须创建 N 号。 tomcatXX.conf 文件在 telegrad.d 文件夹下(如果您在使用 Ansible/similar 工具配置机器时即时创建这些文件,可以轻松修复 - 模板化文件并遍历 tomcatXX 列表)。

2) 其他方式,这也可能有助于仅使用一个配置文件。 在一个配置文件中,一起使用以下插件来捕获您要查找的内容。 PS:如果您使用 inputs.exec 插件,那么您将从自定义脚本(您将在 inputs.exec 插件中调用)生成的输出必须以已知格式生成输出( InfluxDB/Line Telegraf 和 InfluxDB 可以理解/存储的协议),否则您会看到一些小错误,而您很少看到我的帖子。

exec 插件:https://github.com/influxdata/telegraf/tree/master/plugins/inputs/exec http_* 插件(尤其是 http_response):https://github.com/influxdata/telegraf/tree/master/plugins/inputs/exec filestat 插件:https://github.com/influxdata/telegraf/tree/master/plugins/inputs/filestat logparser 插件:https://github.com/influxdata/telegraf/tree/master/plugins/inputs/logparser procstat 插件:https://github.com/influxdata/telegraf/tree/master/plugins/inputs/procstat

查看上面提到的插件链接,了解它们的作用以及如何在 Telegraf 中设置它们,如果您不希望每个插件都有多个 conf 文件,那么您将获得大部分内容Tomcat实例。

https://github.com/influxdata/telegraf/tree/master/plugins/inputs 包含所有输入插件(查看是否有您可能感兴趣的插件)。

看看你是否可以利用如何有效地使用 prefix 属性 来区分来自使用这些插件的各种 metrics/events。

原来答案很简单。只需多次声明 inputs.tomcat 块,如下所示。

[[inputs.tomcat]]
  ## URL of the Tomcat server status
   url = "http://127.0.0.1:19090/manager/status/all?XML=true"

  ## HTTP Basic Auth Credentials
   username = "admin"
   password = "fD*(*DSS"

[[inputs.tomcat]]
  ## URL of the Tomcat server status
   url = "http://127.0.0.1:29090/manager/status/all?XML=true"

  ## HTTP Basic Auth Credentials
   username = "admin"
   password = "fD*(*DSS"