haoman 发表于 2019-1-26 08:07:33

通过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 notConfigUser192.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="
  args="$jvm_heap_size $other_configuration $snmp_conf"
  六.重启resin
  七.查看端口是否打开
  # netstat -ulpn | grep
  如果这里没看到端口,ok,查看程序的启动日志。
  八.测试(在zabbix服务端测试获取数据)
  1.在zabbix端测试客户端端口是否开放
  # nc -uvz 192.168.10.15 9999
  Connection to 192.168.10.15 9999 port 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.运维网.com/6977090/1362702

页: [1]
查看完整版本: 通过zabbix-snmp监控jvm