Alerta là một ứng dụng web dùng để tổng hợp các cảnh báo từ nhiều hệ thống giám sát, đồng thời hiển thị trực quan trên một màn hình duy nhất. Alerta có thể được tích hợp với nhiều công cụ như Nagios, Zabbix, Sensu,… nên được sử dụng rất phổ biến. Bài viết này sẽ hướng dẫn cách theo dõi cảnh báo Nagios với Alerta trên CentOS 7.
Điều kiện để theo dõi cảnh báo Nagios với Alerta trên CentOS 7
Để bắt đầu hướng dẫn, bạn cần có hai server CentOS 7, một user non-root có quyền sudo và một tường lửa.
- Trong một server CentOS, bạn sẽ chạy Nagios và cài đặt các thành phần sau: Apache, MySQL, PHP. Đồng thời server này cũng sẽ cài đặt Nagios 4 và các thành phần tiên quyết để cấu hình.
- Ở server thứ hai, bạn sẽ cài đặt Alerta, Nginx và MongoDB.
Bước 1: Cài đặt module Nagios-to-Alerta Event Broker
Bạn có thể mở rộng các chức năng của Nagios bằng module Nagios Event Broker (NEB). NEB là cơ chế tích hợp event của Nagios, và các module NEB là những thư viện dùng chung cho phép tích hợp với những dịch vụ khác. Trong bước này, Vietnix sẽ cài đặt Nagios cho Alerta Gatexy – là module NEB gửi thông báo đến Alerta.
Trước tiên, đăng nhập vào server Nagios bằng user non-root:
ssh vietnix@your_nagios_server_ip
Nagios-to-Alerta không có các package hệ thống được cấu hình sẵn nên bạn cần phải build từ mã nguồn ngoài. Bây giờ hãy cài đặt một số công cụ phát triển và file từ mã nguồn có trên GitHub.
Chạy lệnh sau để cài đặt Git:
sudo yum install -y git curl gcc make libcurl-devel
Sau đó clone mã nguồn từ GitHub:
git clone https://github.com/alerta/nagios-alerta.git
Thay đổi thư mục nagios-alerta
mới, vào trong thư mục rồi biên dịch module bằng lệnh make
:
cd nagios-alerta
make nagios4
Output:
Output
cd ./src && make nagios4
make[1]: Entering directory `/root/nagios-alerta/src'
gcc -fPIC -g -O2 -DHAVE_CONFIG_H -I../include -I../include/nagios4 -lcurl -o alerta-neb.o alerta-neb.c -shared -lcurl
make[1]: Leaving directory `/root/nagios-alerta/src'
Nếu output không hiển thị như ở trên thì hãy thử kiểm tra xem các công cụ cần thiết đã được cài đặt đầy đủ chưa.
Bây giờ cài đặt module bằng lệnh sau:
sudo make install
Output sẽ cho biết module đã được cài đặt trong thư mục /usr/lib/nagios
:
Output
cd ./src && make install
make[1]: Entering directory `/root/nagios-alerta/src'
[ -d /usr/lib/nagios ] || mkdir /usr/lib/nagios
install -m 0644 alerta-neb.o /usr/lib/nagios
make[1]: Leaving directory `/root/nagios-alerta/src'
Nếu bạn đang tìm kiếm một giải pháp VPS tin cậy để triển khai hệ thống giám sát cảnh báo Nagios bằng Alerta trên CentOS 7, hãy tham khảo sử dụng dịch vụ VPS của Vietnix.
Vietnix cung cấp các gói VPS đa dạng, phù hợp với mọi nhu cầu và ngân sách. Dựa trên yêu cầu của bạn, bạn có thể lựa chọn giữa các gói VPS của Vietnix như VPS Giá Rẻ, VPS Phổ Thông, VPS Cao Cấp, VPS NVMe.
Lựa chọn Vietnix, bạn sẽ được hỗ trợ 247 từ đội ngũ chuyên gia giàu kinh nghiệm. Đảm bảo sự ổn định, bảo mật và hiệu suất của hệ thống VPS của bạn.
Truy cập ngay các trang dịch vụ VPS của Vietnix để tìm hiểu thêm thông tin chi tiết.
Bước 2: Cấu hình module Nagios-to-Alerta
Ở bước tiếp theo ta sẽ cấu hình cho Nagios gửi các thông báo đến Alerta.
Đầu tiên bạn cần enable module Alerta vừa cài đặt trong file cấu hình của Nagios. Mở file bằng text editor bất kỳ:
sudo vi /usr/local/nagios/etc/nagios.cfg
Sau đó tìm phần có chứa các directive về “broker_module
“:
...
# EVENT BROKER MODULE(S)
# This directive is used to specify an event broker module that should
# by loaded by Nagios at startup. Use multiple directives if you want
# to load more than one module. Arguments that should be passed to
# the module at startup are separated from the module path by a space.
#
[...]
#broker_module=/somewhere/module1.o
#broker_module=/somewhere/module2.o arg1 arg2=3 debug=0
...
Để cấu hình module Alerta, bạn phải cung cấp hai tham số sau:
- URL: Địa chỉ dùng để giao tiếp với API Alerta.
- key: API key dùng để xác thực Alerta và đăng event.
Thêm dòng dưới đây vào file để tích hợp Alerta:
...
broker_module=/usr/lib/nagios/alerta-neb.o http://your_alerta_server_ip/api key=ALERTA_API_KEY
...
Có một vài tham số khác bạn có thể tham khảo như sau:
- env: Chỉ định tên môi trường, mặc định là
Production
. - hard_only: Chỉ chuyển tiếp các kết quả ở trạng thái Hard, bạn có thể đặt giá trị thành
1
để enable chế độ. Các loại trạng thái khác của Nagios State có thể được xem tại: https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/statetypes.html. - debug: Bật chế độ debug cho module, có thể bật bằng cách đặt giá trị thành
1
.
Nếu muốn sử dụng mọi option ở trên thì bạn có thể thay thế thành dòng sau:
...
broker_module=/usr/lib/nagios/alerta-neb.o http://your_alerta_server_ip/api key=ALERTA_API_KEY env=Production hard_only=1 debug=1
...
Sau đó lưu rồi đóng lại file.
Để xác định các cảnh báo dựa vào tên dịch vụ và môi trường, bạn cần thiết lập thêm tên dịch vụ và môi trường bằng các biến đối tượng tùy chỉnh Nagios, cụ thể là các biến _Environment
và _Service
trong cấu hình.
Mở file cấu hình đối tượng host Nagios mặc định trong thư mục /usr/local/nagios/etc/objects
:
sudo vi /usr/local/nagios/etc/objects/localhost.cfg
Ta sẽ đánh dấu mọi cảnh báo từ host này là loại Productions và gọi dịch vụ mặc định Nagios. Tìm dòng chứa định nghĩa host như sau:
...
define host{
use linux-server ; Name of host template to use
; This host definition will inherit all variables that are defined
; in (or inherited by) the linux-server host template definition.
host_name localhost
alias localhost
address 127.0.0.1
}
...
Sau đó thêm giá trị _Environment
và _Service
vào cấu hình:
...
host_name localhost
alias localhost
address 127.0.0.1
_Environment Production
_Service Nagios
}
...
Bây giờ hãy đánh dấu mọi event liên quan đến việc thiếu dung lượng trên phân vùng hệ thống thành cảnh báo System. Tìm phần định nghĩa kiểm tra dung lượng trống ở trong file như sau:
...
define service{
use local-service ; Name of service template to use
host_name localhost
service_description Root Partition
check_command check_local_disk!20%!10%!/
}
...
Sau đó thêm biến _Service
:
...
define service{
use local-service ; Name of service template to use
host_name localhost
service_description Root Partition
check_command check_local_disk!20%!10%!/
_Service System
}
...
Lưu rồi đóng lại file sau khi hoàn tất. Cuối cùng là restart lại Nagios để áp dụng các thay đổi mới:
sudo systemctl restart nagios.service
Kiểm tra trạng thái xem dịch vụ có đang chạy không:
systemctl status nagios.service
Output
...
Jul 01 08:44:31 nagios nagios[8914]: [alerta] Initialising Nagios-Alerta Gateway module, v3.4.1
Jul 01 08:44:31 nagios nagios[8914]: [alerta] debug is off
Jul 01 08:44:31 nagios nagios[8914]: [alerta] states=Hard/Soft
Jul 01 08:44:31 nagios nagios[8914]: [alerta] Forward service checks, host checks and downtime to http://your_alerta_server_ip/api
Jul 01 08:44:31 nagios nagios[8914]: Event broker module '/usr/lib/nagios/alerta-neb.o' initialized successfully.
Jul 01 08:44:31 nagios nagios[8914]: Successfully launched command file worker with pid 8920
Bây giờ Nagios sẽ gửi các thông báo ngay khi bất kỳ hệ thống hay dịch vụ nào gặp lỗi. Ở bước cuối cùng, chúng ta sẽ thử tạo một event để kiểm tra.
Bước 3: Tạo Alert kiểm tra Nagios-Alerta
Theo mặc định thì Nagios sẽ theo dõi dung lượng trống trên server. Ta sẽ tạo một file tạm thời có kích thước đủ lớn để kích hoạt cảnh báo dung lượng hệ thống của Nagios.
Trước tiên, kiểm tra xem server còn bao nhiêu dung lượng trống bằng lệnh sau:
df -h
Output
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 20G 3.1G 16G 17% /
Trong trường hợp này thì server còn trống 16GB
. Bạn có thể dùng lệnh fallocate
để tạo một file mới chiếm hơn 80% dung lượng đĩa hiện có nhằm mục đích kích hoạt cảnh báo:
fallocate -l 14G /tmp/temp.img
Sau đó vài phút, Nagios sẽ hiển thị cảnh báo về dung lượng còn trống và gửi thông báo đến Alerta. Bạn có thể kiểm tra các thông báo mới trong dashboard Alerta như sau:
Như vậy là các cảnh báo đang hoạt động bình thường. Bây giờ hãy xóa file vừa tạo để khôi phục lại dung lượng trên server:
rm -f /tmp/temp.img
Sau đó vài phút, Nagios sẽ tiếp tục gửi thông báo hồi phục. Bạn có thể xem các event đã đóng trên dashboard bằng cách chọn vào Closed. Bên cạnh đó bạn có thể nhấn vào từng hàng event để xem chi tiết hơn.
Vietnix hiện đang là một trong những nhà cung cấp dịch vụ hosting, VPS tốc độ cao uy tín chuyên nghiệp hàng đầu tại Việt Nam với những thành tựu nổi bật sau đây:
- Hơn 11 năm kinh nghiệm trong lĩnh vực hosting, VPS.
- Đồng hành cùng sự thành công của hơn 50.000 khách hàng cá nhân và doanh nghiệp.
- Đã thành công kích hoạt hơn 100.000 dịch vụ và đạt được tỷ lệ đánh giá 5 sao từ 97% khách hàng.
- Sự tin tưởng và hài lòng của khách hàng còn được chứng minh bởi việc 89% khách hàng đã duy trì sử dụng dịch vụ của Vietnix đến hiện tại.
- Năm 2022, Vietnix vinh dự nhận giải thưởng Thương hiệu Việt Nam xuất sắc.
Với những thành tựu này, Vietnix tự tin là đối tác VPS đáng tin cậy, mang đến cho bạn dịch vụ VPS tốc độ và trải nghiệm tuyệt vời nhất. Liên hệ ngay với chúng tôi để được hỗ trợ.
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh
- Hotline: 1800 1093
- Email: sales@vietnix.com.vn
Lời kết
Bài viết này đã hướng dẫn cách cấu hình Nagios để gửi thông báo đến server chạy Alerta. Alerta là một công cụ cho phép theo dõi các cảnh báo từ nhiều hệ thống khác nhau. Nếu đang sử dụng nhiều công cụ theo dõi thì bạn cũng có thể tổng hợp thông báo từ nhiều nguồn vào một trang theo dõi duy nhất. Cảm ơn bạn đã theo dõi bài viết.