How beauteous mankind is! O brave new world

This commit is contained in:
Stephen Smoogen 2017-06-26 19:03:03 +00:00
parent 1a79d90fbc
commit 68e2a472b3
703 changed files with 26 additions and 18065 deletions

View File

@ -443,10 +443,7 @@ iddev.fedorainfracloud.org
[dhcp]
dhcp01.phx2.fedoraproject.org
#[nagios]
#noc02.fedoraproject.org
[nagios-new]
[nagios]
noc01.phx2.fedoraproject.org
noc02.fedoraproject.org

View File

@ -1,74 +0,0 @@
# This is a basic playbook
- include: "/srv/web/infra/ansible/playbooks/include/virt-create.yml myhosts=nagios-new"
- name: make the box be real
hosts: nagios-new
user: root
gather_facts: True
vars_files:
- /srv/web/infra/ansible/vars/global.yml
- "/srv/private/ansible/vars.yml"
- /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
pre_tasks:
- include: "{{ tasks_path }}/yumrepos.yml"
roles:
- base
- rkhunter
- nagios_client
- hosts
- fas_client
- collectd/base
- { role: rsyncd, when: datacenter == 'phx2' }
- sudo
- { role: openvpn/client,
when: env != "staging" }
- mod_wsgi
- role: keytab/service
owner_user: apache
owner_group: apache
service: HTTP
host: "nagios{{env_suffix}}.fedoraproject.org"
when: datacenter == 'phx2'
- role: keytab/service
owner_user: apache
owner_group: apache
service: HTTP
host: "nagios-external{{env_suffix}}.fedoraproject.org"
when: datacenter != 'phx2'
tasks:
- include: "{{ tasks_path }}/2fa_client.yml"
- include: "{{ tasks_path }}/motd.yml"
handlers:
- include: "{{ handlers_path }}/restart_services.yml"
- name: deploy service-specific config (just for production)
hosts: nagios-new
user: root
gather_facts: True
vars_files:
- /srv/web/infra/ansible/vars/global.yml
- "/srv/private/ansible/vars.yml"
- /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
handlers:
- include: "{{ handlers_path }}/restart_services.yml"
roles:
- { role: dhcp_server, when: datacenter == 'phx2' }
- { role: tftp_server, when: datacenter == 'phx2' }
- nagios_server
- fedmsg/base
tasks:
- name: install some packages which arent in playbooks
yum: pkg={{ item }} state=present
with_items:
- nmap
- tcpdump

View File

@ -1,3 +1,4 @@
# This is a basic playbook
- include: "/srv/web/infra/ansible/playbooks/include/virt-create.yml myhosts=nagios"
- name: make the box be real
@ -10,6 +11,9 @@
- "/srv/private/ansible/vars.yml"
- /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
pre_tasks:
- include: "{{ tasks_path }}/yumrepos.yml"
roles:
- base
- rkhunter
@ -26,11 +30,17 @@
owner_user: apache
owner_group: apache
service: HTTP
host: "admin.fedoraproject.org"
when: env == "production"
host: "nagios{{env_suffix}}.fedoraproject.org"
when: datacenter == 'phx2'
- role: keytab/service
owner_user: apache
owner_group: apache
service: HTTP
host: "nagios-external{{env_suffix}}.fedoraproject.org"
when: datacenter != 'phx2'
tasks:
- include: "{{ tasks_path }}/yumrepos.yml"
- include: "{{ tasks_path }}/2fa_client.yml"
- include: "{{ tasks_path }}/motd.yml"
@ -46,7 +56,6 @@
- /srv/web/infra/ansible/vars/global.yml
- "/srv/private/ansible/vars.yml"
- /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
- "/srv/web/infra/ansible/vars/nagios.{{ inventory_hostname_short }}.yml"
handlers:
- include: "{{ handlers_path }}/restart_services.yml"
@ -54,5 +63,12 @@
roles:
- { role: dhcp_server, when: datacenter == 'phx2' }
- { role: tftp_server, when: datacenter == 'phx2' }
- nagios/server
- nagios_server
- fedmsg/base
tasks:
- name: install some packages which arent in playbooks
yum: pkg={{ item }} state=present
with_items:
- nmap
- tcpdump

View File

@ -166,10 +166,6 @@ syncHttpLogs {{host}} old
syncHttpLogs {{host}}
{% endfor %}
{% for host in groups['nagios-new'] %}
syncHttpLogs {{host}}
{% endfor %}
## sync up download
{% for host in groups['download-phx2'] %}
syncHttpLogs {{host}}

View File

