From c87fc80abb9eba814ad672a5f04608fc45db655a Mon Sep 17 00:00:00 2001 From: fbt Date: Tue, 30 May 2017 15:08:45 +0300 Subject: [PATCH] network; memory Signed-off-by: fbt --- mod/memory | 29 +++++++++++++++++++++++++++++ mod/network | 14 ++++++-------- 2 files changed, 35 insertions(+), 8 deletions(-) create mode 100644 mod/memory diff --git a/mod/memory b/mod/memory new file mode 100644 index 0000000..369239f --- /dev/null +++ b/mod/memory @@ -0,0 +1,29 @@ +# vim: ft=ruby + +class ModMemory < Worker + def mainloop() + while true do + mem = {} + data = File.read("/proc/meminfo").scan(/Mem(Total|Available):\s+([0-9]+)/).map do |k, v| + mem[k] = v + end + + mem["free_part"] = mem["Available"].to_i/(mem["Total"].to_i/100) + mem["used_part"] = 100 - mem["free_part"] + + if mem["used_part"] > @my_config['crit_value'] + fg_colour = @my_config['crit_colour'] + elsif mem["used_part"] > @my_config['warn_value'] + fg_colour = @my_config['warn_colour'] + else + fg_colour = @my_config['ok_colour'] + end + + self.write "%%{F%s}%s%%{F-}" % [ fg_colour, mem["used_part"].to_s ] + + sleep(1) + end + end +end + +Modules.add("memory", "ModMemory") diff --git a/mod/network b/mod/network index 2e6ff6e..f1b7689 100644 --- a/mod/network +++ b/mod/network @@ -16,21 +16,19 @@ class Network < Worker hosts = @my_config['hosts'] net_fail = 0 - Open3.popen2("fping", *hosts) do |i,o,t| - net_ok = o.each_line.count + Open3.popen2("fping", "-u", *hosts) do |i,o,t| + hosts_down = o.each_line.count + hosts_up = hosts.count - hosts_down - if net_ok == hosts.count - status = "ok" + if hosts_down == 0 fg_colour = @my_config['ok_colour'] - elsif net_ok == 0 - status = "CRIT: all hosts failed!" + elsif hosts_down == hosts.count fg_colour = @my_config['crit_colour'] else - status = "WARN: #{net_ok}/#{hosts.count} hosts ok" fg_colour = @my_config['warn_colour'] end - @rstr = "%{F#{fg_colour}}#{status}%{F-}" + @rstr = "%%{F%s}%s/%s%%{F-}" % [ fg_colour, hosts_up, hosts.count ] end return @rstr