recmon 1.0.2 → 1.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +4 -1
- data/README +8 -0
- data/lib/recmon.rb +2 -0
- data/lib/recmon/diskfree-sensor.rb +30 -0
- data/lib/recmon/monitor.rb +5 -0
- data/lib/recmon/ping-sensor.rb +2 -1
- metadata +4 -3
data/CHANGELOG
CHANGED
data/README
CHANGED
@@ -41,6 +41,7 @@ and it will periodically write entries to the log file (default = +/var/log/recm
|
|
41
41
|
There are several sensors:
|
42
42
|
|
43
43
|
- *web*: ensure a website is responding
|
44
|
+
- *diskfree*: track disk free space
|
44
45
|
- *diskspace*: track the diskspace used by a folder
|
45
46
|
- *filesize*: monitor the size of a file
|
46
47
|
- *ping*: check if a server is alive
|
@@ -70,6 +71,13 @@ To periodically check if a website is reachable, add a WebSensor, specifying the
|
|
70
71
|
s.web("Google", "http://www.google.com/jsapi", 120)
|
71
72
|
# log entry => "2012-09-13T16:09:02+10:00 site=Google status=up"
|
72
73
|
|
74
|
+
=== diskfree: track disk free space
|
75
|
+
A DiskfreeSensor tracks how much disk space is available on a mounted disk partition:
|
76
|
+
|
77
|
+
s.diskfree(name, freq=1200)
|
78
|
+
s.diskfree("/var")
|
79
|
+
# log entry => "2012-09-13T16:09:02+10:00 mountpoint=/var usage=45%"
|
80
|
+
|
73
81
|
=== diskspace: track the diskspace used by a folder
|
74
82
|
A DiskspaceSensor tracks how much disk space is being consumed by a set of files (log files or database files) in a folder:
|
75
83
|
|
data/lib/recmon.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'recmon/monitor'
|
2
2
|
require 'recmon/sensor'
|
3
3
|
require 'recmon/command-sensor'
|
4
|
+
require 'recmon/diskfree-sensor'
|
4
5
|
require 'recmon/diskspace-sensor'
|
5
6
|
require 'recmon/filesize-sensor'
|
6
7
|
require 'recmon/ping-sensor'
|
@@ -12,6 +13,7 @@ require 'recmon/web-sensor'
|
|
12
13
|
# - Recmon::Monitor
|
13
14
|
# - Recmon::Sensor
|
14
15
|
# - Recmon::CommandSensor
|
16
|
+
# - Recmon::DiskfreeSensor
|
15
17
|
# - Recmon::DiskspaceSensor
|
16
18
|
# - Recmon::FilesizeSensor
|
17
19
|
# - Recmon::PingSensor
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'recmon/sensor'
|
2
|
+
|
3
|
+
module Recmon
|
4
|
+
|
5
|
+
# Periodically check the diskspace usage for a folder
|
6
|
+
class DiskfreeSensor < Sensor
|
7
|
+
|
8
|
+
# create a DiskfreeSensor to check the usage of a disk partition.
|
9
|
+
# * +name+ is a name of the mounted partition (eg. "/var")
|
10
|
+
def initialize(name, freq=1200)
|
11
|
+
super(name.strip(), freq)
|
12
|
+
raise "Partition not found: #{@name}" unless File.directory?(@name)
|
13
|
+
end
|
14
|
+
|
15
|
+
# Called by Monitor. Executes df(1) to determine the disk %usage.
|
16
|
+
def sense()
|
17
|
+
begin
|
18
|
+
lines = `sudo /bin/df #{@name}`.split("\n")
|
19
|
+
line = lines[1]
|
20
|
+
usage = "unknown"
|
21
|
+
if line
|
22
|
+
parts = line.split(/\s+/)
|
23
|
+
usage = parts[4]
|
24
|
+
end
|
25
|
+
end
|
26
|
+
return("mountpoint=#{@name} usage=#{usage}%")
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
data/lib/recmon/monitor.rb
CHANGED
@@ -71,6 +71,11 @@ class Monitor
|
|
71
71
|
@sensors << Recmon::CommandSensor.new(name, command, freq)
|
72
72
|
end
|
73
73
|
|
74
|
+
# Adds a DiskfreeSensor
|
75
|
+
def diskspace(name, freq=1200)
|
76
|
+
@sensors << Recmon::DiskfreeSensor.new(name, freq)
|
77
|
+
end
|
78
|
+
|
74
79
|
# Adds a DiskspaceSensor
|
75
80
|
def diskspace(name, path, freq=1200)
|
76
81
|
@sensors << Recmon::DiskspaceSensor.new(name, path, freq)
|
data/lib/recmon/ping-sensor.rb
CHANGED
@@ -6,7 +6,8 @@ module Recmon
|
|
6
6
|
# Periodically pings a host to check it is alive
|
7
7
|
class PingSensor < Sensor
|
8
8
|
|
9
|
-
# Create a new PingSensor to ping the given IP every 2 minutes
|
9
|
+
# Create a new PingSensor to ping the given IP every 2 minutes.
|
10
|
+
# +ip+ can be a hostname if it can be sucessfully resolved.
|
10
11
|
def initialize(name, ip, freq=120)
|
11
12
|
super(name, freq)
|
12
13
|
@ip = IPAddr.new(ip)
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: recmon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 1.0.
|
9
|
+
- 3
|
10
|
+
version: 1.0.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Richard Kernahan
|
@@ -31,6 +31,7 @@ files:
|
|
31
31
|
- lib/recmon/monitor.rb
|
32
32
|
- lib/recmon/sensor.rb
|
33
33
|
- lib/recmon/command-sensor.rb
|
34
|
+
- lib/recmon/diskfree-sensor.rb
|
34
35
|
- lib/recmon/diskspace-sensor.rb
|
35
36
|
- lib/recmon/filesize-sensor.rb
|
36
37
|
- lib/recmon/ping-sensor.rb
|