Cách giám sát Zabbix Alerts với Alerta trên Ubuntu 16.04

4 năm trước

Giới thiệu

Alerta là một ứng dụng web được sử dụng để hợp nhất và hủy cảnh báo từ nhiều hệ thống giám sát và trực quan hóa chúng trên một màn hình duy nhất. Alerta có thể tích hợp với nhiều công cụ giám sát nổi tiếng như Nagios, Zabbix, Sensu, InfluxData Kapacitor và nhiều công cụ khác.

Trong hướng dẫn này, bạn sẽ thiết lập Alerta và định dạng nó để hiển thị thông báo từ hệ thống giám sát Zabbix.

Điều kiện tiên quyết

Để làm theo hướng dẫn, bạn cần:

  • Hai Ubuntu 16.04 servers được thiết lập theo hướng dẫn này, gồm một sudo non-root user và một tường lửa.
  • Trên Ubuntu server đầu tiên, nơi bạn chạy Zabbix, hãy cài đặt các thành phần sau: 
  • Trên máy chủ Ubuntu thứ hai, nơi chúng ta cài đặt Alerta trong hướng dẫn này, hãy cài đặt các thành phần sau:
  • Nếu muốn bảo vệ giao diện web Alerta như được giải thích trong Bước 6, bạn cần một tài khoản GitHub thuộc tổ chức GitHub.

Bước 1— Cài đặt Alerta's API Server

Alerta bao gồm một server và một giao diện web. Alerta server chịu trách nhiệm lưu trữ, xử lý cảnh báo và phân phát JSON thông qua API. Giao diện web Alerta cho phép bạn xem danh sách cảnh báo trong trình duyệt, do đó bạn không phải tự giải thích JSON. Chúng ta sẽ cài đặt cả hai thành phần trên máy chủ đã cài đặt MongoDB và Nginx. Chúng ta gọi máy này là "Alerta server" trong suốt hướng dẫn này. Đăng nhập vào máy này với tư cách là non-root user:

ssh sammy@your_alerta_server_ip

Trước khi thể cài đặt bất kỳ thành phần Alerta nào, chúng ta cần cài đặt pip, trình quản lý gói Python và các tệp phát triển Python. Chúng ta cũng sẽ cần Git cài đặt để  lấy mã nguồn của Alerta từ GitHub.

Chạy lệnh sau để cài đặt các gói phần mềm này:

sudo apt-get install python-pip python-dev gcc git 

Khi các gói này được cài đặt, chúng ta sẵn sàng cài đặt Alerta.

Trước tiên, sẽ cài đặt máy chủ Alerta bằng pip:

sudo pip install alerta-server 

Kiểm tra cài đặt bằng cách chạy Alerta server ở chế độ phát triển:

sudo alertad 

Bạn sẽ thấy một điều gì đó như:

Output
  * Running on http://0.0.0.0:8080/ (Press CTRL+C to quit) 

 

Lưu ý: Nếu bạn đang sử dụng Uncomplicated Firewall (UFW),định dạng nó để cho phép kết nối đến cổng 8080:

sudo ufw allow 8080/tcp

Bạn có thể tìm hiểu thêm về UFW tại đây.

Bây giờ bạn có thể mở http://your_alerta_server_ip:8080 trong trình duyệt của mình và xem trang web Alerta API, trang này sẽ hiển thị cho bạn một số ví dụ sử dụng.

Khi đã xác minh server đang chạy, hãy dừng server bằng cách nhấn Ctrl+C. Chúng ta sẽ sớm định cấu hình nó như một dịch vụ.

API Alerta server được cài đặt, vì vậy hãy cài đặt bảng điều khiển web.

Bước 2 - Cài đặt giao diện người dùng Web Alerta

