JavaWeb应用服务器之一:Tomcat监控选型及实践

浏览量:0

监控选型 TomcatManager和Psi-probe是不错的可视化监控工具,能够很好地查看Tomcat状态信息(比如单位时间请求数,线程状态等)。在生产环境中,随着Tomcat实例的不断增加,维护...

监控选型

TomcatManager和Psi-probe是不错的可视化监控工具,能够很好地查看Tomcat状态信息(比如单位时间请求数,线程状态等)。在生产环境中,随着Tomcat实例的不断增加,维护不同实例上的Manager控制台会显得有些繁琐,同时,为了与企业监控系统、运维仪表盘等结合,有必要选择兼容性和适配性更好的监控工具。 如今,企业微服务的流行和CI/CD的强需求性,要求我们的服务在易于开发和维护的同时,具有伸缩性强、快速交付等特点。在此环境下,Tomcat+Prometheus+Grafana能够很好的与企业已有架构适配,并能够很好的与其他中间件服务监控整合到一起。Prometheus作为新一代的云原生监控系统,鼓励用户监控服务的内部状态,让用户可以获取服务和应用内部真正的运行状态。 容器环境下Tomcat+Prometheus+Grafana简图如下: 在实际部署中,可以简单分为如下几个步骤: 1、下载jmx_prometheus_javaagent(https://github.com/prometheus/jmx_exporter),若为容器环境,可将jmx_prometheus_javaagent与Tomcat一起打进运行镜像。 2、Tomcat启动时,JAVA_OPTS增加Javaagent和Tomcatconfig.yaml(https://github.com/prometheus/jmx_exporter/blob/master/example_configs/Tomcat.yml)配置,例如:JAVA_OPTS=”-javaagent:/var/tomcat/jmx_prometheus_javaagent-0.3.1.jar=port:/vat/tomcat/conf/config.xml”(port为实际端口)。 3、Prometheus添加Tomcat的job_name。 监控指标梳理 在《SRE:Google运维解密》一书中指出,监控系统需要能够有效的支持白盒监控和黑盒监控。通过白盒监控能够了解其内部的实际运行状态,通过对监控指标的观察能够预判可能出现的问题,从而对潜在的不确定因素进行优化。而黑盒监控,常见的如HTTP探针,TCP探针等,可以在系统或者服务在发生故障时能够快速通知相关的人员进行处理。 监控的四个黄金指标可以在服务级别帮助我们更好地衡量终端用户体验、服务中断、业务影响等层面的问题。主要关注以下四种类型的指标:错误,延迟,流量以及饱和度。 通过对黑盒、白盒监控的理解,结合监控的四个黄金指标,针对Tomcat的重要监控指标,可以从以下几个方面进行考虑: 监控实践 错误 错误监控关注的是当前应用或系统发生的错误请求。针对Tomcat错误监控,主要监控指标为Tomcat错误请求数及与请求总数之间的比例,这些多为显式的错误。关于隐式的错误(比如状态码响应200,实际业务流程却是失败的),通常需要根据业务场景的不同,在服务中添加钩子及业务逻辑监控来实现。 图1:某Tomcat实例在1000+qps下请求数和错误数的比例 当然,我们也可以借助ELK等工具,对Tomcat上游代理或LB进行整体的错误状态码统计,方便我们更好的定位错误,以及在发生5xx错误时考虑如何“快速失败”,来减少错误对系统性能带来的影响。 图2:通过Tomcat上游代理采集的状态码统计 延迟 延迟监控关注的是服务请求所需时间。针对Tomcat延迟监控,主要监控指标为Tomcat实例的Responsetime。同时,我们也可以采用黑盒监控中的HTTP语义探测来采集Tomcat对应域名的全链路延迟,发送指定GET、POST、HEAD等请求,来匹配状态码及服务器的返回内容。 图3:某产品线下多个Tomcat实例整体的responsetime汇总 图4:通过Tomcat上游代理采集的平均请求时间和Tomcat平均响应时间 流量 流量监控关注的是当前系统或应用的流量,以便更好地衡量服务的承载能力。针对Tomcat流量监控,我们需要关注Tomcat实例发送和接收的流量。 图5:某Tomcat实例发送和接收的流量 饱和度 饱和度监控关注的是系统或应用对资源的利用率,强调最能影响服务状态的受限制的资源。 不同的系统或应用对饱和度监控的需求各不相同,但共性是在服务性能明显下降时,起决定性的状态指标。针对Tomcat饱和度监控,可以从堆内存、线程数、GC次数及耗时等方面出发,在告警发生前后,通过查看各个指标的变化曲线,快速定位问题原因。 Tomcat线程池 对于Tomcat线程池初始配置的采集,可以根据不同业务场景,不同实例的压力,来进行调整,比如maxThreads、acceptCount等。 图6:某Tomcat实例线程池相关的默认配置 JVM监控 对于TomcatJVM的监控,通常我们需要关注堆内存的使用情况、GC的次数和耗时、以及对JVM线程数的监控。 JVM堆内存监控 JavaHeap是JVM所管理的内存中***的一块,被所有线程所共享,用来存放对象实例。因此,堆内存的使用情况至关重要。 图7:某Tomcat实例堆内存的使用情况 GC次数和耗时 通过查看单位时间内GC次数和耗时,能够让我们针对不同的业务场景,选择不同的垃圾回收器,从而进一步提高性能。 图8:某Tomcat实例默认垃圾回收器总GC次数曲线 图9:某Tomcat实例默认垃圾回收器总GC时间曲线 JVM线程数监控 JVM线程数的曲线统计,能够让我们更直观的看到JVM线程当前的运行情况。 图10:某Tomcat实例JVM线程相关的统计 写在*** 通过对Tomcat重要监控指标的采集以及监控,帮助我们更方便地完成日常巡检,提高先于故障发现问题的能力,提高故障发生时的定位效率,从而更好地提高稳定性。 附: jmx_prometheus_javaagent: https://github.com/prometheus/jmx_exporter Tomcatjmx_exporter: https://github.com/prometheus/jmx_exporter/blob/master/example_configs/Tomcat.yml 本期作者:蒲公英 京东云 应用研发部 Tomcat是一款开源的轻量级Web应用服务器,广泛应用于云服务平台及企业应用系统,是***的Javaweb应用服务器之一。因此,对于Tomcat的监控显得尤为重要,能让我们在不同场景下了解Tomcat的运行情况,进而能够更好的进行调优。

域名抢注      企业邮局      域名注册查询      云服务器      在线客服系统      免费邮箱      saas平台      website builder      站群      企业秀      虚拟主机      建站      whois查询      

版权声明:本文内容转载自互联网,版权归作者所有,本站不拥有所有权,也不承担相关法律责任。如果您发现有涉嫌抄袭的内容,欢迎 提交反馈 进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
湖北CNDNS相关资讯
青岛公司注册西安公司注册郑州公司注册东莞公司注册天津公司注册长沙公司注册武汉公司注册重庆公司注册成都公司注册杭州公司注册青岛创业加油站西安创业加油站郑州创业加油站东莞创业加油站天津创业加油站长沙创业加油站武汉创业加油站重庆创业加油站成都创业加油站杭州创业加油站深圳创业加油站广州创业加油站上海创业加油站北京创业加油站深圳公司注册广州公司注册上海公司注册北京公司注册域名购买域名查询海南房产三亚房三亚房产海景房产海南房三亚房地产三亚海景房海口海景房买海南房三亚买房亚龙湾房地产海南二手房海景二手房saas微信h5在线教育系统SEO优化微店在线客服系统多用户商城系统企业建站网站模板edm营销收费邮箱邮箱站群香港空间云主机域名买卖whois域名free website網站架設河源火锅桌清远火锅桌惠州火锅桌东莞火锅桌佛山火锅桌北京火锅桌广州火锅桌广东火锅桌上海火锅桌深圳火锅桌西安seo优化长沙seo优化重庆seo优化成都seo优化南京seo优化杭州seo优化郑州seo优化武汉seo优化天津seo优化苏州seo优化北京seo优化广州seo优化上海seo优化深圳seo优化佛山域名抢注福州域名抢注厦门域名抢注珠海域名抢注中山域名抢注宁波域名抢注无锡域名抢注梅州域名抢注清远域名抢注杭州域名抢注南京域名抢注苏州域名抢注惠州域名抢注北京域名抢注重庆域名抢注天津域名抢注成都域名抢注青海省负载均衡台湾省阿里云服务器广西壮族自治区站群贵州省分销云南省域名甘肃省微店河南省虚拟主机广东省AI电销机器人重庆市合伙人计划四川省招聘管理系统福建省微餐饮江西省OA系统山东省天翼云服务器江苏省旅游网站系统浙江省金蝶在线进销存安徽省云服务器代理辽宁省负载均衡吉林省金蝶云代账黑龙江省小程序上海市商标注册天津市网络推广河北省华为云服务器山西省云服务器代理香港特别行政区分销澳门特别行政区SSL数字证书北京市邮箱发件独享青海省网络推广宁夏回族自治区邮件群发新疆维吾尔自治区云服务器代理台湾省金蝶在线进销存云南省阿里云数据库西藏自治区SSL数字证书甘肃省站群重庆市金蝶在线进销存四川省云课堂贵州省本地门户网站系统湖南省网站模板广东省域名购买广西壮族自治区邮箱发件独享海南省商标注册江西省云会议山东省商城系统河南省网易企业邮箱浙江省网站建设安徽省合伙人计划福建省天翼云服务器吉林省域名注册黑龙江省公司注册上海市网站建设江苏省邮箱发件独享山西省域名安全内蒙古自治区网店辽宁省在线客服系统北京市金蝶在线进销存天津市商标注册河北省网易企业邮箱辉南县智能名片会宁县网店惠农区域名安全惠山区考试系统惠水县OA系统惠来县金蝶云代账会理县邮件群发惠民县域名注册回民区可信网站会昌县站群惠城区域名汇川区品牌宝珲春市云会议惠东县SSL数字证书惠济区腾讯云服务器壶关县腾讯企业邮箱呼和浩特市合伙人计划徽县美橙惠安县考试系统湖滨区招聘管理系统