Make the Nagios integration configurable, available, and documented.
(imported from commit 1208fc08ed366a892763c3b29b9aeafa90b29981)
This commit is contained in:
parent
9acf43a440
commit
bd69166795
21
integrations/nagios/humbug_nagios.cfg
Normal file
21
integrations/nagios/humbug_nagios.cfg
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
define contact{
|
||||||
|
contact_name humbug
|
||||||
|
alias humbug
|
||||||
|
service_notification_period 24x7
|
||||||
|
host_notification_period 24x7
|
||||||
|
service_notification_options w,u,c,r
|
||||||
|
host_notification_options d,r
|
||||||
|
service_notification_commands notify-service-by-humbug
|
||||||
|
host_notification_commands notify-host-by-humbug
|
||||||
|
}
|
||||||
|
|
||||||
|
# Humbug commands
|
||||||
|
define command {
|
||||||
|
command_name notify-host-by-humbug
|
||||||
|
command_line /usr/local/share/humbug/integrations/nagios/nagios-notify-humbug --stream=nagios --type="$NOTIFICATIONTYPE$" --host="$HOSTADDRESS$" --state="$HOSTSTATE$" --output="$HOSTOUTPUT$" --long-output="$LONGHOSTOUTPUT$"
|
||||||
|
}
|
||||||
|
|
||||||
|
define command {
|
||||||
|
command_name notify-service-by-humbug
|
||||||
|
command_line /usr/local/share/humbug/integrations/nagios/nagios-notify-humbug --stream=nagios --type="$NOTIFICATIONTYPE$" --host="$HOSTADDRESS$" --service="$SERVICEDESC$" --state="$SERVICESTATE$" --output="$SERVICEOUTPUT$" --long-output="$LONGSERVICEOUTPUT$"
|
||||||
|
}
|
5
integrations/nagios/humbugrc.example
Normal file
5
integrations/nagios/humbugrc.example
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
# Fill these values in with the appropriate values for your realm, and
|
||||||
|
# then install this value at /etc/nagios3/humbugrc
|
||||||
|
[api]
|
||||||
|
email = nagios@example.com
|
||||||
|
key = 0123456789abcdef0123456789abcdef
|
|
@ -1,9 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
import sys
|
import sys
|
||||||
import optparse
|
import optparse
|
||||||
from os import path
|
import os.path
|
||||||
|
|
||||||
sys.path.append(path.join(path.dirname(__file__), '../api'))
|
|
||||||
import humbug
|
import humbug
|
||||||
|
|
||||||
# Nagios passes the notification details as command line options.
|
# Nagios passes the notification details as command line options.
|
||||||
|
@ -12,11 +10,15 @@ import humbug
|
||||||
parser = optparse.OptionParser()
|
parser = optparse.OptionParser()
|
||||||
parser.add_option('--output', default='')
|
parser.add_option('--output', default='')
|
||||||
parser.add_option('--long-output', default='')
|
parser.add_option('--long-output', default='')
|
||||||
|
parser.add_option('--stream', default='nagios')
|
||||||
|
parser.add_option('--config', default='/etc/nagios3/humbugrc')
|
||||||
for opt in ('type', 'host', 'service', 'state'):
|
for opt in ('type', 'host', 'service', 'state'):
|
||||||
parser.add_option('--' + opt)
|
parser.add_option('--' + opt)
|
||||||
(opts, args) = parser.parse_args()
|
(opts, args) = parser.parse_args()
|
||||||
|
|
||||||
msg = dict(type='stream', to='nagios')
|
client = humbug.Client(config_file=opts.config)
|
||||||
|
|
||||||
|
msg = dict(type='stream', to=opts.stream)
|
||||||
|
|
||||||
# Set a subject based on the host or service in question. This enables
|
# Set a subject based on the host or service in question. This enables
|
||||||
# threaded discussion of multiple concurrent issues, and provides useful
|
# threaded discussion of multiple concurrent issues, and provides useful
|
||||||
|
@ -43,8 +45,4 @@ if output:
|
||||||
# Put any command output in a code block.
|
# Put any command output in a code block.
|
||||||
msg['content'] += ('\n\n~~~~\n' + output + "\n~~~~\n")
|
msg['content'] += ('\n\n~~~~\n' + output + "\n~~~~\n")
|
||||||
|
|
||||||
client = humbug.Client(
|
|
||||||
email = 'humbug+nagios@humbughq.com',
|
|
||||||
api_key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
|
|
||||||
site = 'https://staging.humbughq.com')
|
|
||||||
client.send_message(msg)
|
client.send_message(msg)
|
1
setup.py
1
setup.py
|
@ -22,6 +22,7 @@ setup(name='humbug',
|
||||||
packages=['humbug'],
|
packages=['humbug'],
|
||||||
data_files=[('share/humbug/examples', ["examples/humbugrc", "examples/send-message"]),
|
data_files=[('share/humbug/examples', ["examples/humbugrc", "examples/send-message"]),
|
||||||
('share/humbug/integrations/trac', glob.glob('integrations/trac/*')),
|
('share/humbug/integrations/trac', glob.glob('integrations/trac/*')),
|
||||||
|
('share/humbug/integrations/nagios', glob.glob('integrations/nagios/*')),
|
||||||
],
|
],
|
||||||
scripts=["bin/humbug-send"],
|
scripts=["bin/humbug-send"],
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in a new issue