@ -1,72 +0,0 @@
#!/usr/bin/env python
""" NRPE check for datanommer/fedmsg health.
Given a category like 'bodhi', 'buildsys', or 'git', return an error if
datanommer hasn't seen a message of that type in such and such time.
You can alternatively provide a 'topic' which might look like
org.fedoraproject.prod.bodhi.update.comment.
Requires: python-dateutil
Usage:
$ check_datanommer_timesince CATEGORY WARNING_THRESH CRITICAL_THRESH
:Author: Ralph Bean <rbean@redhat.com>
"""
import dateutil.relativedelta
import subprocess
import sys
import json
def query_timesince(identifier):
# If it has a '.', then assume it is a topic.
if '.' in identifier:
cmd = 'datanommer-latest --topic %s --timesince' % identifier
else:
cmd = 'datanommer-latest --category %s --timesince' % identifier
sys.stderr.write("Running %r\n" % cmd)
process = subprocess.Popen(cmd.split(), shell=False,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = process.communicate()
prefix, stdout = stdout.split("INFO] ", 1)
data = json.loads(stdout)
return float(data[0])
def main():
identifier, warning_threshold, critical_threshold = sys.argv[-3:]
timesince = query_timesince(identifier)
warning_threshold = int(warning_threshold)
critical_threshold = int(critical_threshold)
time_strings = []
rd = dateutil.relativedelta.relativedelta(seconds=timesince)
for denomination in ['years', 'months', 'days', 'hours', 'minutes', 'seconds']:
value = getattr(rd, denomination, 0)
if value:
time_strings.append("%d %s" % (value, denomination))
string = ", ".join(time_strings)
reason = "datanommer has not seen a %r message in %s" % (identifier, string)
if timesince > critical_threshold:
print "CRIT: ", reason
sys.exit(2)
if timesince > warning_threshold:
print "WARN: ", reason
sys.exit(1)
print "OK: ", reason
sys.exit(0)
if __name__ == '__main__':
try:
main()
except Exception as e:
print "UNKNOWN: ", str(e)
sys.exit(3)

View File

@ -1,23 +0,0 @@
#!/usr/bin/env python
import sys
try:
import retask.queue
queue = retask.queue.Queue('fedora-packages')
queue.connect()
items = queue.length
if items > 500:
print "CRITICAL: %i tasks in fcomm queue" % items
sys.exit(2)
elif items > 250:
print "WARNING: %i tasks in fcomm queue" % items
sys.exit(1)
else:
print "OK: %i tasks in fcomm queue" % items
sys.exit(0)
except Exception as e:
print "UNKNOWN:", str(e)
sys.exit(3)

View File

@ -1,62 +0,0 @@
#!/usr/bin/env python
import json
import os
import socket
import sys
import zmq
try:
service = sys.argv[1]
check_consumer = sys.argv[2]
backlog_warning = int(sys.argv[3])
backlog_critical = int(sys.argv[4])
fname = '/var/run/fedmsg/monitoring-%s.socket' % service
if not os.path.exists(fname):
print "UNKNOWN - %s does not exist" % fname
sys.exit(3)
if not os.access(fname, os.W_OK):
print "UNKNOWN - cannot write to %s" % fname
sys.exit(3)
connect_to = "ipc:///%s" % fname
ctx = zmq.Context()
s = ctx.socket(zmq.SUB)
s.connect(connect_to)
s.setsockopt(zmq.SUBSCRIBE, '')
poller = zmq.Poller()
poller.register(s, zmq.POLLIN)
timeout = 20000
events = dict(poller.poll(timeout))
if s in events and events[s] == zmq.POLLIN:
msg = s.recv()
msg = json.loads(msg)
else:
print 'UNKNOWN - ZMQ timeout. No message received in %i ms' % timeout
sys.exit(3)
for consumer in msg['consumers']:
if consumer['name'] == check_consumer:
if consumer['backlog'] is None:
print 'ERROR: fedmsg consumer %s is not initialized' % consumer['name']
sys.exit(3)
elif consumer['backlog'] > backlog_critical:
print 'CRITICAL: fedmsg consumer %s backlog value is %i' % (consumer['name'],consumer['backlog'])
sys.exit(2)
elif consumer['backlog'] > backlog_warning:
print 'WARNING: fedmsg consumer %s backlog value is %i' % (consumer['name'],consumer['backlog'])
sys.exit(1)
else:
print 'OK: fedmsg consumer %s backlog value is %i' % (consumer['name'],consumer['backlog'])
sys.exit(0)
print "UNKNOWN: fedmsg consumer %s not found" % check_consumer
sys.exit(3)
except Exception as err:
print "UNKNOWN:", str(err)
sys.exit(3)

View File

@ -1,58 +0,0 @@
#!/usr/bin/env python
import json
import os
import socket
import sys
import zmq
try:
service = sys.argv[1]
check_consumer = sys.argv[2]
exceptions_warning = int(sys.argv[3])
exceptions_critical = int(sys.argv[4])
fname = '/var/run/fedmsg/monitoring-%s.socket' % service
if not os.path.exists(fname):
print "UNKNOWN - %s does not exist" % fname
sys.exit(3)
if not os.access(fname, os.W_OK):
print "UNKNOWN - cannot write to %s" % fname
sys.exit(3)
connect_to = "ipc:///%s" % fname
ctx = zmq.Context()
s = ctx.socket(zmq.SUB)
s.connect(connect_to)
s.setsockopt(zmq.SUBSCRIBE, '')
poller = zmq.Poller()
poller.register(s, zmq.POLLIN)
timeout = 20000
events = dict(poller.poll(timeout))
if s in events and events[s] == zmq.POLLIN:
msg = s.recv()
msg = json.loads(msg)
else:
print 'UNKNOWN - ZMQ timeout. No message received in %i ms' % timeout
sys.exit(3)
for consumer in msg['consumers']:
if consumer['name'] == check_consumer:
if consumer['exceptions'] > exceptions_critical:
print 'CRITICAL: fedmsg consumer %s exceptions value is %i' % (consumer['name'],consumer['exceptions'])
sys.exit(2)
elif consumer['exceptions'] > exceptions_warning:
print 'WARNING: fedmsg consumer %s exceptions value is %i' % (consumer['name'],consumer['exceptions'])
sys.exit(1)
else:
print 'OK: fedmsg consumer %s exceptions value is %i' % (consumer['name'],consumer['exceptions'])
sys.exit(0)
print "UNKNOWN: fedmsg consumers %s not found" % check_consumer
sys.exit(3)
except Exception as err:
print "UNKNOWN:", str(err)
sys.exit(3)

View File

@ -1,69 +0,0 @@
#!/usr/bin/env python
import arrow
import json
import os
import socket
import sys
import time
import zmq
try:
service = sys.argv[1]
check_producer = sys.argv[2]
elapsed_warning = int(sys.argv[3])
elapsed_critical = int(sys.argv[4])
fname = '/var/run/fedmsg/monitoring-%s.socket' % service
if not os.path.exists(fname):
print "UNKNOWN - %s does not exist" % fname
sys.exit(3)
if not os.access(fname, os.W_OK):
print "UNKNOWN - cannot write to %s" % fname
sys.exit(3)
connect_to = "ipc:///%s" % fname
ctx = zmq.Context()
s = ctx.socket(zmq.SUB)
s.connect(connect_to)
s.setsockopt(zmq.SUBSCRIBE, '')
poller = zmq.Poller()
poller.register(s, zmq.POLLIN)
timeout = 20000
events = dict(poller.poll(timeout))
if s in events and events[s] == zmq.POLLIN:
msg = s.recv()
msg = json.loads(msg)
else:
print 'UNKNOWN - ZMQ timeout. No message received in %i ms' % timeout
sys.exit(3)
now = time.time()
for prod in msg['producers']:
if prod['name'] != check_producer:
continue
diff = now - prod['last_ran']
then = arrow.get(prod['last_ran']).humanize()
if diff > elapsed_critical:
print "CRITICAL: %s last ran %s (%i seconds ago)" % (
check_producer, then, diff)
sys.exit(2)
elif diff > elapsed_warning:
print "WARNING: %s last ran %s (%i seconds ago)" % (
check_producer, then, diff)
sys.exit(1)
else:
print "OK: %s last ran %s (%i seconds ago)" % (
check_producer, then, diff)
sys.exit(0)
print "UNKNOWN: fedmsg producer %s not found" % check_producer
sys.exit(3)
except Exception as err:
print "UNKNOWN:", str(err)
sys.exit(3)

View File

@ -1,64 +0,0 @@
#!/usr/bin/env python
import json
import os
import socket
import sys
import zmq
try:
service = sys.argv[1]
check_list = frozenset(sys.argv[2:])
fname = '/var/run/fedmsg/monitoring-%s.socket' % service
if not check_list:
print "UNKNOWN - empty list of fedmsg consumers and producers to check"
sys.exit(3)
if not os.path.exists(fname):
print "UNKNOWN - %s does not exist" % fname
sys.exit(3)
if not os.access(fname, os.W_OK):
print "UNKNOWN - cannot write to %s" % fname
sys.exit(3)
connect_to = "ipc:///%s" % fname
ctx = zmq.Context()
s = ctx.socket(zmq.SUB)
s.connect(connect_to)
s.setsockopt(zmq.SUBSCRIBE, '')
poller = zmq.Poller()
poller.register(s, zmq.POLLIN)
timeout = 20000
events = dict(poller.poll(timeout))
if s in events and events[s] == zmq.POLLIN:
msg = s.recv()
msg = json.loads(msg)
else:
print 'UNKNOWN - ZMQ timeout. No message received in %i ms' % timeout
sys.exit(3)
for consumer in msg['consumers']:
if consumer['name'] in check_list and not consumer['initialized']:
print 'ERROR: fedmsg consumer %s is not initialized' % consumer['name']
sys.exit(2)
for producer in msg['producers']:
if producer['name'] in check_list and not producer['initialized']:
print 'ERROR: fedmsg producer %s is not initialized' % producer['name']
sys.exit(2)
for item in check_list:
if item not in [p['name'] for p in msg['producers'] + msg['consumers']]:
print 'ERROR: %s not found among installed plugins' % item
sys.exit(2)
print "OK: fedmsg consumer(s) and producer(s) initialized"
sys.exit(0)
except Exception as err:
print "UNKNOWN:", str(err)
sys.exit(3)

View File

@ -1,76 +0,0 @@
#!/usr/bin/env python
""" Nagios check for haproxy over-subscription.
fedmsg-gateway is the primary concern as it can eat up a ton of simultaneous
connections.
:Author: Ralph Bean <rbean@redhat.com>
"""
import socket
import sys
def _numeric(value):
""" Type casting utility """
try:
return int(value)
except ValueError:
try:
return float(value)
except ValueError:
return value
def query(sockname="/var/run/haproxy-stat"):
""" Read stats from the haproxy socket and return a dict """
s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
s.connect("/var/run/haproxy-stat")
s.send('show info\n')
try:
response = s.recv(1024).strip()
lines = response.split('\n')
data = dict([map(str.strip, line.split(':')) for line in lines])
data = dict([(k, _numeric(v)) for k, v in data.items()])
return data
except Exception, e:
print str(e)
finally:
s.close()
return None
def nagios_check(data):
""" Print warnings and return nagios exit codes. """
current = data['CurrConns']
maxconn = data['Maxconn']
percent = 100 * float(current) / float(maxconn)
details = "%.2f%% subscribed. %i current of %i maxconn." % (
percent, current, maxconn,
)
if percent < 50:
print "HAPROXY SUBS OK: " + details
return 0
if percent < 75:
print "HAPROXY SUBS WARN: " + details
return 1
if percent <= 100:
print "HAPROXY SUBS CRIT: " + details
return 2
print "HAPROXY SUBS UNKNOWN: " + details
return 3
if __name__ == '__main__':
try:
data = query(sockname="/var/run/haproxy-stat")
except Exception as e:
print "HAPROXY SUBS UNKNOWN: " + str(e)
sys.exit(3)
sys.exit(nagios_check(data))

View File

@ -1,74 +0,0 @@
#!/usr/bin/python
# Source: https://github.com/opinkerfi/nagios-plugins/blob/master/check_ipa/check_ipa_replication
# Copyright 2013, Tomas Edwardsson
# Copyright 2016, Patrick Uiterwijk
#
# This script 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 3 of the License, or
# (at your option) any later version.
#
# This script 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, see <http://www.gnu.org/licenses/>.
import ldap
from pynag.Plugins import PluginHelper, critical, warning, ok
plugin = PluginHelper()
plugin.parser.add_option('-u', help="ldap uri", dest="uri")
plugin.parser.add_option('-D', help="bind DN", dest="binddn")
plugin.parser.add_option('-w', help="bind password", dest="bindpw")
plugin.parse_arguments()
if not plugin.options.uri:
plugin.parser.error('-u (uri) argument is required')
try:
l = ldap.initialize(plugin.options.uri)
if plugin.options.binddn:
l.bind_s(plugin.options.binddn, plugin.options.bindpw)
replication = l.search_s('cn=config',
ldap.SCOPE_SUBTREE,
'(objectclass=nsds5replicationagreement)',
['nsDS5ReplicaHost', 'nsds5replicaLastUpdateStatus'])
except Exception, e:
plugin.status(critical)
plugin.add_summary("Unable to initialize ldap connection: %s" % (e))
plugin.exit()
# Loop through replication agreements
for rhost in replication:
plugin.add_summary("Replica %s Status: %s" % (rhost[1]['nsDS5ReplicaHost'][0], rhost[1]['nsds5replicaLastUpdateStatus'][0]))
status = rhost[1]['nsds5replicaLastUpdateStatus'][0]
code = status[:2]
if status.startswith('Error ('):
# IPA >=4.4.0
code = status[status.find('(')+1:status.find(')')]
else:
# IPA <4.4.0
code = status[:status.find(' ')]
if code == '0':
plugin.status(ok)
elif code == '1':
# Busy Replica is not an error, its "unknown" (but its "ok" for now)
plugin.status(ok)
else:
plugin.status(critical)
if not len(replication):
plugin.add_summary("Warning: No replicas found")
plugin.status(warning)
plugin.exit()

View File

@ -1,17 +0,0 @@
#!/usr/bin/python
import fcntl
import sys
try:
f = open('/mnt/koji/.nagios_test', 'r')
f.close()
f = open('/mnt/koji/.nagios_test', 'w')
except IOError:
print "Could not create file"
sys.exit(2)
fcntl.flock(f, fcntl.LOCK_EX)
f.close()
print "File Locked Successfully"
sys.exit(0)

View File

@ -1,123 +0,0 @@
#! /usr/bin/perl -w
# check_lock_file_age.pl Copyright (C) 2010 Ricky Elrod <codeblock@fedoraproject.org>
#
# Fork of check_file_age.pl
#
# Checks a lock file's size and modification time to make sure it's not empty
# and that it's sufficiently recent.
#
#
# 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 (or with Nagios); if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA
use strict;
use English;
use Getopt::Long;
use File::stat;
use vars qw($PROGNAME);
use lib "/usr/lib64/nagios/plugins";
use utils qw (%ERRORS &print_revision &support);
sub print_help ();
sub print_usage ();
my ($opt_c, $opt_f, $opt_w, $opt_h, $opt_V);
my ($result, $message, $age, $size, $st);
$PROGNAME="check_lock_file_age";
$opt_w = 1;
$opt_c = 5;
$opt_f = "";
Getopt::Long::Configure('bundling');
GetOptions(
"V" => \$opt_V, "version" => \$opt_V,
"h" => \$opt_h, "help" => \$opt_h,
"f=s" => \$opt_f, "file" => \$opt_f,
"w=f" => \$opt_w, "warning-age=f" => \$opt_w,
"c=f" => \$opt_c, "critical-age=f" => \$opt_c);
if ($opt_V) {
print_revision($PROGNAME, '1.4.14');
exit $ERRORS{'OK'};
}
if ($opt_h) {
print_help();
exit $ERRORS{'OK'};
}
if (($opt_c and $opt_w) and ($opt_c < $opt_w)) {
print "Warning time must be less than Critical time.\n";
exit $ERRORS{'UNKNOWN'};
}
$opt_f = shift unless ($opt_f);
if (! $opt_f) {
print "LOCK_FILE_AGE UNKNOWN: No file specified\n";
exit $ERRORS{'UNKNOWN'};
}
# Check that file exists (can be directory or link)
unless (-e $opt_f) {
print "LOCK_FILE_AGE OK: File not found (Lock file removed) - $opt_f\n";
exit $ERRORS{'OK'};
}
$st = File::stat::stat($opt_f);
$age = time - $st->mtime;
$result = 'OK';
# Convert minutes to seconds
if($opt_c) { $opt_c *= 60; }
if($opt_w) { $opt_w *= 60; }
if ($opt_c and $age > $opt_c) {
$result = 'CRITICAL';
}
elsif ($opt_w and $age > $opt_w) {
$result = 'WARNING';
}
# If the age is higher than 2 minutes, convert seconds -> minutes
# If it's higher than a day, use days.
# Just a nicety, to make people not have to do math ;)
if($age > 86400) { $age = int(($age/86400))." days"; }
elsif($age > 120) { $age = int(($age/60))." minutes"; }
else { $age = "$age seconds"; }
print "LOCK_FILE_AGE $result: $opt_f is $age old.\n";
exit $ERRORS{$result};
sub print_usage () {
print "Usage:\n";
print " $PROGNAME [-w <secs>] [-c <secs>] -f <file>\n";
print " $PROGNAME [-h | --help]\n";
print " $PROGNAME [-V | --version]\n";
}
sub print_help () {
print_revision($PROGNAME, '1.4.14');
print "Copyright (c) 2010 Ricky Elrod\n\n";
print_usage();
print "\n";
print " <mins> File must be no more than this many minutes old (default: warn 1m, crit 5m)\n";
print "\n";
support();
}

View File

@ -1,24 +0,0 @@
#!/bin/bash
#
# 2014-11-19
# Author: Ralph Bean <rbean@redhat.com>
# exit codes
ok=0
warn=1
crit=2
unkn=3
# Right now we just check to see if we can even run this command without
# hanging and timing out. In the future, we could parse stdout for more
# fine-grained information.
echo stats | nc 127.0.0.1 11211 > /dev/null
status=$?
if [ $status -ne 0 ]; then
echo "CRIT: stats command got status code $status"
exit $crit
else
echo "OK: stats command got status code $status"
exit $ok
fi

View File

@ -1,14 +0,0 @@
#!/usr/bin/python
import requests
import sys
r = requests.get("https://localhost:8443/", verify=False)
if 'paths' in r.json().keys():
print "OK: OSBS API endpoint is responding with path data"
sys.exit(0)
else:
print "CRITICAL: OSBS API not responding properly"
sys.exit(2)

View File

@ -1,23 +0,0 @@
#!/usr/bin/python
import subprocess
import sys
sp = subprocess.Popen(
["osbs", "list-builds"],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
stdin=subprocess.PIPE
)
sp_out, sp_err = sp.communicate()
sp_err = sp_err.split('\n')
if 'not attached to terminal' in sp_err[0]:
sp_err = sp_err[1:]
if sp_err[0].split()[0] == 'BUILD':
print "OK: OSBS is responsive to 'osbs list-builds'"
sys.exit(0)
else:
print "CRITICAL: OSBS UNRESPONSIVE"
sys.exit(2)

View File

@ -1,49 +0,0 @@
#!/bin/bash
#
# 19-07-2010
# Author: Cherwin Nooitmeer <cherwin@gmail.com>
#
# exit codes
e_ok=0
e_warning=1
e_critical=2
e_unknown=3
# regular expression that matches queue IDs (e.g. D71EF7AC80F8)
queue_id='^[A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9]'
usage="Invalid command line usage"
if [ -z $1 ]; then
echo $usage
exit $e_unknown
fi
while getopts ":w:c:" options
do
case $options in
w ) warning=$OPTARG ;;
c ) critical=$OPTARG ;;
* ) echo $usage
exit $e_unknown ;;
esac
done
# determine queue size
qsize=$(mailq | egrep -c $queue_id)
if [ -z $qsize ]
then
exit $e_unknown
fi
if [ $qsize -ge $critical ]; then
retval=$e_critical
elif [ $qsize -ge $warning ]; then
retval=$e_warning
elif [ $qsize -lt $warning ]; then
retval=$e_ok
fi
echo "$qsize mail(s) in queue | mail_queue=$qsize"
exit $retval

View File

@ -1,26 +0,0 @@
#!/bin/python
import sys
import requests
url = 'http://localhost:15672/api/queues/%%2f/%s' % (sys.argv[1])
r = requests.get(url, auth=('guest', 'guest')).json()
consumers = r['consumers']
messages = r['messages']
msg = 'Messages in queue: %i (%i consumers)' % (messages, consumers)
if consumers < 1:
print 'CRITICAL: No consumers: %s' % msg
sys.exit(2)
if messages > sys.argv[2]:
print 'CRITICAL: %s' % msg
sys.exit(2)
if messages > sys.argv[3]:
print 'WARNING: %s' % msg
sys.exit(1)
print 'OK: %s' % msg
sys.exit(0)

View File

@ -1,45 +0,0 @@
#!/usr/bin/env python
#
# very simple python script to parse out /proc/mdstat
# and give results for nagios to monitor
#
import sys
import string
devices = []
try:
mdstat = string.split(open('/proc/mdstat').read(), '\n')
except IOError:
# seems we have no software raid on this machines
sys.exit(0)
error = ""
i = 0
for line in mdstat:
if line[0:2] == 'md':
device = string.split(line)[0]
devices.append(device)
status = string.split(mdstat[i+1])[3]
if string.count(status, "_"):
# see if we can figure out what's going on
err = string.split(mdstat[i+2])
msg = "device=%s status=%s" % (device, status)
if len(err) > 0:
msg = msg + " rebuild=%s" % err[0]
if not error:
error = msg
else:
error = error + ", " + msg
i = i + 1
if not error:
print "DEVICES %s OK" % " ".join(devices)
sys.exit(0)
else:
print error
sys.exit(2)

