Tomcat 学习笔记(二)监控

摘要:
一般通过jdk的工具jconsole、jvisualvm工具连接在tomcat上开的jmx端口,可以界面化看到。监控数据项在tomcat本身是通过Mbean提供的,要想知道tomcat有哪些Mbean,可以使用jconsole进行查看,该工具默认就有Mbean这个tab。
一、tomcat可监控的内容

tomcat通过jmx的形式对外提供tomcat的监控数据,比如:堆内存使用情况、线程使用情况等。一般通过jdk的工具jconsole、jvisualvm工具连接在 tomcat上开的jmx端口,可以界面化看到。监控数据项在tomcat本身是通过Mbean提供的,要想知道tomcat有哪些Mbean,可以使用jconsole进行查看,该工具默认就有Mbean这个tab。

监控项类别监控项说明
Catalina:type=Connector,port=<端口>URIEncoding编码方式,默认UTF-8
acceptCount可以建立的最大tcp连接数
address
ajpFlush
allowTrace
allowedRequestAttributesPattern
ciphers
ciphersUsed
className
connectionLinger
enableLookups
connectionTimeouttcp连接建立超时时间
executorName
keepAliveTimeout连接keepalived超时时间
localPorttomcat启动端口
maxHeaderCount
maxKeepAliveRequests
maxParameterCount
maxPostSize
maxSavePostSize
maxSwallowSize
maxThreads最大http并发请求数
minSpareThreads允许的最小http空闲请求线程数
modelerType
packetSize
port
processorCache
protocolhttp请求所使用的协议
protocolHandlerClassName
proxyName
proxyPort
redirectPort默认是8443
scheme默认是 http
secret
secretRequired
secure
sslProtocols
stateName
tcpNoDelay
threadPriority
useBodyEncodingForURI
useIPVHosts
xpoweredBy

Catalina:type=GlobalRequestProcessor,name="http-nio-<端口>"

在代码中Mbean获取时,可以配置Catalina:type=GlobalRequestProcessor,name="*"

bytesReceived
bytesSent
errorCount从tomcat启动以来 ,其处理的请求失败的个数
maxTime从tomcat启动以来 ,处理的请求中耗时最长的时间
modelerType
processingTime从tomcat启动以来,处理请求所耗费的总时长

Catalina:type=Host,host=localhost

(localhost的信息,一般是在server.xml中host (localhost)的静态配置信息)

aliases
appBasewar包所在父目录,默认为webapps
autoDeployboolean值,是否自动加载
backgroundProcessorDelay
children部署在 appBase下的war包列表
configClass
contextClass
copyXML
createDirs
deployIgnore
deployXML
errorReportValveClass
modelerType
name
startChildren
startStopThreads
stateName运行状态
undeployOldVersions
unpackWARs布尔值,是否自动解压war包
valveNames
workDir
xmlBase
Catalina:type=ProtocolHandler,port=8080acceptCount
acceptorThreadCount
acceptorThreadPriority
algorithm
allowHostHeaderMismatch
allowedTrailerHeaders
aprRequired
backlog
ciphers
clientAuth
clientCertProvider
compressableMimeType
compressableMimeTypes
compressibleMimeType
compressibleMimeTypes
compression
compressionMinSize
connectionCount
connectionLinger
connectionTimeout
connectionUploadTimeout
continueResponseTiming
crlFile
defaultSSLHostConfigName
disableUploadTimeout
domain
globalRequestProcessorMBeanName
keepAliveTimeout
keyAlias
keyPass
keystoreFile
keystorePass
keystoreProvider
keystoreType
localPort
maxConnections
maxExtensionSize
maxHeaderCount
maxHttpHeaderSize
maxKeepAliveRequests
maxSavePostSize
maxSwallowSize
maxThreads
maxTrailerSize
minSpareThreads
modelerType
name
nameIndex
noCompressionStrongETag
noCompressionUserAgents
objectName
pollerThreadCount
pollerThreadPriority
port
processorCache
rejectIllegalHeader
rejectIllegalHeaderName
relaxedPathChars
relaxedQueryChars
restrictedUserAgents
sSLCACertificateFile
sSLCACertificatePath
sSLCARevocationFile
sSLCARevocationPath
sSLCertificateChainFile
sSLCertificateFile
sSLCertificateKeyFile
sSLCipherSuite
sSLDisableCompression
sSLDisableSessionTickets
sSLEnabled
sSLHonorCipherOrder
sSLPassword
sSLProtocol
sSLVerifyClient
sSLVerifyDepth
secure
selectorTimeout
sendReasonPhrase
sendfileSupported
server
serverRemoveAppProvidedValues
sessionCacheSize
sessionTimeout
sniParseLimit
soLinger
soTimeout
sslEnabledProtocols
sslImplementationName
sslProtocol
tcpNoDelay
threadPriority
trustManagerClassName
trustMaxCertLength
truststoreAlgorithm
truststoreFile
truststorePass
truststoreProvider
truststoreType
useKeepAliveResponseHeader
useSendfile
useServerCipherSuitesOrder
waitingProcessorCount

