系统: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
转载于:https://blog.51cto.com/jishuweiwang/1362702