Alerta có bảng điều khiển hiển thị thông báo trong trình duyệt của bạn. Nó hiển thị thông báo cảnh báo trong bảng, vì vậy bạn có thể đọc và sắp xếp chúng một cách dễ dàng. Bạn có thể định cấu hình chế độ xem để đáp ứng nhu cầu của mình: lọc tin nhắn hoặc sắp xếp chúng theo bất kỳ trường nào. Ngoài ra, bạn có thể xem thông tin chi tiết cho từng tin nhắn. Chúng ta sẽ cài đặt nó trên cùng một server, nơi đã cài đặt Alerta API server.

Đầu tiên lấy mã nguồn từ Github:

git clone https://github.com/alerta/angular-alerta-webui.git 

Sau đó sao chép các tệp ứng dụng vào thư mục web server của bạn:

sudo cp -r angular-alerta-webui/app/* /var/www/html/ 

Theo mặc định, giao diện web của Alerta được định dạng để giao tiếp với development server API đang chạy trên cổng 8080. Chúng ta sẽ thiết lập điều này để sử dụng sản phẩm bằng cách cung cấp API của Alerta Server tại điểm cuối /api trên server của chúng ta và phân phát nội dung tĩnh của giao diện điều khiển web từ cùng một miền, cho phép tránh các sự cố với CORS hoặc lỗi nội dung hỗn hợp HTTPS.

Mở tệp cấu hình config.js:

sudo nano /var/www/html/config.js 

Và đặt endpoint thành /api:

/var/www/html/config.js
 'use strict';
angular.module('config', [])
.constant('config',{'endpoint' : "/api",
'provider' : "basic", // google, github, gitlab, keycloak or basic
...

Để các tùy chọn khác ở các giá trị mặc định của chúng. Chúng ta sẽ thay đổi một vài trong số chúng sau trong hướng dẫn này khi định cấu hình ủy quyền OAuth.

Bây giờ tất cả các thành phần Alerta cần thiết đã được cài đặt. Chúng ta chỉ cần thiết lập chúng để làm việc cùng nhau.

 

Bước 3 - Chạy Alerta với uWSGI sau Nginx.

Chúng ta có thể sử dụng alertad development server cho một số kiểm tra nhanh, nhưng không tốt cho việc sử dụng sản xuất, vì vậy hãy sửa lỗi đó. Vì Alerta được viết bằng Python, nên cần sử dụng một WSGI server để chạy nó. Trong hướng dẫn này, chúng ta sẽ chạy Alerta như là một ứng dụng uWSGI được ủy quyền sau Nginx, tại http://your_alerta_server_ip/api.

Trước tiên, cài đặt uWSGI application server bằng cách sử dụng trình quản lý gói Python:

sudo pip install uwsgi 

Tiếp theo, tạo tệp wsgi.py, mà application server sử dụng để giao tiếp với ứng dụng. Mở tệp trong trình chỉnh sửa của bạn:

sudo nano /var/www/wsgi.py 

Thêm dòng sau vào tệp, thông báo cho uWSGI cách gọi ứng dụng Alerta:

/var/www/wsgi.py
from alerta.app import app

Tiếp theo, chúng ta cần định cấu hình chính uWSGI server. Tạo tập tin cấu hình /etc/uwsgi.ini và mở nó trong trình soạn thảo của bạn:

sudo nano /etc/uwsgi.ini 

Tệp này chỉ định vị trí của ứng dụng, cùng với các tùy chọn socket để tương tác với Nginx.

Thêm các dòng sau vào tệp:

/etc/uwsgi.ini
[uwsgi]
chdir = /var/www
mount = /api=wsgi.py
callable = app
manage-script-name = true
master = true
processes = 5
logger = syslog:alertad
socket = /tmp/uwsgi.sock
chmod-socket = 664
uid = www-data
gid = www-data
vacuum = true
die-on-term = true

Bạn có thể xem danh sách tham khảo đầy đủ các tùy chọn uWSGI trong tài liệu.

Tiếp theo, chúng ta sẽ tạo một đơn vị Systemd cho ứng dụng này để có thể kiểm soát nó bằng lệnh systemctl.

sudo nano /etc/systemd/system/alerta-app.service 

Tệp đơn vị này cần một số chỉ thị cấu hình mô tả đơn vị và xác định hành vi của nó. Thêm các dòng sau vào tệp:

/etc/systemd/system/alerta-app.service
[Unit]
Description=uWSGI service for Alerta
After=syslog.target
[Service]
ExecStart=/usr/local/bin/uwsgi --ini /etc/uwsgi.ini
RuntimeDirectory=uwsgi
Restart=always
KillSignal=SIGQUIT
Type=notify
StandardError=syslog
NotifyAccess=all
[Install]
WantedBy=multi-user.target

Bây giờ bạn có thể chạy dịch vụ uWSGI:

sudo systemctl start alerta-app 

Bạn có thể kiểm tra trạng thái bằng cách chạy:

systemctl status alerta-app 

Bạn sẽ thấy kết quả sau:

Output 
  ● alerta-app.service - uWSGI service for Alerta 
  Loaded: loaded (/etc/systemd/system/alerta-app.service; disabled; vendor preset: enabled) 
  Active: active (running) since Fri 2017-06-09 07:02:14 UTC; 4s ago 
  Main PID: 19807 (uwsgi) 
  Status: "uWSGI is ready" 
  Tasks: 8 
  Memory: 29.7M 
  CPU: 477ms 
  CGroup: /system.slice/alerta-app.service 
├─19807 /usr/local/bin/uwsgi --ini /etc/uwsgi.ini 
├─19819 /usr/local/bin/uwsgi --ini /etc/uwsgi.ini
├─19820 /usr/local/bin/uwsgi --ini /etc/uwsgi.ini 
├─19821 /usr/local/bin/uwsgi --ini /etc/uwsgi.ini
├─19822 /usr/local/bin/uwsgi --ini /etc/uwsgi.ini 
└─19823 /usr/local/bin/uwsgi --ini /etc/uwsgi.ini 

Như có thể thấy, dịch vụ bị tắt theo mặc định, có nghĩa là dịch vụ sẽ không tự động khởi động. Hãy kích hoạt nó:

sudo systemctl enable alerta-app 

Cuối cùng, phải định dạng Nginx để chuyển hướng các yêu cầu cho   your_alerta_server_ip/api đến uWSGI server đang chạy và phục vụ web front-end với Nginx.

Thay vì sửa đổi tệp cấu hình Nginx mặc định, chúng ta sẽ đặt cấu hình Alerta trong tệp riêng của nó.

sudo nano /etc/nginx/sites-available/alerta 

Thêm các nội dung sau vào tệp. Hãy chắc chắn thay thế giá trị cho server_name bằng địa chỉ IP của Alerta server của bạn.

/etc/nginx/sites-available/alerta
server {
listen 80;
server_name your_alerta_server_ip;
location /api { try_files $uri @api; }location @api {
include uwsgi_params;
uwsgi_pass unix:/tmp/uwsgi.sock;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}location / {
root /var/www/html;
}}

Bây giờ kích hoạt trang bằng cách tạo một liên kết tượng trưng từ tệp này đến thư mục sites-enabled, mà Nginx đọc từ khi khởi động:

sudo ln -s /etc/nginx/sites-available/alerta /etc/nginx/sites-enabled/ 

Lưu tệp và thoát khỏi trình chỉnh sửa.

Tiếp theo, kiểm tra cấu hình Nginx để đảm bảo không có lỗi chính tả hoặc cấu hình sai:

sudo nginx -t 

Bạn sẽ thấy kết quả sau, miễn là không có lỗi với cấu hình của bạn:

Output 
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok 
  nginx: configuration file /etc/nginx/nginx.conf test is successful 

Nếu thấy điều gì đó khác, hãy giải quyết các lỗi và thử lại.

Bây giờ bạn có thể tải lại Nginx để áp dụng các cài đặt mới:

sudo nginx -s reload 

Mở liên kết http://your_alerta_server_ip trong trình duyệt của bạn và xem trang tổng quan Alerta.

Alerta dashboard

Nếu bạn cài đặt Alerta trên server có thể truy cập công cộng, bạn nên định cấu hình nó để yêu cầu xác thực. Hãy xem xét một vài phương pháp để làm điều đó.

 

Bước 4 - Bảo mật Alerta bằng Basic Authentication

Theo mặc định, bất kỳ ai biết địa chỉ Alerta server đều có thể xem bất kỳ thư nào. Nó có thể chấp nhận được đối với môi trường thử nghiệm, nhưng không được chấp nhận cho sản xuất. Để thực thi xác thực, hãy mở tệp cấu hình alertad.conf:

sudo nano /etc/alertad.conf 

Thêm mã sau vào tệp:

/etc/alertad.conf
AUTH_REQUIRED = True
SECRET_KEY = 'secret_key'

Đặt SECRET_KEY thành chuỗi ngẫu nhiên bạn chọn. Lưu tệp, thoát trình chỉnh sửa và khởi động lại dịch vụ uWSGI:

sudo systemctl restart alerta-app 

Tải lại trang web Alerta Web UI. Bạn sẽ thấy thông báo "Vui lòng đăng nhập để tiếp tục". Nhấp vào liên kết Create an account và tạo tài khoản mới. Khi bạn hoàn tất quy trình, bạn sẽ có quyền truy cập vào bảng điều khiển Alerta.

Khi bật xác thực, bạn cần có API key để truy cập API Alerta. Chọn menu Configuration và chọn API keys.

Nhập tên của ứng dụng yêu cầu quyền truy cập vào API. Đối với hướng dẫn này, hãy nhập zabix. Sau đó chọn read-write từ trình đơn thả xuống và nhấp vào nút Create new API Key. Khóa mới sẽ được tạo và bạn sẽ thấy chi tiết của nó. Sao chép khóa này; bạn sẽ cần nó sau này.

Ngoài ra, bạn có thể thiết lập xác thực OAuth và sử dụng thông tin đăng nhập GitHub hoặc Google của mình để đăng nhập vào giao diện người dùng Alerta. Nếu xác thực cơ bản là đủ, bạn có thể bỏ qua bước tiếp theo.

 

Bước 5 - Bảo mật Alerta với OAuth (tùy chọn)

Alerta's Web UI hỗ trợ xác thực OAuth cho Google, GitHub, Gitlab và Keycloak. Chúng ta sẽ định dạng đăng nhập qua tài khoản GitHub, vì vậy bạn sẽ cần một tài khoản để tiếp tục.

Đầu tiên, đăng ký một ứng dụng mới với GitHub. Đăng nhập vào tài khoản GitHub của bạn và điều hướng đến trang Ứng dụng mới.

Điền vào mẫu với các chi tiết sau:

  1. Điền vào Application name với Alerta hoặc tên mô tả phù hợp.
  2. Đối với Homepage URL, sử dụng http://your_alerta_server_ip/.
  3. Điền vào Authorization callback URL với http://your_alerta_server_ip/.
  4. Nhấp vào Register application để lưu cài đặt.
  5. Sao chép các giá trị Client ID và Client Secret được cung cấp trên màn hình kế tiếp.

Tiếp theo, chỉnh sửa cấu hình Alerta để bật xác thực OAuth. Mở tệp cấu hình:

sudo nano /etc/alertad.conf 

Thêm các cài đặt sau vào cuối tệp:

/etc/alertad.conf
OAUTH2_CLIENT_ID = 'your_github_client_id'
OAUTH2_CLIENT_SECRET = 'your_github_client_secret'
ALLOWED_GITHUB_ORGS = ['your_github_organization']

Sử dụng GitHub Client ID, GitHub Client Secret, và GitHub Organization cho các giá trị này, tương ứng.

Cảnh báo: Nếu bạn bỏ qua tùy chọn tổ chức GitHub từ lệnh, bất kỳ GitHub user nào cũng có thể đăng nhập vào bảng điều khiển Alerta của bạn. Tạo một tổ chức GitHub thêm các user thích hợp vào tổ chức để hạn chế quyền truy cập. 

Lưu tệp, thoát trình chỉnh sửa và khởi động lại dịch vụ uWSGI:

sudo systemctl restart alerta-app 

Sau đó thay đổi nhà cung cấp xác thực cho giao diện web. Chỉnh sửa tệp cấu hình của nó:

sudo nano /var/www/html/config.js 

Tìm phần sau và thay đổi nhà cung cấp từ basic thành github và nhập GitHub Client ID của bạn:

/var/www/html/config.js
 ...
'provider' : "github",'client_id' : "INSERT-CLIENT-ID-HERE", ...

Mở http://your_alerta_server_ip để truy cập vào Alerta Web UI. Lần này bạn sẽ thấy thông báo "Vui lòng đăng nhập để tiếp tục". Nhấp vào nút Login để đăng nhập và bạn sẽ được yêu cầu cho phép ứng dụng truy cập tài khoản GitHub của bạn. 

Bây giờ chúng ta có thể chạy một thử nghiệm đơn giản để kiểm tra xem Alerta có được thiết lập và hoạt động đúng hay không.

 

Bước 6 - Gửi thông báo thử nghiệm

Chúng ta sẽ sử dụng công cụ dòng lệnh thống nhất của Alerta để gửi cảnh báo kiểm tra. Trước tiên, cài đặt ứng dụng dòng lệnh:

sudo pip install alerta 

Sau đó, tạo tệp cấu hình xác định điểm cuối API Alerta đã định dạng trước đó, cùng với API key bạn muốn sử dụng. Tạo tệp mới trong trình chỉnh sửa của bạn:

nano ~/.alerta.conf 

Dán thông tin sau vào tệp:

~/.alerta.conf
[DEFAULT]
endpoint = http://your_alerta_server_ip/apikey = your_alerta_api_key

Sử dụng API key đã thiết lập trong Bước 4 cho tùy chọn key.

Bây giờ chúng ta có thể gửi thông báo kiểm tra:

alerta send --resource webserver01 --event down --environment Production --service Website01 --severity major --text "Web server 01 is down." --value ERROR 

Bạn sẽ thấy output tương tự như sau:

Output
f12558eb-e333-4a10-9c08-7d63f8b0442c (indeterminate -> major) 

Truy cập http://your_alerta_server_ip trong trình duyệt của bạn và sẽ thấy thông báo trên trang tổng quan trông giống như thông báo trong hình sau:

Alerta displaying the test alert

Bạn có thể nhấp vào tin nhắn để xem chi tiết.

Alerta server đang bật và chờ tin nhắn mới. Hãy định dạng hệ thống giám sát Zabbix  để gửi cảnh báo tới Alerta.

 

Bước 7 - Cài đặt Cổng Zabbix-Alerta

Trong bước này, chúng ta sẽ sửa đổi hệ thống giám sát Zabbix để gửi tin nhắn thông báo tới Alerta.

Đăng nhập vào máy chủ Zabbix với tư cách là non-root user:

ssh sammy@your_zabbix_server_ip

Ubuntu 16.04 đi kèm với Python 3 được cài đặt và sử dụng python3 làm nhị phân. Tại thời điểm công bố, các tập lệnh Alerta đối với Zabbix yêu cầu Python 2. Chúng ta cũng cần Git được cài đặt để có thể lấy mã nguồn từ GitHub. Chạy lệnh sau để cài đặt các gói phần mềm này:

sudo apt-get install python python-setuptools git 

Theo mặc định, Zabbix gửi thông báo bằng e-mail, tin nhắn SMS hoặc tin nhắn Jabber, nhưng bạn có thể thêm trình xử lý thông báo mới bằng cách sử dụng tập lệnh. Các nhà phát triển Alerta cung cấp một tập lệnh thông báo sẵn sàng. Để cài đặt nó, hãy sao chép kho lưu trữ zabbix-alerta và cài đặt nó bằng cách sử dụng tập lệnh cài đặt:

git clone https://github.com/alerta/zabbix-alerta.git 
cd zabbix-alerta 
sudo python setup.py install 

Sau đó tạo liên kết tượng trưng cho tập lệnh zabbix-alerta trong thư mục nơi Zabbix lưu trữ tập lệnh cảnh báo. Bạn có thể tìm đường dẫn của nó trong tập tin cấu hình /etc/zabbix/zabbix_server.conf:

sudo grep -e '^AlertScriptsPath' /etc/zabbix/zabbix_server.conf 

Bạn sẽ thấy output giống như sau:

Output
AlertScriptsPath=/usr/lib/zabbix/alertscripts 

Theo mặc định, Zabbix tìm kiếm các tập lệnh trong /usr/lib/zabbix/alertscripts. Thực hiện lệnh sau để tạo liên kết tượng trưng:

sudo ln -s `which zabbix-alerta` /usr/lib/zabbix/alertscripts 

Hãy định dạng tích hợp Alerta. Đăng nhập vào giao diện web Zabbix của bạn tại   http://your_zabbix_server_ip/zabbix/.

Trong menu chính, nhấp vào Administration, chọn Media Types và nhấp vào nút Create Media Type ở góc trên cùng bên phải.

Điền vào biểu mẫu với các chi tiết sau:

  • Đối với Name, nhập Alerta.
  • Đối với Type, chọn Script từ trình đơn thả xuống.
  • Đối với Script name, nhập zabbix-alerta.
  • Đối với Script parameters, nhập các giá trị sau:
    • {ALERT.SENDTO}
    • {ALERT.SUBJECT}
    • {ALERT.MESSAGE}
  • Đảm bảo chọn hộp đánh dấu Enabled. 

Nhấp vào nút Add để tạo loại phương tiện mới.

Sau đó, thêm phương tiện mới cho tài khoản user của bạn. Chọn Administration trong menu chính, sau đó chọn Users. Nhấp vào tên user và chọn tab  Media. Nhập các chi tiết sau

  • Đối với Type, chọn Alerta.
  • Đối với Send to, nhập http://your_alerta_server_ip/api;your_api_key.

Sử dụng API key bạn đã tạo ở Bước 4.

Lưu loại phương tiện mới bằng cách nhấp vào nút Add.

Sau đó, xác minh cấu hình cho user và lưu cài đặt bằng cách nhấp vào nút Update.

Bây giờ hãy định dạng hành động để gửi tin nhắn. Chọn Configuration trong menu chính, sau đó chọn  Actions. Nhấp vào nút Create Action.

Trên tab Action, đặt giá trị của trường Name đến Forward to Alerta.

Trên Operations tab, thiết lập các tùy chọn sau:

  • Đặt Default subject vào {TRIGGER.STATUS}: {TRIGGER.NAME}
  • Đối với Default message, nhập đoạn sau:
Default message
resource={HOST.NAME1}event={ITEM.KEY1}environment=Production 
severity={TRIGGER.SEVERITY}status={TRIGGER.STATUS}ack={EVENT.ACK.STATUS}service={TRIGGER.HOSTGROUP.NAME}group=Zabbix value={ITEM.VALUE1}text={TRIGGER.STATUS}: {TRIGGER.NAME}tags={EVENT.TAGS}attributes.ip={HOST.IP1}attributes.thresholdInfo={TRIGGER.TEMPLATE.NAME}: {TRIGGER.EXPRESSION}type=zabbixAlert 
dateTime={EVENT.DATE}T{EVENT.TIME}Z 

Zabbix sẽ gửi tin nhắn theo dạng thức được chỉ định khi phát hiện sự cố. Nó sẽ thay thế các biểu thức trong dấu ngoặc nhọn bằng các giá trị tương ứng. Tất cả các trường này là cần thiết để Alerta nhận cảnh báo và hiển thị chính xác.

Tiếp theo, tạo thao tác mới bằng cách nhấp vào New trong trường Operations. Nhập các giá trị sau vào biểu mẫu:

  • Đối với Send to Users, nhập Your user name.
  • Đối với Send only to, chọn Alerta từ trình đơn thả xuống.

Sau đó chọn tab Recovery operations và thay đổi thông báo Default thành các mục sau:

Recovery operations
resource={HOST.NAME1}event={ITEM.KEY1}environment=Production 
severity={TRIGGER.SEVERITY}status={TRIGGER.STATUS}ack={EVENT.ACK.STATUS}service={TRIGGER.HOSTGROUP.NAME}group=Zabbix 
value={ITEM.VALUE1}text={TRIGGER.STATUS}: {ITEM.NAME1}tags={EVENT.RECOVERY.TAGS}attributes.ip={HOST.IP1}attributes.thresholdInfo={TRIGGER.TEMPLATE.NAME}: {TRIGGER.EXPRESSION}attributes.moreInfo=your_zabbix_server_ip/zabbix/tr_events.php?triggerid={TRIGGER.ID}&eventid={EVENT.RECOVERY.ID}">Zabbix console 
type=zabbixAlert 
dateTime={EVENT.RECOVERY.DATE}T{EVENT.RECOVERY.TIME}Z 

Tin nhắn này tương tự như thông báo trước. Thông báo này sẽ được gửi khi sự cố biến mất.

Tiếp theo, tạo thao tác mới bằng cách nhấp vào New trong trường Operations. Đối với Operation type, chọn Send recovery message từ hộp thả xuống.

Hoàn tất cấu hình bằng cách nhấp vào nút Add.

Zabbix đã sẵn sàng gửi cảnh báo tới Alerta. Hãy tạo một cái.

 

Bước 8 — Tạo Test Alert để xác minh tích hợp Zabbix-Alerta 

Hãy tạo một cảnh báo kiểm tra để đảm bảo mọi thứ được kết nối. Theo mặc định, Zabbix theo dõi dung lượng đĩa trống trên máy chủ của bạn. Chúng ta sẽ tạo một tệp tạm thời đủ lớn để kích hoạt cảnh báo sử dụng hệ thống tệp của Zabbix.

Đăng nhập vào máy chủ Zabbix nếu bạn chưa kết nối.

Tiếp theo, xác định dung lượng trống trên máy chủ. Bạn có thể sử dụng lệnh df để tìm hiểu:

df -h 

Bạn sẽ thấy output như sau:

Output 
Filesystem Size Used Avail Use% Mounted on /dev/vda1 20G 1.5G 18G 9% / 

Chúng ta quan tâm đến dung lượng không gian trống. Trong trường hợp này, dung lượng trống là 18GB. Không gian trống của bạn có thể khác.

Sử dụng lệnh fallocate để tạo một tệp chiếm hơn 80% không gian đĩa có sẵn, đủ để kích hoạt cảnh báo:

fallocate -l 16G /tmp/temp.img 

Trong vòng vài phút, Zabbix sẽ kích hoạt cảnh báo về dung lượng đĩa trống và chạy hành động đã định dạng, gửi thông báo thông báo đến Alerta. Bạn sẽ thấy thông báo mới này trong bảng điều khiển Alerta.

Alerta displaying the free space alert from Zabbix

Bây giờ bạn đã biết các cảnh báo đang hoạt động, hãy xóa tệp tạm thời bạn đã tạo để lấy lại dung lượng đĩa:

rm -f /tmp/temp.img 

Sau một phút Zabbix sẽ gửi tin nhắn khôi phục. Cảnh báo sẽ biến mất khỏi bảng điều khiển chính, nhưng bạn có thể xem tất cả các sự kiện đã đóng bằng cách chọn Closed.

Alerta's closed alerts, displaying the resolved free space alert.

Bạn có thể nhấp vào hàng Event để xem thêm chi tiết.

 

Kết luận

Trong hướng dẫn này, bạn đã cài đặt và định dạng Alerta và thiết lập Zabbix để gửi thông báo vào đó. Kết quả là, bây giờ bạn có công cụ thuận tiện để theo dõi các cảnh báo. Trong tương lai, bạn có thể thêm các nguồn thông báo khác, qua đó hợp nhất và tập trung thông tin từ các hệ thống giám sát khác nhau.