Catalina:type=Server

(tomcat本身信息)

address
serverBuilttomcat被编译的版本
serverInfotomcat名称
serverNumber
serviceNames
shutdown
stateName运行状态
Catalina:type=SocketProperties,name="http-nio-<端口>"appReadBufSize
appWriteBufSize
bufferPool
bufferPoolSize
directBuffer
directBufferPool
directSslBuffer
eventCache
processorCache
soLingerOn
soLingerTime
soTimeout
tcpNoDelay
timeoutInterval
unlockTimeout
Catalina:type=StringCacheaccessCount
byteEnabled
cacheSize
charEnabled
hitCount
trainThreshold

Catalina:type=ThreadPool,name="http-nio-<端口>"

(Catalina:type=ThreadPool,name=*)

acceptCount
acceptorThreadCount
acceptorThreadPriority
alpnSupported
bindOnInit
connectionCount连接数
connectionLinger
connectionTimeout连接超时时间
currentThreadCount当前线程池中总共可用线程数
currentThreadsBusy当前并发正在处理的请求数
daemon默认 true
executorTerminationTimeoutMillis
keepAliveCount
keepAliveTimeout
localPort
maxConnections最大连接数
maxKeepAliveRequests
maxThreads最大可并发处理的请求数
minSpareThreads
pollerThreadCount
pollerThreadPriority
porttomcat启动端口
running
sSLEnabled
selectorTimeout
sniParseLimit
sslImplementation
sslImplementationName
tcpNoDelay
threadPriority
useInheritedChannel
useSendfile
java.lang:name=G1 Old Generation,type=GarbageCollectorCollectionCount从 tomcat启动到目前为止,垃圾回收的次数
CollectionTime从 tomcat启动到目前为止,垃圾回收总共耗时时间
LastGcInfo
MemoryPoolNames
Name
Valid
java.lang:name=G1 Young Generation,type=GarbageCollector监控项同 “java.lang:name=G1 Old Generation,type=GarbageCollector”
java.lang:type=MemoryHeapMemoryUsage堆内存使用情况
NonHeapMemoryUsage非内存使用情况
java.lang:type=MemoryPool,name=CodeHeap 'non-nmethods'PeakUsage
Usage
UsageThreshold
UsageThresholdCount
UsageThresholdExceeded
UsageThresholdSupported
TypeNON_HEAP :非堆
java.lang:type=MemoryPool,name=CodeHeap 'non-profiled nmethods'同 “java.lang:type=MemoryPool,name=CodeHeap 'non-nmethods'”
java.lang:type=MemoryPool,name=CodeHeap 'profiled nmethods'同 “java.lang:type=MemoryPool,name=CodeHeap 'non-nmethods'”
java.lang:type=MemoryPool,name=Compressed Class Space同 “java.lang:type=MemoryPool,name=CodeHeap 'non-nmethods'”
java.lang:type=MemoryPool,name=G1 Eden SpaceCollectionUsage
CollectionUsageThreshold
CollectionUsageThresholdCount
CollectionUsageThresholdExceeded
CollectionUsageThresholdSupported
PeakUsage
Usage
TypeHEAP:堆
UsageThresholdSupported
java.lang:type=MemoryPool,name=G1 Old GenCollectionUsage
CollectionUsageThreshold
CollectionUsageThresholdCount
CollectionUsageThresholdExceeded
CollectionUsageThresholdSupported
PeakUsage
Usage
TypeHEAP:堆
UsageThreshold
UsageThresholdCount
UsageThresholdExceeded
UsageThresholdSupported
java.lang:type=MemoryPool,name=G1 Survivor Space同 “java.lang:type=MemoryPool,name=G1 Eden Space”
java.lang:type=MemoryPool,name=Metaspace同 “java.lang:type=MemoryPool,name=CodeHeap 'non-nmethods'”
java.lang:type=OperatingSystemArch
AvailableProcessors系统中CPU核数
CommittedVirtualMemorySize
FreePhysicalMemorySize
FreeSwapSpaceSize
MaxFileDescriptorCount
Name操作系统名称
OpenFileDescriptorCount
ProcessCpuLoad
ProcessCpuTime
SystemCpuLoad
SystemLoadAverage
TotalPhysicalMemorySize
TotalSwapSpaceSize
Version操作系统版本
java.lang:type=RuntimeBootClassPathSupported
ClassPathtomcat运行时的 classpath
InputArguments设置给 tomcat的jvm参数
LibraryPath
ManagementSpecVersion
NamePID +系统的hostname
Pidtomcat进程号
SpecName如:Java Virtual Machine Specification
SpecVendor如:Oracle Corporation
SpecVersion如:11
StartTimetomcat启动时间,单位毫秒
SystemProperties
Uptimetomcat持续运行时间,单位毫秒
VmName如:OpenJDK 64-Bit Server VM
VmVendor如:Oracle Corporation
VmVersion如:11.0.5+10-LTS
java.lang:type=ThreadingAllThreadIds活动的线程Id ,是一个 long类型的数组
CurrentThreadCpuTime
CurrentThreadCpuTimeSupported
CurrentThreadUserTime
DaemonThreadCount守护线程数
ObjectMonitorUsageSupported
PeakThreadCount实时峰值
SynchronizerUsageSupported
ThreadAllocatedMemoryEnabled
ThreadAllocatedMemorySupported
ThreadContentionMonitoringEnabled
ThreadContentionMonitoringSupported
ThreadCount活动的线程数
ThreadCpuTimeEnabled
ThreadCpuTimeSupported
TotalStartedThreadCount已启动的总数
java.nio:name=direct,type=BufferPoolCount
MemoryUsed
TotalCapacity
java.nio:name=mapped,type=BufferPoolCount
MemoryUsed
TotalCapacity
java.lang:type=ClassLoadingLoadedClassCount已载入类数
TotalLoadedClassCount总共载入的类数量
UnloadedClassCount已卸载的类数量

