我已经实现了 JSend NSCA 来向 Nagios 发送被动检查,如下所示:
public static void main(String[] args) {
NagiosSettings nagiosSettings = new NagiosSettingsBuilder()
.withNagiosHost("192.168.1.20")
.withPassword("nagiosadmin")
.withPort(5666)
.withConnectionTimeout(5000)
.withResponseTimeout(15000)
.create();
NagiosPassiveCheckSender sender = new NagiosPassiveCheckSender(
nagiosSettings);
MessagePayload payload = new MessagePayloadBuilder()
.withHostname("localhost")
.withLevel(Level.CRITICAL)
.withServiceName("Test Service Name")
.withMessage("Test Message")
.create();
try {
sender.send(payload);
} catch (NagiosException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
但我有以下错误:
java.net.ConnectException:连接在 java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213) 的 java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) 的 java.net.PlainSocketImpl.socketConnect(Native Method) 被拒绝在 java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200) 在 java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432) 在 java.net.Socket.connect(Socket.java:529) 在 com.googlecode。 jsendnsca.core.NagiosPassiveCheckSender.send(NagiosPassiveCheckSender.java:69) 在 app.QuickStart.main(QuickStart.java:29) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java。lang.reflect.Method.invoke(Method.java:597) 在 com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Nagios 用户名和密码为:nagiosadmin/nagiosadmin。
nagios 的 IPserver 是 192.168.1.20。
谢谢你。