View File

@ -1,84 +0,0 @@
#!/bin/bash
# check_readonlyfs: Check for readonly filesystems
# Copyright (C) 2010 Davide Madrisan <davide.madrisan@gmail.com>
PROGNAME=`/bin/basename $0`
PROGPATH=`echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,'`
REVISION=`echo '$Revision: 1 $' | sed -e 's/[^0-9.]//g'`
. $PROGPATH/utils.sh
print_usage() {
echo "Usage: $PROGNAME --no-network-fs"
echo "Usage: $PROGNAME --help"
echo "Usage: $PROGNAME --version"
}
print_help() {
print_revision $PROGNAME $REVISION
echo ""
print_usage
echo ""
echo "readonly filesystem checker plugin for Nagios"
echo ""
support
}
NETFS=1
# Grab the command line arguments
exitstatus=$STATE_WARNING #default
while test -n "$1"; do
case "$1" in
--help|-h)
print_help
exit $STATE_OK
;;
--version|-V)
print_revision $PROGNAME $REVISION
exit $STATE_OK
;;
--no-network-fs|-n)
NETFS="0"
;;
*)
echo "Unknown argument: $1"
print_usage
exit $STATE_UNKNOWN
;;
esac
shift
done
[ -r /proc/mounts ] || { echo "cannot read /proc/mounts!"; exit $STATE_UNKNOWN; }
nerr=0
IFS_SAVE="$IFS"
rofs_list=""
while read dev mp fs mopt ignore; do
[ "$dev" = none ] && continue
case $fs in binfmt_misc|devpts|iso9660|proc|selinuxfs|rpc_pipefs|sysfs|tmpfs|usbfs)
continue ;;
esac
case $fs in autofs|nfs|nfs4|smbfs)
# skip the network filesystems
[ "$NETFS" = 0 ] && continue ;;
esac
IFS=","; set -- $mopt; IFS="$IFS_SAVE"
while :; do
case "$1" in
ro) rofs_list="$rofs_list $mp"; nerr=$(( $nerr + 1 )) ;;
"") shift; break ;;
esac
shift
done
done < <(LC_ALL=C /bin/cat /proc/mounts 2>/dev/null)
[ $nerr -eq 0 ] && { echo OK; exit $STATE_OK; } || echo "$rofs_list: read only fs"
exit $exitstatus

View File

@ -1,108 +0,0 @@
#!/usr/bin/env python
""" check_supybot_plugin -- ensure that a plugin is loaded by supybot.
Run like:
check_supybot_plugin --target fedmsg
check_supybot_plugin --target koji --debug
"""
import argparse
import sys
import socket
import string
import uuid
def process_args():
parser = argparse.ArgumentParser()
parser.add_argument(
'-t', '--target', default=None, dest='target',
help="Required. The plugin we're looking for."
)
parser.add_argument(
'-n', '--nick', default=None, dest='nick',
help="NICK to use when connecting to freenode.",
)
parser.add_argument(
'-d', '--debug', default=False, action='store_true',
help='Print out debug information.', dest='debug',
)
parser.add_argument(
'-H', '--host', default='irc.freenode.net',
help='Host to connect to.', dest='host',
)
parser.add_argument(
'-p', '--port', default=6667, type=int,
help='Host to connect to.', dest='port',
)
return parser.parse_args()
args = process_args()
# Use a random nick so people can't mess with us
if not args.nick:
args.nick = 'nrpe-' + str(uuid.uuid4()).split('-')[0]
name = "NRPE Bot"
readbuffer = ""
if not args.target:
print "UNKNOWN: No 'target' specified."
sys.exit(3)
args.target = args.target.lower()
if args.debug:
print "connecting to %s/%i" % (args.host, args.port)
try:
s = socket.socket()
s.connect((args.host, args.port))
if args.debug:
print "as %s/%s (%s)" % (args.nick, args.nick, name)
s.send("nick %s\r\n" % args.nick)
s.send("USER %s %s bla :%s\r\n" % (args.nick, args.host, name))
while 1:
readbuffer = readbuffer+s.recv(1024)
temp = string.split(readbuffer, "\n")
readbuffer = temp.pop()
for line in temp:
line = string.rstrip(line)
if args.debug:
print " * ", line
line = string.split(line)
if line[1] == 'MODE':
msg = "privmsg zodbot :list\r\n"
if args.debug:
print "sending:"
print " ->", msg
s.send(msg)
if line[1] == 'PRIVMSG':
if args.debug:
print "Got our response.."
plugins = map(str.lower, ' '.join(line[3:][1:]).split(', '))
if args.target in plugins:
print "OK"
s.send("QUIT")
sys.exit(0)
else:
print "CRITICAL: %r not loaded by supybot" % args.target
s.send("QUIT")
sys.exit(2)
except Exception as e:
print "UNKNOWN: ", str(e)
if args.debug:
raise
sys.exit(3)

View File

@ -1,19 +0,0 @@
#!/bin/bash
RUNNING_VMS=`testcloud instance list | grep -i 'running' | wc -l`
CRITICAL=20
WARNING=15
if [ $RUNNING_VMS -gt $CRITICAL ]
then
echo "Testcloud: CRITICAL Number of VMs running: $RUNNING_VMS"
exit 2
elif [ $RUNNING_VMS -gt $WARNING ]
then
echo "Testcloud: WARNING Number of VMs running: $RUNNING_VMS"
exit 1
else
echo "Testcloud: OK Number of VMs running: $RUNNING_VMS"
exit 0
fi

View File

@ -1,11 +0,0 @@
module fi-nrpe 1.0;
require {
type nagios_system_plugin_t;
type nrpe_exec_t;
class file getattr;
}
#============= nagios_system_plugin_t ==============
allow nagios_system_plugin_t nrpe_exec_t:file getattr;

View File

@ -1,3 +0,0 @@
---
- name: restart nrpe
service: name=nrpe state=restarted

View File

@ -1,226 +0,0 @@
# nagios-client/nrpe
---
# install pkgs:
- name: install nagios client pkgs
yum: name={{ item }} state=present
with_items:
- nrpe
- nagios-plugins
- nagios-plugins-disk
- nagios-plugins-file_age
- nagios-plugins-users
- nagios-plugins-procs
- nagios-plugins-swap
- nagios-plugins-load
- nagios-plugins-ping
tags:
- packages
- nagios/client
when: ansible_distribution_major_version|int < 22
# install pkgs:
- name: install nagios client pkgs
dnf: name={{ item }} state=present
with_items:
- nrpe
- nagios-plugins
- nagios-plugins-disk
- nagios-plugins-file_age
- nagios-plugins-users
- nagios-plugins-procs
- nagios-plugins-swap
- nagios-plugins-load
- nagios-plugins-ping
tags:
- packages
- nagios/client
when: ansible_distribution_major_version|int > 21
- name: install local nrpe check scripts that are not packaged
copy: src="scripts/{{ item }}" dest="{{ libdir }}/nagios/plugins/{{ item }}" mode=0755 owner=nagios group=nagios
with_items:
- check_haproxy_conns.py
- check_postfix_queue
- check_raid.py
- check_lock
- check_fcomm_queue
- check_fedmsg_consumer_backlog.py
- check_fedmsg_consumer_exceptions.py
- check_fedmsg_producer_last_ran.py
- check_fedmsg_producers_consumers.py
- check_supybot_plugin
- check_rabbitmq_size
- check_datanommer_timesince.py
- check_memcache_connect
- check_readonly_fs
- check_lock_file_age
- check_testcloud
- check_osbs_builds.py
- check_osbs_api.py
- check_ipa_replication
when: not inventory_hostname.startswith('noc')
tags:
- nagios/client
# create dirs
# puppet used to make /var/spool/nagios (owned by nagios.nagios) mode 750
# and /usr/lib/nagios/plugins (owned by root) mode 755 - but we don't know WHY
# then stuff it with plugins from the plugins dir in the nagios module
# then we symlinked that to /usr/lib64/nagios/plugins
# it was a nightmare - don't do that - my ghost will haunt you if you do
# skvidal 2013-05-21
# Three tasks for handling our custom selinux module
- name: ensure a directory exists for our custom selinux module
file: dest=/usr/share/nrpe state=directory
- name: copy over our custom selinux module
copy: src=selinux/fi-nrpe.pp dest=/usr/share/nrpe/fi-nrpe.pp
register: selinux_module
- name: install our custom selinux module
command: semodule -i /usr/share/nrpe/fi-nrpe.pp
when: ansible_distribution_major_version|int == 7 and selinux_module|changed
# Set up our base config.
- name: /etc/nagios/nrpe.cfg
template: src=nrpe.cfg.j2 dest=/etc/nagios/nrpe.cfg
when: not inventory_hostname.startswith('noc')
notify:
- restart nrpe
tags:
- config
- nagios/client
#
# The actual items files here end in .j2 (they are templates)
# So when adding or modifying them change the .j2 version in git.
#
- name: install nrpe client configs
template: src={{ item }}.j2 dest=/etc/nrpe.d/{{ item }}
with_items:
- check_raid.cfg
- check_ipa.cfg
- check_readonly_fs.cfg
- check_cron.cfg
- check_disk.cfg
- check_swap.cfg
- check_postfix_queue.cfg
- check_lock.cfg
- check_fedmsg_hub_proc.cfg
- check_fedmsg_irc_proc.cfg
- check_fedmsg_relay_proc.cfg
- check_fedmsg_gateway_proc.cfg
- check_fedmsg_masher_proc.cfg
- check_redis_proc.cfg
- check_autocloud_proc.cfg
- check_fedmsg_consumers.cfg
- check_supybot_fedmsg_plugin.cfg
- check_datanommer_history.cfg
- check_memcache.cfg
- check_lock_file_age.cfg
- check_basset.cfg
- check_fmn.cfg
- check_osbs.cfg
- check_koschei_polling_proc.cfg
- check_koschei_build_resolver_proc.cfg
- check_koschei_repo_resolver_proc.cfg
- check_koschei_scheduler_proc.cfg
- check_koschei_watcher_proc.cfg
- check_testcloud.cfg
notify:
- restart nrpe
tags:
- config
- nagios/client
#
# The actual items files here end in .j2 (they are templates)
# So when adding or modifying them change the .j2 version in git.
#
- name: install nrpe bugyou fedmsg hubs check config
template: src=check_fedmsg_hub_procs_bugyou.cfg.j2 dest=/etc/nrpe.d/check_fedmsg_hub_procs_bugyou.cfg
when: inventory_hostname.startswith('bugyou01')
notify:
- restart nrpe
tags:
- nagios/client
#
# The actual items files here end in .j2 (they are templates)
# So when adding or modifying them change the .j2 version in git.
#
- name: install nrpe openvpn check config
template: src=check_openvpn_link.cfg.j2 dest=/etc/nrpe.d/check_openvpn_link.cfg
when: vpn == true
notify:
- restart nrpe
tags:
- nagios/client
#
# The actual items files here end in .j2 (they are templates)
# So when adding or modifying them change the .j2 version in git.
#
- name: install nrpe unbound check config
template: src=check_unbound_proc.cfg.j2 dest=/etc/nrpe.d/check_unbound_proc.cfg
when: inventory_hostname.startswith('unbound')
notify:
- restart nrpe
tags:
- nagios/client
#
# The actual items files here end in .j2 (they are templates)
# So when adding or modifying them change the .j2 version in git.
#
- name: install nrpe merged log check script on log01
template: src=check_merged_file_age.cfg.j2 dest=/etc/nrpe.d/check_merged_file_age.cfg
when: inventory_hostname.startswith('log0')
notify:
- restart nrpe
tags:
- nagios/client
#
# The actual items files here end in .j2 (they are templates)
# So when adding or modifying them change the .j2 version in git.
#
- name: install nrpe check_mysql config for mariadb servers
template: src=check_mysql.cfg.j2 dest=/etc/nrpe.d/check_mysql.cfg
when: inventory_hostname.startswith('db03')
notify:
- restart nrpe
tags:
- nagios/client
- name: install nrpe checks for proxies
template: src={{ item }}.j2 dest=/etc/nrpe.d/{{ item }}
with_items:
- check_happroxy_conns.cfg
- check_varnish_proc.cfg
when: inventory_hostname.startswith('proxy')
notify:
- restart nrpe
tags:
- nagios/client
- name: nrpe service start
service: name=nrpe state=started enabled=true
tags:
- service
- nagios/client
- name: Check if the fedmsg group exists
shell: /usr/bin/getent group fedmsg | /usr/bin/wc -l | tr -d ' '
register: fedmsg_exists
check_mode: no
changed_when: "1 != 1"
tags:
- nagios/client
- name: Add nrpe user to the fedmsg group if it exists
user: name=nrpe groups=fedmsg append=yes
when: fedmsg_exists.stdout == "1"
tags:
- nagios/client

View File

@ -1 +0,0 @@
command[check_autocloud_proc]=/usr/lib64/nagios/plugins/check_procs -c 1:1 -C 'python' -a 'autocloud_job.py' -u root

View File

