Sau khi hệ thống Zabbix Server và Agent của bạn đã sẵn sàng và thu thập dữ liệu hiệu quả, bước tiếp theo không thể thiếu là xây dựng một hệ thống cảnh báo mạnh mẽ. Một hệ thống cảnh báo hoạt động tốt sẽ giúp bạn nhận được thông báo tức thì khi có bất kỳ sự cố nào xảy ra trên hạ tầng công nghệ thông tin của mình. Zabbix đạt được điều này thông qua sự kết hợp linh hoạt của các thành phần then chốt mà chúng ta sẽ khám phá chi tiết trong bài viết này.
Tổng quan về hệ thống cảnh báo trong Zabbix
Hệ thống cảnh báo của Zabbix hoạt động theo một luồng logic rõ ràng, đảm bảo mọi sự kiện quan trọng đều được xử lý:
- Item (Mục dữ liệu): Zabbix thu thập các chỉ số từ Host (máy chủ, thiết bị mạng, v.v.) thông qua các Item. Ví dụ: tải CPU, dung lượng bộ nhớ trống, trạng thái dịch vụ.
- Trigger (Điều kiện kích hoạt): Là một biểu thức logic đánh giá dữ liệu từ Item. Khi dữ liệu đáp ứng một ngưỡng hoặc điều kiện nhất định (ví dụ: CPU load vượt quá 80%), Trigger sẽ chuyển trạng thái sang “PROBLEM”.
- Event (Sự kiện): Một Event được tạo ra ngay khi Trigger chuyển trạng thái (từ OK sang PROBLEM). Đây chính là “ngòi nổ” cho quy trình cảnh báo.
- Action (Hành động): Là tập hợp các thao tác được Zabbix thực hiện khi một Event xảy ra. Các Action phổ biến bao gồm gửi thông báo (Notification) đến người dùng hoặc thực thi các lệnh tự động.
- Media type (Kiểu phương tiện): Xác định kênh mà thông báo sẽ được gửi đi, ví dụ: email, Slack, Telegram.
- User (Người dùng): Là người sẽ nhận cảnh báo, được cấu hình với các Media type mong muốn.
Cấu hình Media Types: Chọn phương thức gửi cảnh báo
Để Zabbix có thể gửi cảnh báo, bạn cần cấu hình các phương thức gửi (Media Type) phù hợp với nhu cầu của mình.
Cấu hình Email Media Type
Email là một trong những phương thức cảnh báo được sử dụng rộng rãi nhất.
1. Truy cập “Alerts” > “Media types”.
2. Tìm và nhấp vào “Email” để chỉnh sửa, hoặc chọn “Create media type” nếu bạn muốn tạo một kênh email mới.
3. Trong tab “Media type”, điền các thông tin cần thiết cho máy chủ SMTP của bạn:
- Name: Tên của Media type (ví dụ: Email).
- Type: Chọn “Email”.
- Email provider: (Tùy chọn) Chọn nhà cung cấp email của bạn (ví dụ: Generic SMTP, Gmail, Office365). Lưu ý: Nếu chọn Gmail/Office365, Zabbix sẽ tự động điền một số thông số SMTP.
- SMTP server: Địa chỉ máy chủ SMTP (ví dụ:
mal.example.com
). - SMTP server port: Cổng SMTP (ví dụ: 587 cho TLS, 465 cho SSL/TLS).
- Email: Địa chỉ email Zabbix sẽ dùng để gửi cảnh báo (ví dụ:
Zabbix_info <zabbix@company.com>
). - SMTP helo: (Tùy chọn) Giá trị HELO cho máy chủ SMTP.
- Connection security: Phương thức bảo mật (ví dụ: STARTTLS hoặc SSL/TLS).
- Authentication: Chọn phương thức xác thực (ví dụ: Username and password).
- Username / Password: Tên người dùng và mật khẩu của email gửi đi (chỉ hiển thị nếu chọn Username and password cho Authentication).
- Message format: Chọn định dạng tin nhắn (HTML hoặc Plain text).
4. Nhấn “Add” hoặc “Update” để lưu cấu hình.
5. Kiểm tra:
- Trong danh sách Media types, tìm email bạn vừa cấu hình và nhấn vào nút “Test” ở cột cuối cùng.
- Một cửa sổ kiểm tra sẽ mở ra. Nhập địa chỉ email nhận (Send to), tiêu đề (Subject) và nội dung tin nhắn (Message).
- Nhấp vào “Test”.
- Nếu kiểm tra thành công, thông báo “Media type test successful.” sẽ được hiển thị trong cùng cửa sổ.
Cấu hình Slack/Telegram Media Type (Sử dụng Webhook)
Đối với các dịch vụ nhắn tin phổ biến như Slack hoặc Telegram, phương pháp được khuyến nghị là sử dụng Webhook Media Type với các tích hợp sẵn mà Zabbix cung cấp. Webhook hữu ích cho việc thực hiện các cuộc gọi HTTP để tích hợp dễ dàng với các phần mềm bên ngoài. Zabbix cung cấp các tích hợp webhook được định cấu hình sẵn cho nhiều dịch vụ.
1. Tải Webhook Integration:
- Tìm file
.xml
cần thiết cho Slack hoặc Telegram trong thư mụctemplates/media
của phiên bản Zabbix đã tải xuống. - Hoặc tải từ kho lưu trữ Git của Zabbix (ví dụ: tìm kiếm
zabbix-webhook-slack.xml
hoặczabbix-webhook-telegram.xml
).
2. Import vào Zabbix Frontend:
- Đi đến “Data collection” > “Templates” > “Import”.
- Chọn file
.xml
đã tải về và nhấn “Import”. - Webhook sẽ xuất hiện trong danh sách “Alerts” > “Media types”.
3. Cấu hình Webhook Media Type:
- Đi đến “Alerts” > “Media types”.
- Nhấn vào tên của Webhook vừa import (ví dụ: “Slack” hoặc “Telegram”) để chỉnh sửa.
- Trong tab “Media type”, bạn cần cấu hình các thông số cần thiết theo hướng dẫn trong file
Readme.md
đi kèm với webhook đó (thường có liên kết đếnReadme.md
trong phần mô tả của webhook trong Zabbix Frontend hoặc trên kho Git Zabbix). Các tham số phổ biến cần cấu hình bao gồm:URL
: Endpoint của API Slack/Telegram (ví dụ:https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX
).Token/ID
: Các khóa xác thực hoặc ID bot/kênh cần thiết (thường được nhập trong phần “Parameters” hoặc “Script”).Proxy
(Tùy chọn): Nếu Zabbix Server của bạn cần đi qua proxy để truy cập internet.
- Nhấn “Add” hoặc “Update” để lưu cấu hình.
4. Kiểm tra:
- Trong danh sách Media types, tìm webhook bạn vừa cấu hình và nhấn vào nút “Test” ở cột cuối cùng.
- Một cửa sổ kiểm tra sẽ mở ra. Chỉnh sửa các giá trị tham số cần thiết (ví dụ: Send to là Channel ID/User ID, Subject, Message). Lưu ý: Thay thế các macro bằng giá trị ví dụ để kiểm tra.
- Nhấp vào “Test”.
- Nếu kiểm tra thành công, thông báo “Media type test successful.” sẽ được hiển thị và tin nhắn test sẽ được gửi đến kênh/người dùng Slack/Telegram đã cấu hình.
Thêm User và gán Media Types: Ai sẽ nhận cảnh báo?
Mỗi người dùng trong Zabbix có thể được cấu hình để nhận cảnh báo qua một hoặc nhiều Media Type đã thiết lập.
1. Đi đến “Users” > “Users”.
2. Nhấp vào “Create user” để tạo người dùng mới, hoặc nhấp vào tên người dùng hiện có để chỉnh sửa.
3. Trong tab “User”, cấu hình các thông tin cơ bản của người dùng:
- Username: Tên người dùng duy nhất, dùng làm tên đăng nhập.
- Name / Last name: Tên và họ của người dùng (tùy chọn).
- Groups: Chọn các nhóm người dùng mà người dùng thuộc về. (Quyền truy cập host và host group được xác định bởi nhóm người dùng).
- Password: Hai trường để nhập mật khẩu người dùng.
- Language: Ngôn ngữ của giao diện Zabbix frontend.
- Time zone: Múi giờ của người dùng.
- Theme: Giao diện của frontend (ví dụ: Blue, Dark).
- Refresh: Đặt tần suất làm mới thông tin trên các trang giám sát.
- Rows per page: Số lượng hàng hiển thị trên mỗi trang trong danh sách.
- URL (after login): (Tùy chọn) Chuyển người dùng đến một URL cụ thể sau khi đăng nhập thành công.
4. Chuyển sang tab “Media”. Tab này chứa danh sách tất cả các media đã được định nghĩa cho người dùng.
5. Nhấn nút “Add” để gán một Media type mới cho người dùng.
6. Cấu hình Media cho người dùng:
- Type: Danh sách thả xuống chứa tên các loại media đã được kích hoạt.
- Send to: Cung cấp thông tin liên hệ cần thiết để gửi tin nhắn (địa chỉ email, ID người dùng webhook, v.v.). Lưu ý: Đối với email, bạn có thể thêm nhiều địa chỉ hoặc định dạng
Tên người nhận <địa chỉ@email.com>
. - When active: Bạn có thể giới hạn thời gian gửi tin nhắn (ví dụ: chỉ đặt các ngày làm việc, giờ làm việc). Lưu ý: Giới hạn này dựa trên múi giờ của người dùng.
- Use if severity: Đánh dấu vào các ô kiểm của mức độ nghiêm trọng trigger mà bạn muốn nhận thông báo. Lưu ý: Mức độ “Not classified” phải được chọn nếu bạn muốn nhận thông báo cho các sự kiện không liên quan đến trigger (ví dụ: phát hiện host).
- Status: Trạng thái của media người dùng (Enabled – đang được sử dụng; Disabled – không được sử dụng).
7. Nhấn “Update” để lưu lại thay đổi.
Kết luận
Việc cấu hình thành công các Media Types và gán chúng cho người dùng là bước nền tảng vững chắc cho hệ thống cảnh báo của Zabbix. Bạn đã thiết lập được “ai” sẽ nhận được thông báo và “bằng cách nào”. Tuy nhiên, để hệ thống cảnh báo thực sự hoạt động, chúng ta cần định nghĩa “khi nào” và “hành động cụ thể gì” sẽ xảy ra.
Đó chính là lúc chúng ta cần đến Triggers và Actions. Mời bạn tiếp tục theo dõi bài viết tiếp theo – Xây dựng hệ thống cảnh báo nâng cao trong Zabbix: Định nghĩa Triggers và Actions – để hoàn thiện hệ thống cảnh báo tự động, giúp bạn quản lý hạ tầng công nghệ thông tin một cách hiệu quả và chủ động hơn!