我在一些分布式 Windows 服务器上安装了 NSClient++,并使用 Icinga 进行监控。我还为每台服务器连接了一个 UPS,可以在安排关机之前执行自定义命令。我想创建一个批处理脚本,调用 NSCA 客户端来通知我的中央服务器主机正在使用电池供电。从 nsc.ini 看来,NSCAClient 只能定期检查本地命令/服务并将结果提交给中央服务器。我可以做我想做的事吗?如果可以,怎么做?
答案1
是的。
您可以从命令行使用 NSCA 和 NRPE(如果您有较新版本的 NSClient++),这意味着您可以随心所欲地提交数据。这将适用于 0.4.2 和 0.4.3(可能还有 0.4.1)
nscp nsca --command wicked_command --result WARNING --message "Wh000t I am wicked" --host 127.0.0.1 --log debug --source-host MyHost
要获得更多选项,请运行:
nscp nsca -- --help # <0.4.2
nscp nsca --help # >0.4.3
如果您想测试这一点,您可以使用以下配置:
[/modules]
SimpleFileWriter = enabled
NSCAServer = enabled
[/settings/default]
allowed hosts = 127.0.0.1
[/settings/NSCA/server]
inbox = FILE
然后启动 nsclient++(在测试模式下)并发出上述命令,您向 NSCA 发送的每个命令(使用上述命令)都会写入一个文件 output.txt。
答案2
这NSClient++ 文档非常详尽,因此您可能想从那里开始。