Ruby 脚本从服务器获取一些统计数据

Ruby 脚本从服务器获取一些统计数据

我的任务是编写一个脚本,该脚本每隔几个小时在服务器上运行一次,以记录 CPU 使用率、内存和磁盘利用率。此脚本将在 Windows 和 Linux 机器上运行。我为这项任务选择了 Ruby。我是脚本编写新手。我在 Google 上搜索过但没有成功。能帮帮我吗?

答案1

首先,如果你正在使用 ruby​​ 进行一些系统管理,你应该阅读系统管理实用 Ruby

那么我认为你至少有两个选择:

  • 该脚本将在每个系统上运行并调用 Web 服务
  • 该脚本将在监控机器上运行,监控机器将轮询每台机器,然后调用 Web 服务

如果要使用第一个选项,则应创建一个数据收集类和一个数据发送类。前者应依赖于操作系统,但方法相同。在这种情况下,您可以使用它system来启动系统命令并获取所需的数据。否则,您可以使用匆忙以获取更多先进数据。

对于第二个选项,你可以使用简单网络管理协议从中央位置。当然,这意味着在您的服务器上激活 SNMP(安全!!)。

再读一下,似乎 Rush 上有一些对 Windows 的支持。并且有一个 rushd 守护进程可用于远程访问机器并执行本地命令。

servers = %w(www1 www2 www3).map { |n| Rush::Box.new(n) }
servers.each do |s| 
  s.bash 'df -h'
end

答案2

  • 除非您能找到专门的库,否则脚本在 Windows 和 Linux 上看起来会完全不同。据我所知,Ruby 无法直接访问这些统计数据,因此您必须调用外部程序来执行此操作。
  • 如果您拥有一个可以从整个网络写入的空间(例如 NFS),那么它将使您的生活变得更加轻松。
  • 如果您使用 Nagios,那么 NRPE 和 n2rrd 就是您的好朋友。如果没有,您可能仍想了解 NRPE,因为它是为此类内容而设计的。NRPE 可从Nagios 网站n2rrd 可在以下网址获取此链接
  • 如果您不使用 Nagios,那么 cron 作业可能是让脚本定期运行的最佳选择。

相关内容