Hướng dẫn gửi cảnh báo Zabbix qua Telegram

Zabbix hỗ trợ gửi cảnh báo qua nhiều kênh khác nhau nhờ đó quản trị viên có thể nắm được tình trạng thiết bị, hệ thống theo thời gian thực. Đó có thể là email, sms, Jira, Discord, MS Teams hay Telegram. Thực tế Telegram hay được sử dụng, đơn giản vì nó gọn nhẹ, nhanh, và tiện lợi vì có app điện thoại. Viettelco sau đây sẽ hướng dẫn cách cài đặt gửi cảnh báo Zabbix qua Telegram.

Hướng dẫn cài đặt Zabbix 5.0 trên CentOS 7

Hướng dẫn cấu hình Zabbix 5.0

Tạo bot, lấy ID Telegram

Đầu tiên ta cần tạo bot Telegram để gửi thông báo tự động mỗi khi có cảnh báo từ Zabbix. Để tạo bot mới, ta chat với BotFather của Telegram theo thứ tự:

  • Chat /newbot để tạo bot mới.
  • Điền tên hiển thị của bot.
  • Điền username của bot, bắt buộc phải kết thúc bằng “bot”.

Tạo bot mới.

Sau khi tạo bot thành công sẽ có thông báo và hiện Token của bot, ta cần chú ý Token này:

Token bot.

Tiếp theo cần lấy ID của tài khoản Telegram cần bot gửi thông báo đến. Chỉ cần chat với bot userinfobot hoặc IDBot:

Lấy ID tài khoản Telegram.

Như vậy ta đã có 2 thông tin cần thiết cho việc cài đặt sau này đó là Token của bot và ID user Telegram cần gửi thông báo đến.

Cài đặt trên Zabbix server

Cài pyTelegramBotAPI và một số gói bảo mật:

yum -y install python-pip

pip install pyTelegramBotAPI

pip install pyopenssl ndg-httpsclient pyasn1

pip install -U requests

Tạo file telegram_notification.py trong thư mục /usr/src/zabbixbot:

vi /usr/src/zabbixbot/telegram_notification.py

với nội dung như sau, thay BOT_TOKEN bằng bot token đã lấy ở trên:

#!/usr/bin/env python

import telebot,sys

BOT_TOKEN=’158700146:AAHOPReqqTR8V7FXysa8mJCbQACUWSTBog8′

DESTINATION=sys.argv[1]

SUBJECT=sys.argv[2]

MESSAGE=sys.argv[3]

MESSAGE = MESSAGE.replace(‘/n’,’\n’)

tb = telebot.TeleBot(BOT_TOKEN)

tb.send_message(DESTINATION,SUBJECT + ‘\n’ + MESSAGE,    disable_web_page_preview=True, parse_mode=’HTML’)

Thay đổi quyền và cho phép thực thi:

chown -R zabbix: /usr/src/zabbixbot/

chmod +x telegram_notification.py

Sửa file zabbix_server.conf:

vi /etc/zabbix/zabbix_server.conf

Sửa nội dung dòng AlertScriptsPath như sau:

AlertScriptsPath=/usr/src/zabbixbot

Restart Zabbiz server:

service zabbix-server restart

Cài đặt trên Zabbix dashboard

Từ Zabbix dashboard vào Adminstration à Media types à Create media type và điền nội dung như dưới:

  • Name: đặt tên dễ nhớ, có liên quan.
  • Type: Script.
  • Script name: điền tên file script vừa tạo ở trên (telegram_notification.py).
  • Điền Script parameters với 3 dòng:
    • {ALERT.SENDTO}
    • {ALERT.SUBJECT}
    • {ALERT.MESSAGE}
  • Chuyển sang tab Message templates và thêm templates mặc định (nội dung tin nhắn thông báo lỗi mà Zabbix gửi về).

Tạo Media types.

Thêm message template mặc định.

Từ Configuration à Actions à Report problems to Zabbix administrators, ở tab Operations thêm các tùy chỉnh như dưới:

Actions.

Ta chọn mục Recovery operations và thêm vào nội dung message (nội dung tin nhắn Zabbix gửi khi problem được giải quyết) như hình dưới:

Recovery operations.

Tiếp theo trong mục Administration à Users à Admin à Media ta thêm ID user Telegram muốn bot gửi thông báo về:

Thêm ID user Telegram.

Khi có lỗi hoặc lỗi được resolved, đã gửi thành công thông báo:

Gửi thành công thông báo.