我们正在使用 Nagios Core 来监控设备,目前在监控大规模环境方面面临一些障碍。它需要大量手动任务,例如收集 OID 和 MIB、主机详细信息和服务添加。
是否有任何自动化任务可以扫描网络、获取主机信息并选择需要监控的服务?请提出一些替代方案。
答案1
- 在您看来,大规模意味着什么? 10? 100? 1000? 10000? 100000? 100000?
- 您想监控什么类型的设备?工作站?办公室电脑?服务器?路由器?交换机?工业控制器?
你没有告诉我们最基本的信息,所以我想对你的问题投反对票,但我不能——你很幸运 ;-)
尽管缺少一些信息,但有一些简单的想法:
- 您可以使用 ansible / cfengine / puppet / whatever-centralized-admin-system-you-use 中包含的数据来找出您已配置的服务,然后通过 (Power-)Shell / Java / Perl / 任何您喜欢的脚本 / 编程语言创建您的 Nagios 配置。
- 如果你可以通过脚本访问你的机器,比如使用公钥认证的 ssh,那么你就可以从任何管理机器收集大量这样的信息:
for host in $(cat list-of-hosts-file); do ssh $host 'df; ps -ax; netstat -an; ... some more commands to get information you need ...'; done >your-results-file.txt
netcat -z
您可以使用任何专业工具、任何更便宜的工具甚至只是为了获取开放端口信息来进行简单的网络扫描。- 如果这个大型环境是 Microsoft 式环境,您至少会有一些对您的机器非常了解的域控制器。只需使用它们为您提供的信息即可。
- 当然,SNMP 可能会提供一些见解。这个小程序
snmpwalk
可能会帮助您收集通过 SNMP 提供的所有数据
汤姆汤姆汤姆