[Zabbix] Hướng dẫn thiết lập gửi mail tự động báo động trigger trong Zabbix bằng shell script

Hướng dẫn thiết lập gửi mail tự động báo động trigger trong Zabbix

Hôm nay mình sẽ hướng dẫn các bạn thiết lập Zabbix gửi thông báo trigger các trạng thái mà Zabbix monitor được đến địa chỉ email bằng script sử dụng sendmail để gửi, yêu cầu là hệ thống đã cài đặt MTA Sendmail. Chúng ta sẽ sử dụng script có nội dung code nhằm gửi nội dung thông báo cho người nhận.

1. Khởi tạo script gửi mail alert

Trước đó bạn phải tạo script mà ta sẽ sử dụng để gửi mail alert vào thư mục /usr/local/share/zabbix/alertscripts/ của zabbix trên CentOS và phải đảm bảo quyền thực thi tương ứng với user chạy hệ thống Zabbix Server. Giả sử script của chúng ta có tên là “smtp_alert_zabbix.sh” với nội dung đơn giản như sau :
– Kiểm tra thư mục quy định chứa script Alert Zabbix đã được cấu hình như trên chưa.

# grep "AlertScriptsPath" /usr/local/etc/zabbix_server.conf
### Option: AlertScriptsPath
AlertScriptsPath=/usr/local/share/zabbix/alertscripts
# vi /usr/local/share/zabbix/alertscripts/smtp_alert_zabbix.sh
#!/bin/bash
# Script send email alert Zabbix
mail=$(which mail)
recipient=$1
subject=$2
body=$3
echo "${body}" | ${mail} -s "Zabbix ${subject}" "${recipient}"
exit 0
# chown zabbix: -R /usr/local/share/zabbix/alertscripts/ 
# find /usr/local/share/zabbix/alertscripts/ -type f -exec chmod 644 {} \;

– Script này sử dụng 3 tham số $1, $2$3 , cả 3 tham số này sẽ do Zabbix Action sử dụng và truyền nội dung vào giúp cho ta có được các thông tin tương ứng cần thiết để gửi mail cảnh báo.
– Chúng ta test thử script này có gửi mail đi được không. Điều kiện lúc này là bạn đã phải cài đặt 1 MTA localhost như Postfix để gửi mail đi được, nếu bạn chưa cài đặt hoặc chưa kích hoạt thì bạn kiểm tra lại nhé. Phần này mình sẽ không hướng dẫn, do nó nằm ngoài phạm vi bài viết đề cập.

# sh usr/local/share/zabbix/alertscripts/smtp_alert_zabbix.sh cuongbenky.blogspot@gmail.com “Subject” “Body's here"

2. Khởi tạo phương thức truyền thông mới (media type)

Với phương pháp này chúng ta sẽ không sử dụng lựa chọn media type email của Zabbix mà chúng ta sẽ khởi tạo một media type riêng của chúng ta và sử dụng script phục vụ cho việc gửi mail.
Vào “Admin Panel” > “Administration” > “Media types” > “Create new media type” . Điền các thông tin tương ứng, với phần script name như ta đã khởi tạo ở trên.
Lúc này chúng ta đã chỉ định rõ cho Zabbix sử dụng script nào để thực thi nhiệm vụ gửi mail, giờ việc còn lại là chỉ định user nào sẽ sử dụng media type mới này.

mail_alert_zabbix1

3. Chỉ định media type cho user cụ thể

Lúc này bạn cần cấu hình địa chỉ email nhận sẽ tương ứng với user nào mà chúng ta sẽ gửi thông báo đến khi các trigger notification được gửi đến hệ thống.
– Vào “Administration” > “Users” > chọn user mình muốn gửi > “Media” tab > Ấn nút “Add” và điền các thông tin địa chỉ email nhận như trong hình sau.

 

Zabbix User Configuration for send mail notification.

mail_alert_zabbix3

4. Khởi tạo cấu hình Action để hoạt động gửi notification với Trigger

Phần này bạn có thể bật Action Zabbix Alert mặc định hoặc tạo 1 Action mới trong mục Triggers. Ở đây mình sẽ sử dụng mẫu mặc định của Zabbix và thay đổi thông tin cần thiêt để Zabbix gửi thông tin đến mình.
– Vào phần : Configuration > Actions > Event source -> Triggers > bấm vào Disable ở mục status, để kích hoạt lên.
Bấm vào Action Name “Report problem to Zabbix administrators” để cấu hình tiếp tục nội dung Trigger Action.

mail_alert_zabbix4

Cấu hình ở tab Operation các thông tin để Action Trigger biết đường thực thi :
+ Operation type : Send message
+ Send to Users/UserGroups : chọn đối tượng user hoặc nhóm user để gửi thông báo đến. Ở phần này bạn phải đảm bảo bạn đã cấu hình thông tin email như phần trên mình đã chỉ dẫn.
+ Send only to : Alert Email Notification -> chỉ định phương thức Media Type mà ta đã tạo ra.
+ Default message : nội dung message nằm ở tab Action.

mail_alert_zabbix5

Đến đây thì ta save lại, đảm bảo Action đã được bật Enable là hoàn thành phần cấu hình gửi Email Notification Zabbix Alert bằng script sử dụng sendmail.

Lưu ý :
– Do gửi mail bằng sendmail như thế này nhiều khả năng mail khi đến được email box sẽ rơi vào spam mail, còn nếu IP của Zabbix Monitor sử dụng bị liệt kê vào danh sách blacklist mail thì tạch luôn rồi nhé.

Cám ơn các bạn đã theo dõi bài viết.

Previous article[Zabbix] Phân biệt khái niệm history và trends trong Zabbix
Next article[Linux] Tắt chức năng Active-State Management (ASPM) của CentOS
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !