跳转至

Tomcat

Tomcat 是由 Apache 软件基金会下属的 Jakarta 项目开发的一个 Servlet 容器,按照 Sun Microsystems 提供的技术规范,实现了对 Servlet 和 JavaServer Page(JSP)的支持,并提供了作为 Web 服务器的一些特有功能,如 Tomcat 管理和控制平台、安全域管理和 Tomcat 阀等。

Cloud Insight 通过 JMX 来收集 Tomcat 数据,可视化传输字节数, servlet 容器请求时间等数据。


性能指标

Cloud Insight 采集 Tomcat 以下性能指标:

指标 单位 具体含义
tomcat.bytes_rcvd bytes/second 每秒接收的字节数
tomcat.bytes_sent bytes/second 每秒发送的字节数
tomcat.cache.access_count gets/second 每秒访问缓存的次数
tomcat.cache.hits_count hits/second 每秒缓冲命中的次数
tomcat.error_count errors/second 发生错误的请求数
tomcat.jsp.count pages/second web 模块中加载的JSP数量
tomcat.jsp.reload_count pages/second web 模块中重新加载的JSP数量
tomcat.max_time milliseconds 最长的请求处理时间 (milliseconds)
tomcat.processing_time 每秒所有请求的处理时间之和
tomcat.request_count requests/second 每秒总请求数
tomcat.servlet.error_count errors/second servlet 接收的错误请求数 /s
tomcat.servlet.processing_time 每秒经过 servlet 的所有请求的处理时间之和
tomcat.servlet.request_count requests/second 每秒经过 servlet 的总请求数
tomcat.threads.busy threads 正在使用的线程数
tomcat.threads.count threads 当前线程池的线程数
tomcat.threads.max threads 线程池最大可以产生的线程数

配置 Tomcat 监控

启动 JMX Remote

Cloud Insight Agent 通过 JMX 获取 Tomcat 中的性能指标,所以确保 JMX Remote 是 enabled状态。

修改 bin/catalina.sh,在 Execute The Requested Command 下增加如下配置:

# ----- Execute The Requested Command -----------------------------------------
CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=7199
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"

另外,如果 Tomcat 开启了线程池,则可以额外采集到 threads.exec_max、threads.exec_busy、threads.exec_minspare 等指标。Tomcat 开启线程池需要在 conf/server.xml 中增加 Executor 线程池配置,并且 Connector 要指定 Executor 。

由于每个实体最多可以监控 350 个性能指标,所以您需要按照下方的配置方法,修改配置文件来确定自己需要哪些指标。

有关 JMX 采集方法,请查阅 JMX 远程监控

更多信息,请查阅 Apache Tomcat 官方手册

编辑配置文件

编辑配置文件 conf.d/tomcat.yaml,使 Cloud Insight Agent 可以与 Tomcat 通信。

instances:
  - host: localhost
    port: 7199
    user: username
    password: password
    name: tomcat_instance

# List of metrics to be collected by the integration

init_config:
  conf:
    - include:
        type: ThreadPool
        attribute:
          maxThreads:
            alias: tomcat.threads.max
            metric_type: gauge
          currentThreadCount:
            alias: tomcat.threads.count
            metric_type: gauge
          currentThreadsBusy:
            alias: tomcat.threads.busy
            metric_type: gauge
    - include:
        type: GlobalRequestProcessor
        attribute:
          bytesSent:
            alias: tomcat.bytes_sent
            metric_type: counter
          bytesReceived:
            alias: tomcat.bytes_rcvd
            metric_type: counter
          errorCount:
            alias: tomcat.error_count
            metric_type: counter
          requestCount:
            alias: tomcat.request_count
            metric_type: counter
          maxTime:
            alias: tomcat.max_time
            metric_type: gauge
          processingTime:
            alias: tomcat.processing_time
            metric_type: counter
    - include:
        j2eeType: Servlet
        attribute:
          processingTime:
            alias: tomcat.servlet.processing_time
            metric_type: counter
          errorCount:
            alias: tomcat.servlet.error_count
            metric_type: counter
          requestCount:
            alias: tomcat.servlet.request_count
            metric_type: counter
    - include:
        type: Cache
        accessCount:
          alias: tomcat.cache.access_count
          metric_type: counter
        hitsCounts:
          alias: tomcat.cache.hits_count
          metric_type: counter
    - include:
        type: JspMonitor
        jspCount:
          alias: tomcat.jsp.count
          metric_type: counter
        jspReloadCount:
          alias: tomcat.jsp.reload_count
          metric_type: counter

重启 Agent

重启 Cloud Insight Agent,使配置生效。

您也可以通过查看 Agent Info 信息,来验证配置是否成功。当出现以下信息,则代表安装成功。

Checks
======

[...]

tomcat
------
  - instance #0 [OK]
  - Collected 8 metrics & 0 events

有关 Agent Info 信息的查看,请访问帮助中心,查看 Cloud Insight Agent 常用操作


默认标签

Cloud Insight 采集 Tomcat 以下默认主机标签:

标签种类 标签含义
instance 实例名称(例如 "tomcat_demo")
jmx_domain JMX域(例如 "Catalina")
type 指标类型(ThreadPool, GlobalRequestProcessor, Servlet, Cache, JspMonitor等)

5分钟,开启你的跨云监控之旅 (`⌄´ )


常见问题