Tomcat配置性能管理服务--Elastic APM Server

本文介绍如何通过Docker快速安装Elasticsearch、Kibana和APMServer,构建APM系统,并详细说明了在CentOS7环境下配置APMServer的过程。此外,还提供了在Tomcat中配置APMagent进行应用性能监控的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、基本架构
 

image

1、应用侧部署agent,负责应用性能和错误数据,支持node、python、ruby、js,java和golang beta版本;

2、APM Server服务接受agent的打点数据,服务端将数据传输至Elasticsearch;

3、Kibana提供了对APM显示的原生适配。

 

二、安装配置

  elasticsearch和kibana使用Docker快速安装,具体详细安装配置可查阅官网

1、安装Elasticsearch

docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -d 
       -e cluster.name=docker-cluster  \
       -e bootstrap.memory_lock=true  \
       -e "ES_JAVA_OPTS=-Xms512m -Xmx512m"  \
       docker.elastic.co/elasticsearch/elasticsearch:6.4.2

2、安装Kibana

docker run --name kibana -p 5601:5601 -d \
       -e "ELASTICSEARCH_URL=http://192.168.99.100:9200" \
       docker.elastic.co/kibana/kibana:6.4.2

3、安装APM Server

Kibana启动之后打开可以查看APM安装文档<http://192.168.99.100:5601/app/kibana#/home/tutorial/apm?_g=()&_a=>

image

APM Server支持Windows、Mac、Linux,本文以Centos7环境安装配置

curl -L -O https://artifacts.elastic.co/downloads/apm-server/apm-server-6.4.2-x86_64.rpm

sudo rpm -vi apm-server-6.4.2-x86_64.rpm

systemctl start apm-server

systemctl status apm-server

4、配置APM Server并启动

output.elasticsearch:
     hosts: ["192.168.99.100:9200"]
     username: <username>
     password: <password>

如果elasticsearch没有开启认证则用户名、密码不需要

 

5、Tomcat配置APM agent

 

5.1、下载elastic-apm-agent-<version>.jar包并放到Tomcat库lib目录下

<https://search.maven.org/search?q=g:co.elastic.apm%20AND%20a:elastic-apm-agent&core=gav>

image

5.2、Tomcat启动脚本配置相关参数

vim apache-tomcat-8.5.34/bin/catalina.sh

JAVA_OPTS="-javaagent:${CATALINA_HOME}/lib/elastic-apm-agent-0.7.1.jar \
      -Delastic.apm.service_name=my-application \
      -Delastic.apm.server_url=http://localhost:8200 \ 
      -Delastic.apm.application_packages=org.example"

image

apm.service_name:自定义的应用名称

apm.server_url       :APM Server的服务地址

javaagent                  :APM agent库的路径

 

5.3、启动Tomcat

apache-tomcat-8.5.34/bin/startup.sh

 

启动之后访问Tomcat应用,然后在Kibana页面上即可查看到相关数据

image

image

image

image.png

