一、文档目的说明
本文档用于在windows环境下,提供常见中间件的巡检指引,包括提供巡检方法、常见巡检项等。帮助掌握windows环境下中间件的巡检方法,并在故障时能够通过巡检指标快速定位故障原因。
二、巡检内容
2.1、tomcat巡检
2.1.1、使用Jconsole
在运行tomcat节点的主机中,肯定有JDK环境,通常也会有Jconsole或者jvisualvm工具,可以通过这两个工具连接本地tomcat,获取对应JVM信息和Mbeans信息。
Jconsole通常与Java命令在同一目录下,如下所示:
双击运行Jconsole
启动后,选择连接对应的tomcat进程(名称为org.apache.catalina.startup.Bootstrap)
连接成功后:
选择"内存",查看各个内存代的信息:
重点关注如下指标:
1)堆内存使用量是否呈周期性的上升和下降,有的话说明gc正常运行;
2)非堆内存使用量是否接近最大值;
选择"线程",查看线程信息:
重点关注如下指标:
1)线程池线程数(如名称为ajp-apr-xxx-exec的即为ajp-apr的线程池进程)是否接近线程池最大值(可以通过配置文件确认最大值)
选择"Mbean",查看mbean信息:
重点关注如下指标:
1)线程池信息,左侧选择ThreadPool,右侧查看maxThreads、currentThreadsBusy等属性,确认currentThreadsBusy/maxThreads不超过70%
2)连接器信息,左侧选择GlobalRequestProcessor,右侧查看errorCount、requestCount等属性,确认errorCount是否大于0
3)部署应用信息,左侧选择WebModule,右侧查看stateName、errorCount等属性,确认stateName是否为STARTED
2.1.2、使用manager
对于无法使用Jconsole或者Jvisualvm的情况,可以部署tomcat官方自带的manager应用,并配置
tomcat-users.xml,通过manager页面进行巡检。
登录http://127.0.0.1:8080/manager,
选择"List Applications",确认应用是否在RUNNING:
选择"Server Status":
查看JVM内存使用情况:
查看线程池使用情况:
2.2、nginx巡检
需要配置nginx的stub_status模块:
配置完成后,访问相应的url页面,如下所示:
重点关注如下信息:
1、accepts数(第三行第一列的值)是否等于handled数(第三行第二列的值);
2、活跃连接数是否大于500(第一行的数值);
2.3、Apache HTTPD巡检
需要配置Apache Httpd的server-status模块,如下所示:
配置完成后,访问相应的url页面,如下所示:
重点关注如下信息:
1、rps(ReqPerSec)是否大于500;
2、BusyWorkers是否大于100;
2.4、Weblogic巡检
登录weblogic-console页面
2.4.1、服务器巡检
1)左边导航栏选择"环境"->“服务器”;
查看服务器是否健康(是否为"OK"):
2)点击进入服务器,右侧导航栏选择"监视"->“性能”
查看服务器JVM是否正常(“当前堆大小"是否接近"最大堆大小”):
3)右侧导航栏选择"监视"->“线程”
查看线程池是否正常(是否有独占线程、阻塞线程,队列长度是否不为0):
2.4.2、部署应用巡检
1)左侧导航栏选择"部署"
查看应用的部署情况和状态(是否为running和ok):
2)点击进入应用,右侧导航栏选择"监视"->“工作量”
查看应用的请求量(是否有暂挂请求):
2.4.3、JDBC池巡检
1)左侧导航栏选择"服务"->“数据源”,右侧导航栏选择"监视":
查看对应的JDBC池的状态是否running、当前容量和当前活动连接计数、可用数量和最大可用数、泄露连接计数(是否大于0);
2.5、IIS巡检
1)确认IIS中的Site是否启动
打开IIS管理器,左侧导航栏选择对应Site,查看右边的启动已变灰色按钮则说明IIS已启动:
2)查看IIS请求数和连接数
打开性能监视器:
计算机管理 -> 性能 -> 监视工具 -> 性能监视器
如下图所示:
在Web Service中,选择计数器:
Connection Attempts/sec
Current Connections
确认后,如下图所示,即可查看IIS请求数和当前连接数,如下图所示:
三、巡检结果示例
Tomcat:
堆内存使用情况 | 非堆内存使用情况 | 线程池使用情况 | 应用状态 | 应用访问错误数 |
---|---|---|---|---|
正常 | 正常 | 正常 | 正常 | 无 |
Nginx:
accepts数是否等于handled数 | 活跃连接数是否大于500 |
---|---|
是 | 否 |
Httpd:
rps是否大于500 | Busyworkers是否大于100 |
---|---|
否 | 否 |
IIS:
Site均在运行中 | Current Connections是否大于100 | Connection Attempts/sec是否大于500 |
---|---|---|
是 | 否 | 否 |
Weblogic:
服务器健康情况 | 堆内存使用情况 | 非堆内存使用情况 | 线程池使用情况 | 应用状态 | JDBC池使用情况 |
---|---|---|---|---|---|
OK | 正常 | 正常 | 正常 | 正常 | 正常 |