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
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.