如何处理snmp陷阱失败

时间:2011-06-10 15:35:05

标签: java snmp

我通过使用pgrep命令并使用snmp4j将陷阱发送到另一台机器来持续监视进程。

这是我监控过程的代码:

String[] process = new String[] {"/bin/sh", "-c","pgrep httpd" };
Process proc = new ProcessBuilder(process).start();
InputStreamReader input = new InputStreamReader(proc.getInputStream());
BufferedReader reader = new BufferedReader(input);
String line = reader.readLine();
int rc = proc.waitFor();
reader.close();
input.close();

我使用iptables限制发送到机器的陷阱数量,但每当陷阱数量超过配置的数量时,我都会收到以下错误:

org.snmp4j.MessageException: Operation not permitted
        at org.snmp4j.MessageDispatcherImpl.sendPdu(Unknown Source)
        at org.snmp4j.Snmp.sendMessage(Unknown Source)
        at org.snmp4j.Snmp.send(Unknown Source)
        at org.snmp4j.Snmp.send(Unknown Source)

当我收到此错误/ proc /(pid)/ fd计数也在机器中增加然后达到最大fd计数并且我收到了错误消息:

  • “消息:打开的文件过多 java.net.SocketException:太多了 打开文件“
  • 无法运行程序“/ bin / sh”: java.io.IOException:error = 24,Too 许多打开的文件。

我该如何解决这个问题?

0 个答案:

没有答案