Cách theo dõi cảnh báo Zabbix với Alerta trên CentOS 7
Alerta là một ứng dụng web được sử dụng để hợp nhất và loại bỏ các cảnh báo trùng lặp 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. 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ẽ cài đặt Alerta và cấu hình nó để hiển thị thông báo từ hệ thống giám sát Zabbix.
Yêu cầu
Để làm theo hướng dẫn này, bạn cần :
- Hai server CentOS 7 được cài đặt theo hướng dẫn cài đặt server ban đầu CentOS 7 , bao gồm user không phải root có quyền sudo và firewall .
- Trên server CentOS đầu tiên, là nơi bạn sẽ chạy Zabbix, hãy cài đặt các thành phần sau:
- Apache, MySQL và PHP, theo hướng dẫn Cách cài đặt ngăn xếp Linux, Apache, MySQL, PHP (LAMP) Trên CentOS 7 .
- Zabbix Server, được cài đặt theo hướng dẫn Cách cài đặt và cấu hình Zabbix để giám sát an toàn server từ xa trên CentOS 7 và các yêu cầu để cấu hình nó.
- Trên server CentOS thứ hai, là nơi ta sẽ cài đặt Alerta trong hướng dẫn này, hãy cài đặt các thành phần sau:
- Nginx, được cài đặt theo hướng dẫn Cách cài đặt Nginx trên CentOS 7 .
- MongoDB, được cài đặt theo hướng dẫn Cách cài đặt MongoDB trên CentOS 7 .
- Nếu bạn muốn an toàn giao diện web Alerta như đã giải thích ở bước 6, bạn cần một GitHub account đó là một phần của một tổ chức GitHub. Làm theo hướng dẫn này để tạo tổ chức GitHub.
Bước 1 - Cài đặt Server API của Alerta
Alerta bao gồm một server và một giao diện web. Server Alerta chịu trách nhiệm lưu trữ và xử lý các cảnh báo, đồng thời phân phát JSON thông qua một API. Giao diện web Alerta cho phép bạn xem danh sách cảnh báo trong trình duyệt, vì vậy bạn không cần phải tự diễn giải JSON. Ta sẽ cài đặt cả hai thành phần trên server nơi ta đã cài đặt MongoDB và Nginx. Ta sẽ gọi máy này là server Alerta trong suốt hướng dẫn này. Đăng nhập vào máy này với quyền là user không phải root của bạn:
- ssh sammy@your_alerta_server_ip
Trước khi có thể cài đặt bất kỳ thành phần Alerta nào, ta cần cài đặt pip
, trình quản lý gói Python và các file phát triển Python. Ta cũng cần cài đặt Git để có thể truy xuất 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 yum install python-pip python-devel gcc git
Sau khi các gói này cài đặt, ta đã sẵn sàng cài đặt Alerta.
Đầu tiên, ta sẽ cài đặt server của Alerta bằng cách sử dụng pip
:
- sudo pip install alerta-server
Kiểm tra cài đặt bằng cách chạy server Alerta ở chế độ phát triển:
- sudo alertad
Bạn sẽ thấy thông tin 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 FirewallD, hãy cấu hình nó để cho phép kết nối với cổng 8080
:
- sudo firewall-cmd --zone=public --permanent --add-port=8080/tcp
- sudo firewall-cmd --reload
Bạn có thể tìm hiểu thêm về Firewalld trong Cách cài đặt firewall bằng FirewallD trên CentOS 7 .
Như vậy, bạn có thể mở http:// your_alerta_server_ip :8080
trong trình duyệt của bạn và xem trang web API Alerta, trang này sẽ hiển thị cho bạn một số ví dụ sử dụng.
Khi bạn đã xác minh server đang chạy, hãy dừng server bằng cách nhấn CTRL+C
Ta sẽ sớm cấu hình nó như một dịch vụ.
Server API Alerta đã được cài đặt, vì vậy hãy cài đặt console web.
Bước 2 - Cài đặt giao diện user Web Alerta
Alerta có một console hiển thị các thông báo trong trình duyệt của bạn. Nó hiển thị các thông báo cảnh báo trong các 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ể cấu hình dạng xem để đáp ứng nhu cầu của bạn : bạn có thể lọc thư 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. Ta sẽ cài đặt điều này trên cùng một server mà ta đã cài đặt server APIAlerta.
Đầu tiên hãy lấy mã nguồn từ Github:
- git clone https://github.com/alerta/angular-alerta-webui.git
Sau đó, sao chép các file ứng dụng vào folder web server của bạn:
- sudo mkdir -p /var/www/html/
- sudo cp -r angular-alerta-webui/app/* /var/www/html/
Theo mặc định, giao diện web của Alerta được cấu hình để giao tiếp với API server phát triển, đang chạy trên cổng 8080
. Ta sẽ cài đặt điều này để sử dụng trong production bằng cách cung cấp API của Server Alerta tại điểm cuối /api
trên server của ta và cung cấp nội dung tĩnh của console web từ cùng một domain , điều này cho phép ta tránh các sự cố với CORS hoặc nội dung hỗn hợp HTTPS lỗi.
Mở file cấu hình config.js
:
- sudo vi /var/www/html/config.js
Và đặt endpoint
thành /api
:
'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 ở giá trị mặc định của chúng. Ta sẽ thay đổi một số trong số chúng sau trong hướng dẫn này khi ta 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. Ta chỉ cần cài đặt chúng để làm việc cùng nhau.
Bước 3 - Chạy Alerta với uWSGI Behind Nginx.
Ta có thể sử dụng server phát triển alertad
cho một số thử nghiệm nhanh, nhưng nó không tốt cho việc sử dụng production , vì vậy hãy khắc phục điều đó. Vì Alerta được viết bằng Python nên ta cần sử dụng server WSGI để chạy nó. Trong hướng dẫn này, ta sẽ chạy Alerta như một ứng dụng uWSGI được hỗ trợ bởi Nginx, tại http:// your_alerta_server_ip /api
.
Trước tiên, hãy cài đặt server ứng dụng uWSGI bằng trình quản lý gói Python:
- sudo pip install uwsgi
Tiếp theo, tạo file wsgi.py
, file mà server ứng dụng sử dụng để giao tiếp với ứng dụng của ta . Mở file trong editor :
- sudo vi /var/www/wsgi.py
Thêm dòng sau vào file , dòng này cho uWSGI biết cách gọi ứng dụng Alerta:
from alerta.app import app
Tiếp theo, ta cần cấu hình chính server uWSGI. Tạo một folder nơi uWSGI có thể lưu trữ file socket của nó và đảm bảo tiến trình Nginx có thể truy cập nó:
- sudo mkdir /var/run/alerta
- sudo chown -R nginx.nginx /var/run/alerta/
Sau đó, tạo file cấu hình /etc/uwsgi.ini
và mở nó trong editor :
- sudo vi /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 file :
[uwsgi] chdir = /var/www mount = /api=wsgi.py callable = app manage-script-name = true master = true processes = 5 logger = syslog:alertad socket = /var/run/alerta/uwsgi.sock chmod-socket = 664 uid = nginx gid = nginx vacuum = true die-on-term = true
Bạn có thể xem danh sách tham khảo đầy đủ về các tùy chọn uWSGI trong tài liệu .
Tiếp theo, ta sẽ tạo một đơn vị Systemd cho ứng dụng này để ta có thể điều khiển nó bằng lệnh systemctl
.
- sudo vi /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 file :
[Unit] Description=uWSGI service for Alerta After=syslog.target [Service] ExecStart=/usr/bin/uwsgi --ini /etc/uwsgi.ini RuntimeDirectory=uwsgi Restart=always KillSignal=SIGQUIT Type=notify StandardError=syslog NotifyAccess=all [Install] WantedBy=multi-user.target
Bạn có thể tìm thêm thông tin về các cài đặt này và cách làm việc với các đơn vị Systemd trong hướng dẫn Systemd này .
Đến đây 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 lệnh:
- 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: disabled) Active: active (running) since Fri 2017-04-07 12:15:21 EEST; 2min 25s ago Main PID: 15935 (uwsgi) Status: "uWSGI is ready" CGroup: /system.slice/alerta-app.service ├─15935 /usr/bin/uwsgi --ini /etc/uwsgi.ini ├─15946 /usr/bin/uwsgi --ini /etc/uwsgi.ini ├─15947 /usr/bin/uwsgi --ini /etc/uwsgi.ini ├─15948 /usr/bin/uwsgi --ini /etc/uwsgi.ini ├─15949 /usr/bin/uwsgi --ini /etc/uwsgi.ini └─15950 /usr/bin/uwsgi --ini /etc/uwsgi.ini
Như bạn thấy , dịch vụ bị tắt theo mặc định, nghĩa là nó sẽ không tự động khởi động. Kích hoạt nó:
- sudo systemctl enable alerta-app
Cuối cùng, ta phải cấu hình Nginx để chuyển hướng tất cả các yêu cầu cho your_alerta_server_ip /api
đến server uWSGI đang chạy và phục vụ giao diện user web với Nginx.
Thay vì sửa đổi file cấu hình Nginx mặc định, ta sẽ đặt cấu hình Alerta trong file riêng của nó.
- sudo vi /etc/nginx/conf.d/alerta.conf
Thêm nội dung sau vào file . Đảm bảo thay thế giá trị cho server_name
bằng địa chỉ IP của server Alerta của bạn.
server { listen 80; server_name your_alerta_server_ip; location /api { try_files $uri @api; } location @api { include uwsgi_params; uwsgi_pass unix:/var/run/alerta/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; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }
Bạn có thể tìm thêm thông tin về các khối server Nginx trong hướng dẫn này.
Lưu file và thoát khỏi editor .
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 nào 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 bạn thấy điều gì đó khác, hãy giải quyết các lỗi và thử lại.
Đến đây bạn có thể reload Nginx để áp dụng 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 console Alerta.
Nếu bạn cài đặt Alerta trên một server có thể truy cập công cộng, bạn nên cấu hình nó để yêu cầu xác thực. Hãy xem xét một số phương pháp để làm điều đó.
Bước 4 - Bảo mật Alerta với Xác thực Cơ bản
Theo mặc định, bất kỳ ai biết địa chỉ của server Alerta đề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 đối với production . Để thực thi xác thực, hãy mở file cấu hình alertad.conf
:
- sudo vi /etc/alertad.conf
Thêm mã sau vào file :
AUTH_REQUIRED = True SECRET_KEY = 'secret_key'
Đặt SECRET_KEY
thành một chuỗi ngẫu nhiên mà bạn chọn. Lưu file , thoát khỏi editor và khởi động lại dịch vụ uWSGI:
- sudo systemctl restart alerta-app
Reload trang web Giao diện user Web Alerta và chọn liên kết Đăng nhập trong menu. 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 Tạo account và tạo account mới. Sau khi hoàn tất quy trình, bạn sẽ có quyền truy cập vào console Alerta.
Sau khi cài đặt xác thực , bạn cần khóa API để truy cập API Alerta. Chọn menu Cấu hình và chọn khóa API .
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 đọc-ghi từ menu thả xuống và nhấp vào nút Tạo khóa API mới . 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 cần nó sau này.
Ngoài ra, bạn có thể cài đặt xác thực OAuth và sử dụng thông tin đăng nhập GitHub hoặc Google của bạn để đăng nhập vào giao diện user 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 bằng OAuth (tùy chọn)
Giao diện user Web của Alerta hỗ trợ xác thực OAuth cho Google, GitHub, Gitlab và Keycloak. Ta sẽ cấu hình đăng nhập qua account GitHub , vì vậy bạn cần một account để tiếp tục.
Đầu tiên, đăng ký một ứng dụng mới với GitHub. Đăng nhập vào account GitHub của bạn và chuyển đến trang Ứng dụng mới. .
Điền vào biểu mẫu với các chi tiết sau:
- Điền tên ứng dụng với Alerta hoặc tên mô tả phù hợp.
- Đối với URL Trang chủ , hãy sử dụng
http:// your_alerta_server_ip /
. - Điền vào URL gọi lại Ủy quyền bằng
http:// your_alerta_server_ip /
. - Bấm Đăng ký ứng dụng để lưu cài đặt.
- Sao chép các giá trị Client ID và Client Secret được cung cấp trên màn hình tiếp theo.
Tiếp theo, chỉnh sửa cấu hình Alerta để cài đặt xác thực OAuth. Mở file cấu hình:
- sudo vi /etc/alertad.conf
Thêm các cài đặt sau vào cuối file :
OAUTH2_CLIENT_ID = 'your_github_client_id' OAUTH2_CLIENT_SECRET = 'your_github_client_secret' ALLOWED_GITHUB_ORGS = ['your_github_organization']
Sử dụng ID ứng dụng client GitHub, Bí mật ứng dụng client GitHub và Tổ chức GitHub 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 khỏi lệnh, mọi user GitHub sẽ có thể đăng nhập vào console Alerta của bạn. Tạo tổ chức GitHub và thêm user thích hợp vào tổ chức để hạn chế quyền truy cập.
Lưu file , thoát khỏi editor 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 file cấu hình của nó:
- sudo vi /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 ID ứng dụng client GitHub của bạn:
... 'provider' : "github", 'client_id' : "INSERT-CLIENT-ID-HERE", ...
Mở http:// your_alerta_server_ip
để truy cập giao diện user Web Alerta. 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 Đăng nhập để đăng nhập và bạn cần cho phép ứng dụng truy cập vào account GitHub của bạn . Khi bạn cho phép truy cập, bạn sẽ đăng nhập.
Bây giờ ta có thể chạy một bài kiểm tra đơn giản để kiểm tra xem Alerta có được cài đặt và hoạt động chính xác hay không.
Bước 6 - Gửi tin nhắn kiểm tra
Ta sẽ sử dụng công cụ dòng lệnh hợp nhất của Alerta để gửi cảnh báo thử nghiệm. Đầu tiên, hãy cài đặt ứng dụng dòng lệnh:
- sudo pip install alerta
Sau đó, tạo file cấu hình xác định điểm cuối API Alerta mà bạn đã cấu hình trước đó, cùng với khóa API bạn muốn sử dụng. Tạo một file mới trong editor :
- vi ~/.alerta.conf
Dán phần sau vào file :
[DEFAULT] endpoint = http://your_alerta_server_ip/api key=your_alerta_api_key
Sử dụng khóa API bạn đã cài đặt ở Bước 4 cho tùy chọn key
.
Bây giờ ta có thể gửi một cảnh 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 kết quả tương tự như sau:
Output1015fca2-eff6-441d-8c66-6abf9368b830 (indeterminate -> major)
Truy cập http:// your_alerta_server_ip
trong trình duyệt của bạn và bạn sẽ thấy một thông báo trên trang tổng quan giống như trong hình sau:
Bạn có thể bấm vào tin nhắn để xem chi tiết.
Server Alerta của bạn đang hoạt động và đang chờ tin nhắn mới. Hãy cấu hình hệ thống giám sát Zabbix của ta để gửi cảnh báo đến Alerta.
Bước 7 - Cài đặt Zabbix-Alerta Gateway
Trong bước này, ta sẽ sửa đổi hệ thống giám sát Zabbix của bạn để gửi tin nhắn thông báo đến Alerta.
Đăng nhập vào server Zabbix của bạn với quyền là user không phải root của bạn:
- ssh sammy@your_zabbix_server_ip
Theo mặc định, Zabbix có thể gửi thông báo bằng e-mail, 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 được tạo sẵn. Để cài đặt nó, hãy sao chép repository zabbix-alerta và cài đặt nó bằng cách sử dụng 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 một softlink cho tập lệnh zabbix-alerta
trong folder nơi Zabbix lưu trữ các tập lệnh cảnh báo. Bạn có thể tìm thấy đường dẫn của nó trong file cấu hình /etc/zabbix/zabbix_server.conf
:
- sudo grep -e '^AlertScriptsPath' /etc/zabbix/zabbix_server.conf
Bạn sẽ thấy kết quả giống như sau:
OutputAlertScriptsPath=/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 thi lệnh sau để tạo softlink :
- sudo ln -s `which zabbix-alerta` /usr/lib/zabbix/alertscripts
Hãy cấu hình 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 Quản trị , chọn Loại phương tiện và nhấp vào nút Tạo loại phương tiện ở 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 Tên , nhập
Alerta
. - Đối với Loại , hãy chọn Tập lệnh từ menu thả xuống.
- Đối với tên Tập lệnh , hãy nhập
zabbix-alerta
. - Đối với các tham số Tập lệnh , hãy nhập các giá trị sau:
-
{ALERT.SENDTO}
-
{ALERT.SUBJECT}
-
{ALERT.MESSAGE}
-
- Đảm bảo hộp kiểm Đã bật được chọn.
Nhấp vào nút Thêm để tạo loại phương tiện mới.
Sau đó, thêm phương tiện mới cho account user của bạn. Chọn Quản trị trong menu chính, sau đó chọn User . Nhấp vào tên user của bạn và chọn tab Phương tiện . Nhập các chi tiết sau
- Đối với Type, chọn Alerta.
- Đối với Gửi tới , hãy nhập
http:// your_alerta_server_ip /api; your_api_key
.
Sử dụng khóa API bạn đã tạo ở Bước 4.
Lưu cấu hình bằng cách nhấp vào nút Cập nhật .
Bây giờ, hãy cấu hình một hành động để gửi tin nhắn. Chọn Cấu hình trong menu chính, sau đó chọn Hành động . Nhấp vào nút Tạo Hành động .
Trên tab Hành động , đặt giá trị của trường Tên thành Forward to Alerta
.
Trên tab Hoạt động , hãy đặt các tùy chọn sau:
- Đặt chủ đề Mặc định thành
{TRIGGER.STATUS}: {TRIGGER.NAME}
- Đối với tin nhắn Mặc định , hãy nhập văn bả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 ở định dạng được chỉ định khi phát hiện ra sự cố. Nó sẽ thay thế các biểu thức trong 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 cảnh báo và hiển thị chính xác.
Tiếp theo, tạo một hoạt động mới bằng cách nhấn mới trong lĩnh vực hoạt động. Nhập các giá trị sau vào biểu mẫu:
- Đối với Gửi cho user , hãy nhập
Your user name
. - Đối Gửi tin duy nhất, chọn Alerta từ hộp thả xuống.
Sau đó chọn tab Hoạt động khôi phục và thay đổi thông báo Mặc định thành như sau:
Recovery operationsresource={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=<a href="http://x.x.x.x/tr_events.php?triggerid={TRIGGER.ID}&eventid={EVENT.RECOVERY.ID}">Zabbix console</a> type=zabbixAlert dateTime={EVENT.RECOVERY.DATE}T{EVENT.RECOVERY.TIME}Z
Tin nhắn này tương tự như tin nhắn trước đó. Thông báo này sẽ được gửi khi sự cố biến mất.
Hoàn thành cấu hình bằng cách nhấp vào nút Thêm .
Zabbix đã sẵn sàng gửi cảnh báo đến Alerta. Hãy tạo một cái.
Bước 8 - Tạo thông báo kiểm tra để 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ứ đều được kết nối. Theo mặc định, Zabbix theo dõi dung lượng ổ đĩa trống trên server của bạn. Ta sẽ tạo một file tạm thời đủ lớn để kích hoạt cảnh báo sử dụng hệ thống file của Zabbix.
Đăng nhập vào server Zabbix của bạn nếu bạn chưa kết nối.
Tiếp theo, xác định bạn có bao nhiêu dung lượng trống trên server . Bạn có thể sử dụng lệnh df
để tìm hiểu:
- df -h
Bạn sẽ thấy kết quả như sau:
Output Filesystem Size Used Avail Use% Mounted on /dev/vda1 20G 1.5G 18G 9% /
Ta quan tâm đến số 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 nhau.
Sử dụng lệnh fallocate
để tạo file chiếm hơn 80% dung lượng đĩ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à sẽ chạy hành động mà ta đã cấu hình , gửi thông báo đến Alerta. Bạn sẽ thấy thông báo mới này trong console Alerta.
Đến đây bạn biết các cảnh báo đang hoạt động, hãy xóa file tạm thời bạn đã tạo để bạn có thể lấy lại dung lượng đĩa của bạn :
- rm -f /tmp/temp.img
Sau một phút, Zabbix sẽ gửi thông báo khôi phục. Cảnh báo sẽ không xuất hiện khỏi trang tổng quan chính, nhưng bạn có thể xem tất cả các sự kiện đã đóng bằng cách chọn Đã đóng .
Bạn có thể nhấp vào hàng sự kiện để xem thêm chi tiết.
Kết luận
Trong hướng dẫn này, bạn đã cài đặt và cấu hình Alerta, đồng thời cài đặt Zabbix để gửi thông báo vào đó. Kết quả là bây giờ bạn có một công cụ tiện lợi để 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, từ đó hợp nhất và tập trung thông tin từ các hệ thống giám sát khác nhau.
Các tin liên quan
Cách cài đặt Perlbrew và quản lý nhiều phiên bản Perl 5 trên CentOS 72017-05-31
Cách cấu hình NTP để sử dụng trong Dự án NTP Pool trên CentOS 7
2017-05-11
Cách lưu trữ một trang web với Caddy trên CentOS 7
2017-05-10
Cách cài đặt và cấu hình Ghost trên CentOS 7
2017-04-10
Cách cấu hình một client FreeIPA trên CentOS 7
2017-03-24
Cách theo dõi các chỉ số hệ thống bằng TICK Stack trên CentOS 7
2017-03-12
Cách thiết lập xác thực đa yếu tố cho SSH trên CentOS 7
2017-03-08
Cách cài đặt và bảo mật message broker MQTT Mosquitto trên CentOS 7
2017-01-23
Cách thay đổi thư mục dữ liệu MariaDB thành vị trí mới trên CentOS 7
2016-12-19
Cách cài đặt và cấu hình Ansible trên CentOS 7
2016-12-19