From 0ee5c8a24b4ea596ebed315270430dc69af2bcb9 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 10 May 2011 14:57:35 +0200 Subject: fixed minor fuckup(refactoring error),logging --- modules/people/src/arping.py | 4 +++- modules/people/src/arping_users.py | 13 ++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) (limited to 'modules') diff --git a/modules/people/src/arping.py b/modules/people/src/arping.py index 6c040969..eea176e0 100755 --- a/modules/people/src/arping.py +++ b/modules/people/src/arping.py @@ -2,6 +2,8 @@ import logging log = logging.getLogger('arpingy') +logging.disable(logging.WARNING) + import os,sys try: if (os.geteuid() != 0): @@ -12,7 +14,7 @@ try: log.debug("pinging "+ str(iprange)) """Arping function takes IP Address or Network, returns nested mac/ip list""" try: - conf.verb=0 + conf.verb=1 ans,unans=arping(iprange,iface=iface,timeout=1,retry=3) collection = [] diff --git a/modules/people/src/arping_users.py b/modules/people/src/arping_users.py index 1f936eba..d6f6826e 100755 --- a/modules/people/src/arping_users.py +++ b/modules/people/src/arping_users.py @@ -1,15 +1,14 @@ #!/usr/bin/python -from arping import arpingy import subprocess,re,logging + +from arping import arpingy from multiprocessing import Pool -logging.basicConfig(level=logging.ERROR) DEV='eth0' MAC_NAMES='mac_names.lst' data = [] ret = {} -names = load_names(FNAME) - +exit (0) def get_own_addr(): data = subprocess.Popen(['/sbin/ifconfig',DEV], stdout=subprocess.PIPE).communicate()[0].replace('\n','') @@ -20,9 +19,8 @@ def load_names(MAC_NAMES): names = {} f = open(MAC_NAMES) for l in f: - print l mac,name = l.split() - names[mac] = name + names[mac] = name.replace('\n','') f.close() return names @@ -33,6 +31,7 @@ for first in range(3): for second in range(255): data.append({'iprange':'10.42.'+str(first)+'.'+str(second),'iface':DEV}) +names = load_names(MAC_NAMES) try: p = Pool(20) ret = filter(lambda x:x , p.map(arping_helper, data)) @@ -46,4 +45,4 @@ except: for p in ret: if p[1] in names: - print name + " is online" + print names[p[1]]+ " is online" -- cgit v1.2.3 From d4678ed9d0ca86c4e5e4ba43cdc5f5ff0fc2d004 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 17 May 2011 23:03:36 +0200 Subject: bigeyed: initial commit --- modules/bigeye/bigeyed | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100755 modules/bigeye/bigeyed (limited to 'modules') diff --git a/modules/bigeye/bigeyed b/modules/bigeye/bigeyed new file mode 100755 index 00000000..a1d558eb --- /dev/null +++ b/modules/bigeye/bigeyed @@ -0,0 +1,68 @@ +#! /bin/sh +# +# usage: bigeyed +# + +set -euf + +mkdir -vp /tmp/bigeye +cd /tmp/bigeye + +cleanup() { + test -n "$spid" && kill -9 $spid && spid= +} + +#python -m http.server 3 & server=$! +python -m SimpleHTTPServer 3 & spid=$? +trap cleanup EXIT HUP INT QUIT TERM + +base64 -d>favicon.ico</dev/null 2>/dev/null + #convert -brightness-contrast 20x10 00000001.jpg 00000002.jpg + mv 00000001.jpg index.jpg + cat>00000001.html< + + + $hostname's bigeye +

$date

+

ZOMBIECANCER

