您的位置:首页 > 运维架构

通过zabbix-snmp监控jvm

2014-05-27 18:41 721 查看
系统: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
本文出自 “技术成就未来” 博客,请务必保留此出处http://jishuweiwang.blog.51cto.com/6977090/1362702
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  zabbix snmp jvm