@ -1,4 +0,0 @@
command[check_mongo_proc]={{ libdir }}/nagios/plugins/check_procs -s RSD -u mongodb -C mongod -c 1:1
command[check_rabbitmq_proc]={{ libdir }}/nagios/plugins/check_procs -s RSD -u rabbitmq -C beam.smp -c 1:1
command[check_worker_proc]={{ libdir }}/nagios/plugins/check_procs -s RSD -u basset-worker -C basset-worker -c 1:6
command[check_basset_queue]={{ libdir }}/nagios/plugins/check_rabbitmq_size check_submission 10 20

View File

@ -1 +0,0 @@
command[check_cron]={{ libdir }}/nagios/plugins/check_procs -c 1:15 -C 'crond' -u root

View File

@ -1,50 +0,0 @@
# Checks on the datanommer history to make sure we're still receiving messages
# of all types.
#
# The following are fedmsg/datanommer checks to be run on busgateway01.
# They check for the time since the latest message in any particular category.
# The first number is the seconds elapsed until we should raise a warning.
# The second number is the seconds elapsed until we should raise an error.
# For your reference:
# 4 hours -> 14400
# 1 day -> 86400
# 3 days -> 259200
# 1 week -> 604800
# 3 weeks -> 1814400
# 1 month -> 2628000
# 3 months -> 7884000
command[check_datanommer_buildsys]={{libdir}}/nagios/plugins/check_datanommer_timesince.py buildsys 14400 86400
command[check_datanommer_git]={{libdir}}/nagios/plugins/check_datanommer_timesince.py git 86400 604800
command[check_datanommer_bodhi]={{libdir}}/nagios/plugins/check_datanommer_timesince.py bodhi 86400 604800
command[check_datanommer_wiki]={{libdir}}/nagios/plugins/check_datanommer_timesince.py wiki 259200 1814400
command[check_datanommer_compose]={{libdir}}/nagios/plugins/check_datanommer_timesince.py compose 259200 1814400
command[check_datanommer_meetbot]={{libdir}}/nagios/plugins/check_datanommer_timesince.py meetbot 604800 2628000
command[check_datanommer_fas]={{libdir}}/nagios/plugins/check_datanommer_timesince.py fas 1814400 2628000
command[check_datanommer_pkgdb]={{libdir}}/nagios/plugins/check_datanommer_timesince.py pkgdb 1814400 2628000
command[check_datanommer_fedoratagger]={{libdir}}/nagios/plugins/check_datanommer_timesince.py fedoratagger 2628000 7884000
command[check_datanommer_planet]={{libdir}}/nagios/plugins/check_datanommer_timesince.py planet 2628000 7884000
command[check_datanommer_copr]={{libdir}}/nagios/plugins/check_datanommer_timesince.py copr 21600 86400
command[check_datanommer_trac]={{libdir}}/nagios/plugins/check_datanommer_timesince.py trac 86400 259200
command[check_datanommer_askbot]={{libdir}}/nagios/plugins/check_datanommer_timesince.py askbot 86400 259200
command[check_datanommer_fedbadges]={{libdir}}/nagios/plugins/check_datanommer_timesince.py fedbadges 86400 259200
command[check_datanommer_fedocal]={{libdir}}/nagios/plugins/check_datanommer_timesince.py fedocal 7884000 23652000
command[check_datanommer_ansible]={{libdir}}/nagios/plugins/check_datanommer_timesince.py ansible 432000 604800
command[check_datanommer_summershum]={{libdir}}/nagios/plugins/check_datanommer_timesince.py summershum 604800 1814400
command[check_datanommer_jenkins]={{libdir}}/nagios/plugins/check_datanommer_timesince.py jenkins 432000 604800
command[check_datanommer_github]={{libdir}}/nagios/plugins/check_datanommer_timesince.py github 432000 604800
command[check_datanommer_kerneltest]={{libdir}}/nagios/plugins/check_datanommer_timesince.py kerneltest 604800 1814400
command[check_datanommer_fmn]={{libdir}}/nagios/plugins/check_datanommer_timesince.py fmn 604800 1814400
command[check_datanommer_anitya]={{libdir}}/nagios/plugins/check_datanommer_timesince.py anitya 604800 1814400
command[check_datanommer_fedimg]={{libdir}}/nagios/plugins/check_datanommer_timesince.py fedimg 259200 604800
command[check_datanommer_hotness]={{libdir}}/nagios/plugins/check_datanommer_timesince.py hotness 604800 1814400
command[check_datanommer_faf]={{libdir}}/nagios/plugins/check_datanommer_timesince.py faf 86400 259200
command[check_datanommer_koschei]={{libdir}}/nagios/plugins/check_datanommer_timesince.py koschei 86400 604800
command[check_datanommer_autocloud]={{libdir}}/nagios/plugins/check_datanommer_timesince.py autocloud 259200 1814400
command[check_datanommer_twoweekatomic]=/usr/lib64/nagios/plugins/check_datanommer_timesince.py org.fedoraproject.prod.releng.atomic.twoweek.complete 1296000 1382400
# This one is retired since it times out all the time. Too few messages.
#command[check_datanommer_nuancier]={{libdir}}/nagios/plugins/check_datanommer_timesince.py nuancier 23652000 31536000
# These are not actually finished and deployed yet
command[check_datanommer_mailman]={{libdir}}/nagios/plugins/check_datanommer_timesince.py mailman 14400 86400
command[check_datanommer_bugzilla]={{libdir}}/nagios/plugins/check_datanommer_timesince.py bugzilla 86400 259200

View File

@ -1,7 +0,0 @@
command[check_disk_/]={{ libdir }}/nagios/plugins/check_disk -w 14% -c 10% -p /
command[check_disk_/boot]={{ libdir }}/nagios/plugins/check_disk -w 15% -c 10% -p /boot
command[check_disk_/srv/cache/lookaside]={{ libdir }}/nagios/plugins/check_disk -w 20% -c 10% -p /srv/cache/lookaside
command[check_disk_/srv]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /srv
command[check_disk_/srv/buildmaster]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /srv/buildmaster
command[check_disk_/srv/taskotron]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /srv/taskotron
command[check_disk_/var/log]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 15% -p /var/log

View File

@ -1,66 +0,0 @@
# Fedmsg checks for consumers and producers
command[check_fedmsg_cp_busgateway_hub]={{libdir}}/nagios/plugins/check_fedmsg_producers_consumers.py fedmsg-hub Nommer MonitoringProducer
command[check_fedmsg_cp_busgateway_relay]={{libdir}}/nagios/plugins/check_fedmsg_producers_consumers.py fedmsg-relay RelayConsumer MonitoringProducer
command[check_fedmsg_cp_busgateway_gateway]={{libdir}}/nagios/plugins/check_fedmsg_producers_consumers.py fedmsg-gateway GatewayConsumer MonitoringProducer
command[check_fedmsg_cp_anitya_relay]={{libdir}}/nagios/plugins/check_fedmsg_producers_consumers.py fedmsg-relay RelayConsumer MonitoringProducer
command[check_fedmsg_cp_app]={{libdir}}/nagios/plugins/check_fedmsg_producers_consumers.py fedmsg-relay RelayConsumer MonitoringProducer
command[check_fedmsg_cp_value]={{libdir}}/nagios/plugins/check_fedmsg_producers_consumers.py fedmsg-irc IRCBotConsumer MonitoringProducer
command[check_fedmsg_cp_pkgs]={{libdir}}/nagios/plugins/check_fedmsg_producers_consumers.py fedmsg-hub GenACLsConsumer MonitoringProducer
command[check_fedmsg_cp_summershum]={{libdir}}/nagios/plugins/check_fedmsg_producers_consumers.py fedmsg-hub SummerShumConsumer MonitoringProducer
command[check_fedmsg_cp_badges_backend]={{libdir}}/nagios/plugins/check_fedmsg_producers_consumers.py fedmsg-hub FedoraBadgesConsumer MonitoringProducer
command[check_fedmsg_cp_notifs_backend]={{libdir}}/nagios/plugins/check_fedmsg_producers_consumers.py fedmsg-hub FMNConsumer DigestProducer ConfirmationProducer MonitoringProducer
command[check_fedmsg_cp_bugzilla2fedmsg]={{libdir}}/nagios/plugins/check_fedmsg_producers_consumers.py moksha-hub BugzillaConsumer MonitoringProducer
command[check_fedmsg_cp_fedimg_backend]={{libdir}}/nagios/plugins/check_fedmsg_producers_consumers.py fedmsg-hub FedimgConsumer MonitoringProducer
command[check_fedmsg_cp_hotness_backend]={{libdir}}/nagios/plugins/check_fedmsg_producers_consumers.py fedmsg-hub BugzillaTicketFiler MonitoringProducer
command[check_fedmsg_cp_bodhi_backend01_hub]={{libdir}}/nagios/plugins/check_fedmsg_producers_consumers.py fedmsg-hub Masher MonitoringProducer
command[check_fedmsg_cp_bodhi_backend02_hub]={{libdir}}/nagios/plugins/check_fedmsg_producers_consumers.py fedmsg-hub UpdatesHandler MonitoringProducer
command[check_fedmsg_cp_autocloud_backend]={{libdir}}/nagios/plugins/check_fedmsg_producers_consumers.py fedmsg-hub AutoCloudConsumer MonitoringProducer
command[check_fedmsg_cp_packages_backend]={{libdir}}/nagios/plugins/check_fedmsg_producers_consumers.py fedmsg-hub CacheInvalidator MonitoringProducer
command[check_fedmsg_cp_bugyou_backend]={{libdir}}/nagios/plugins/check_fedmsg_producers_consumers.py fedmsg-hub BugyouConsumer MonitoringProducer
command[check_fedmsg_cp_pdc_backend]={{libdir}}/nagios/plugins/check_fedmsg_producers_consumers.py fedmsg-hub PDCUpdater MonitoringProducer
command[check_fedmsg_cp_mbs_backend]={{libdir}}/nagios/plugins/check_fedmsg_producers_consumers.py fedmsg-hub MBSConsumer MBSProducer MonitoringProducer
command[check_fedmsg_cexceptions_busgateway_hub]={{libdir}}/nagios/plugins/check_fedmsg_consumer_exceptions.py fedmsg-hub Nommer 1 10
command[check_fedmsg_cexceptions_busgateway_relay]={{libdir}}/nagios/plugins/check_fedmsg_consumer_exceptions.py fedmsg-relay RelayConsumer 1 10
command[check_fedmsg_cexceptions_busgateway_gateway]={{libdir}}/nagios/plugins/check_fedmsg_consumer_exceptions.py fedmsg-gateway GatewayConsumer 1 10
command[check_fedmsg_cexceptions_anitya_relay]={{libdir}}/nagios/plugins/check_fedmsg_consumer_exceptions.py fedmsg-relay RelayConsumer 1 10
command[check_fedmsg_cexceptions_app]={{libdir}}/nagios/plugins/check_fedmsg_consumer_exceptions.py fedmsg-relay RelayConsumer 1 10
command[check_fedmsg_cexceptions_value]={{libdir}}/nagios/plugins/check_fedmsg_consumer_exceptions.py fedmsg-irc IRCBotConsumer 1 10
command[check_fedmsg_cexceptions_pkgs]={{libdir}}/nagios/plugins/check_fedmsg_consumer_exceptions.py fedmsg-hub GenACLsConsumer 1 10
command[check_fedmsg_cexceptions_summershum]={{libdir}}/nagios/plugins/check_fedmsg_consumer_exceptions.py fedmsg-hub SummerShumConsumer 1 10
command[check_fedmsg_cexceptions_badges_backend]={{libdir}}/nagios/plugins/check_fedmsg_consumer_exceptions.py fedmsg-hub FedoraBadgesConsumer 1 10
command[check_fedmsg_cexceptions_notifs_backend]={{libdir}}/nagios/plugins/check_fedmsg_consumer_exceptions.py fedmsg-hub FMNConsumer 1 10
command[check_fedmsg_cexceptions_bugzilla2fedmsg]={{libdir}}/nagios/plugins/check_fedmsg_consumer_exceptions.py moksha-hub BugzillaConsumer 1 10
command[check_fedmsg_cexceptions_fedimg_backend]={{libdir}}/nagios/plugins/check_fedmsg_consumer_exceptions.py fedmsg-hub FedimgConsumer 1 10
command[check_fedmsg_cexceptions_hotness_backend]={{libdir}}/nagios/plugins/check_fedmsg_consumer_exceptions.py fedmsg-hub BugzillaTicketFiler 1 10
command[check_fedmsg_cexceptions_bodhi_backend01_hub]={{libdir}}/nagios/plugins/check_fedmsg_consumer_exceptions.py fedmsg-hub Masher 1 10
command[check_fedmsg_cexceptions_bodhi_backend02_hub]={{libdir}}/nagios/plugins/check_fedmsg_consumer_exceptions.py fedmsg-hub UpdatesHandler 1 10
command[check_fedmsg_cexceptions_autocloud_backend]={{libdir}}/nagios/plugins/check_fedmsg_consumer_exceptions.py fedmsg-hub AutoCloudConsumer 1 10
command[check_fedmsg_cexceptions_packages_backend]={{libdir}}/nagios/plugins/check_fedmsg_consumer_exceptions.py fedmsg-hub CacheInvalidator 1 10
command[check_fedmsg_cexceptions_bugyou_backend]={{libdir}}/nagios/plugins/check_fedmsg_consumer_exceptions.py fedmsg-hub BugyouConsumer 1 10
command[check_fedmsg_cexceptions_pdc_backend]={{libdir}}/nagios/plugins/check_fedmsg_consumer_exceptions.py fedmsg-hub PDCUpdater 1 10
command[check_fedmsg_cexceptions_mbs_backend]={{libdir}}/nagios/plugins/check_fedmsg_consumer_exceptions.py fedmsg-hub MBSConsumer 1 10
command[check_fedmsg_cbacklog_busgateway_hub]={{libdir}}/nagios/plugins/check_fedmsg_consumer_backlog.py fedmsg-hub Nommer 500 1000
command[check_fedmsg_cbacklog_busgateway_relay]={{libdir}}/nagios/plugins/check_fedmsg_consumer_backlog.py fedmsg-relay RelayConsumer 10 50
command[check_fedmsg_cbacklog_busgateway_gateway]={{libdir}}/nagios/plugins/check_fedmsg_consumer_backlog.py fedmsg-gateway GatewayConsumer 10 50
command[check_fedmsg_cbacklog_anitya_relay]={{libdir}}/nagios/plugins/check_fedmsg_consumer_backlog.py fedmsg-relay RelayConsumer 10 50
command[check_fedmsg_cbacklog_app]={{libdir}}/nagios/plugins/check_fedmsg_consumer_backlog.py fedmsg-relay RelayConsumer 10 50
command[check_fedmsg_cbacklog_value]={{libdir}}/nagios/plugins/check_fedmsg_consumer_backlog.py fedmsg-irc IRCBotConsumer 10 50
command[check_fedmsg_cbacklog_pkgs]={{libdir}}/nagios/plugins/check_fedmsg_consumer_backlog.py fedmsg-hub GenACLsConsumer 10 50
command[check_fedmsg_cbacklog_summershum]={{libdir}}/nagios/plugins/check_fedmsg_consumer_backlog.py fedmsg-hub SummerShumConsumer 100 500
command[check_fedmsg_cbacklog_badges_backend]={{libdir}}/nagios/plugins/check_fedmsg_consumer_backlog.py fedmsg-hub FedoraBadgesConsumer 7000 10000
command[check_fedmsg_cbacklog_notifs_backend]={{libdir}}/nagios/plugins/check_fedmsg_consumer_backlog.py fedmsg-hub FMNConsumer 15000 20000
command[check_fedmsg_cbacklog_bugzilla2fedmsg]={{libdir}}/nagios/plugins/check_fedmsg_consumer_backlog.py moksha-hub BugzillaConsumer 10 100
command[check_fedmsg_cbacklog_fedimg_backend]={{libdir}}/nagios/plugins/check_fedmsg_consumer_backlog.py fedmsg-hub FedimgConsumer 2000 5000
command[check_fedmsg_cbacklog_hotness_backend]={{libdir}}/nagios/plugins/check_fedmsg_consumer_backlog.py fedmsg-hub BugzillaTicketFiler 1000 5000
command[check_fedmsg_cbacklog_bodhi_backend01_hub]={{libdir}}/nagios/plugins/check_fedmsg_consumer_backlog.py fedmsg-hub Masher 500 1000
command[check_fedmsg_cbacklog_bodhi_backend02_hub]={{libdir}}/nagios/plugins/check_fedmsg_consumer_backlog.py fedmsg-hub UpdatesHandler 500 1000
command[check_fedmsg_cbacklog_autocloud_backend]={{libdir}}/nagios/plugins/check_fedmsg_consumer_backlog.py fedmsg-hub AutoCloudConsumer 100 500
command[check_fedmsg_cbacklog_packages_backend]={{libdir}}/nagios/plugins/check_fedmsg_consumer_backlog.py fedmsg-hub CacheInvalidator 20000 30000
command[check_fedmsg_cbacklog_bugyou_backend]={{libdir}}/nagios/plugins/check_fedmsg_consumer_backlog.py fedmsg-hub BugyouConsumer 5000 10000
command[check_fedmsg_cbacklog_pdc_backend]={{libdir}}/nagios/plugins/check_fedmsg_consumer_backlog.py fedmsg-hub PDCUpdater 10000 20000
command[check_fedmsg_cbacklog_mbs_backend]={{libdir}}/nagios/plugins/check_fedmsg_consumer_backlog.py fedmsg-hub MBSConsumer 10000 20000
command[check_fedmsg_fmn_digest_last_ran]={{libdir}}/nagios/plugins/check_fedmsg_producer_last_ran.py fedmsg-hub DigestProducer 90 600
command[check_fedmsg_fmn_confirm_last_ran]={{libdir}}/nagios/plugins/check_fedmsg_producer_last_ran.py fedmsg-hub ConfirmationProducer 90 600

