Các bước thực hiện:
Cài đặt Telegram
Cài đặt thông báo trên Zabbix Server
![](https://static.wixstatic.com/media/68165d_bdf1c76857504d1b94693aaf7d260425~mv2.jpg/v1/fill/w_980,h_515,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/68165d_bdf1c76857504d1b94693aaf7d260425~mv2.jpg)
1. Cài đặt Telegram
Đầu tiên mình xin giới thiệu sơ về Telegram là gì ?
- Telegram là ứng dụng nhắn tin, gọi dùng trên iOS, Android, web,… được hai anh em Nikolai và Pavel Durov người Nga tạo ra.
- Là một ứng dụng miễn phí.
- Có tính bảo mật cao.
- Mã nguồn mở.
Để zabbix server có thể gửi được thông báo đến Telegram chúng ta phải có được token truy cập API và ID Telegram.
1.1. Lấy token
Đăng nhập vào Telegram: https://web.telegram.org
![](https://static.wixstatic.com/media/68165d_2e1565d2f9a8423ab1701533a54236d1~mv2.png/v1/fill/w_674,h_510,al_c,q_85,enc_auto/68165d_2e1565d2f9a8423ab1701533a54236d1~mv2.png)
Nhập “botfather” vào ô tìm kiếm. Kết quả tìm kiếm ra tên là “BotFather” như hình, chúng ta chọn vào.
![](https://static.wixstatic.com/media/68165d_add4761fd78c4ffda377530fe288f73e~mv2.png/v1/fill/w_676,h_428,al_c,q_85,enc_auto/68165d_add4761fd78c4ffda377530fe288f73e~mv2.png)
Bấm START
![](https://static.wixstatic.com/media/68165d_43cde1f649fd466a91a6346d9f6989d0~mv2.png/v1/fill/w_660,h_453,al_c,q_85,enc_auto/68165d_43cde1f649fd466a91a6346d9f6989d0~mv2.png)
Nhập vào ô chat: “/newbot” rồi nhấn Enter để tạo bot.
![](https://static.wixstatic.com/media/68165d_5532811b4a7d486aa1b6e420c3006aad~mv2.png/v1/fill/w_669,h_455,al_c,q_85,enc_auto/68165d_5532811b4a7d486aa1b6e420c3006aad~mv2.png)
Đặt tên cho bot, ở đây mình đặt tên cho bot của mình là “testzabbixbot”, sau khi nhập vào bạn nhấn Enter.
![](https://static.wixstatic.com/media/68165d_9ec451b8526747aeabb468190a616da8~mv2.png/v1/fill/w_722,h_441,al_c,q_85,enc_auto/68165d_9ec451b8526747aeabb468190a616da8~mv2.png)
Đặt username cho bot, mình đặt là “tuannguyen_bot” nhấn Enter.
![](https://static.wixstatic.com/media/68165d_5c3ebd17bf2d45e6a4de743531ddb715~mv2.png/v1/fill/w_667,h_447,al_c,q_85,enc_auto/68165d_5c3ebd17bf2d45e6a4de743531ddb715~mv2.png)
Okie, vậy là chúng ta đã có được token để truy cập vào API, bạn copy và lưu lại token này để dùng cho các bước tiếp theo nhé.
![](https://static.wixstatic.com/media/68165d_f8c7691741104f8e9b0efd79fca70a71~mv2.png/v1/fill/w_695,h_541,al_c,q_90,enc_auto/68165d_f8c7691741104f8e9b0efd79fca70a71~mv2.png)
Bây giờ chúng ta kiểm tra xem token này có thể truy cập vào API được chưa nhé. Cú pháp như sau: https://api.telegram.org/bot<Dán token của bạn vào đây>/getUpdates
Ví dụ: mình dùng token của mình đã có được ở bước trên để truy cập vào API như sau:
Kết quả trả ra như bên dưới là đúng.
![](https://static.wixstatic.com/media/68165d_d006a93af98c41a18122d439f841baf5~mv2.png/v1/fill/w_980,h_169,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/68165d_d006a93af98c41a18122d439f841baf5~mv2.png)
1.2. Lấy ID
Chúng ta quay lại contact BotFather, nhấn vào đường link để vào bot, hoặc bạn có thể nhập vào ô Search tên bot mà bạn đã đặt ở trên.
![](https://static.wixstatic.com/media/68165d_47c28a10b44e4d3193b00a89ba682a59~mv2.png/v1/fill/w_794,h_476,al_c,q_90,enc_auto/68165d_47c28a10b44e4d3193b00a89ba682a59~mv2.png)
Nhấn vào START.
![](https://static.wixstatic.com/media/68165d_4488a9d263c34310ad1e0b4e1925dc16~mv2.png/v1/fill/w_782,h_490,al_c,q_90,enc_auto/68165d_4488a9d263c34310ad1e0b4e1925dc16~mv2.png)
Đây là nơi sẽ nhận thông báo từ zabbix server. Chúng ta chat thử
![](https://static.wixstatic.com/media/68165d_2bb0a17750e04b558cec57ea2b1dd89d~mv2.png/v1/fill/w_778,h_487,al_c,q_90,enc_auto/68165d_2bb0a17750e04b558cec57ea2b1dd89d~mv2.png)
Bây giờ chúng ta truy cập lại https://api.telegram.org/bot<Dán token của bạn vào đây>/getUpdates
Okie, bây giờ ta đã lấy được ID, bạn copy và lưu ID này lại. Lưu ý mỗi tài khoản Telegram có ID khác nhau nhé.
![](https://static.wixstatic.com/media/68165d_e82252d929a34f9a999514f3009f59a1~mv2.png/v1/fill/w_980,h_214,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/68165d_e82252d929a34f9a999514f3009f59a1~mv2.png)
Vậy là trên Telegram chúng ta đã có được hai thành phần quan trọng là token API và ID người nhận.
2. Cài đặt trên zabbix server
2.1. Tạo file script trên zabbix server
Login vào hoặc SSH vào zabbix server
Kiểm tra đường dẫn lưu file script.
# cat /usr/local/etc/zabbix_server.conf
![](https://static.wixstatic.com/media/68165d_8a9a6da3c9684d06934f1e2277779efa~mv2.png/v1/fill/w_651,h_392,al_c,q_85,enc_auto/68165d_8a9a6da3c9684d06934f1e2277779efa~mv2.png)
Chúng ta sẽ tạo file script (mình đặt tên file là telegramscript) nằm trong đường dẫn:
/usr/local/share/zabbix/alertscripts
# cd /usr/local/share/zabbix/alertscripts/
# vim telegramscript
Lưu ý: giá trị của biến BOT_TOKEN là token mà bạn đã lấy được trên Telegram nhé.
Code:
#!/usr/bin/env python
import telebot,sys
BOT_TOKEN='615372156:AAEwTtBVOq5YAhzF6_-5OGWcwEONaoP_SlE'
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)
Cài python-pip
# yum install python-pip -y
![](https://static.wixstatic.com/media/68165d_7570aa372e2f434ab4d32323f57890d6~mv2.png/v1/fill/w_645,h_383,al_c,q_85,enc_auto/68165d_7570aa372e2f434ab4d32323f57890d6~mv2.png)
Cài pyTelegramBotAPI.
# pip install pytelegrambotapi
![](https://static.wixstatic.com/media/68165d_bb2eef0529de49e29be6b96029e49a27~mv2.png/v1/fill/w_644,h_181,al_c,q_85,enc_auto/68165d_bb2eef0529de49e29be6b96029e49a27~mv2.png)
Okie, bây giờ chúng ta sẽ kiểm tra xem script đã chạy được chưa nhé.
![](https://static.wixstatic.com/media/68165d_edb7cf12c5f5410f96b6ccb3ed0cc84e~mv2.png/v1/fill/w_865,h_68,al_c,q_85,enc_auto/68165d_edb7cf12c5f5410f96b6ccb3ed0cc84e~mv2.png)
Cú pháp: ./<tên file script> <ID Telegram> <Subject> <Nội dung>
Chúng ta xem đã nhận tin nhắn hay chưa.
Okie, vậy là script đã ok.
![](https://static.wixstatic.com/media/68165d_eb47f3befeb64d479c2dba1eac446bc7~mv2.png/v1/fill/w_789,h_486,al_c,q_90,enc_auto/68165d_eb47f3befeb64d479c2dba1eac446bc7~mv2.png)
Trên giao diện web của zabbix server
2.2. Tạo Media types
Administration > Media types > Create media type
![](https://static.wixstatic.com/media/68165d_f6ee7db263a84c4cbb6a59b444f4d3df~mv2.png/v1/fill/w_980,h_499,al_c,q_90,usm_0.66_1.00_0.01,enc_auto/68165d_f6ee7db263a84c4cbb6a59b444f4d3df~mv2.png)
Name: Đặt tên cho media.
Type: Chọn Script.
Script name: Điền đúng tên file script mà chúng ta đã tạo ở trên nhé.
Script parameters: Chúng ta bấm Add để thêm lần lượt 3 tham số sau:
- {ALERT.SENDTO} tham số này sẽ được gán cho biến DESTINATION trong file script.
- {ALERT.SUBJECT} tham số này sẽ được gán cho biến SUBJECT trong file script.
- {ALERT.MESSAGE} tham số này sẽ được gán cho biến MESSAGE trong file script.
![](https://static.wixstatic.com/media/68165d_355483319aba422580f1625f25891b55~mv2.png/v1/fill/w_812,h_419,al_c,q_85,enc_auto/68165d_355483319aba422580f1625f25891b55~mv2.png)
Chúng ta đã tạo xong một Media types.
![](https://static.wixstatic.com/media/68165d_b0dc986c5127442abbd7d2e816dd2f4d~mv2.png/v1/fill/w_974,h_451,al_c,q_90,enc_auto/68165d_b0dc986c5127442abbd7d2e816dd2f4d~mv2.png)
2.3. Gán Media types cho user
Mình sẽ gán cho user Admin: Users > Click vào user cần gán
![](https://static.wixstatic.com/media/68165d_fd0e29ab5f4f4602b296b25d49e11946~mv2.png/v1/fill/w_969,h_459,al_c,q_90,enc_auto/68165d_fd0e29ab5f4f4602b296b25d49e11946~mv2.png)
Chọn tab Media > Add
![](https://static.wixstatic.com/media/68165d_de8bc4a4eba64e6bbe499a891254d05a~mv2.png/v1/fill/w_974,h_484,al_c,q_90,enc_auto/68165d_de8bc4a4eba64e6bbe499a891254d05a~mv2.png)
- Type: Chọn tên Media types chúng ta đã tạo.
- Send to: Nhập ID Telegram của bạn vào.
- Nhấn Add.
![](https://static.wixstatic.com/media/68165d_0c5ce040e5854b30b95b0bd2155a79b0~mv2.png/v1/fill/w_980,h_434,al_c,q_90,usm_0.66_1.00_0.01,enc_auto/68165d_0c5ce040e5854b30b95b0bd2155a79b0~mv2.png)
Nhấn Update
![](https://static.wixstatic.com/media/68165d_ca3e54fe5c90401999a17cb954247970~mv2.png/v1/fill/w_976,h_482,al_c,q_90,enc_auto/68165d_ca3e54fe5c90401999a17cb954247970~mv2.png)
2.4. Gán media types và user cho actions
Configuration > Actions: mình sẽ edit Action có sẵn, bạn có thể bấm Create action để tạo một action mới
![](https://static.wixstatic.com/media/68165d_cfa82334020e48e9b1c76f5b940e272b~mv2.png/v1/fill/w_966,h_482,al_c,q_90,enc_auto/68165d_cfa82334020e48e9b1c76f5b940e272b~mv2.png)
Ở đây mình có sẵn 1 host đang được zabbix server monitor có name là Helpdesk-Computer, mình muốn khi host này có sự cố gì thì zabbix server sẽ alert đến telegram của mình nên mình sẽ add host đó vào.
![](https://static.wixstatic.com/media/68165d_d7e87372895641a1a732790bc77700b2~mv2.png/v1/fill/w_965,h_470,al_c,q_90,enc_auto/68165d_d7e87372895641a1a732790bc77700b2~mv2.png)
Qua tab Operations chọn New
![](https://static.wixstatic.com/media/68165d_0e8f9b37bc9a4b609df565cf381b0aeb~mv2.png/v1/fill/w_964,h_486,al_c,q_90,enc_auto/68165d_0e8f9b37bc9a4b609df565cf381b0aeb~mv2.png)
- Send to Users: Bấm Add để chọn user, ở đây mình add user Admin vào
- Send only to: Chọn tên Media types đã tạo
- Chọn Add để thêm
![](https://static.wixstatic.com/media/68165d_9cbfce1d11ad4517a7bd97421a704c3f~mv2.png/v1/fill/w_955,h_557,al_c,q_90,enc_auto/68165d_9cbfce1d11ad4517a7bd97421a704c3f~mv2.png)
Chọn Update để hoàn thành việc thêm/chỉnh sửa action
![](https://static.wixstatic.com/media/68165d_fc63991e60524e969c170a20123f0f0c~mv2.png/v1/fill/w_956,h_553,al_c,q_90,enc_auto/68165d_fc63991e60524e969c170a20123f0f0c~mv2.png)
2.5. Kiểm tra kết quả
Vậy là ta đã cấu hình xong, bây giờ ta xem thử khi có sự cố thì zabbix server có alert qua Telegram không nhé
![](https://static.wixstatic.com/media/68165d_6dd41d6d869b4f9db584a9494a9af0c0~mv2.png/v1/fill/w_796,h_537,al_c,q_90,enc_auto/68165d_6dd41d6d869b4f9db584a9494a9af0c0~mv2.png)
Ở đây chúng ta có thể thấy khi có sự cố zabbix đã alert được tới Telegram
![](https://static.wixstatic.com/media/68165d_c3f1756638484d148b9323c6de377ba2~mv2.png/v1/fill/w_952,h_533,al_c,q_90,enc_auto/68165d_c3f1756638484d148b9323c6de377ba2~mv2.png)
Vào Telegram chúng ta thấy đã nhận được thông báo, vậy là bạn đã làm thành công rồi nhé
![](https://static.wixstatic.com/media/68165d_b547d1a1bb8442b58c2f9c0a72809641~mv2.png/v1/fill/w_783,h_487,al_c,q_90,enc_auto/68165d_b547d1a1bb8442b58c2f9c0a72809641~mv2.png)
Done !
Komentarze