使用zabbix4监控ORACLE时时, orabbix插件会报错: Orabbix - received unexpected response ’ ’ for key ‘alive’
修改代码步骤:
// 1 - Download orabbix-src-1.2.3.zip from https://sourceforge.net/projects/orabbix/files/
// 2 - Edit Sender.java file located at ./com.smartmarmot/orabbix/
// 2.1 - Original Code
Socket zabbix = null;
OutputStreamWriter out = null;
InputStream in = null;
Enumeration<String> serverlist = zabbixServers.keys();
while (serverlist.hasMoreElements()){
String zabbixServer = serverlist.nextElement();
try {
zabbix = new Socket(zabbixServer, zabbixServers.get(
zabbixServer).intValue());
zabbix.setSoTimeout(TIMEOUT);
out = new OutputStreamWriter(zabbix.getOutputStream());
out.write(message.toString());
out.flush();
// 2.2 - New code
Socket zabbix = null;
// OutputStreamWriter out = null;
OutputStream out = null;
InputStream in = null;
Enumeration serverlist = zabbixServers.keys();
while (serverlist.hasMoreElements()){
String zabbixServer = serverlist.nextElement();
try {
zabbix = new Socket(zabbixServer, zabbixServers.get(
zabbixServer).intValue());
zabbix.setSoTimeout(TIMEOUT);
byte[] data = message.toString().getBytes("UTF-8");
byte[] header = new byte[] {
'Z', 'B', 'X', 'D', '\1',
(byte)(data.length & 0xFF),
(byte)((data.length >> 8) & 0xFF),
(byte)((data.length >> 16) & 0xFF),
(byte)((data.length >> 24) & 0xFF),
'\0', '\0', '\0', '\0'};
byte[] packet = new byte[header.length + data.length];
System.arraycopy(header, 0, packet, 0, header.length);
System.arraycopy(data, 0, packet, header.length, data.length);
// out = new OutputStreamWriter(zabbix.getOutputStream());
out = zabbix.getOutputStream();
out.write(packet);
out.flush();
重新编译修复步骤:
git clone https://github.com/snickerjp/orabbix.git
cd orabbix
download orabbix
#from: https://sourceforge.net/projects/orabbix/
unzip orabbix-1.2.3.zip
compile
require. java-1.7.0-openjdk-devel,java-1.8.0-openjdk-devel
javac -cp “orabbix-1.2.3/orabbix-1.2.3.jar:orabbix-1.2.3/lib/*” com/smartmarmot/orabbix/Sender.java
mkdir -p ./build
cp orabbix-1.2.3/orabbix-1.2.3.jar ./build
cd build
jar -xvf orabbix-1.2.3.jar com
cp …/com/smartmarmot/orabbix/Sender.class com/smartmarmot/orabbix/Sender.class
jar -uf orabbix-1.2.3.jar com
参考文档:
https://github.com/smartmarmot/DBforBIX/issues/62
https://github.com/snickerjp/orabbix