View File

@ -1 +0,0 @@
command[check_fedmsg_gateway_proc]={{ libdir }}/nagios/plugins/check_procs -c 1:1 -C 'fedmsg-gateway' -u fedmsg

View File

@ -1 +0,0 @@
command[check_fedmsg_hub_proc]={{ libdir }}/nagios/plugins/check_procs -c 1:1 -C 'fedmsg-hub' -u fedmsg

View File

@ -1 +0,0 @@
command[check_fedmsg_hub_procs_bugyou]={{ libdir }}/nagios/plugins/check_procs -c 3:3 -C 'fedmsg-hub' -u fedmsg

View File

@ -1 +0,0 @@
command[check_fedmsg_irc_proc]={{ libdir }}/nagios/plugins/check_procs -c 1:1 -C 'fedmsg-irc' -u fedmsg

View File

@ -1 +0,0 @@
command[check_fedmsg_masher_proc]={{ libdir }}/nagios/plugins/check_procs -c 1:1 -C 'fedmsg-hub' -u apache

View File

@ -1 +0,0 @@
command[check_fedmsg_relay_proc]={{ libdir }}/nagios/plugins/check_procs -c 1:1 -C 'fedmsg-relay' -u fedmsg

View File

@ -1,2 +0,0 @@
command[check_fmn_worker_queue]={{ libdir }}/nagios/plugins/check_rabbitmq_size workers 200 1000
command[check_fmn_backend_queue]={{ libdir }}/nagios/plugins/check_rabbitmq_size backends 100 200

View File

@ -1 +0,0 @@
command[check_haproxy_conns]=/usr/lib64/nagios/plugins/check_haproxy_conns.py

View File

@ -1 +0,0 @@
command[check_ipa_replication]={{ libdir }}/nagios/plugins/check_ipa_replication -u ldaps://localhost/

View File

@ -1 +0,0 @@
command[check_koschei_build_resolver_proc]={{ libdir }}/nagios/plugins/check_procs -s RSD -u koschei -C koschei-build-r -c 1:1

View File

@ -1 +0,0 @@
command[check_koschei_polling_proc]={{ libdir }}/nagios/plugins/check_procs -s RSD -u koschei -C koschei-polling -c 1:1

View File

@ -1 +0,0 @@
command[check_koschei_repo_resolver_proc]={{ libdir }}/nagios/plugins/check_procs -s RSD -u koschei -C koschei-repo-re -c 1:1

View File

@ -1 +0,0 @@
command[check_koschei_scheduler_proc]={{ libdir }}/nagios/plugins/check_procs -s RSD -u koschei -C koschei-schedul -c 1:1

View File

@ -1 +0,0 @@
command[check_koschei_watcher_proc]={{ libdir }}/nagios/plugins/check_procs -s RSD -u koschei -C koschei-watcher -c 1:1

View File

@ -1 +0,0 @@
command[check_lock]={{ libdir }}/nagios/plugins/check_lock

View File

@ -1 +0,0 @@
command[check_lock_file_age]={{ libdir }}/nagios/plugins/check_lock_file_age -w 1 -c 5 -f /var/lock/fedora-ca/lock

View File

@ -1,2 +0,0 @@
command[check_memcache]=/usr/lib64/nagios/plugins/check_procs -c 1:1 -a '/usr/bin/memcached' -u memcached
command[check_memcache_connect]=/usr/lib64/nagios/plugins/check_memcache_connect

View File

@ -1 +0,0 @@
command[check_merged_file_age]=/usr/lib64/nagios/plugins/check_file_age -w 120 -c 300 /var/log/merged/messages.log

View File

@ -1 +0,0 @@
command[check_mirrorlist_cache]={{ libdir }}/nagios/plugins/check_file_age -w 14400 -c 129600 -f /var/lib/mirrormanager/mirrorlist_cache.pkl

View File

@ -1 +0,0 @@
command[check_mysql_backup]={{ libdir }}/nagios/plugins/check_file_age -w 86400 -c 129600 -f /backups/fpo-mediawiki-latest.xz

View File

@ -1 +0,0 @@
command[check_openvpn_link]={{ libdir }}/nagios/plugins/check_ping -H 192.168.1.41 -w 375.0,20% -c 500,60%

View File

@ -1,2 +0,0 @@
command[check_osbs_builds]={{ libdir }}/nagios/plugins/check_osbs_builds.py
command[check_osbs_api]={{ libdir }}/nagios/plugins/check_osbs_api.py

View File

@ -1 +0,0 @@
command[check_postfix_queue]={{ libdir }}/nagios/plugins/check_postfix_queue -w {{ nrpe_check_postfix_queue_warn }} -c {{ nrpe_check_postfix_queue_crit }}

View File

@ -1 +0,0 @@
command[check_raid]={{ libdir }}/nagios/plugins/check_raid.py

View File

@ -1 +0,0 @@
command[check_readonly_fs]=/usr/lib64/nagios/plugins/check_readonly_fs

View File

@ -1 +0,0 @@
command[check_redis_proc]=/usr/lib64/nagios/plugins/check_procs -c 1:1 -C 'redis-server' -u redis

View File

@ -1 +0,0 @@
command[check_supybot_fedmsg_plugin]={{libdir}}/nagios/plugins/check_supybot_plugin -t fedmsg

View File

@ -1 +0,0 @@
command[check_swap]={{ libdir }}/nagios/plugins/check_swap -w 15% -c 10%

View File

@ -1 +0,0 @@
command[check_testcloud]={{ libdir }}/nagios/plugins/check_testcloud

View File

@ -1 +0,0 @@
command[check_unbound_proc]={{ libdir }}/nagios/plugins/check_procs -c 1:1 -C 'unbound' -u unbound

View File

@ -1 +0,0 @@
command[check_varnish_proc]=/usr/lib64/nagios/plugins/check_procs -c 1:2 -C 'varnishd' -u nobody

View File