Tomcat 学习笔记(二)监控第1张

这个是各个 webapp应用可监控的指标。

二、开启tomcatjmx监控

1、在 tomcatjvm参数中配置jmx参数

1) 查看tomcat的启动脚本,阅读脚本内容,查看该脚本中设置jvm参数是哪里,在其中加上jmx参数:

-Dcom.sun.management.jmxremote

-Djava.rmi.server.hostname=192.168.23.1

-Dcom.sun.management.jmxremote.port=9999

-Dcom.sun.management.jmxremote.ssl=false

-Dcom.sun.management.jmxremote.authenticate=false

其中:

hostname是你要查看的远程服务器的真实IP

port 是远程服务上 tomcat要开启的jmx端口,这个端口只要选择服务器上没有被占用的端口即可。

一般上述内容加入: 进入Tomcat/bin目录,修改catalina.sh,找到如下内容 “#—–Execute The Requested Command”

2)重启 tomcat

3)使用 ps -ef|grep tomcat查下 tomcat进程,看下现在其启动参数中jvm参数里是否有这个jmx参数

Tomcat 学习笔记(二)监控第2张

上述图中可以看出jvm参数中成功加入jmx参数。

2、通过 jconsole

Tomcat 学习笔记(二)监控第3张

图中的 1处填写你要远程的tomcat所在IP以及开放的jmx端口;

