snmp监控 jvm
我只用过TOMCAT,以此记录
一、原理:JAVA在设计之初已实现通过SNMP协议来提供查询JAVA运行程序情况,经过对被监控的主机一番配置后,JAVA会启动一个UDP协议监听的端口(大于1024,须自定义)用于提供自身性能查询服务
二、配置如下:
1) vi $JRE_HOME/lib/management/management.properties 开启如下参数:
com.sun.management.snmp.interface=0.0.0.0 <--- 监听端口
com.sun.management.snmp.acl=true <-- 开启验证方式
com.sun.management.snmp.acl.file=/opt/jdk1.7.0_40/jre/lib/management/snmp.acl <--指定验证文件
2) cp $JRE_HOME/lib/management/snmp.acl.template $JRE_HOME/lib/management/snmp.acl
3) vi $JRE_HOME/lib/management/snmp.acl
启用如下配置:
acl = {
{
communities = public, private <----snmp 协议团体串
access = read-only <---- 访问权限
managers = localhost <---- 指定可访问 的机器,可以是IP,多个访问用逗号隔开
}
}
4) 修改上述文件系统权限
chmod 600 snmp.acl management.properties
-rw------- 1 uucp 143 14207 Mar 19 23:16 management.properties
-rw------- 1 root root 3369 Mar 19 23:17 snmp.acl
5) 添加TOMCAT启动参数
vi $TOMCAT_HOME/bin/startup.sh 添加如下:
CATALINA_OPTS="-Dcom.sun.management.snmp.port=9161"
export CATALINA_OPTS
6) 重启 TOMCAT,并查看指定端口的服务是否有已在监听
netstat -antulp | grep 9161
udp 0 0 :::9161 :::* 2450/java
7) 下载JVM MIB数据文件放至/usr/share/snmp/mibs/
下载地址;http://download.csdn.net/detail/nerissa/7066733
8) 修改snmpd.conf文件,让其代理访问jvm 9161 端口
9)重启SNMPD服务,测试
snmpwalk -v 2c -c public 127.0.0.1 .1.3.6.1.4.1.42.2.145.3.163.1.1.3.1.0
SNMPv2-SMI::enterprises.42.2.145.3.163.1.1.3.1.0 = Gauge32: 14
我只用过TOMCAT,以此记录
一、原理:JAVA在设计之初已实现通过SNMP协议来提供查询JAVA运行程序情况,经过对被监控的主机一番配置后,JAVA会启动一个UDP协议监听的端口(大于1024,须自定义)用于提供自身性能查询服务
二、配置如下:
1) vi $JRE_HOME/lib/management/management.properties 开启如下参数:
com.sun.management.snmp.interface=0.0.0.0 <--- 监听端口
com.sun.management.snmp.acl=true <-- 开启验证方式
com.sun.management.snmp.acl.file=/opt/jdk1.7.0_40/jre/lib/management/snmp.acl <--指定验证文件
2) cp $JRE_HOME/lib/management/snmp.acl.template $JRE_HOME/lib/management/snmp.acl
3) vi $JRE_HOME/lib/management/snmp.acl
启用如下配置:
acl = {
{
communities = public, private <----snmp 协议团体串
access = read-only <---- 访问权限
managers = localhost <---- 指定可访问 的机器,可以是IP,多个访问用逗号隔开
}
}
4) 修改上述文件系统权限
chmod 600 snmp.acl management.properties
-rw------- 1 uucp 143 14207 Mar 19 23:16 management.properties
-rw------- 1 root root 3369 Mar 19 23:17 snmp.acl
5) 添加TOMCAT启动参数
vi $TOMCAT_HOME/bin/startup.sh 添加如下:
CATALINA_OPTS="-Dcom.sun.management.snmp.port=9161"
export CATALINA_OPTS
6) 重启 TOMCAT,并查看指定端口的服务是否有已在监听
netstat -antulp | grep 9161
udp 0 0 :::9161 :::* 2450/java
7) 下载JVM MIB数据文件放至/usr/share/snmp/mibs/
下载地址;http://download.csdn.net/detail/nerissa/7066733
8) 修改snmpd.conf文件,让其代理访问jvm 9161 端口
vi /etc/snmp/snmpd.conf 添加如下:
mibs +JVM-MANAGEMENT-MIB
proxy -v 2c -c public localhost:9161 .1.3.6.1.4.1.42 <----.1.3.6.1.4.1.42 是JVM OID段
9)重启SNMPD服务,测试
snmpwalk -v 2c -c public 127.0.0.1 .1.3.6.1.4.1.42.2.145.3.163.1.1.3.1.0
SNMPv2-SMI::enterprises.42.2.145.3.163.1.1.3.1.0 = Gauge32: 14
完成------------------
附:几个常用的OID
Variable | OID |
jvmMemoryHeapUsed | 1.3.6.1.4.1.42.2.145.3.163.1.1.2.11 |
jvmMemoryHeapCommitted | 1.3.6.1.4.1.42.2.145.3.163.1.1.2.12 |
jvmMemoryHeapMaxSize | 1.3.6.1.4.1.42.2.145.3.163.1.1.2.13 |
jvmMemoryNonHeapUsed | 1.3.6.1.4.1.42.2.145.3.163.1.1.2.21 |
jvmMemoryNonHeapCommited | 1.3.6.1.4.1.42.2.145.3.163.1.1.2.22 |
jvmMemoryNonHeapMaxSize | 1.3.6.1.4.1.42.2.145.3.163.1.1.2.23 |
jvmThreadCount | 1.3.6.1.4.1.42.2.145.3.163.1.1.3.1 |