APMServ 5.2.6 是一款拥有图形界面的快速搭建Apache 2.2.9、PHP 5.2.6、MySQL 5.1.28&4.0.26、Nginx 0.7.19、Memcached 1.2.4、phpMyAdmin 2.11.9.2、OpenSSL、SQLite、ZendOptimizer,以及ASP、CGI、Perl网站服务器平台的绿色软件。无需安装,具有灵活的移动性,将其拷贝到其它目录、分区或别的电脑时,均只需点击APMServ.exe中的启动按钮,即可自动进行相关设置,将Apache和MySQL安装为系统服务并启动。APMServ集合了Apache稳定安全的优点,并拥有跟IIS一样便捷的图形管理界面,同时支持MySQL 5.0 & 4.0两个版本,虚拟主机、虚拟目录、端口更改、SMTP、上传大小限制、自动全局变量、SSL证书制作、缓存性能优化等设置,只需鼠标一点即可完成。   1、注意事项:APMServ程序所在路径不能含有汉字和空格。   2、MySQL默认用户名:root,密码为空   3、MySQL数据库文件存放目录:MySQL5.1\data或MySQL4.0\data   4、网站根目录[HTML,PHP]www\htdocs [ASP]www\asp [CGI,Perl]www\cgi-bin   5、访问本机请用127.0.0.1/或https://127.0.0.1/ (如果开启SSL)   6、非默认端口,网址为127.0.0.1:端口/或https://127.0.0.1:端口/   7、如果在“扩展功能”中选择使用Memcached,它的端口为:11211   8、APMServ集成了以下软件:   Apache 2.2.9 【HTTP服务器】   Nginx 0.7.19 【HTTP服务器】   NetBox 2.8 Build 4128 【HTTP服务器+ASP脚本解释引擎】   PHP 5.2.6 【PHP脚本解释引擎】   MiniPerl 5.8 【Perl脚本解释器】   Memcached 1.2.4 【key-value内存缓存系统】   MySQL 5.1.28 【MySQL数据库服务器】   MySQL 4.0.26 【MySQL数据库服务器】   phpMyAdmin 2.11.9.2 【MySQL数据库在线管理工具】   eAccelerator 0.9.5.3 【PHP脚本加速引擎】   ZendOptimizer 3.3.3 【PHP脚本加速引擎】   OpenSSL 0.9.8h 【HTTPS(SSL)安全传输协议】
<think>好的,我现在需要帮用户解决如何监控Tomcat目录下启动的Web应用,以及查看失效图的问题。首先,我得理解用户的需求。他们可能是在运行Tomcat服务器上的Web应用时,遇到了应用失效的情况,比如404错误、服务不可用或者其他问题,想要找到工具和方法来监控这些情况,并生成失效图,可能是错误统计图表之类的。 首先,我需要回顾Tomcat的监控方法。Tomcat本身提供了管理界面,但可能用户需要更详细的监控。日志文件是首要的,访问日志和应用程序日志可以帮助识别问题。然后想到常用的监控工具,比如JMX、第三方工具如Prometheus+Grafana,或者APM工具如New Relic。另外,失效图可能需要可视化工具来展示错误发生的频率和位置。 接下来,我需要考虑用户提到的“失效图”具体指什么。可能是指错误请求的统计图表,或者是拓扑图显示应用各部分的健康状态。这时候,可能需要用工具来收集数据并生成图表,比如Grafana可以连接Prometheus或ELK来展示数据。 然后,需要分步骤说明如何配置这些工具。例如,配置Tomcat的访问日志,启用JMX,部署Prometheus的Exporter,或者使用ELK堆栈收集日志。同时,要确保用户了解每个步骤的操作,比如修改server.xml文件,或者安装额外的软件。 还要考虑用户可能的技术水平,是否需要详细的操作步骤,比如命令行指令或配置文件的位置。例如,开启Tomcat的JMX支持可能需要设置JVM参数,这部分需要详细说明。 另外,用户可能想知道实时监控和历史数据分析的区别,不同的工具适用于不同的场景。比如,Zabbix适合服务器级监控,而APM工具更专注于应用性能。需要解释这些工具的特点,帮助用户选择适合的。 最后,可能需要给出一些最佳实践,比如定期检查日志,设置警报阈值,或者结合多个工具进行全方位监控。还要提醒用户检查应用本身的健康检查接口,或者使用自动化脚本监控特定目录的变化。 在整理这些思路时,要确保覆盖主要的监控方面:日志分析、性能指标、可视化工具,以及具体的配置步骤。同时,语言要简洁明了,结构清晰,方便用户逐步实施。</think>监控Tomcat目录下的Web应用运行状态及排查失效问题,可遵循以下步骤和工具组合: --- ### **一、基础监控手段** 1. **Tomcat访问日志(Access Log)** - **作用**:记录HTTP请求状态(如404、500错误)。 - **配置方法**: 修改`conf/server.xml`,在`<Host>`标签内添加: ```xml <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b %D %F" /> ``` - `%s`为HTTP状态码,`%F`记录处理时间,通过日志分析工具(如AWK、ELK)统计错误频率。 2. **应用日志(Catalina.out / 项目日志)** - **定位问题**:检查`logs/catalina.out`或项目自定义日志文件,捕获异常堆栈。 - **日志增强**:在`WEB-INF/classes`目录下配置`log4j2.xml`或`logback.xml`,细化日志级别。 --- ### **二、专业监控工具** #### 1. **JMX监控(Tomcat内置)** - **启用方法**: 启动脚本(如`catalina.sh`)中添加JVM参数: ```bash -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9010 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false ``` - **连接工具**: - JConsole(JDK自带) - VisualVM(支持插件扩展) #### 2. **Prometheus + Grafana** - **数据采集**: - 部署**JMX Exporter**,将Tomcat的JMX指标转为Prometheus格式。 - 配置`config.yaml`定义采集规则,启动时挂载到JVM。 - **可视化**: - Grafana导入Tomcat监控仪表盘(如ID 8563),实时展示线程池、请求错误率等。 #### 3. **APM工具(应用性能监控)** - **SkyWalking**: - 探针注入Tomcat,跟踪请求链路,自动标记失效端点。 - **Pinpoint**: - 分析慢请求和异常调用链,生成拓扑图定位故障模块。 --- ### **三、失效图生成方法** 1. **ELK Stack(日志分析)** - **流程**: - Filebeat采集Tomcat日志 → Logstash解析 → Elasticsearch存储 → Kibana可视化。 - **图表示例**: - 按状态码分布生成柱状图。 - 按时间轴绘制错误请求趋势图。 2. **自定义脚本+可视化** - **Python示例**: ```python # 统计日志中404错误次数 import pandas as pd logs = pd.read_csv('access.log', sep=' ', parse_dates=['time']) errors = logs[logs['status'] == 404] errors.resample('H').size().plot(title='404错误频率') ``` - 输出结果导入Matplotlib或Plotly生成图表。 --- ### **四、健康检查与自动化** - **Endpoint监控**: 为Web应用添加`/health`接口,返回JSON格式服务状态(如数据库连接、缓存健康度)。 - **脚本监控目录变化**: ```bash # 监控webapps目录文件变动 inotifywait -m /opt/tomcat/webapps -e create,delete | while read event; do echo "目录变更:$event" done ``` --- ### **总结建议** | 场景 | 推荐工具 | 关键指标 | |---------------------|------------------------|--------------------------| | 实时错误追踪 | ELK + 钉钉/邮件告警 | HTTP状态码、异常日志关键字 | | 性能瓶颈分析 | SkyWalking/Prometheus | 响应时间、线程池使用率 | | 长期趋势统计 | Grafana + 时序数据库 | 错误率、请求量对比 | **注**:建议组合使用日志分析+APM工具,覆盖从请求入口到代码层的全链路监控。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值