通过zabbix-snmp监控jvm

系统:centos 6.4-64bit

环境:

   zabbix-server + snmp                  IP: 192.168.10.5

   zabbix-client + snmp + resin + jdk    IP: 192.168.10.15

前提:安装zabbix时,编译安装支持snmp协议,

步骤:

一. 在客户端安装snmp (一般系统都自带)

# yum -y install net-snmp net-snmp-utils

二. 修改snmp配置文件

# vim /etc/snmp/snmpd.conf

修改第41行 : com2sec notConfigUser  192.168.10.5       public

说明:192.168.10.15为zabbix服务端ip地址.

三. 重启snmp

# service snmpd restart

四. 开启jdk的snmp支持

1)进入$JAVA_HOME/jre/lib/management目录下,修改management.properties

# vi management.properties  (只有一下两行足矣)

com.sun.management.snmp.interface=0.0.0.0

com.sun.management.snmp.acl.file=$JAVA_HOME/jre/lib/management/snmp.acl

2) 创建并编辑snmp.acl

# grep -Ev "^$|^#" snmp.acl

acl = {

 {

   communities = public

   access = read-only       ---权限只读

managers = 192.168.10.5  ---只允许192.168.10.5

 }

}

trap = {

  {

    trap-community = public

hosts = 192.168.10.5

  }

}

3. 修改snmp.scl和management.properties权限为600.

4. 修改jdk目录及其文件的属主数组用户为运行java程序的用户

五.修改java程序启动项

# vi httpd.sh

snmp_conf="-Dcom.sun.management.snmp.port=<your port>"

args="$jvm_heap_size $other_configuration $snmp_conf"

六.重启resin

七.查看端口是否打开

# netstat -ulpn | grep <your port>

如果这里没看到端口,ok,查看程序的启动日志。


八.测试(在zabbix服务端测试获取数据)

1.在zabbix端测试客户端端口是否开放

# nc -uvz 192.168.10.15 9999

Connection to 192.168.10.15 9999 port [udp/distinct] succeeded!

2.获取数据

# snmpwalk -c public -v 2c 192.168.10.15:9999 1.3.6.1.4.1.42.2.145.3.163.1.1.3.1.0


有一次按照如上配置做了监控,发现resin无法正常启动,报错信息如下

Listening for transport dt_socket at address: 8000

Error: Unknown SNMP interface: st-web: st-web

解决方法:编辑/etc/hosts文件,输入自己主机的对应IP和主机名即可!


SNMPv2-SMI::enterprises.42.2.145.3.163.1.1.3.1.0 = Gauge32: 539

你可能感兴趣的:(jvm,snmp,zabbix)