@ -1,232 +0,0 @@
#############################################################################
# Sample NRPE Config File
# Written by: Ethan Galstad (nagios@nagios.org)
#
# Last Modified: 11-23-2007
#
# NOTES:
# This is a sample configuration file for the NRPE daemon. It needs to be
# located on the remote host that is running the NRPE daemon, not the host
# from which the check_nrpe client is being executed.
#############################################################################
# LOG FACILITY
# The syslog facility that should be used for logging purposes.
log_facility=daemon
# PID FILE
# The name of the file in which the NRPE daemon should write it's process ID
# number. The file is only written if the NRPE daemon is started by the root
# user and is running in standalone mode.
#pid_file=/var/run/nrpe.pid
# PORT NUMBER
# Port number we should wait for connections on.
# NOTE: This must be a non-priviledged port (i.e. > 1024).
# NOTE: This option is ignored if NRPE is running under either inetd or xinetd
server_port=5666
# SERVER ADDRESS
# Address that nrpe should bind to in case there are more than one interface
# and you do not want nrpe to bind on all interfaces.
# NOTE: This option is ignored if NRPE is running under either inetd or xinetd
#server_address=127.0.0.1
# NRPE USER
# This determines the effective user that the NRPE daemon should run as.
# You can either supply a username or a UID.
#
# NOTE: This option is ignored if NRPE is running under either inetd or xinetd
nrpe_user=nrpe
# NRPE GROUP
# This determines the effective group that the NRPE daemon should run as.
# You can either supply a group name or a GID.
#
# NOTE: This option is ignored if NRPE is running under either inetd or xinetd
nrpe_group=nrpe
# ALLOWED HOST ADDRESSES
# This is an optional comma-delimited list of IP address or hostnames
# that are allowed to talk to the NRPE daemon. Network addresses with a bit mask
# (i.e. 192.168.1.0/24) are also supported. Hostname wildcards are not currently
# supported.
#
# Note: The daemon only does rudimentary checking of the client's IP
# address. I would highly recommend adding entries in your /etc/hosts.allow
# file to allow only the specified host to connect to the port
# you are running this daemon on.
#
# NOTE: This option is ignored if NRPE is running under either inetd or xinetd
{% if env == "staging" %}
allowed_hosts=10.5.126.2,10.5.126.41,10.5.126.241,192.168.1.10,192.168.1.20,209.132.181.35,192.168.1.166,209.132.181.102
{% else %}
allowed_hosts=10.5.126.41,192.168.1.10,192.168.1.20,209.132.181.35,10.5.126.241,192.168.1.166,209.132.181.102
{% endif %}
# COMMAND ARGUMENT PROCESSING
# This option determines whether or not the NRPE daemon will allow clients
# to specify arguments to commands that are executed. This option only works
# if the daemon was configured with the --enable-command-args configure script
# option.
#
# *** ENABLING THIS OPTION IS A SECURITY RISK! ***
# Read the SECURITY file for information on some of the security implications
# of enabling this variable.
#
# Values: 0=do not allow arguments, 1=allow command arguments
dont_blame_nrpe=0
# COMMAND PREFIX
# This option allows you to prefix all commands with a user-defined string.
# A space is automatically added between the specified prefix string and the
# command line from the command definition.
#
# *** THIS EXAMPLE MAY POSE A POTENTIAL SECURITY RISK, SO USE WITH CAUTION! ***
# Usage scenario:
# Execute restricted commmands using sudo. For this to work, you need to add
# the nagios user to your /etc/sudoers. An example entry for alllowing
# execution of the plugins from might be:
#
# nagios ALL=(ALL) NOPASSWD: /usr/lib/nagios/plugins/
#
# This lets the nagios user run all commands in that directory (and only them)
# without asking for a password. If you do this, make sure you don't give
# random users write access to that directory or its contents!
# command_prefix=/usr/bin/sudo
# DEBUGGING OPTION
# This option determines whether or not debugging messages are logged to the
# syslog facility.
# Values: 0=debugging off, 1=debugging on
debug=0
# COMMAND TIMEOUT
# This specifies the maximum number of seconds that the NRPE daemon will
# allow plugins to finish executing before killing them off.
command_timeout=100
# CONNECTION TIMEOUT
# This specifies the maximum number of seconds that the NRPE daemon will
# wait for a connection to be established before exiting. This is sometimes
# seen where a network problem stops the SSL being established even though
# all network sessions are connected. This causes the nrpe daemons to
# accumulate, eating system resources. Do not set this too low.
connection_timeout=300
# WEEK RANDOM SEED OPTION
# This directive allows you to use SSL even if your system does not have
# a /dev/random or /dev/urandom (on purpose or because the necessary patches
# were not applied). The random number generator will be seeded from a file
# which is either a file pointed to by the environment valiable $RANDFILE
# or $HOME/.rnd. If neither exists, the pseudo random number generator will
# be initialized and a warning will be issued.
# Values: 0=only seed from /dev/[u]random, 1=also seed from weak randomness
#allow_weak_random_seed=1
# INCLUDE CONFIG FILE
# This directive allows you to include definitions from an external config file.
#include=<somefile.cfg>
# INCLUDE CONFIG DIRECTORY
# This directive allows you to include definitions from config files (with a
# .cfg extension) in one or more directories (with recursion).
include_dir=/etc/nrpe.d/
# COMMAND DEFINITIONS
# Command definitions that this daemon will run. Definitions
# are in the following format:
#
# command[<command_name>]=<command_line>
#
# When the daemon receives a request to return the results of <command_name>
# it will execute the command specified by the <command_line> argument.
#
# Unlike Nagios, the command line cannot contain macros - it must be
# typed exactly as it should be executed.
#
# Note: Any plugins that are used in the command lines must reside
# on the machine that this daemon is running on! The examples below
# assume that you have plugins installed in a /usr/local/nagios/libexec
# directory. Also note that you will have to modify the definitions below
# to match the argument format the plugins expect. Remember, these are
# examples only!
# The following examples use hardcoded command arguments...
command[check_users]={{ libdir }}/nagios/plugins/check_users -w 5 -c 10
command[check_load]={{ libdir }}/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
command[check_hda1]={{ libdir }}/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1
{% if inventory_hostname not in groups['zombie-infested'] %}
command[check_zombie_procs]={{ libdir }}/nagios/plugins/check_procs -w 5 -c 10 -s Z
{% else %}
# This host is prone to Zombies and we do not care or want to alert on it so we make the limits very high
command[check_zombie_procs]={{ libdir }}/nagios/plugins/check_procs -w 50000 -c 100000 -s Z
{% endif %}
command[check_total_procs]={{ libdir }}/nagios/plugins/check_procs -w {{ nrpe_procs_warn }} -c {{ nrpe_procs_crit }}
# The following examples allow user-supplied arguments and can
# only be used if the NRPE daemon was compiled with support for
# command arguments *AND* the dont_blame_nrpe directive in this
# config file is set to '1'. This poses a potential security risk, so
# make sure you read the SECURITY file before doing this.
#command[check_users]=/usr/lib64/nagios/plugins/check_users -w $ARG1$ -c $ARG2$
#command[check_load]=/usr/lib64/nagios/plugins/check_load -w $ARG1$ -c $ARG2$
#command[check_disk]=/usr/lib64/nagios/plugins/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
#command[check_procs]=/usr/lib64/nagios/plugins/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$
# NEVER ADD ANYTHING HERE - ANY ENTRIES TO NRPE SHOULD BE in .cfg files in /etc/nrpe.d/
# NEVER NEVER NEVER
#

View File

@ -1,104 +0,0 @@
#!/usr/bin/env python
#
# A script to read the Nagios status file and send email for notifications
# off, but have recovered.
#
# Written by Athmane Madjoudj <athmane@fedoraproject.org>, 2011-11-15
# based on tummy.com's work <jafo@tummy.com>, 2010-11-16
# Released under the GPLv2.
import re
from smtplib import SMTP
from email.mime.text import MIMEText
from socket import gethostname
# Settings
debug = 0
EMAIL_FROM="nagios@fedoraproject.org"
EMAIL_TO="sysadmin-noc-members@fedoraproject.org"
#EMAIL_TO="athmane@fedoraproject.org"
nagios_status_file = '/var/spool/nagios/status.dat'
class NagiosStatus:
def __init__(self, filename):
self.filename = filename
self.hosts = {}
self.load_status_file()
def load_status_file(self):
fp = open(self.filename, 'r')
while True:
line = fp.readline()
if not line: break
m = re.match(r'^hoststatus\s+{\s*$', line)
if m:
if debug >= 2: print 'START OF HOST'
data = { 'services' : [] }
while True:
line = fp.readline()
if not line: break
if debug >= 2: print 'host: %s' % line.rstrip()
m2 = re.match(r'^\s+([^=]+)=(\S.*)*$', line.rstrip())
if not m2: break
data[m2.group(1)] = m2.group(2)
self.hosts[data['host_name']] = data
if debug >= 2: print 'END OF HOST'
m = re.match(r'^servicestatus\s+{\s*$', line)
if m:
if debug >= 2: print 'START OF SERVICE'
data = {}
while True:
line = fp.readline()
if not line: break
if debug >= 2: print 'service: %s' % line.rstrip()
m2 = re.match(r'^\s+([^=]+)=(.*)$', line.rstrip())
if not m2: break
data[m2.group(1)] = m2.group(2)
self.hosts[data['host_name']]['services'].append(data)
if debug >= 2: print 'END OF SERVICE'
def main():
status = NagiosStatus(nagios_status_file)
output = ""
for host in sorted(status.hosts.keys()):
host = status.hosts[host]
if host.get('notifications_enabled', None) == None:
output+= 'Host %s has no notifications_enabled line \n' % host['host_name']
continue
# are there any hard states that aren't 0 or 1?
hard_states = [ x for x in
[ int(x['last_hard_state']) for x in host['services'] ]
if not x in [0,1] ]
need_newline = False
if host['notifications_enabled'] == '0' and not hard_states:
output += ('Host %s has notifications disabled and all services ok \n'
% host['host_name'])
need_newline = True
for service in host['services']:
if debug: print '%s@%s' % ( service['check_command'], host['host_name'] )
if debug: print ' notifications_enabled: %(notifications_enabled)s last_hard_state: %(last_hard_state)s' % service
if (int(service['notifications_enabled']) == 0
and int(service['last_hard_state']) in [0,1]):
output+= (('Service %(check_command)s@%(host_name)s\n'
' has notifications disabled, but is ok\n') % service)
need_newline = True
if need_newline: output+="\n\n"
if output.strip() != '':
msg_body = "List of notifications off for recovered hosts/services: \n\n"+output
msg = MIMEText(msg_body)
msg['Subject']="Notifications status on %s" % gethostname()
msg['From']=EMAIL_FROM
msg['To']=EMAIL_TO
smtp_conn = SMTP()
smtp_conn.connect('localhost')
smtp_conn.sendmail(EMAIL_FROM, EMAIL_TO, msg.as_string())
smtp_conn.quit()
if __name__ == '__main__':
main()

View File

@ -1,59 +0,0 @@
#!/usr/bin/env python
""" Reads a string from stdin and prints it to stdout with irc colors
:license: LGPLv2+
:author: Ralph Bean <rbean@redhat.com>
"""
import sys
mirc_colors = {
"white": 0,
"black": 1,
"blue": 2,
"green": 3,
"red": 4,
"brown": 5,
"purple": 6,
"orange": 7,
"yellow": 8,
"light green": 9,
"teal": 10,
"light cyan": 11,
"light blue": 12,
"pink": 13,
"grey": 14,
"light grey": 15,
}
mapping = {
'RECOVERY': 'green',
'OK': 'green',
'ACKNOWLEDGEMENT': 'yellow',
'UNKNOWN': 'purple',
'WARNING': 'teal',
# 'red' probably makes the most sense here, but it behaved oddly
'PROBLEM': 'brown',
'CRITICAL': 'brown',
}
def markup(string, color):
return "\x02\x03%i%s\x03\x02" % (mirc_colors[color], string)
def colorize(word):
suffix = ''
if word.endswith(':'):
word, suffix = word[:-1], word[-1]
if word in mapping:
word = markup(word, mapping[word])
return word + suffix
if __name__ == '__main__':
lines = sys.stdin.readlines()
for line in lines:
print " ".join([colorize(word) for word in line.strip().split()])

View File

