alerta-contrib/plugins/telegram
2023-03-21 00:15:34 +01:00
..
images Add Telegram webhook integration to plugin 2016-12-15 22:56:28 +00:00
alerta_telegram.py Fix multiple linting errors 2023-03-21 00:15:34 +01:00
README.md [Docs] Update Telegram plugin Readme (#365) 2021-10-18 23:40:49 +02:00
setup.py Fix multiple linting errors 2023-03-21 00:15:34 +01:00

Telegram Plugin

Send alerts to Telegram Bot.

Telegram Message

For help, join Slack chat

Installation

Clone the GitHub repo and run:

$ python setup.py install

Or, to install remotely from GitHub run:

$ pip install git+https://github.com/alerta/alerta-contrib.git#subdirectory=plugins/telegram

Note: If Alerta is installed in a python virtual environment then plugins need to be installed into the same environment for Alerta to dynamically discover them.

Configuration

Add telegram to the list of enabled PLUGINS in alertad.conf server configuration file and set plugin-specific variables either in the server configuration file or as environment variables.

PLUGINS = ['telegram']
TELEGRAM_TOKEN = ''  # Required, default="not set"
TELEGRAM_CHAT_ID = ''  # Required, default="not set", specify multiple ID's separated by comma. Get yours in https://t.me/chatid_echo_bot
TELEGRAM_TEMPLATE = '' # default will use hardcoded one (can be a filename to template file)
TELEGRAM_PROXY = '' # default="not set", URL must start from http://, socks5 not supported
TELEGRAM_PROXY_USERNAME = '' # default="not set"
TELEGRAM_PROXY_PASSWORD = '' # default="not set"

Create a new Telegram Bot using a Telegram client.

See https://core.telegram.org/bots#creating-a-new-bot

To ack, close or blackout an alert from the Telegram client set the webhook URL to your Alerta API Telegram endpoint (must be HTTPS):

TELEGRAM_WEBHOOK_URL = 'https://alerta.example.com/api/webhooks/telegram?api-key=[APIKEY_FROM_ALERTA]' # You can get one in https://alerta.example.com/keys
BLACKOUT_DURATION = 86400   # default=3600 ie. 1 hour

To enable/disable sound on notifications(disable_notification) use TELEGRAM_SOUND_NOTIFICATION_SEVERITY:

# Only severities 'security', 'critical' and 'major' have disable_notification=False
# all other severities have disable_notification=True
TELEGRAM_SOUND_NOTIFICATION_SEVERITY = ['security', 'critical', 'major']

If TELEGRAM_SOUND_NOTIFICATION_SEVERITY is unset then all telegram notifications have disable_notification=False

To disable notifications on severity on your chose use TELEGRAM_DISABLE_NOTIFICATION_SEVERITY:

# Severity `warning` is disabled notification in telegram
# all other severeties have notifications
TELEGRAM_DISABLE_NOTIFICATION_SEVERITY = ['warning']

Templating

There can be defined template to send data to telegram it have to be defined in TELEGRAM_TEMPLATE. TELEGRAM_TEMPLATE can be a filename pointing to Jinja2 template file. Template have to be writen in Jinja2 Alert data will be passed to it as context. So you can modify tg message as you wish. Example can be found in Explorer

Troubleshooting

Restart Alerta API and confirm that the plugin has been loaded and enabled.

Set DEBUG=True in the alertad.conf configuration file and look for log entries similar to below:

--------------------------------------------------------------------------------
DEBUG in __init__ [/Users/nsatterl/.virtualenvs/telegram/lib/python2.7/site-packages/alerta/plugins/__init__.py:46]:
Server plug-in 'telegram' found.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
DEBUG in alerta_telegram [build/bdist.macosx-10.12-x86_64/egg/alerta_telegram.py:21]:
Telegram: {u'username': u'alertaio_bot', u'first_name': u'alerta-bot', u'id': 264434259}
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
INFO in __init__ [/Users/nsatterl/.virtualenvs/telegram/lib/python2.7/site-packages/alerta/plugins/__init__.py:53]:
Server plug-in 'telegram' enabled.
--------------------------------------------------------------------------------

References

License

Copyright (c) 2016 Nick Satterly. Available under the MIT License.