Когда-то давно в интернетах гулял интересный скрипт алертер событий в zabbix.
Вот тот самый сайт, где я его впервые нашел. Собственно там же достаточно подробно описано как произвести дальнейшую настройку, а тут мы перепишем скрипт с bash на python.
Внизу будет просто код с комментариями)
Python
#!/usr/bin/env python3.6
import requests
import sys
import os
TELEGRAM_TOKEN = os.environ.get('TELEGRAM_TOKEN')
#Используем argv вместо argparse, тк с ним интеграция с zabbix не заработала. Возможно к этому
#стоит вернуться позже и изучить подробнее, почему?
try:
chat_id = sys.argv[1]
sbj = sys.argv[2]
msg = sys.argv[3]
except IndexError:
print(f"Usage: {sys.argv[0]} <chat_id> <subject> <message>")
sys.exit(1)
headers = { "Content-Type" : "application/json" }
### Собственно емоджи, легко переводятся онлайн конвертером
def main():
if sbj == "PROBLEM":
icon = "\U0001f631"
elif sbj == "OK":
icon = "\U0001f44c"
else:
icon = "\u26a0"
data = {
"chat_id": f"{chat_id}",
"text": f"{icon} {sbj}\n{msg}"
}
requests.post(url=f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage", headers=headers, json=data)
if __name__ == "__main__":
main()