@ -1,279 +0,0 @@
#################################################################
#
# CGI.CFG - Sample CGI Configuration File for Nagios
#
# Last Modified: 05-05-2005
#
#################################################################
# MAIN CONFIGURATION FILE
# This tells the CGIs where to find your main configuration file.
# The CGIs will read the main and host config files for any other
# data they might need.
main_config_file=/etc/nagios/nagios.cfg
# PHYSICAL HTML PATH
# This is the path where the HTML files for Nagios reside. This
# value is used to locate the logo images needed by the statusmap
# and statuswrl CGIs.
physical_html_path=/usr/share/nagios/share
# URL HTML PATH
# This is the path portion of the URL that corresponds to the
# physical location of the Nagios HTML files (as defined above).
# This value is used by the CGIs to locate the online documentation
# and graphics. If you access the Nagios pages with an URL like
# http://www.myhost.com/nagios, this value should be '/nagios'
# (without the quotes).
url_html_path=/nagios-external
# CONTEXT-SENSITIVE HELP
# This option determines whether or not a context-sensitive
# help icon will be displayed for most of the CGIs.
# Values: 0 = disables context-sensitive help
# 1 = enables context-sensitive help
show_context_help=0
# NAGIOS PROCESS CHECK COMMAND
# This is the full path and filename of the program used to check
# the status of the Nagios process. It is used only by the CGIs
# and is completely optional. However, if you don't use it, you'll
# see warning messages in the CGIs about the Nagios process
# not running and you won't be able to execute any commands from
# the web interface. The program should follow the same rules
# as plugins; the return codes are the same as for the plugins,
# it should have timeout protection, it should output something
# to STDIO, etc.
#
# Note: The command line for the check_nagios plugin below may
# have to be tweaked a bit, as different versions of the plugin
# use different command line arguments/syntaxes.
#nagios_check_command=/usr/lib/nagios/plugins/check_nagios /var/log/nagios/status.dat 5 '/usr/sbin/nagios'
# AUTHENTICATION USAGE
# This option controls whether or not the CGIs will use any
# authentication when displaying host and service information, as
# well as committing commands to Nagios for processing.
#
# Read the HTML documentation to learn how the authorization works!
#
# NOTE: It is a really *bad* idea to disable authorization, unless
# you plan on removing the command CGI (cmd.cgi)! Failure to do
# so will leave you wide open to kiddies messing with Nagios and
# possibly hitting you with a denial of service attack by filling up
# your drive by continuously writing to your command file!
#
# Setting this value to 0 will cause the CGIs to *not* use
# authentication (bad idea), while any other value will make them
# use the authentication functions (the default).
use_authentication=1
# DEFAULT USER
# Setting this variable will define a default user name that can
# access pages without authentication. This allows people within a
# secure domain (i.e., behind a firewall) to see the current status
# without authenticating. You may want to use this to avoid basic
# authentication if you are not using a sercure server since basic
# authentication transmits passwords in the clear.
#
# Important: Do not define a default username unless you are
# running a secure web server and are sure that everyone who has
# access to the CGIs has been authenticated in some manner! If you
# define this variable, anyone who has not authenticated to the web
# server will inherit all rights you assign to this user!
#default_user_name=guest
# SYSTEM/PROCESS INFORMATION ACCESS
# This option is a comma-delimited list of all usernames that
# have access to viewing the Nagios process information as
# provided by the Extended Information CGI (extinfo.cgi). By
# default, *no one* has access to this unless you choose to
# not use authorization. You may use an asterisk (*) to
# authorize any user who has authenticated to the web server.
#authorized_for_system_information=nagiosadmin,theboss,jdoe
authorized_for_system_information=*
# CONFIGURATION INFORMATION ACCESS
# This option is a comma-delimited list of all usernames that
# can view ALL configuration information (hosts, commands, etc).
# By default, users can only view configuration information
# for the hosts and services they are contacts for. You may use
# an asterisk (*) to authorize any user who has authenticated
# to the web server.
#authorized_for_configuration_information=nagiosadmin,jdoe
authorized_for_configuration_information=*
# SYSTEM/PROCESS COMMAND ACCESS
# This option is a comma-delimited list of all usernames that
# can issue shutdown and restart commands to Nagios via the
# command CGI (cmd.cgi). Users in this list can also change
# the program mode to active or standby. By default, *no one*
# has access to this unless you choose to not use authorization.
# You may use an asterisk (*) to authorize any user who has
# authenticated to the web server.
#authorized_for_system_commands=nagiosadmin
authorized_for_system_commands=athmane,ausil,averi,badone,codeblock,hvivani,ianweller,jspaleta,jstanley,kevin,lbazan,lmacken,maxamillio,mmahut,mmcgrath,nb,pfrields,puiterwijk,rafaelgomes,ralph,sijis,smooge,susmit,tibbs,tmz,wsterling,mdomsch,notting,ricky,toshio,spot,mahrud,karsten,parasense,pingou,tflink,mizdebsk,msimacek
# GLOBAL HOST/SERVICE VIEW ACCESS
# These two options are comma-delimited lists of all usernames that
# can view information for all hosts and services that are being
# monitored. By default, users can only view information
# for hosts or services that they are contacts for (unless you
# you choose to not use authorization). You may use an asterisk (*)
# to authorize any user who has authenticated to the web server.
authorized_for_all_services=*
authorized_for_all_hosts=*
# GLOBAL HOST/SERVICE COMMAND ACCESS
# These two options are comma-delimited lists of all usernames that
# can issue host or service related commands via the command
# CGI (cmd.cgi) for all hosts and services that are being monitored.
# By default, users can only issue commands for hosts or services
# that they are contacts for (unless you you choose to not use
# authorization). You may use an asterisk (*) to authorize any
# user who has authenticated to the web server.
#authorized_for_all_service_commands=nagiosadmin
#authorized_for_all_host_commands=nagiosadmin
authorized_for_all_service_commands=athmane,ausil,averi,badone,codeblock,dwa,hvivani,ianweller,jspaleta,jstanley,kevin,lbazan,lmacken,maxamillio,mmahut,mmcgrath,nb,pfrields,puiterwijk,rafaelgomes,ralph,sijis,smooge,susmit,tibbs,tmz,wsterling,mdomsch,notting,ricky,toshio,spot,mahrud,dwa,karsten,pingou,tflink,mizdebsk,msimacek
authorized_for_all_host_commands=athmane,ausil,averi,badone,codeblock,dwa,hvivani,ianweller,jspaleta,jstanley,kevin,lbazan,lmacken,maxamillio,mmahut,mmcgrath,nb,pfrields,puiterwijk,rafaelgomes,ralph,sijis,smooge,susmit,tibbs,tmz,wsterling,mdomsch,notting,ricky,toshio,spot,mahrud,dwa,karsten,pingou,tflink,mizdebsk,msimacek
# STATUSMAP BACKGROUND IMAGE
# This option allows you to specify an image to be used as a
# background in the statusmap CGI. It is assumed that the image
# resides in the HTML images path (i.e. /usr/local/nagios/share/images).
# This path is automatically determined by appending "/images"
# to the path specified by the 'physical_html_path' directive.
# Note: The image file may be in GIF, PNG, JPEG, or GD2 format.
# However, I recommend that you convert your image to GD2 format
# (uncompressed), as this will cause less CPU load when the CGI
# generates the image.
#statusmap_background_image=smbackground.gd2
# DEFAULT STATUSMAP LAYOUT METHOD
# This option allows you to specify the default layout method
# the statusmap CGI should use for drawing hosts. If you do
# not use this option, the default is to use user-defined
# coordinates. Valid options are as follows:
# 0 = User-defined coordinates
# 1 = Depth layers
# 2 = Collapsed tree
# 3 = Balanced tree
# 4 = Circular
# 5 = Circular (Marked Up)
default_statusmap_layout=5
# DEFAULT STATUSWRL LAYOUT METHOD
# This option allows you to specify the default layout method
# the statuswrl (VRML) CGI should use for drawing hosts. If you
# do not use this option, the default is to use user-defined
# coordinates. Valid options are as follows:
# 0 = User-defined coordinates
# 2 = Collapsed tree
# 3 = Balanced tree
# 4 = Circular
default_statuswrl_layout=4
# STATUSWRL INCLUDE
# This option allows you to include your own objects in the
# generated VRML world. It is assumed that the file
# resides in the HTML path (i.e. /usr/local/nagios/share).
#statuswrl_include=myworld.wrl
# PING SYNTAX
# This option determines what syntax should be used when
# attempting to ping a host from the WAP interface (using
# the statuswml CGI. You must include the full path to
# the ping binary, along with all required options. The
# $HOSTADDRESS$ macro is substituted with the address of
# the host before the command is executed.
# Please note that the syntax for the ping binary is
# notorious for being different on virtually ever *NIX
# OS and distribution, so you may have to tweak this to
# work on your system.
ping_syntax=/bin/ping -n -U -c 5 $HOSTADDRESS$
# REFRESH RATE
# This option allows you to specify the refresh rate in seconds
# of various CGIs (status, statusmap, extinfo, and outages).
refresh_rate=90
# SOUND OPTIONS
# These options allow you to specify an optional audio file
# that should be played in your browser window when there are
# problems on the network. The audio files are used only in
# the status CGI. Only the sound for the most critical problem
# will be played. Order of importance (higher to lower) is as
# follows: unreachable hosts, down hosts, critical services,
# warning services, and unknown services. If there are no
# visible problems, the sound file optionally specified by
# 'normal_sound' variable will be played.
#
#
# <varname>=<sound_file>
#
# Note: All audio files must be placed in the /media subdirectory
# under the HTML path (i.e. /usr/local/nagios/share/media/).
#host_unreachable_sound=hostdown.wav
#host_down_sound=hostdown.wav
#service_critical_sound=critical.wav
#service_warning_sound=warning.wav
#service_unknown_sound=warning.wav
#normal_sound=noproblem.wav
base_url=/nagios-external

View File

@ -1,5 +0,0 @@
define contactgroup {
contactgroup_name bodhi
alias Bodhi Notifications
members lmacken
}

View File

@ -1,5 +0,0 @@
define contactgroup{
contactgroup_name fedora-sysadmin-email
alias Fedora Sysadmin Email Contacts
members mmcgrath,ausil,admin,nigelj,ricky,jcollie,smooge,nb,rigeld2,codeblock,kevin,hvivani,puiterwijk
}

View File

@ -1,5 +0,0 @@
define contactgroup{
contactgroup_name fedora-sysadmin-ircbot
alias Fedora Sysadmin irc Contacts
members ircbot
}

View File

@ -1,10 +0,0 @@
define contactgroup{
contactgroup_name fedora-sysadmin-pager
alias Fedora Sysadmin Pager Contacts
members mmcgrathp,rickyp,smoogep,kevinp,puiterwijkp
}
define contactgroup{
contactgroup_name fedora-sysadmin-emergency
alias Fedora Sysadmin Pager Contacts
members mmcgrath-emergency,ricky-emergency,smooge-emergency,kevin-emergency,puiterwijk-emergency
}

View File

@ -1,5 +0,0 @@
define contactgroup{
contactgroup_name null
alias null
members null
}

View File

@ -1,13 +0,0 @@
define contact{
contact_name admin
alias Fedora Sysadmins
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email
email sysadmin-members@fedoraproject.org
}

View File

@ -1,16 +0,0 @@
define contact{
contact_name ausil
alias Dennis Gilmore
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email
#service_notification_commands notify-by-epager
#host_notification_commands host-notify-by-epager
email ausil@fedoraproject.org
#pager 3098682442@tmomail.net
#email 3098682442@tmomail.net
}

View File

@ -1,11 +0,0 @@
define contact{
contact_name codeblock
alias Ricky Elrod
service_notification_period never
host_notification_period never
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email
email codeblock@elrod.me
}

View File

@ -1,12 +0,0 @@
define contact{
contact_name hvivani
alias Hernan Vivani
service_notification_period never
host_notification_period never
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email
email hernan@vivani.com.ar
}

View File

@ -1,10 +0,0 @@
define contact{
contact_name ircbot
alias ZOD
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-ircbot
host_notification_commands host-notify-by-ircbot
}

View File

@ -1,11 +0,0 @@
define contact{
contact_name jcollie
alias Jeffrey Ollie
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email
email jeff@ocjtech.us
}

View File

@ -1,11 +0,0 @@
#define contact{
# contact_name jmtaylor
# alias Jason Taylor
# service_notification_period 24x7
# host_notification_period 24x7
# service_notification_options w,u,c,r
# host_notification_options d,u,r
# service_notification_commands notify-by-email
# host_notification_commands host-notify-by-email
# email jmtaylor90@gmail.com
#}

View File

@ -1,37 +0,0 @@
define contact{
contact_name jstanley
alias Jon Stanley
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email
email jonstanley@gmail.com
}
define contact{
contact_name jstanley-emergency
alias Jon Stanley
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-epager
host_notification_commands host-notify-by-epager
email 9178159801@vtext.com
pager 9178159801@vtext.com
}
define contact{
contact_name jstanleyp
alias Jon Stanley
service_notification_period 16x7
host_notification_period 16x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-epager
host_notification_commands host-notify-by-epager
email 9178159801@vtext.com
pager 9178159801@vtext.com
}

View File

@ -1,35 +0,0 @@
define contact{
contact_name kevin
alias Kevin Fenzi
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email
email kevin-pager@scrye.com
}
define contact{
contact_name kevin-emergency
alias Kevin Fenzi
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-epager
host_notification_commands host-notify-by-epager
pager kevin-urgent@scrye.com
}
define contact{
contact_name kevinp
alias Kevin Fenzi
service_notification_period 16x7
host_notification_period 16x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-epager
host_notification_commands host-notify-by-epager
pager kevin-urgent@scrye.com
}

View File

@ -1,11 +0,0 @@
define contact{
contact_name lmacken
alias Luke Macken
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email
email lewk@vtext.com
}

View File

@ -1,38 +0,0 @@
define contact{
contact_name mmcgrath
alias Mike McGrath
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email
email mmcgrath@redhat.com
}
define contact{
contact_name mmcgrath-emergency
alias Mike McGrath
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-epager
host_notification_commands host-notify-by-epager
email imlinux+mobile@gmail.com
pager imlinux+mobile@gmail.com
}
define contact{
contact_name mmcgrathp
alias Mike McGrath
service_notification_period 16x7
host_notification_period 16x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-epager
host_notification_commands host-notify-by-epager
email imlinux+mobile@gmail.com
pager imlinux+mobile@gmail.com
}

View File

@ -1,38 +0,0 @@
define contact{
contact_name nb
alias Nick Bebout
service_notification_period never
host_notification_period never
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email
email nick@bebout.net
}
#define contact{
# contact_name nb-emergency
# alias Nick Bebout
# service_notification_period never
# host_notification_period never
# service_notification_options w,u,c,r
# host_notification_options d,u,r
# service_notification_commands notify-by-epager
# host_notification_commands host-notify-by-epager
# email nb5@txt.att.net
# pager nb5@txt.att.net
#}
#define contact{
# contact_name nbp
# alias Nick Bebout
# service_notification_period never
# host_notification_period never
# service_notification_options w,u,c,r
# host_notification_options d,u,r
# service_notification_commands notify-by-epager
# host_notification_commands host-notify-by-epager
# email nb5@txt.att.net
# pager nb5@txt.att.net
#}

View File

@ -1,11 +0,0 @@
define contact{
contact_name nigelj
alias Nigel Jones
service_notification_period never
host_notification_period never
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email
email dev@nigelj.com
}

View File

@ -1,11 +0,0 @@
define contact{
contact_name null
alias null
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email
email nobody@fedoraproject.org
}

View File

@ -1,35 +0,0 @@
define contact{
contact_name puiterwijk
alias Patrick Uiterwijk
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-epager
host_notification_commands host-notify-by-epager
pager pager@puiterwijk.org
}
define contact{
contact_name puiterwijkp
alias Patrick Uiterwijk
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-epager
host_notification_commands host-notify-by-epager
pager pager@puiterwijk.org
}
define contact{
contact_name puiterwijk-emergency
alias Patrick Uiterwijk
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-epager
host_notification_commands host-notify-by-epager
pager emergency@puiterwijk.org
}

View File

@ -1,38 +0,0 @@
define contact{
contact_name ricky
alias Ricky Zhou
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email
email ricky@rzhou.org
}
define contact{
contact_name ricky-emergency
alias Ricky Zhou
service_notification_period never
host_notification_period never
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-epager
host_notification_commands host-notify-by-epager
email 2014030692@vtext.com
pager 2014030692@vtext.com
}
define contact{
contact_name rickyp
alias Ricky Zhou
service_notification_period never
host_notification_period never
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-epager
host_notification_commands host-notify-by-epager
email 2014030692@vtext.com
pager 2014030692@vtext.com
}

View File

@ -1,11 +0,0 @@
define contact{
contact_name rigeld2
alias Rob Marti
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email
email robmartiwork@gmail.com
}

View File

