summaryrefslogtreecommitdiffstats
path: root/modules/Monitoring
diff options
context:
space:
mode:
Diffstat (limited to 'modules/Monitoring')
-rw-r--r--modules/Monitoring/Makefile8
-rw-r--r--modules/Monitoring/TODO5
-rw-r--r--modules/Monitoring/conf/hostgroups_nagios2.cfg31
-rw-r--r--modules/Monitoring/conf/krebs_hosts.cfg78
-rw-r--r--modules/Monitoring/conf/krebsnet.cfg20
-rw-r--r--modules/Monitoring/conf/localhost.cfg60
-rw-r--r--modules/Monitoring/conf/other_hosts.cfg23
-rw-r--r--modules/Monitoring/conf/shack_infrastructure.cfg231
-rw-r--r--modules/Monitoring/conf/shacknet.cfg34
-rw-r--r--modules/Monitoring/conf/tinc_hosts.cfg45
-rw-r--r--modules/Monitoring/conf/tincnet.cfg31
-rw-r--r--modules/Monitoring/htdocs/images/logos/krebs/favicon.icobin822 -> 0 bytes
-rw-r--r--modules/Monitoring/htdocs/images/logos/krebs/krebs.gd2bin1047 -> 0 bytes
-rw-r--r--modules/Monitoring/htdocs/images/logos/krebs/krebs.pngbin323 -> 0 bytes
-rw-r--r--modules/Monitoring/htdocs/images/logos/krebs/shack.gd2bin1047 -> 0 bytes
-rw-r--r--modules/Monitoring/htdocs/images/logos/krebs/shack.pngbin316 -> 0 bytes
-rw-r--r--modules/Monitoring/htdocs/images/logos/krebs/tinc.gd2bin1305 -> 0 bytes
-rw-r--r--modules/Monitoring/htdocs/images/logos/krebs/tinc.pngbin361 -> 0 bytes
-rw-r--r--modules/Monitoring/htdocs/images/logos/krebs/wireless_access_point.gd2bin1047 -> 0 bytes
-rw-r--r--modules/Monitoring/htdocs/images/logos/krebs/wireless_access_point.pngbin883 -> 0 bytes
-rw-r--r--modules/Monitoring/htdocs/images/logos/krebs/wireless_access_point_64.pngbin5364 -> 0 bytes
-rwxr-xr-xmodules/Monitoring/plugins/check_sip252
22 files changed, 0 insertions, 818 deletions
diff --git a/modules/Monitoring/Makefile b/modules/Monitoring/Makefile
deleted file mode 100644
index cc1d8903..00000000
--- a/modules/Monitoring/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-.phony: debian
-debian:
- [ `which nagios3` ] || apt-get install nagios3
- rm /etc/nagios3/conf.d/localhost_nagios2.cfg || true
- cp -r conf/* /etc/nagios3/conf.d/
- cp -R htdocs/* /usr/share/nagios3/htdocs/
- cp -r plugins /usr/lib/nagios
- /etc/init.d/nagios3 reload
diff --git a/modules/Monitoring/TODO b/modules/Monitoring/TODO
deleted file mode 100644
index 6d74fdcd..00000000
--- a/modules/Monitoring/TODO
+++ /dev/null
@@ -1,5 +0,0 @@
-add guest user
-add guest user to
-> * authorized_for_all_services=usernagios,guest
-> * authorized_for_all_hosts=usernagios,guest
-in /etc/nagios3/somewhere
diff --git a/modules/Monitoring/conf/hostgroups_nagios2.cfg b/modules/Monitoring/conf/hostgroups_nagios2.cfg
deleted file mode 100644
index 63acbf50..00000000
--- a/modules/Monitoring/conf/hostgroups_nagios2.cfg
+++ /dev/null
@@ -1,31 +0,0 @@
-# Some generic hostgroup definitions
-
-# A simple wildcard hostgroup
-define hostgroup {
- hostgroup_name all
- alias All Servers
- members *
- }
-
-# A list of your Debian GNU/Linux servers
-define hostgroup {
- hostgroup_name debian-servers
- alias Debian GNU/Linux Servers
- members localhost
- }
-
-# A list of your web servers
-define hostgroup {
- hostgroup_name http-servers
- alias HTTP servers
- members localhost
- }
-
-# A list of your ssh-accessible servers
-define hostgroup {
- hostgroup_name ssh-servers
- alias SSH servers
- members localhost
- }
-
-
diff --git a/modules/Monitoring/conf/krebs_hosts.cfg b/modules/Monitoring/conf/krebs_hosts.cfg
deleted file mode 100644
index a929fa19..00000000
--- a/modules/Monitoring/conf/krebs_hosts.cfg
+++ /dev/null
@@ -1,78 +0,0 @@
-
-#
-# Ur-Krebs
-#
-define host{
- use generic-host
- host_name krebs.shack
- alias krebs
- _tinc_address 10.7.7.156
- address 10.42.23.5
- parents shack-coreswitch
- hostgroups krebs-machines,tinc-nodes,ssh-servers
- }
-#
-# UTART
-#
-define host{
- use generic-host
- host_name utart
- alias UTART
- _tinc_address 10.7.7.66
- address 10.42.23.23
- parents shack-coreswitch
- hostgroups krebs-machines,tinc-nodes,ssh-servers
- }
-#
-# ytart
-# will use tinc ip as long as no static ip is supplied
-#
-define host{
- use generic-host
- host_name ytart
- alias ytart
- _tinc_address 10.7.7.201
- parents shack-wlan-ap5
- address 10.7.7.201
- hostgroups krebs-machines,tinc-nodes,ssh-servers
- }
-#
-# uPM
-#
-define host{
- use generic-host
- host_name upm
- alias uPM Virtual Machine
- _tinc_address 10.7.7.99
- address upm.shack
- parents shack-node1
- hostgroups krebs-machines,ssh-servers,shack-rz
- #,tinc-nodes
- }
-
-# TODO add upm and genericore as tinc-nodes
-# TODO check MONGODB on uPM
-
-
-
-#TODO verkrebse genericore/get password
-define host{
- use generic-host
- host_name genericore
- alias genericore Virtual Machine
- #_tinc_address 10.7.7.XX
- address genericore.shack
- parents shack-node1
- hostgroups ssh-servers,shack-rz
- #,tinc-nodes,krebs-machines
- }
-
-define host{
- use generic-host
- host_name shepherd
- alias Shepherd Krebs
- _tinc_address 10.7.7.29
- address 10.42.23.42
- parents shack-coreswitch
- hostgroups krebs-machines,tinc-nodes,ssh-servers
- }
diff --git a/modules/Monitoring/conf/krebsnet.cfg b/modules/Monitoring/conf/krebsnet.cfg
deleted file mode 100644
index ae5b898e..00000000
--- a/modules/Monitoring/conf/krebsnet.cfg
+++ /dev/null
@@ -1,20 +0,0 @@
-## extended infos for krebsnet
-define hostgroup {
- hostgroup_name krebs-machines
- alias Krebs Machines
- }
-define hostextinfo{
- hostgroup_name krebs-machines
- notes Deployed Krebse
-# notes_url http://webserver.localhost.localdomain/hostinfo.pl?host=netware1
- icon_image krebs/krebs.png
- icon_image_alt Krebs
- vrml_image krebs.png
- statusmap_image krebs/krebs.gd2
- }
-#define host{
-# use generic-host
-# register 0
-# name tinc-only-host
-# check_command check_internal_tinc_up!100.0,20%!500.0,60%
-# }
diff --git a/modules/Monitoring/conf/localhost.cfg b/modules/Monitoring/conf/localhost.cfg
deleted file mode 100644
index 3b098195..00000000
--- a/modules/Monitoring/conf/localhost.cfg
+++ /dev/null
@@ -1,60 +0,0 @@
-# A simple configuration file for monitoring the local host
-# This can serve as an example for configuring other servers;
-# Custom services specific to this host are added here, but services
-# defined in nagios2-common_services.cfg may also apply.
-#
-
-define host{
- use generic-host ; Name of host template to use
- host_name localhost
- alias localhost
- address 127.0.0.1
- hostgroups krebs-machines
- }
-
-# Define a service to check the disk space of the root partition
-# on the local machine. Warning if < 20% free, critical if
-# < 10% free space on partition.
-
-define service{
- use generic-service ; Name of service template to use
- host_name localhost
- service_description Disk Space
- check_command check_all_disks!20%!10%
- }
-
-
-
-# Define a service to check the number of currently logged in
-# users on the local machine. Warning if > 20 users, critical
-# if > 50 users.
-
-define service{
- use generic-service ; Name of service template to use
- host_name localhost
- service_description Current Users
- check_command check_users!20!50
- }
-
-
-# Define a service to check the number of currently running procs
-# on the local machine. Warning if > 250 processes, critical if
-# > 400 processes.
-
-define service{
- use generic-service ; Name of service template to use
- host_name localhost
- service_description Total Processes
- check_command check_procs!250!400
- }
-
-
-
-# Define a service to check the load on the local machine.
-
-define service{
- use generic-service ; Name of service template to use
- host_name localhost
- service_description Current Load
- check_command check_load!5.0!4.0!3.0!10.0!6.0!4.0
- }
diff --git a/modules/Monitoring/conf/other_hosts.cfg b/modules/Monitoring/conf/other_hosts.cfg
deleted file mode 100644
index bfc36154..00000000
--- a/modules/Monitoring/conf/other_hosts.cfg
+++ /dev/null
@@ -1,23 +0,0 @@
-define host{
- use generic-host
- host_name google.de
- alias Google Website
- address google.de
- parents shack-modem
- hostgroups http-servers
- }
-
-define host{
- use generic-host
- host_name google-dns
- parents shack-gw
- parents shack-modem
- alias Google DNS Service (always reachable)
- address 8.8.8.8
- }
-define service {
- host_name google-dns
- service_description DNS Service
- use generic-service
- check_command check_dns
- }
diff --git a/modules/Monitoring/conf/shack_infrastructure.cfg b/modules/Monitoring/conf/shack_infrastructure.cfg
deleted file mode 100644
index dd123dc3..00000000
--- a/modules/Monitoring/conf/shack_infrastructure.cfg
+++ /dev/null
@@ -1,231 +0,0 @@
-#
-
-#
-# Shack Virtual Machine Hoster Platform
-#
-
-#
-# Virtualization and storage
-#
-define host{
- use generic-host
- host_name shack-node1
- alias Shack Virtualization Server
- address 10.42.0.10
- parents shack-serverswitch
- hostgroups shack-rz,ssh-servers
- }
-define host{
- use generic-host
- host_name shack-zetbox
- alias Shack Virtualization Server
- address 10.42.0.10
- parents shack-serverswitch
- hostgroups shack-rz,ssh-servers
- }
-define host{
- use generic-host
- host_name shack-plattenschwein
- parents shack-serverswitch
- alias Shack Plattenschwein
- address 10.42.0.12
- hostgroups shack-rz,ssh-servers
- }
-define host{
- use generic-host
- host_name shack-gauda0
- parents shack-serverswitch
- alias Shack gauda0 Mining Server
- address gauda0.shack
- hostgroups shack-rz
- }
-#
-# Network Infrastructure
-#
-
-#
-## Shack gateway (no gateway-no internet)
-#
-define host{
- use generic-host
- host_name shack-gw
- parents shack-coreswitch
- alias Watchguard Shack Gateway
- address 10.42.0.1
- hostgroups shack-rz,ssh-servers
- }
-define host{
- use generic-host
- host_name shack-modem
- parents shack-gw
- alias Shack Telecom VDSL Router
- address 192.168.2.1
- hostgroups shack-rz
- }
-define host{
- use generic-host
- host_name shack-externswitch
- parents shack-gw
- alias Shack External Switch (2.OG)
- address 10.0.10.2
- hostgroups shack-rz
- }
-
-define service {
- host_name shack-gw
- service_description DNS Service
- use generic-service
- check_command check_dns
- }
-define host{
- use generic-host
- host_name shack-coreswitch
- alias Shack Cisco Router Coreswitch
- address 10.42.0.3
- hostgroups shack-rz,ssh-servers
- }
-define host{
- use generic-host
- host_name shack-serverswitch
- parents shack-coreswitch
- alias Shack Cisco Router Serverswitch
- address 10.42.0.4
- hostgroups shack-rz
- }
-
-define host{
- use generic-host
- host_name shack-wlan-ap1
- parents shack-coreswitch
- alias Shack Wlan Access Point 1
- address 10.42.0.5
- hostgroups wlan-ap
- }
-define host{
- use generic-host
- host_name shack-wlan-ap2
- parents shack-coreswitch
- alias Shack Wlan Access Point 2
- address 10.42.0.6
- hostgroups wlan-ap
- }
-define host{
- use generic-host
- host_name shack-wlan-ap3
- parents shack-coreswitch
- alias Shack Wlan Access Point 3
- address 10.42.0.7
- hostgroups wlan-ap
- }
-define host{
- use generic-host
- host_name shack-wlan-ap4
- parents shack-coreswitch
- alias Shack Wlan Access Point 4
- address 10.42.0.8
- hostgroups wlan-ap
- }
-define host{
- use generic-host
- host_name shack-wlan-ap5
- parents shack-coreswitch
- alias Shack Wlan Access Point 5
- address 10.42.0.9
- hostgroups wlan-ap
- }
-#
-# Voip Infrastructure
-#
-define host{
- use generic-host
- host_name shack-voip
- alias Shack Cisco VOIP Gateway
- address 10.42.0.2
- parents shack-coreswitch
- hostgroups shack-rz,http-servers
- }
-
-define service{
- host_name shack-voip
- service_description SIP Service
- use generic-service
- check_command check_sip
- }
-
-
-
-
-
-#
-# Shack DNS Server
-#
-
-define host{
- use generic-host
- host_name shack-dns
- parents shack-zetbox
- alias Shack DNS Virtual Host
- address 10.42.0.100
- hostgroups shack-rz
- }
-define service {
- host_name shack-dns
- service_description DNS Service
- use generic-service
- check_command check_dns_shack
- }
-
-define host{
- use generic-host
- host_name shack-pxe
- parents shack-zetbox
- alias Shack PXEBoot Vhost
- address pxeboot.shack
- hostgroups shack-rz
- }
-
-define host{
- use generic-host
- host_name shack-printsrv
- parents shack-node1
- alias Shack Print Server
- address printer.shack
- hostgroups shack-rz
- }
-
-define host{
- use generic-host
- host_name shack-aptproxy
- parents shack-zetbox
- alias Shack Apt-proxy
- address aptproxy.shack
- hostgroups shack-rz
- }
-
-define host{
- use generic-host
- host_name shack-shack
- parents shack-node1
- alias Shack Data Exchange
- address shack.shack
- hostgroups shack-rz,ssh-servers
- }
-
-#
-# shack ldap server
-#
-define host{
- use generic-host
- host_name shack-ldap
- parents shack-zetbox
- alias Shack LDAP Server
- address ldap.shack
- hostgroups shack-rz
- }
-define service {
- host_name shack-ldap
- service_description LDAP Service
- use generic-service
- check_command check_ldap!shammunity
- }
-
diff --git a/modules/Monitoring/conf/shacknet.cfg b/modules/Monitoring/conf/shacknet.cfg
deleted file mode 100644
index 7658ab80..00000000
--- a/modules/Monitoring/conf/shacknet.cfg
+++ /dev/null
@@ -1,34 +0,0 @@
-define hostgroup {
- hostgroup_name shack-rz
- alias Shack RZ Infrastructure
- }
-define hostgroup {
- hostgroup_name wlan-ap
- alias Shack Wlan Access Points
- }
-define hostextinfo{
- hostgroup_name wlan-ap
- notes Access Points for Shack
- icon_image krebs/wireless_access_point.png
- icon_image_alt wireless_access_point
- vrml_image wireless_access_point.png
- statusmap_image krebs/wireless_access_point.gd2
- }
-define hostextinfo{
- hostgroup_name shack-rz
- notes Shack RZ Infrastructure
- icon_image krebs/shack.png
- icon_image_alt shack-RZ
- vrml_image shack.png
- statusmap_image krebs/shack.gd2
- }
-
-define command {
- command_name check_sip
- command_line $USER1$/check_tcp -H $HOSTADDRESS$ -p 5060
- }
-
-define command {
- command_name check_dns_shack
- command_line $USER1$/check_dns -H shack.shack -s '$HOSTADDRESS$'
- }
diff --git a/modules/Monitoring/conf/tinc_hosts.cfg b/modules/Monitoring/conf/tinc_hosts.cfg
deleted file mode 100644
index 23c2b75e..00000000
--- a/modules/Monitoring/conf/tinc_hosts.cfg
+++ /dev/null
@@ -1,45 +0,0 @@
-#connection will not work if no internet is available (e.g. no shack-gateway)
-
-#
-# Miefda Supernode
-#
-define host{
- use generic-host
- host_name supernode
- alias Supernode External
- _TINC_ADDRESS 10.7.7.1
- address miefda.org
- parents shack-modem
- hostgroups tinc-nodes,ssh-servers,http-servers
- }
-
-define service {
- host_name supernode
- service_description IRC
- use generic-service
- check_command check_ircd
- }
-#
-# Sharepoint (dhbw-stuttgart)
-#
-define host{
- use generic-host
- host_name sharepoint
- alias PA Sharepoint
- address 141.31.8.11
- _TINC_ADDRESS 10.7.7.5
- parents shack-modem
- hostgroups tinc-nodes,ssh-servers
- }
-#
-# Leechi
-#
-define host{
- use generic-host
- host_name leechi
- alias no_omo
- address leechi.kicks-ass.org
- _TINC_ADDRESS 10.7.7.111
- parents shack-modem
- hostgroups tinc-nodes,ssh-servers,http-servers
- }
diff --git a/modules/Monitoring/conf/tincnet.cfg b/modules/Monitoring/conf/tincnet.cfg
deleted file mode 100644
index f0b35b4e..00000000
--- a/modules/Monitoring/conf/tincnet.cfg
+++ /dev/null
@@ -1,31 +0,0 @@
-define hostgroup {
- hostgroup_name tinc-nodes
- alias Tinc Nodes
- }
-
-define hostextinfo{
- hostgroup_name tinc-nodes
- notes Tinc Nodes
- icon_image krebs/tinc.png
- icon_image_alt tinc
- vrml_image tinc.png
- statusmap_image krebs/tinc.gd2
- }
-
-define command {
- command_name check_internal_tinc_up
- command_line $USER1$/check_ping -H $_HOSTTINC_ADDRESS$ -w $ARG1$ -c $ARG2$
- }
-define command {
- command_name check_ircd
- command_line $USER1$/check_ircd $_HOSTTINC_ADDRESS$
- }
-
-define service {
- hostgroup_name tinc-nodes
- service_description tinc internal
- check_command check_internal_tinc_up!100.0,20%!500.0,60%
- use generic-service
- notification_interval 0
-}
-
diff --git a/modules/Monitoring/htdocs/images/logos/krebs/favicon.ico b/modules/Monitoring/htdocs/images/logos/krebs/favicon.ico
deleted file mode 100644
index fa18384c..00000000
--- a/modules/Monitoring/htdocs/images/logos/krebs/favicon.ico
+++ /dev/null
Binary files differ
diff --git a/modules/Monitoring/htdocs/images/logos/krebs/krebs.gd2 b/modules/Monitoring/htdocs/images/logos/krebs/krebs.gd2
deleted file mode 100644
index 1113f03e..00000000
--- a/modules/Monitoring/htdocs/images/logos/krebs/krebs.gd2
+++ /dev/null
Binary files differ
diff --git a/modules/Monitoring/htdocs/images/logos/krebs/krebs.png b/modules/Monitoring/htdocs/images/logos/krebs/krebs.png
deleted file mode 100644
index 3d8a8ab8..00000000
--- a/modules/Monitoring/htdocs/images/logos/krebs/krebs.png
+++ /dev/null
Binary files differ
diff --git a/modules/Monitoring/htdocs/images/logos/krebs/shack.gd2 b/modules/Monitoring/htdocs/images/logos/krebs/shack.gd2
deleted file mode 100644
index 8b0d98e5..00000000
--- a/modules/Monitoring/htdocs/images/logos/krebs/shack.gd2
+++ /dev/null
Binary files differ
diff --git a/modules/Monitoring/htdocs/images/logos/krebs/shack.png b/modules/Monitoring/htdocs/images/logos/krebs/shack.png
deleted file mode 100644
index 53f1275b..00000000
--- a/modules/Monitoring/htdocs/images/logos/krebs/shack.png
+++ /dev/null
Binary files differ
diff --git a/modules/Monitoring/htdocs/images/logos/krebs/tinc.gd2 b/modules/Monitoring/htdocs/images/logos/krebs/tinc.gd2
deleted file mode 100644
index 36572d4a..00000000
--- a/modules/Monitoring/htdocs/images/logos/krebs/tinc.gd2
+++ /dev/null
Binary files differ
diff --git a/modules/Monitoring/htdocs/images/logos/krebs/tinc.png b/modules/Monitoring/htdocs/images/logos/krebs/tinc.png
deleted file mode 100644
index daa1fdeb..00000000
--- a/modules/Monitoring/htdocs/images/logos/krebs/tinc.png
+++ /dev/null
Binary files differ
diff --git a/modules/Monitoring/htdocs/images/logos/krebs/wireless_access_point.gd2 b/modules/Monitoring/htdocs/images/logos/krebs/wireless_access_point.gd2
deleted file mode 100644
index 6e740ec4..00000000
--- a/modules/Monitoring/htdocs/images/logos/krebs/wireless_access_point.gd2
+++ /dev/null
Binary files differ
diff --git a/modules/Monitoring/htdocs/images/logos/krebs/wireless_access_point.png b/modules/Monitoring/htdocs/images/logos/krebs/wireless_access_point.png
deleted file mode 100644
index 9febe45e..00000000
--- a/modules/Monitoring/htdocs/images/logos/krebs/wireless_access_point.png
+++ /dev/null
Binary files differ
diff --git a/modules/Monitoring/htdocs/images/logos/krebs/wireless_access_point_64.png b/modules/Monitoring/htdocs/images/logos/krebs/wireless_access_point_64.png
deleted file mode 100644
index fe9788af..00000000
--- a/modules/Monitoring/htdocs/images/logos/krebs/wireless_access_point_64.png
+++ /dev/null
Binary files differ
diff --git a/modules/Monitoring/plugins/check_sip b/modules/Monitoring/plugins/check_sip
deleted file mode 100755
index 24374727..00000000
--- a/modules/Monitoring/plugins/check_sip
+++ /dev/null
@@ -1,252 +0,0 @@
-#!/usr/bin/perl -w
-#
-# check_sip plugin for nagios
-# $Revision: 1.2 $
-#
-# Nagios plugin to check SIP servers
-#
-# By Sam Bashton, Bashton Ltd
-# bashton.com/content/nagiosplugins
-# Michael Hirschbichler, Institute of Broadband Communications,
-# Vienna University of Technology
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-use strict;
-use lib "/usr/lib/nagios/plugins";
-use utils qw($TIMEOUT %ERRORS &print_revision &support);
-use vars qw($PROGNAME);
-use IO::Socket::INET;
-#use Sys::Hostname;
-use Time::HiRes qw(gettimeofday);
-use Net::Domain qw (hostname hostfqdn hostdomain);
-
-$PROGNAME = "check_sip";
-my $VERSION = "1.2";
-
-$ENV{'BASH_ENV'}='';
-$ENV{'ENV'}='';
-$ENV{'PATH'}='';
-$ENV{'LC_ALL'}='C';
-
-my ($opt_V,$opt_h,$opt_u,$opt_p,$opt_H, $opt_w, $opt_s, $opt_f);
-$opt_V = $opt_h = $opt_u = $opt_p = $opt_H = $opt_w = $opt_s = $opt_f = '';
-
-my $state = 'UNKNOWN';
-
-use Getopt::Long;
-Getopt::Long::Configure('bundling');
-GetOptions(
- "V" => \$opt_V, "version" => \$opt_V,
- "h" => \$opt_h, "help" => \$opt_h,
- "s" => \$opt_s,
- "f=s" => \$opt_f, "fromuri=s" => \$opt_f,
- "u=s" => \$opt_u, "uri=s" => \$opt_u,
- "p=s" => \$opt_p, "port=s" => \$opt_p,
- "H=s" => \$opt_H, "host=s" => \$opt_H,
- "w=s" => \$opt_w, "warn=s" => \$opt_w
-);
-
-# -h displays help
-if ($opt_h) { printHelp(); exit $ERRORS{'OK'}; }
-
-# -V display version number
-if ($opt_V) {
- print_revision($PROGNAME, $VERSION);
- exit $ERRORS{'OK'};
-};
-
-# Check the sip URI is OK
-unless ($opt_u) { printHelp(); exit $ERRORS{'UNKNOWN'} }
-
-# Port is 5060 unless otherwise specified
-unless ($opt_p) { $opt_p = 5060 }
-
-# Determine the host from the sip URI if it wasn't specified with -H
-unless ($opt_H) { $opt_H = hostFromURI($opt_u) }
-
-# Check the host is valid
-unless (utils::is_hostname($opt_H))
-{
- print "$opt_H is not a valid hostname\n";
- printHelp();
- exit $ERRORS{"UNKNOWN"};
-}
-
-unless ($opt_w) { $opt_w = 5 } # Warn if response takes longer than 5 seconds
-
-### Main code ###############################################################
-
-# Timeout if we don't recieve a response within a suitable timeframe..
-$SIG{'ALRM'} = sub {
- print ("SIP timeout: No response from SIP server after $TIMEOUT seconds\n");
- exit $ERRORS{"CRITICAL"};
-};
-alarm($TIMEOUT);
-
-my $localhost = hostfqdn();
-$opt_f = getFromURI($opt_f,$localhost,$opt_p);
-my $user=getUserPart($opt_f);
-my $socket = uconnect($opt_H, $opt_p);
-my @localinfo = unpack_sockaddr_in($socket->sockname);
-my $req = buildReq($localinfo[0], $opt_u, $opt_f,$user,$localhost);
-my (undef, $starttime) = gettimeofday;
-$socket->send($req);
-my $response;
-$socket->recv($response, 1024) or $state = 'CRITICAL';
-
-#get rid of the 100 Trying - provisional response ...
-if (getResponseCode($response) eq "100"){
- $socket->recv($response, 1024) or $state = 'CRITICAL';
-}
-
-my (undef, $finishtime) = gettimeofday;
-my $rtime = ($finishtime - $starttime) / 1000000; # Time taken in seconds
-if(checkResponse($response,$rtime,$opt_s))
-{
- if ($rtime > $opt_w) { $state = 'WARNING' }
- else { $state = 'OK' }
-}
-else { $state = 'CRITICAL' }
-
-exit $ERRORS{$state};
-
-### Subroutines ##############################################################
-
-
-sub uconnect
-{
- my ($host, $port) = @_;
- my $socket = new IO::Socket::INET->new(PeerPort=>$port, Proto=>'udp', PeerAddr=>$host);
- unless ($socket) { print "Unable to connect to $host\n"; exit $ERRORS{'UNKNOWN'} }
- return $socket;
-}
-
-sub getFromURI{
- my ($from, $localhost,$localport) = @_;
- if (!("$from" eq "")){
- return "$from:$localport";
- }else
- {
- return "sip:checksip\@$localhost:$localport";
- }
-}
-
-sub getUserPart{
- my ($uri) = @_;
- my @uris=split(/\@/,$uri);
- my $user=$uris[0];
- return $user;
-}
-
-sub hostFromURI
-{
- my ($uri) = @_;
- $uri =~ s/sip:[^\@]+@//;
- return $uri;
-}
-
-sub getResponseCode
-{
- my ($message) = @_;
- my @messageparts=split(/\ /,$message);
- return $messageparts[1];
-}
-
-sub buildReq
-{
- my ($localport, $dsturi, $fromuri,$user,$localhost) = @_;
-
- my $req;
- my $tag = genTag();
- my $idtag = genTag();
- $req.= "OPTIONS $dsturi SIP/2.0\r\n";
- $req.= "Via: SIP/2.0/UDP $localhost:$localport;branch=z9hG4bKhjhs8ass877\r\n";
- $req.= "Max-Forwards: 70\r\n";
- $req.= "To: $dsturi\r\n";
- $req.= "From: $fromuri;tag=$tag\r\n";
- $req.= "Call-ID: $idtag\@$localhost\r\n";
- $req.= "CSeq: 1 OPTIONS\r\n";
- $req.= "Contact: <$user\@$localhost:$localport>\r\n";
- $req.= "Accept: application/sdp\r\n";
- $req.= "Content-Length: 0\r\n\r\n";
- return $req;
-}
-
-sub genTag
-{
- my $tag;
- my @chars = ('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p',
- 'q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8',
- '9');
-
- for (my $i = 0; $i < 6; $i++)
- {
- $tag .= $chars[rand(scalar @chars)];
- }
- return $tag;
-}
-
-sub printHelp
-{
- print "This plugin tests the sip service on the specified host.\n\n";
- print "Usage: $PROGNAME -u sip:uri\@example.com [-H host -p PORT -f sip:fromuri\@example.com -w WARNTIME -s]\n";
- print " $PROGNAME [-h | --help]\n";
- print " $PROGNAME [-V | --version]\n\n";
- print "Options:\n";
- print " -u sip:uri\@example.com\n";
- print " Full SIP uri, eg sip:uri\@example.com\n";
- print " -h, --help\n";
- print " Print this help\n";
- print " -V, --version\n";
- print " Print version information\n";
- print " -H host\n";
- print " Host name or IP Address to connect to\n";
- print " -p port\n";
- print " Port to connect to\n";
- print " -f sip:fromuri\@example.com\n";
- print " Full SIP uri, will be used for the \"From:\"-Header\n";
- print " -s\n";
- print " Changes default behavior: all SIP-responses will result in an \"OK\"\n\n";
-
-
-}
-
-sub checkResponse
-{
- my ($response, $rtime, $sp_behavior) = @_;
- my @header=split(/\r/,$response);
- my $tstring=$header[0];
- my $rcode=getResponseCode($response);
- if (!$sp_behavior){
- #in this case, we want to see if the SIP-server is respoding positively to our request
- # Some SUT respond with 100 Trying - assume everything is OK if we get this
- if ($response =~ /^SIP.+[12]00/){
- print "$tstring, $rtime seconds response time|rtt=".$rtime."s;0.5s;1s;0:10; code=".$rcode."\n";
-