Sha256: a4f7a67ce168ab1effe38f66e07b5afe6dd83928cf85c0f1c1b70c033eb152f8
Contents?: true
Size: 1023 Bytes
Versions: 1
Compression:
Stored size: 1023 Bytes
Contents
#!/usr/bin/env ruby Process.setproctitle($0) # Checks for open tcp ports. # (c) Max Voit 2017 require File.expand_path('../../lib/riemann/tools', __FILE__) class Riemann::Tools::Portcheck include Riemann::Tools require 'socket' opt :hostname, "Host, defaults to localhost", :default => `hostname`.chomp opt :ports, "List of ports to check, e.g. '-r 80 443'", :type => :ints def initialize @hostname = opts.fetch(:hostname) @ports = opts.fetch(:ports) end def tick for thisport in @ports # try opening tcp connection with 5s timeout; # if this fails, the port is considered closed portopen = Socket.tcp(@hostname, thisport, connect_timeout: 5) { true } rescue false if portopen state = "ok" else state = "critical" end report( :host => "#{@hostname}", :service => "port #{thisport}", :state => "#{state}", :tags => ["portcheck"] ) end end end Riemann::Tools::Portcheck.run
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
riemann-tools-1.0.0 | bin/riemann-portcheck |