+EOF + mv 00000001.html index.html +} + +while blink; do + sleep 1 +done + -- cgit v1.2.3 From 9217fe6187b86a7bbf3406737c5fdfa2265d591a Mon Sep 17 00:00:00 2001 From: krebs Date: Tue, 17 May 2011 23:10:00 +0200 Subject: bigeyed: hostname w/o -f --- modules/bigeye/bigeyed | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'modules') diff --git a/modules/bigeye/bigeyed b/modules/bigeye/bigeyed index a1d558eb..92ae9cf4 100755 --- a/modules/bigeye/bigeyed +++ b/modules/bigeye/bigeyed @@ -35,7 +35,7 @@ EOF device="/dev/`cd /sys/class/video4linux && ls | head -n 1`" -hostname="`hostname -f`" +hostname="`hostname`" blink() { date="`date --rfc-3339=s`" echo $date -- cgit v1.2.3 From 0aafbf8fd8a4bda29f0f9bb2346b38efa6333adb Mon Sep 17 00:00:00 2001 From: krebs Date: Tue, 17 May 2011 23:12:58 +0200 Subject: bigeyed: find device every blink --- modules/bigeye/bigeyed | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'modules') diff --git a/modules/bigeye/bigeyed b/modules/bigeye/bigeyed index 92ae9cf4..beb96b7c 100755 --- a/modules/bigeye/bigeyed +++ b/modules/bigeye/bigeyed @@ -33,12 +33,11 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== EOF -device="/dev/`cd /sys/class/video4linux && ls | head -n 1`" - hostname="`hostname`" blink() { date="`date --rfc-3339=s`" echo $date + device="/dev/`cd /sys/class/video4linux && ls | head -n 1`" mplayer -frames 1 -quiet \ -vo jpeg \ -tv driver=v4l2:device=$device:width=640:height=480 \ -- cgit v1.2.3 From 023130e949d6287404c80e4e4fc75e417743af33 Mon Sep 17 00:00:00 2001 From: krebs Date: Tue, 17 May 2011 23:36:50 +0200 Subject: bigeyed: utart needs 3 frames to initialize --- modules/bigeye/bigeyed | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'modules') diff --git a/modules/bigeye/bigeyed b/modules/bigeye/bigeyed index beb96b7c..c246c872 100755 --- a/modules/bigeye/bigeyed +++ b/modules/bigeye/bigeyed @@ -37,13 +37,14 @@ hostname="`hostname`" blink() { date="`date --rfc-3339=s`" echo $date + # nobody will ever need more than 3 frames to initialize! + frame=4 device="/dev/`cd /sys/class/video4linux && ls | head -n 1`" - mplayer -frames 1 -quiet \ + mplayer -frames $frame -quiet \ -vo jpeg \ - -tv driver=v4l2:device=$device:width=640:height=480 \ - tv:// 1>/dev/null 2>/dev/null - #convert -brightness-contrast 20x10 00000001.jpg 00000002.jpg - mv 00000001.jpg index.jpg + -tv driver=v4l2:device=$device \ + tv:// #1>/dev/null 2>/dev/null + mv 0000000$frame.jpg index.jpg cat>00000001.html< -- cgit v1.2.3 From 480369116a4d1c561152e0a183573d7ff80219ae Mon Sep 17 00:00:00 2001 From: krebs Date: Wed, 18 May 2011 14:06:35 +0200 Subject: initial commot of monitoring module --- modules/Monitoring/Makefile | 3 +++ modules/Monitoring/htdocs/images/logos/base/krebs.png | Bin 0 -> 323 bytes modules/Monitoring/htdocs/images/logos/logos/krebs.png | Bin 0 -> 323 bytes modules/Monitoring/krebs.png | Bin 0 -> 323 bytes 4 files changed, 3 insertions(+) create mode 100644 modules/Monitoring/Makefile create mode 100644 modules/Monitoring/htdocs/images/logos/base/krebs.png create mode 100644 modules/Monitoring/htdocs/images/logos/logos/krebs.png create mode 100644 modules/Monitoring/krebs.png (limited to 'modules') diff --git a/modules/Monitoring/Makefile b/modules/Monitoring/Makefile new file mode 100644 index 00000000..b153c8eb --- /dev/null +++ b/modules/Monitoring/Makefile @@ -0,0 +1,3 @@ +debian: + apt-get install nagios + cp -r htdocs /usr/share/nagios diff --git a/modules/Monitoring/htdocs/images/logos/base/krebs.png b/modules/Monitoring/htdocs/images/logos/base/krebs.png new file mode 100644 index 00000000..3d8a8ab8 Binary files /dev/null and b/modules/Monitoring/htdocs/images/logos/base/krebs.png differ diff --git a/modules/Monitoring/htdocs/images/logos/logos/krebs.png b/modules/Monitoring/htdocs/images/logos/logos/krebs.png new file mode 100644 index 00000000..3d8a8ab8 Binary files /dev/null and b/modules/Monitoring/htdocs/images/logos/logos/krebs.png differ diff --git a/modules/Monitoring/krebs.png b/modules/Monitoring/krebs.png new file mode 100644 index 00000000..3d8a8ab8 Binary files /dev/null and b/modules/Monitoring/krebs.png differ -- cgit v1.2.3 From 7f7d831d23d433c9c85ce2ac7a49763a64f01730 Mon Sep 17 00:00:00 2001 From: krebs Date: Wed, 18 May 2011 18:12:15 +0200 Subject: added initial tinc monitoring Makefile: makefile now handles changed folder structure conf - all nagios config files htdocs - all additional static content (logos for krebs and tinc) plugins - all new nagios plugins conf/* addition of tinc hots as well as tinc-hosts group and krebsnet now has sharepoint and supernode in the queue htdocs/* added logos for tinc, as well as gd2 for the tree --- modules/Monitoring/Makefile | 8 ++- modules/Monitoring/conf/hostgroups_nagios2.cfg | 31 +++++++++++ modules/Monitoring/conf/krebsnet.cfg | 14 +++++ modules/Monitoring/conf/localhost.cfg | 60 +++++++++++++++++++++ modules/Monitoring/conf/tinc_hosts.cfg | 20 +++++++ modules/Monitoring/conf/tincnet.cfg | 27 ++++++++++ .../Monitoring/htdocs/images/logos/base/krebs.png | Bin 323 -> 0 bytes .../htdocs/images/logos/krebs/favicon.ico | Bin 0 -> 822 bytes .../Monitoring/htdocs/images/logos/krebs/krebs.gd2 | Bin 0 -> 1047 bytes .../Monitoring/htdocs/images/logos/krebs/krebs.png | Bin 0 -> 323 bytes .../Monitoring/htdocs/images/logos/krebs/tinc.gd2 | Bin 0 -> 1305 bytes .../Monitoring/htdocs/images/logos/krebs/tinc.png | Bin 0 -> 361 bytes .../Monitoring/htdocs/images/logos/logos/krebs.png | Bin 323 -> 0 bytes modules/Monitoring/krebs.png | Bin 323 -> 0 bytes 14 files changed, 158 insertions(+), 2 deletions(-) create mode 100644 modules/Monitoring/conf/hostgroups_nagios2.cfg create mode 100644 modules/Monitoring/conf/krebsnet.cfg create mode 100644 modules/Monitoring/conf/localhost.cfg create mode 100644 modules/Monitoring/conf/tinc_hosts.cfg create mode 100644 modules/Monitoring/conf/tincnet.cfg delete mode 100644 modules/Monitoring/htdocs/images/logos/base/krebs.png create mode 100644 modules/Monitoring/htdocs/images/logos/krebs/favicon.ico create mode 100644 modules/Monitoring/htdocs/images/logos/krebs/krebs.gd2 create mode 100644 modules/Monitoring/htdocs/images/logos/krebs/krebs.png create mode 100644 modules/Monitoring/htdocs/images/logos/krebs/tinc.gd2 create mode 100644 modules/Monitoring/htdocs/images/logos/krebs/tinc.png delete mode 100644 modules/Monitoring/htdocs/images/logos/logos/krebs.png delete mode 100644 modules/Monitoring/krebs.png (limited to 'modules') diff --git a/modules/Monitoring/Makefile b/modules/Monitoring/Makefile index b153c8eb..89e89c69 100644 --- a/modules/Monitoring/Makefile +++ b/modules/Monitoring/Makefile @@ -1,3 +1,7 @@ +.phony: debian debian: - apt-get install nagios - cp -r htdocs /usr/share/nagios + [ `which nagios3` ] || apt-get install nagios + 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/conf/hostgroups_nagios2.cfg b/modules/Monitoring/conf/hostgroups_nagios2.cfg new file mode 100644 index 00000000..63acbf50 --- /dev/null +++ b/modules/Monitoring/conf/hostgroups_nagios2.cfg @@ -0,0 +1,31 @@ +# 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/krebsnet.cfg b/modules/Monitoring/conf/krebsnet.cfg new file mode 100644 index 00000000..211ed76a --- /dev/null +++ b/modules/Monitoring/conf/krebsnet.cfg @@ -0,0 +1,14 @@ +## 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 + } diff --git a/modules/Monitoring/conf/localhost.cfg b/modules/Monitoring/conf/localhost.cfg new file mode 100644 index 00000000..3b098195 --- /dev/null +++ b/modules/Monitoring/conf/localhost.cfg @@ -0,0 +1,60 @@ +# 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/tinc_hosts.cfg b/modules/Monitoring/conf/tinc_hosts.cfg new file mode 100644 index 00000000..03cfcc41 --- /dev/null +++ b/modules/Monitoring/conf/tinc_hosts.cfg @@ -0,0 +1,20 @@ + +# +# Miefda Supernode +# +define host{ + use generic-host + host_name miefda.org + alias Supernode External + _TINC_ADDRESS 10.7.7.1 + hostgroups tinc-nodes,ssh-servers + } + +define host{ + use generic-host + host_name pa-sharepoint.informatik.ba-stuttgart.de + alias PA Sharepoint + address 141.31.8.11 + _TINC_ADDRESS 10.7.7.5 + hostgroups tinc-nodes,ssh-servers + } diff --git a/modules/Monitoring/conf/tincnet.cfg b/modules/Monitoring/conf/tincnet.cfg new file mode 100644 index 00000000..d63119b3 --- /dev/null +++ b/modules/Monitoring/conf/tincnet.cfg @@ -0,0 +1,27 @@ +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 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/base/krebs.png b/modules/Monitoring/htdocs/images/logos/base/krebs.png deleted file mode 100644 index 3d8a8ab8..00000000 Binary files a/modules/Monitoring/htdocs/images/logos/base/krebs.png and /dev/null differ diff --git a/modules/Monitoring/htdocs/images/logos/krebs/favicon.ico b/modules/Monitoring/htdocs/images/logos/krebs/favicon.ico new file mode 100644 index 00000000..fa18384c Binary files /dev/null and b/modules/Monitoring/htdocs/images/logos/krebs/favicon.ico differ diff --git a/modules/Monitoring/htdocs/images/logos/krebs/krebs.gd2 b/modules/Monitoring/htdocs/images/logos/krebs/krebs.gd2 new file mode 100644 index 00000000..1113f03e Binary files /dev/null and b/modules/Monitoring/htdocs/images/logos/krebs/krebs.gd2 differ diff --git a/modules/Monitoring/htdocs/images/logos/krebs/krebs.png b/modules/Monitoring/htdocs/images/logos/krebs/krebs.png new file mode 100644 index 00000000..3d8a8ab8 Binary files /dev/null and b/modules/Monitoring/htdocs/images/logos/krebs/krebs.png differ diff --git a/modules/Monitoring/htdocs/images/logos/krebs/tinc.gd2 b/modules/Monitoring/htdocs/images/logos/krebs/tinc.gd2 new file mode 100644 index 00000000..36572d4a Binary files /dev/null and b/modules/Monitoring/htdocs/images/logos/krebs/tinc.gd2 differ diff --git a/modules/Monitoring/htdocs/images/logos/krebs/tinc.png b/modules/Monitoring/htdocs/images/logos/krebs/tinc.png new file mode 100644 index 00000000..daa1fdeb Binary files /dev/null and b/modules/Monitoring/htdocs/images/logos/krebs/tinc.png differ diff --git a/modules/Monitoring/htdocs/images/logos/logos/krebs.png b/modules/Monitoring/htdocs/images/logos/logos/krebs.png deleted file mode 100644 index 3d8a8ab8..00000000 Binary files a/modules/Monitoring/htdocs/images/logos/logos/krebs.png and /dev/null differ diff --git a/modules/Monitoring/krebs.png b/modules/Monitoring/krebs.png deleted file mode 100644 index 3d8a8ab8..00000000 Binary files a/modules/Monitoring/krebs.png and /dev/null differ -- cgit v1.2.3 From fcec78c5b4a4cad7218cf4788019c6205fa757b9 Mon Sep 17 00:00:00 2001 From: krebs Date: Thu, 19 May 2011 03:26:40 +0200 Subject: added whole shack-RZ, tinc nodes krebs_hosts.cfg: added vhosts added parent relationships shack_infrastructure.cfg: added whole RZ (was using nmap for enum) tinc_hosts: added parents relationship logos: added shack logo --- modules/Monitoring/conf/krebs_hosts.cfg | 67 +++++++++++ modules/Monitoring/conf/shack_infrastructure.cfg | 134 +++++++++++++++++++++ modules/Monitoring/conf/tinc_hosts.cfg | 24 +++- .../Monitoring/htdocs/images/logos/krebs/shack.gd2 | Bin 0 -> 1047 bytes .../Monitoring/htdocs/images/logos/krebs/shack.png | Bin 0 -> 316 bytes 5 files changed, 222 insertions(+), 3 deletions(-) create mode 100644 modules/Monitoring/conf/krebs_hosts.cfg create mode 100644 modules/Monitoring/conf/shack_infrastructure.cfg create mode 100644 modules/Monitoring/htdocs/images/logos/krebs/shack.gd2 create mode 100644 modules/Monitoring/htdocs/images/logos/krebs/shack.png (limited to 'modules') diff --git a/modules/Monitoring/conf/krebs_hosts.cfg b/modules/Monitoring/conf/krebs_hosts.cfg new file mode 100644 index 00000000..c52c6924 --- /dev/null +++ b/modules/Monitoring/conf/krebs_hosts.cfg @@ -0,0 +1,67 @@ + +# +# 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-router + hostgroups krebs-machines,tinc-nodes,ssh-servers + } +# +# UTART +# +define host{ + use generic-host + host_name utart.shack + alias UTART + _tinc_address 10.7.7.66 + address 10.42.2.238 + parents shack-router + hostgroups krebs-machines,tinc-nodes,ssh-servers + } +# +# ytart +# +define host{ + use generic-host + host_name ytart.shack + alias ytart + _tinc_address 10.7.7.201 + parents shack-router + address 10.42.2.254 #TODO check me + 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-vplatform + 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-vplatform + hostgroups ssh-servers,shack-rz + #,tinc-nodes,krebs-machines + } diff --git a/modules/Monitoring/conf/shack_infrastructure.cfg b/modules/Monitoring/conf/shack_infrastructure.cfg new file mode 100644 index 00000000..53bc688b --- /dev/null +++ b/modules/Monitoring/conf/shack_infrastructure.cfg @@ -0,0 +1,134 @@ +# + +define hostgroup { + hostgroup_name shack-rz + alias Shack RZ Infrastructure + } +define hostextinfo{ + hostgroup_name shack-rz + notes Shack RZ Infrastructure +# notes_url http://webserver.localhost.localdomain/hostinfo.pl?host=netware1 + icon_image krebs/shack.png + icon_image_alt shack-RZ + vrml_image shack.png + statusmap_image krebs/shack.gd2 + } +# +# Shack Virtual Machine Hoster Platform +# +define host{ + use generic-host + host_name shack-vplatform + alias Shack Virtualization Server + address node0.shack + parents shack-router + hostgroups shack-rz,ssh-servers + } +define host{ + use generic-host + host_name shack-router + alias Shack Cisco Router + address 10.42.0.3 + hostgroups shack-rz,ssh-servers + } + +define host{ + use generic-host + host_name shack-plattenschwein + parents shack-router + alias Shack Plattenschwein + address plattenschwein.shack + hostgroups shack-rz,ssh-servers + } + + +# +# Shack DNS Server +# + +define host{ + use generic-host + host_name shack-dns + parents shack-vplatform + alias Shack DNS Virtual Host + address dns.shack + hostgroups shack-rz + } +define service { + host_name shack-dns + service_description DNS Service + use generic-service + check_command check_dns + } + +define host{ + use generic-host + host_name shack-pxe + parents shack-vplatform + alias Shack PXEBoot Vhost + address pxeboot.shack + hostgroups shack-rz + } +define host{ + use generic-host + host_name shack-printsrv + parents shack-vplatform + alias Shack Print Server + address printer.shack + hostgroups shack-rz + } + +define host{ + use generic-host + host_name shack-aptproxy + parents shack-vplatform + alias Shack Apt-proxy + address aptproxy.shack + hostgroups shack-rz + } + +define host{ + use generic-host + host_name shack-shack + parents shack-vplatform + 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-vplatform + 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!shack + } + +# +# Shack gateway +# +define host{ + use generic-host + host_name shack-gw + parents shack-router + alias Watchguard Shack Gateway + address 10.42.0.1 + hostgroups shack-rz,ssh-servers + } +define service { + host_name shack-gw + service_description DNS Service + use generic-service + check_command check_dns + } + diff --git a/modules/Monitoring/conf/tinc_hosts.cfg b/modules/Monitoring/conf/tinc_hosts.cfg index 03cfcc41..ef2cb95d 100644 --- a/modules/Monitoring/conf/tinc_hosts.cfg +++ b/modules/Monitoring/conf/tinc_hosts.cfg @@ -1,20 +1,38 @@ +#connection will not work if no internet is available (e.g. no shack-gateway) # # Miefda Supernode # define host{ use generic-host - host_name miefda.org + host_name supernode alias Supernode External _TINC_ADDRESS 10.7.7.1 + address miefda.org + parents shack-gw hostgroups tinc-nodes,ssh-servers } - +# +# Sharepoint (dhbw-stuttgart) +# define host{ use generic-host - host_name pa-sharepoint.informatik.ba-stuttgart.de + host_name sharepoint alias PA Sharepoint address 141.31.8.11 _TINC_ADDRESS 10.7.7.5 + parents shack-gw 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-gw + hostgroups tinc-nodes,ssh-servers,http-servers + } diff --git a/modules/Monitoring/htdocs/images/logos/krebs/shack.gd2 b/modules/Monitoring/htdocs/images/logos/krebs/shack.gd2 new file mode 100644 index 00000000..8b0d98e5 Binary files /dev/null and b/modules/Monitoring/htdocs/images/logos/krebs/shack.gd2 differ diff --git a/modules/Monitoring/htdocs/images/logos/krebs/shack.png b/modules/Monitoring/htdocs/images/logos/krebs/shack.png new file mode 100644 index 00000000..53f1275b Binary files /dev/null and b/modules/Monitoring/htdocs/images/logos/krebs/shack.png differ -- cgit v1.2.3 From a9958ed5030619d9dae5ac34ab13e4da1a9a49c9 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 19 May 2011 14:28:42 +0200 Subject: Hotfix for broken package name in Makefile for Nagios --- modules/Monitoring/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'modules') diff --git a/modules/Monitoring/Makefile b/modules/Monitoring/Makefile index 89e89c69..2d837b43 100644 --- a/modules/Monitoring/Makefile +++ b/modules/Monitoring/Makefile @@ -1,6 +1,6 @@ .phony: debian debian: - [ `which nagios3` ] || apt-get install nagios + [ `which nagios3` ] || apt-get install nagios3 cp -r conf/* /etc/nagios3/conf.d/ cp -R htdocs/* /usr/share/nagios3/htdocs/ cp -r plugins /usr/lib/nagios -- cgit v1.2.3 From a780c084808b707cd220729eea851b896c3310dc Mon Sep 17 00:00:00 2001 From: krebs Date: Sun, 22 May 2011 01:36:58 +0200 Subject: updated Nagios config scripts krebs_hosts: changed paths for utart/ytart shack_infrastructure: added script to check if local dns is working tinc_hosts: added IRC check for supernode tincnet: added IRC check command --- modules/Monitoring/conf/krebs_hosts.cfg | 8 ++++---- modules/Monitoring/conf/shack_infrastructure.cfg | 8 ++++++-- modules/Monitoring/conf/tinc_hosts.cfg | 9 ++++++++- modules/Monitoring/conf/tincnet.cfg | 4 ++++ 4 files changed, 22 insertions(+), 7 deletions(-) (limited to 'modules') diff --git a/modules/Monitoring/conf/krebs_hosts.cfg b/modules/Monitoring/conf/krebs_hosts.cfg index c52c6924..6857cd45 100644 --- a/modules/Monitoring/conf/krebs_hosts.cfg +++ b/modules/Monitoring/conf/krebs_hosts.cfg @@ -16,10 +16,10 @@ define host{ # define host{ use generic-host - host_name utart.shack + host_name utart alias UTART _tinc_address 10.7.7.66 - address 10.42.2.238 + address 10.42.23.23 parents shack-router hostgroups krebs-machines,tinc-nodes,ssh-servers } @@ -28,11 +28,11 @@ define host{ # define host{ use generic-host - host_name ytart.shack + host_name ytart alias ytart _tinc_address 10.7.7.201 parents shack-router - address 10.42.2.254 #TODO check me + address 10.42.1.227 hostgroups krebs-machines,tinc-nodes,ssh-servers } # diff --git a/modules/Monitoring/conf/shack_infrastructure.cfg b/modules/Monitoring/conf/shack_infrastructure.cfg index 53bc688b..2b75a241 100644 --- a/modules/Monitoring/conf/shack_infrastructure.cfg +++ b/modules/Monitoring/conf/shack_infrastructure.cfg @@ -58,7 +58,11 @@ define service { host_name shack-dns service_description DNS Service use generic-service - check_command check_dns + check_command check_dns_shack + } +define command { + command_name check_dns_shack + command_line /usr/lib/nagios/plugins/check_dns -H shack.shack -s '$HOSTADDRESS$' } define host{ @@ -111,7 +115,7 @@ define service { host_name shack-ldap service_description LDAP Service use generic-service - check_command check_ldap!shack + check_command check_ldap!shammunity } # diff --git a/modules/Monitoring/conf/tinc_hosts.cfg b/modules/Monitoring/conf/tinc_hosts.cfg index ef2cb95d..4b1ad9ab 100644 --- a/modules/Monitoring/conf/tinc_hosts.cfg +++ b/modules/Monitoring/conf/tinc_hosts.cfg @@ -10,7 +10,14 @@ define host{ _TINC_ADDRESS 10.7.7.1 address miefda.org parents shack-gw - hostgroups tinc-nodes,ssh-servers + 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) diff --git a/modules/Monitoring/conf/tincnet.cfg b/modules/Monitoring/conf/tincnet.cfg index d63119b3..f0b35b4e 100644 --- a/modules/Monitoring/conf/tincnet.cfg +++ b/modules/Monitoring/conf/tincnet.cfg @@ -16,6 +16,10 @@ 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 -- cgit v1.2.3 From 951d398e20fdb778289e7dff2350594503dc300f Mon Sep 17 00:00:00 2001 From: krebs Date: Sun, 22 May 2011 01:42:36 +0200 Subject: updated people script, removed bloat from people script collection --- modules/people/Makefile | 6 ++ modules/people/README.md | 11 ++-- modules/people/TODO.md | 3 +- modules/people/arping.py | 37 +++++++++++ modules/people/arping_users.py | 54 ++++++++++++++++ modules/people/bin/run.sh | 5 -- modules/people/conf/example.json | 22 ------- modules/people/mac_names.lst | 1 + modules/people/src/arping.py | 37 ----------- modules/people/src/arping_users.py | 48 --------------- modules/people/src/mac_names.lst | 1 - modules/people/src/main.py | 33 ---------- modules/people/src/snmp_users.py | 122 ------------------------------------- 13 files changed, 104 insertions(+), 276 deletions(-) create mode 100644 modules/people/Makefile create mode 100755 modules/people/arping.py create mode 100755 modules/people/arping_users.py delete mode 100755 modules/people/bin/run.sh delete mode 100644 modules/people/conf/example.json create mode 100644 modules/people/mac_names.lst delete mode 100755 modules/people/src/arping.py delete mode 100755 modules/people/src/arping_users.py delete mode 100644 modules/people/src/mac_names.lst delete mode 100755 modules/people/src/main.py delete mode 100755 modules/people/src/snmp_users.py (limited to 'modules') diff --git a/modules/people/Makefile b/modules/people/Makefile new file mode 100644 index 00000000..2c6c1c03 --- /dev/null +++ b/modules/people/Makefile @@ -0,0 +1,6 @@ +.phony: all + +all: arping.py arping_users.py + echo "call python ./arping_users.py v" +install: + apt-get install python-scapy diff --git a/modules/people/README.md b/modules/people/README.md index d28100d3..e45d39c1 100644 --- a/modules/people/README.md +++ b/modules/people/README.md @@ -1,12 +1,11 @@ -SNMP Users +ARPING Users ========== -asks an snmp-router for its arp-list and tries to verify this list via -ARPING. The snmping is done via snmp-net and command line parsing, -the arping uses 'scapy'. +This is a simplified python script which checks the available subnet for computers online and returns a list of users which are online based on their mac-address -This script needs superuser rights and otherwise will just skip the -verification + +arping_users.py: + call `python arping_users.py v` for verbose output -> print all discovered hosts SNMPWALK Command =============== diff --git a/modules/people/TODO.md b/modules/people/TODO.md index dfefa9a0..daacfd58 100644 --- a/modules/people/TODO.md +++ b/modules/people/TODO.md @@ -1,4 +1,3 @@ BUGS ===== -- an exception is thrown but handled wrong when snmp servers and arping is - unreachable + diff --git a/modules/people/arping.py b/modules/people/arping.py new file mode 100755 index 00000000..1b51ab1b --- /dev/null +++ b/modules/people/arping.py @@ -0,0 +1,37 @@ +#!/usr/bin/python + +import logging +log = logging.getLogger('arpingy') +logging.disable(logging.WARNING) + +import os,sys +try: + if (os.geteuid() != 0): + raise Exception('no root permissions') + from scapy.all import * #might throws "no such module" + + def arpingy(iprange="10.42.1.0/24",iface='eth0'): + log.debug("pinging "+ str(iprange)) + """Arping function takes IP Address or Network, returns nested mac/ip list""" + try: + conf.verb=0 + ans,unans=arping(iprange,iface=iface,timeout=1,retry=3) + + collection = [] + for snd, rcv in ans: + result = rcv.sprintf(r"%ARP.psrc% %Ether.src%").split() + log.debug(result) + return result # take just the first arp reply + except Exception as e: + print ("something went wrong while arpinging " + str(e)) + return [] + +except Exception as e: + log.error("Cannot load arping functions!" + str(e)) + def arpingy(iprange='',iface=''): + raise Exception ('arping not available') + + +if __name__ =='__main__': + logging.basicConfig(level=logging.DEBUG) + arpingy(sys.argv[1],sys.argv[2]) diff --git a/modules/people/arping_users.py b/modules/people/arping_users.py new file mode 100755 index 00000000..c576e4f3 --- /dev/null +++ b/modules/people/arping_users.py @@ -0,0 +1,54 @@ +#!/usr/bin/python +import subprocess,re,logging,sys + +from arping import arpingy +from multiprocessing import Pool +DEV='eth0' +MAC_NAMES='mac_names.lst' +data = [] +ret = {} +verb = False + +if len(sys.argv) > 1 and sys.argv[1] == 'v': + verb = True +def get_own_addr(): + data = subprocess.Popen(['/sbin/ifconfig',DEV], + stdout=subprocess.PIPE).communicate()[0].replace('\n','') + return re.sub(r'.*HWaddr ([0-9A-Fa-f:]*).*inet addr:([0-9.]*).*' , + r'\1 \2',data).split() + +def load_names(MAC_NAMES): + names = {} + f = open(MAC_NAMES) + for l in f: + mac,name = l.split() + names[mac] = name.replace('\n','') + f.close() + return names + +def arping_helper(dic): + return arpingy(**dic) + +for first in range(4): + for second in range(255): + data.append({'iprange':'10.42.'+str(first)+'.'+str(second),'iface':DEV}) + +names = load_names(MAC_NAMES) +try: + p = Pool(20) + ret = filter(lambda x:x , p.map(arping_helper, data)) + myip,mymac = get_own_addr() + ret.append([mymac,myip]) + p.terminate() +except Exception as e: + print 'you fail '+str(e) + + + +for p in ret: + if verb: + print p[0] + " => " + p[1] + if p[1] in names: + print names[p[1]]+ " is online" + + diff --git a/modules/people/bin/run.sh b/modules/people/bin/run.sh deleted file mode 100755 index 6da3d059..00000000 --- a/modules/people/bin/run.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash -echo basedir $0 -BINDIR="`dirname $0`/../src" - -python2 "$BINDIR/main.py" $@ diff --git a/modules/people/conf/example.json b/modules/people/conf/example.json deleted file mode 100644 index f34c20f0..00000000 --- a/modules/people/conf/example.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "snmp_users": { - "amqp": { - "connection": { - "login": "guest", - "password": "guest", - "host": "localhost" - }, - "out": { - "exchange": "snmp_src" - } - }, - "snmp": { - "server": "127.0.0.1", - "community": "community" - }, - "arping": { - "active": true, - "dev": "eth0" - } - } -} diff --git a/modules/people/mac_names.lst b/modules/people/mac_names.lst new file mode 100644 index 00000000..dcd3c2b0 --- /dev/null +++ b/modules/people/mac_names.lst @@ -0,0 +1 @@ +00:40:63:c8:b5:a0 krebs diff --git a/modules/people/src/arping.py b/modules/people/src/arping.py deleted file mode 100755 index eea176e0..00000000 --- a/modules/people/src/arping.py +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/python - -import logging -log = logging.getLogger('arpingy') -logging.disable(logging.WARNING) - -import os,sys -try: - if (os.geteuid() != 0): - raise Exception('no root permissions') - from scapy.all import * #might throws "no such module" - - def arpingy(iprange="10.42.1.0/24",iface='eth0'): - log.debug("pinging "+ str(iprange)) - """Arping function takes IP Address or Network, returns nested mac/ip list""" - try: - conf.verb=1 - ans,unans=arping(iprange,iface=iface,timeout=1,retry=3) - - collection = [] - for snd, rcv in ans: - result = rcv.sprintf(r"%ARP.psrc% %Ether.src%").split() - log.debug(result) - return result # take just the first arp reply - except Exception as e: - print ("something went wrong while arpinging " + str(e)) - return [] - -except Exception as e: - log.error("Cannot load arping functions!" + str(e)) - def arpingy(iprange='',iface=''): - raise Exception ('arping not available') - - -if __name__ =='__main__': - logging.basicConfig(level=logging.DEBUG) - arpingy(sys.argv[1],sys.argv[2]) diff --git a/modules/people/src/arping_users.py b/modules/people/src/arping_users.py deleted file mode 100755 index d6f6826e..00000000 --- a/modules/people/src/arping_users.py +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/python -import subprocess,re,logging - -from arping import arpingy -from multiprocessing import Pool - -DEV='eth0' -MAC_NAMES='mac_names.lst' -data = [] -ret = {} -exit (0) -def get_own_addr(): - data = subprocess.Popen(['/sbin/ifconfig',DEV], - stdout=subprocess.PIPE).communicate()[0].replace('\n','') - return re.sub(r'.*HWaddr ([0-9A-Fa-f:]*).*inet addr:([0-9.]*).*' , - r'\1 \2',data).split() - -def load_names(MAC_NAMES): - names = {} - f = open(MAC_NAMES) - for l in f: - mac,name = l.split() - names[mac] = name.replace('\n','') - f.close() - return names - -def arping_helper(dic): - return arpingy(**dic) - -for first in range(3): - for second in range(255): - data.append({'iprange':'10.42.'+str(first)+'.'+str(second),'iface':DEV}) - -names = load_names(MAC_NAMES) -try: - p = Pool(20) - ret = filter(lambda x:x , p.map(arping_helper, data)) - myip,mymac = get_own_addr() - ret.append([mymac,myip]) - p.terminate() -except: - print 'you fail' - - - -for p in ret: - if p[1] in names: - print names[p[1]]+ " is online" diff --git a/modules/people/src/mac_names.lst b/modules/people/src/mac_names.lst deleted file mode 100644 index dcd3c2b0..00000000 --- a/modules/people/src/mac_names.lst +++ /dev/null @@ -1 +0,0 @@ -00:40:63:c8:b5:a0 krebs diff --git a/modules/people/src/main.py b/modules/people/src/main.py deleted file mode 100755 index c70bffd4..00000000 --- a/modules/people/src/main.py +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env python2 -import sys,json,time -from snmp_users import snmp_users -import logging -import genericore as gen -MODULE_NAME='snmp_users' -log = logging.getLogger(MODULE_NAME) -PROTO_VERSION = 1 -DESCRIPTION = 'performes statistical analysis against mails from stream' - - -# set up instances of needed modules -conf = gen.Configurator(PROTO_VERSION,DESCRIPTION) -amqp = gen.auto_amqp(MODULE_NAME) -s = snmp_users(MODULE_NAME) # the magic mail parsing class - -conf.configure([amqp,s]) #set up parser and eval parsed stuff - -# start network connections -amqp.create_connection() - -log.info('Starting up snmp_users') -print ' Sending Messages in Intervals. To exit press CTRL+C' -try: - while True: - log.info("collecting data from network") - ret = s.collect() - data = { 'type' : 'snmp', 'subtype' : 0, 'data' : ret} - log.debug("writing data to queue : %s" % data) - amqp.publish(json.dumps(data)) - time.sleep(s.repeat) -except Exception as e: - print "something happened :( " + str(e) diff --git a/modules/people/src/snmp_users.py b/modules/people/src/snmp_users.py deleted file mode 100755 index 871ed9dd..00000000 --- a/modules/people/src/snmp_users.py +++ /dev/null @@ -1,122 +0,0 @@ -#!/usr/bin/python2 - -import logging, subprocess,re -from multiprocessing import Pool -from genericore import Configurable -from arping import arpingy -log = logging.getLogger('snmp_users') - -DEFAULT_CONFIG= { - "snmp" : { - "server" : "127.0.0.1", - "community" : "community", - "tree" : "1.3.6.1.2.1.3.1.1.2" - }, - "arping" : { - "active" : True, - "dev" : "eth0" - } -} - -def arping_helper(dic): - return arpingy(**dic) - -class snmp_users(Configurable): - mac_list = {} - - def __init__(self,MODULE_NAME,config=None): - self.NAME=MODULE_NAME - newConf = { MODULE_NAME : DEFAULT_CONFIG } - Configurable.__init__(self,newConf) - self.load_conf(config) - - def call_external(self): - """returns an array of lines produced by snmpwalk """ - conf = self.config[self.NAME]['snmp'] - - out = subprocess.Popen( - ['snmpwalk', - '-v2c', - '-c',conf['community'], - conf['server'], - conf['tree']], - stdout=subprocess.PIPE).communicate()[0] - return out.split('\n') - - def parse_output(self,output): - """ parses output lines produced by snmpwalk """ - data = [] - for i in output: - if i == '': - continue - data.append(re.sub(r'.*\.(\d+\.\d+\.\d+\.\d+) = Hex-STRING: ([ 0-9A-F]*) ', r'\1 : \2',i).split(' : ')) - data = [ [ip,':'.join(mac.split()).lower()] for ip,mac in data] #sanitize - - return data - - def update_results(self,new): - """ Verifies ip and mac via ARP Scan - in addition it adds the correct ip to the mac_list """ - macl = self.mac_list = {} - for ip,mac in new: # fill the mac_list - if not macl.get(mac,None): - macl[mac] = [] - macl[mac].append(ip) - return True - - def verify(self,snmp_data): - """ verifies retrieved data where data is an array of arrays where - [0] is the ip and [1] is the mac (space-delimited)""" - arp_data = self.arping_parallel(snmp_data) - self.update_results(arp_data) - - def get_own_addr(self): - data = subprocess.Popen(['/sbin/ifconfig',self.config[self.NAME]['arping']['dev']], - stdout=subprocess.PIPE).communicate()[0].replace('\n','') - return re.sub(r'.*HWaddr ([0-9:A-F]*).*inet addr:([0-9.]*).*' ,r'\1 \2',data).split() - - - def arping_parallel(self,data): - conf = self.config[self.NAME]['arping'] - if conf['active']: - tmp = [ {'iprange':dat[0],'iface':conf['dev']} for dat in data] - try: - p = Pool(10) - ret = filter(lambda x:x , p.map(arping_helper, tmp)) - - myip,mymac = self.get_own_addr() #append self to list - ret.append([mymac,myip ] ) - p.terminate() - return ret - except Exception as e: - log.warning("Something happened,falling back to original data: "+ str(e)) - return data - - def collect(self): - output = self.call_external() - data = self.parse_output(output) - if not data: - raise Exception('External tool had not returned any parsable output') - log.debug('Got following output from snmpwalk program: ' +str(data)) - macs = self.verify(data) - #self.print_results(self.mac_list) - return self.mac_list - - def print_results(self,macs): - log.debug('printing results:') - print '\n'.join([ mac + " => %s" % - str(ips) for mac,ips in macs.items() ]) - print '%d *unique* nodes in network' % len(macs) - - def populate_parser(self,parser): - parser.add_argument('--repeat',type=int,dest='repeat',default=30,help='Seconds between Scans',metavar='SECS') #TODO add this to configuration - - def eval_parser(self,parsed): - self.repeat = parsed.repeat - -if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) - a = snmp_users() - print a.get_own_addr() - a.collect() - a.print_results(a.mac_list) -- cgit v1.2.3