From d1dd5d5d4343cdacf19658e8e4f34d4aded9ef3e Mon Sep 17 00:00:00 2001 From: "root@atlantishq-michy-sheppy" Date: Thu, 11 Jun 2020 01:41:45 +0200 Subject: [PATCH 1/2] redefine interface to allow markdown on remote --- telegram-notify.py | 45 ++++++++++++++++++++++----------------------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/telegram-notify.py b/telegram-notify.py index 7c3a60c..e0785b7 100755 --- a/telegram-notify.py +++ b/telegram-notify.py @@ -6,33 +6,32 @@ import requests if __name__ == "__main__": parser = argparse.ArgumentParser(description='Send Notifications via Telegram HTTP-Gateway', formatter_class=argparse.ArgumentDefaultsHelpFormatter) - parser.add_argument('-4', required=False, help="Address (v4)") - parser.add_argument('-6', required=False, help="Address (v6)") - parser.add_argument('-b', required=False, help="Author") - parser.add_argument('-c', required=False, help="Comment") - parser.add_argument('-d', required=False, help="Date") - parser.add_argument('-e', required=False, help="Service Name") - parser.add_argument('-f', required=False, help="From") - parser.add_argument('-i', required=False, help="Icingaweb URL") - parser.add_argument('-l', required=False, help="Hostname") - parser.add_argument('-n', required=False, help="Hostdisplay Name") - parser.add_argument('-o', required=False, help="Service Output") - parser.add_argument('-r', required=False, help="User Email") - parser.add_argument('-s', required=False, help="Service State") - parser.add_argument('-t', required=False, help="Type") - parser.add_argument('-u', required=False, help="Service Display Name") + + parser.add_argument('-4', '--ipv6', required=False, help="Address (v4)") + parser.add_argument('-6', '--ipv4', required=False, help="Address (v6)") + parser.add_argument('-b', '--author', required=False, help="Author") + parser.add_argument('-c', '--comment', required=False, help="Comment") + parser.add_argument('-d', '--date', required=False, help="Date") + parser.add_argument('-e', '--service-name', required=False, help="Service Name") + parser.add_argument('-f', '--from', required=False, help="From") + parser.add_argument('-i', '--icingaweb-url', required=False, help="Icingaweb URL") + parser.add_argument('-l', '--service-host', required=False, help="Hostname") + parser.add_argument('-n', '--service-host-alt', required=False, help="Hostdisplay Name") + parser.add_argument('-o', '--service-output', required=False, help="Service Output") + parser.add_argument('-r', '--user-email', required=False, help="User Email") + parser.add_argument('-s', '--service-state', required=False, help="Service State") + parser.add_argument('-t', '--service-type', required=False, help="Type") + parser.add_argument('-u', '--service-display-name', required=False, help="Service Display Name") + parser.add_argument('-v', required=False, help="Deprecated. Compability only. Has no Effect.") parser.add_argument('--target-port', default=6000, help="Target port on which Telegram Gateway is running") args = parser.parse_args() # build message # - serviceName = args.e - if args.u: - serviceName = args.u - message = "*{service} {state} on {host}*\n{output}\n**Icingaweb**: [{url}]({url})".format( - service=serviceName, state=args.s, host=args.l, output=args.o, url=args.i) + serviceName = args.service_name + if args.service_display_name: + serviceName = args.service_display_name # create and send request # - jsonPayload = { 'message' : message } - url = "http://localhost:{port}/send-all".format(port=args.target_port) - requests.post(url, json=jsonPayload) + url = "http://localhost:{port}/send-all-icinga".format(port=args.target_port) + requests.post(url, json=vars(args)) From b421454b4228c56a9dfddb93af3147850869dce2 Mon Sep 17 00:00:00 2001 From: "root@atlantishq-michy-sheppy" Date: Thu, 11 Jun 2020 01:56:37 +0200 Subject: [PATCH 2/2] add notification to default group --- commands.d/telegram-notify.conf | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/commands.d/telegram-notify.conf b/commands.d/telegram-notify.conf index accbd89..4dfc8b1 100644 --- a/commands.d/telegram-notify.conf +++ b/commands.d/telegram-notify.conf @@ -67,7 +67,15 @@ object NotificationCommand "telegram-service-notification" { } } +object User "telegram-dummy-user" { + import "generic-user" + display_name = "User acting as notification Sink for Telegram Notifications" + email = "reject@none.none" +} + apply Notification "telegram-generic" to Service { import "mail-service-notification" + user_groups = ["icingaadmins"] + command = "telegram-service-notification" assign where host.address }