Tomcat 学习笔记(二)监控第4张

Tomcat 学习笔记(二)监控第5张

MBean页中记录了所有可以监控tomcat的监控项。

Tomcat 学习笔记(二)监控第6张

可以看到堆内存使用情况,其它Tab亦然。

其实:图中所有Tab (除了Mbean)的内容都是从Mbean中获取的。

3、通过jvisualvm工具监控

Tomcat 学习笔记(二)监控第7张

Tomcat 学习笔记(二)监控第8张

Tomcat 学习笔记(二)监控第9张

Tomcat 学习笔记(二)监控第10张

三、集成监控软件

1、集成 prometheus

1) 在虚拟机上安装 prometheus 软件

可以查看该篇博客:https://www.cnblogs.com/fatyao/p/11007357.html

2、集成zabbix

免责声明:文章转载自《Tomcat 学习笔记(二)监控》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇移动端报表JS开发示例VC中使用Matlab Engine出现"无法找到libeng.dll"的问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

常用DOS命令

常用DOS命令 ipconfig--不带任何参数时,它为每个已经配置了的接口显示IP地址、子网掩码和默认网关。 ipconfig /all--为DNS和WINS服务器显示它已配置且所要使用的IP地址等附加信息,显示内置于本地网卡的物理地址(MAC)。如果IP地址是从DHCP服务器租用的,ipconfig将显示DHCP服务器的IP地址和租用地址预计失效的日期...

centos8 新增ssh自定义端口与屏蔽默认22端口。

第一步:修改SSH配置文件(注意是sshd_config而不是ssh_config,多了个d) vim /etc/ssh/sshd_config找到“#Port 22”,这一行直接键入“yyp”复制该行到下一行,然后把两行的“#”号即注释去掉,修改成: Port 22Port 10086SSH默认监听端口是22,如果你不强制说明别的端口,”Port 22”...

linux netstat 命令详解

linux netstat 命令详解 1.功能与说明 netstat 用于显示linux中各种网络相关信息。如网络链接 路由表  接口状态链接 多播成员等等。 2.参数含义介绍 -a (all)显示所有选项,默认不显示LISTEN相关-t (tcp)仅显示tcp相关选项-u (udp)仅显示udp相关选项-n 拒绝显示别名,能显示数字的全部转化成数字...

telnet 查看端口是否可访问

  1. 首先为什么要写这篇文章   说到为什么还得从DNS服务器说起。我在我的电脑上安装了DNS服务器,但是用网络去访问还怎么都访问都不上去。于是我就打开dos窗口,用ping命令查看是否可以ping(如 ping 125.34.49.211)通。一查能够ping通。既然可以通,那么就说明这个地址是有效的,那问题出现在那边呢,只能出现在访问的端口po...

TCP帧

说一下UDP ( 首先是伪首部:伪首部是计算检验和时临时添加在UDP用户数据报前面伪首部(pseudo header),通常有TCP伪首部和UDP伪首部。在UDP/TCP伪首部中,包含32位源IP地址,32位目的IP地址,8位填充0,8位协议,16位TCP/UDP长度。通过伪首部的校验,UDP可以确定该数据报是不是发给本机的,通过首部协议字段,UDP可以确...

公网FTP(filezilla)改端口

背景:我们如果不修改ftp服务器的端口,很容易被别人测试和攻击、 配置要点:服务端端口设置、主被动设置、服务端和客户端防火墙设置 ftp服务器:filezilla ftp server 1、  监听端口自定义,其他的常规设置自己想设就设 解释: FTP协议的传输比较特别,不像其他协议使用一个端口。FTP协议需要使用两个端口,一个是21号端口,用来传输相关的...