@ -1,48 +0,0 @@
#define contact{
# contact_name skvidal
# alias Seth Vidal
# service_notification_period 24x7
# host_notification_period 24x7
# service_notification_options w,u,c,r
# host_notification_options d,u,r
# service_notification_commands notify-by-email
# host_notification_commands host-notify-by-email
# email seth-alert@sethdot.org
#}
#
#define contact{
# contact_name skvidal_xmpp
# alias Seth Vidal
# service_notification_period 24x7
# host_notification_period 24x7
# service_notification_options w,u,c,r
# host_notification_options d,u,r
# service_notification_commands notify-by-xmpp
# host_notification_commands host-notify-by-xmpp
# email skvidal@jabber.org
#}
#
#define contact{
# contact_name skvidal-emergency
# alias Seth Vidal
# service_notification_period 24x7
# host_notification_period 24x7
# service_notification_options w,u,c,r
# host_notification_options d,u,r
# service_notification_commands notify-by-epager
# host_notification_commands host-notify-by-epager
# email page-seth-vidal@sethdot.org
#}
#
#define contact{
# contact_name skvidalp
# alias Seth Vidal
# service_notification_period 16x7
# host_notification_period 16x7
# service_notification_options w,u,c,r
# host_notification_options d,u,r
# service_notification_commands notify-by-epager
# host_notification_commands host-notify-by-epager
# email page-seth-vidal@sethdot.org
# pager page-seth-vidal@sethdot.org
#}

View File

@ -1,38 +0,0 @@
define contact{
contact_name smooge
alias Stephen Smoogen
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email
email smooge+notify@gmail.com
}
define contact{
contact_name smooge-emergency
alias Stephen Smoogen
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-epager
host_notification_commands host-notify-by-epager
email smooge+mobile@gmail.com
pager smooge+mobile@gmail.com
}
define contact{
contact_name smoogep
alias Stephen Smoogen
service_notification_period 16x7
host_notification_period 16x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-epager
host_notification_commands host-notify-by-epager
email smooge+mobile@gmail.com
pager smooge+mobile@gmail.com
}

View File

@ -1,22 +0,0 @@
define hostescalation{
host_name *
hostgroup_name *
contact_groups fedora-sysadmin-email,fedora-sysadmin-emergency,fedora-sysadmin-ircbot
first_notification 2
last_notification 0
notification_interval 60
escalation_period 24x7
escalation_options d,u,r
}
define serviceescalation{
host_name *
description *
contact_groups fedora-sysadmin-email,fedora-sysadmin-emergency,fedora-sysadmin-ircbot
first_notification 2
last_notification 0
notification_interval 60
escalation_period 24x7
escalation_options w,u,c,r
}

View File

@ -1,9 +0,0 @@
###############
# All Servers and associated devices
###############
define hostgroup {
hostgroup_name all
alias All hosts / Devices
members *
}

View File

@ -1,9 +0,0 @@
###############
# DNS Servers
###############
define hostgroup {
hostgroup_name dnsservers
alias DNS Servers
members ns02, ns04, ns05
}

View File

@ -1,329 +0,0 @@
#
# phx2
#
define host {
host_name 209.132.181.16-phx2
alias 209.132.181.16-phx2
use defaulttemplate
address 209.132.181.16
parents proxy01.fedoraproject.org
}
define host {
host_name proxy01.fedoraproject.org
alias proxy01.fedoraproject.org
use defaulttemplate
address 209.132.181.16
}
define host {
host_name 209.132.181.15-phx2
alias 209.132.181.15-phx2
use defaulttemplate
address 209.132.181.15
parents proxy10.fedoraproject.org
}
define host {
host_name proxy10.fedoraproject.org
alias proxy10.fedoraproject.org
use defaulttemplate
address 209.132.181.15
}
#
# rdu2
#
define host {
host_name 8.43.85.67-rdu2
alias 8.43.85.67-rdu2
use defaulttemplate
address 8.43.85.67
parents proxy14.fedoraproject.org
}
define host {
host_name proxy14.fedoraproject.org
alias proxy14.fedoraproject.org
use defaulttemplate
address 8.43.85.67
}
#
# tummy
#
#define host {
# host_name 66.35.62.166-tummy
# alias 66.35.62.166-tummy
# use defaulttemplate
# address 66.35.62.166
# parents proxy03.fedoraproject.org
#}
define host {
host_name proxy03.fedoraproject.org
alias proxy03.fedoraproject.org
use defaulttemplate
address 66.35.62.162
parents tummy01.fedoraproject.org
}
define host {
host_name tummy01.fedoraproject.org
alias tummy01.fedoraproject.org
use defaulttemplate
address 66.35.62.161
}
#
# ibiblio
#
#define host {
# host_name 152.19.134.142-ibiblio
# alias 152.19.134.142-ibiblio
# use defaulttemplate
# address 152.19.134.142
# parents proxy04.fedoraproject.org
#}
define host {
host_name proxy04.fedoraproject.org
alias proxy04.fedoraproject.org
use defaulttemplate
address 152.19.134.142
parents ibiblio02.fedoraproject.org
}
define host {
host_name proxy12.fedoraproject.org
alias proxy12.fedoraproject.org
use defaulttemplate
address 152.19.134.198
parents ibiblio05.fedoraproject.org
}
define host {
host_name ibiblio02.fedoraproject.org
alias ibiblio02.fedoraproject.org
use defaulttemplate
address 152.19.134.169
}
#define host {
# host_name ibiblio05.fedoraproject.org
# alias ibiblio05.fedoraproject.org
# use defaulttemplate
# address 152.19.134.137
#}
#
# ibiblio ipv6
#
define host {
host_name admin-ipv6-ibiblio
alias 2610:28:3090:3001:dead:beef:cafe:fed3-ibiblio
use defaulttemplate
address 2610:28:3090:3001:dead:beef:cafe:fed3
parents proxy04-ipv6-ibiblio.fedoraproject.org
}
define host {
host_name proxy04-ipv6-ibiblio.fedoraproject.org
alias proxy04-ipv6-ibiblio.fedoraproject.org
use defaulttemplate
address 2610:28:3090:3001:dead:beef:cafe:fed3
}
#
# internetx
#
define host {
host_name 85.236.55.6-internetx
alias 85.236.55.6-internetx
use defaulttemplate
address 85.236.55.6
parents proxy02.fedoraproject.org
}
define host {
host_name proxy02.fedoraproject.org
alias proxy02.fedoraproject.org
use defaulttemplate
address 85.236.55.6
parents internetx01.fedoraproject.org
}
define host {
host_name internetx01.fedoraproject.org
alias internetx01.fedoraproject.org
use defaulttemplate
address 85.236.55.4
}
#
# internetx ipv6
#
define host {
host_name admin-ipv6-internetx
alias admin-ipv6-internetx
use defaulttemplate
address 2001:4178:2:1269::fed2
parents proxy02-ipv6-internetx.fedoraproject.org
}
define host {
host_name proxy02-ipv6-internetx.fedoraproject.org
alias proxy02-ipv6-internetx.fedoraproject.org
use defaulttemplate
address 2001:4178:2:1269::fed2
parents internetx01-ipv6.fedoraproject.org
}
define host {
host_name internetx01-ipv6.fedoraproject.org
alias internetx01-ipv6.fedoraproject.org
use defaulttemplate
address 2001:4178:2:1269::10
}
#
# osuosl
#
# define host {
# host_name 140.211.169.197-osuosl
# alias 140.211.169.197-osuosl
# use defaulttemplate
# address 140.211.169.197
# parents proxy06.fedoraproject.org
# }
define host {
host_name proxy06.fedoraproject.org
alias proxy06.fedoraproject.org
use defaulttemplate
address 140.211.169.196
parents osuosl01.fedoraproject.org
}
define host {
host_name proxy09.fedoraproject.org
alias proxy09.fedoraproject.org
use defaulttemplate
address 140.211.169.206
parents osuosl02.fedoraproject.org
}
define host {
host_name osuosl01.fedoraproject.org
alias osuosl01.fedoraproject.org
use defaulttemplate
address 140.211.169.194
}
define host {
host_name osuosl02.fedoraproject.org
alias osuosl02.fedoraproject.org
use defaulttemplate
address 140.211.169.195
}
#
# bodhost
#
#define host {
# host_name 213.175.193.206-bodhost
# alias 213.175.193.206-bodhost
# use defaulttemplate
# address 213.175.193.206
# parents proxy07.fedoraproject.org
#}
#
#define host {
# host_name proxy07.fedoraproject.org
# alias proxy07.fedoraproject.org
# use defaulttemplate
# address 213.175.193.206
# parents bodhost01.fedoraproject.org
#}
#
#define host {
# host_name bodhost01.fedoraproject.org
# alias bodhost01.fedoraproject.org
# use defaulttemplate
# address 94.76.206.175
#}
#
# coloamer
#
define host {
host_name 67.203.2.67-coloamer
alias 67.203.2.67-coloamer
use defaulttemplate
address 67.203.2.67
parents proxy08.fedoraproject.org
}
define host {
host_name proxy08.fedoraproject.org
alias proxy08.fedoraproject.org
use defaulttemplate
address 67.203.2.67
parents coloamer01.fedoraproject.org
}
define host {
host_name coloamer01.fedoraproject.org
alias coloamer01.fedoraproject.org
use defaulttemplate
address 67.203.2.66
}
#
# coloamer ipv6
#
define host {
host_name admin-ipv6-coloamer
alias admin-ipv6-coloamer
use defaulttemplate
address 2607:f188::dead:beef:cafe:fed1
parents proxy08-ipv6.fedoraproject.org
}
define host {
host_name proxy08-ipv6.fedoraproject.org
alias proxy08-ipv6.fedoraproject.org
use defaulttemplate
address 2607:f188::dead:beef:cafe:fed1
}
#
# dedicated ipv6
#
define host {
host_name admin-ipv6-dedicated
alias admin-ipv6-dedicated
use defaulttemplate
address 2604:1580:fe00:0:dead:beef:cafe:fed1
parents proxy11-ipv6.fedoraproject.org
}
define host {
host_name proxy11-ipv6.fedoraproject.org
alias proxy11-ipv6.fedoraproject.org
use defaulttemplate
address 2604:1580:fe00:0:dead:beef:cafe:fed1
}

View File

@ -1,21 +0,0 @@
define host {
host_name 152.19.134.199-people02
alias 152.19.134.199-people02
use defaulttemplate
address 152.19.134.199
parents ibiblio05.fedoraproject.org
}
define host {
host_name ibiblio05.fedoraproject.org
alias ibiblio05.fedoraproject.org
use defaulttemplate
address 152.19.134.137
}
define host {
host_name ipv6-people02
alias ipv6-people02
use defaulttemplate
address 2610:28:3090:3001:5054:ff:fea7:9474
}

View File

@ -1,87 +0,0 @@
#define host {
# host_name 85.236.55.5-internetx
# alias 85.236.55.5-internetx
# use defaulttemplate
# address 85.236.55.5
# parents proxy02.fedoraproject.org
#}
define host {
host_name fpo-ipv6-internetx
alias fpo-ipv6-internetx
use defaulttemplate
address 2001:4178:2:1269::fed2
parents proxy02-ipv6-internetx.fedoraproject.org
}
define host {
host_name 66.35.62.162-tummy
alias 66.35.62.162-tummy
use defaulttemplate
address 66.35.62.162
parents proxy03.fedoraproject.org
}
define host {
host_name 152.19.134.142-ibiblio
alias 152.19.134.142-ibiblio
use defaulttemplate
address 152.19.134.142
parents proxy04.fedoraproject.org
}
define host {
host_name 152.19.134.198-ibiblio
alias 152.19.134.198-ibiblio
use defaulttemplate
address 152.19.134.198
parents proxy12.fedoraproject.org
}
# define host {
# host_name fpo-ipv6-ibiblio
# alias fpo-ipv6-ibiblio
# use defaulttemplate
# address 2610:28:3090:3001:dead:beef:cafe:fed4
# parents proxy04-ipv6-ibiblio.fedoraproject.org
# }
#define host {
# host_name proxy06.fedorarproject.org
# alias proxy06.fedorarproject.org
# use defaulttemplate
# address 140.211.169.197
# parents proxy06.fedoraproject.org
#}
#define host {
# host_name 213.175.193.205-bodhost
# alias 213.175.193.205-bodhost
# use defaulttemplate
# address 213.175.193.205
# parents proxy07.fedoraproject.org
#}
define host {
host_name 67.203.2.67-coloamerica
alias 67.203.2.67-coloamerica
use defaulttemplate
address 67.203.2.67
parents proxy08.fedoraproject.org
}
define host {
host_name fpo-ipv6-coloamerica
alias fpo-ipv6-coloamerica
use defaulttemplate
address 2607:f188::dead:beef:cafe:fed1
parents proxy08-ipv6.fedoraproject.org
}
define host {
host_name fpo-ipv6-dedicatedsolutions
alias fpo-ipv6-dedicatedsolutions
use defaulttemplate
address 2604:1580:fe00:0:dead:beef:cafe:fed1
parents proxy11-ipv6.fedoraproject.org
}

View File

@ -1,7 +0,0 @@
define host {
host_name openvpn-phx
alias openvpn-phx
use defaulttemplate
address 192.168.0.1
}

Some files were not shown because too many files have changed in this diff Show More