Cách giám sát Nagios Alerts sử dụng Alerta trên Ubuntu 16.04
Giới thiệu
Alerta là ứ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à cấu hình nó để hiển thị các thông báo từ Nagios, hệ thống giám sát nguồn mở phổ biến.
Điều kiện tiên quyết
Để làm theo hướng dẫn này, bạn cần:
- Hai máy chủ Ubuntu 16.04 được thiết lập bằng cách làm theo hướng dẫn thiết lập máy chủ ban đầu của Ubuntu 16.04, bao gồm người dùng non-root và tường lửa.
- Trên máy chủ Ubuntu đầu tiên, nơi chạy Nagios, hãy cài đặt các thành phần sau:
- Apache, MySQL và PHP, bằng cách làm theo hướng dẫn cài đặt Linux, Apache, MySQL, PHP (LAMP) trên Ubuntu 16.04.
- Nagios 4, cài đặt bằng cách làm theo hướng dẫn cài đặt Nagios 4 và giám sát máy chủ trên Ubuntu và điều kiện tiên quyết để cấu hình nó.
- Trên máy chủ Ubuntu thứ hai, 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 bằng cách làm theo hướng dẫn cài đặt Nginx trên Ubuntu 16.04.
- MongoDB, được cài đặt bằng cách làm theo hướng dẫn cài đặt MongoDB trên Ubuntu 16.04.
- Alerta, cài đặt bằng cách làm theo các bước 1 đến 6 trong hướng dẫn Làm thế nào để giám sát Zabbix Cảnh báo với Alerta trên Ubuntu 16.04.
Bước 1 - Cài đặt Cổng Nagios-to-Alerta
Có thể mở rộng chức năng của Nagios với các module Nagios Event Broker (NEB). NEB là cơ chế tích hợp sự kiện của Nagios và các module NEB là các thư viện chia sẻ cho phép bạn tích hợp các dịch vụ khác với Nagios. Trong bước này, chúng tôi sẽ cài đặt Nagios to Alerta Gateway, module NEB sẽ gửi thông báo đến Alerta.
Đăng nhập vào máy chủ Nagios với tư cách người dùng non-root:
ssh sammy@your_nagios_server_ip
Nagios to Alerta Gateway không có gói hệ thống được cấu hình sẵn, vì vậy phải xây dựng nó từ nguồn. Để làm điều đó, cần cài đặt một số công cụ và tệp phát triển. Bạn cũng sẽ cần cài đặt Git để có thể lấy mã nguồn từ GitHub.
sudo apt-get install -y git curl gcc make libcurl4-openssl-dev
Với các điều kiện tiên quyết được cài đặt, sử dụng Git để sao chép mã nguồn từ kho lưu trữ GitHub của dự án:
git clone https://github.com/alerta/nagios-alerta.git
Sau đó thay đổi thư mục nagios-alerta mới:
cd nagios-alerta
Sau đó biên dịch module nagios-alerta bằng cách sử dụng make:
make nagios4
Bạn sẽ thấy kết quả sau:
Outputcd ./src && make nagios4
make[1]: Entering directory '/home/sammy/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 '/home/sammy/nagios-alerta/src'
Nếu thấy cái gì đó khác thường, đảm bảo bạn có tất cả các điều kiện tiên quyết được cài đặt.
Bây giờ chạy tác vụ cài đặt:
sudo make install
Khi thấy kết quả này, module đã được cài đặt trong /usr/lib/nagios
Outputcd ./src && make install
make[1]: Entering directory '/home/sammy/nagios-alerta/src'
[ -d /usr/lib/nagios ] || mkdir /usr/lib/nagios
install -m 0644 alerta-neb.o /usr/lib/nagios
make[1]: Leaving directory '/home/sammy/nagios-alerta/src'
Với module được cài đặt, cấu hình Nagios để sử dụng module mới này.
Bước 2 - Cấu hình Nagios-to-Alerta Gateway
Hãy cấu hình Nagios để gửi tin nhắn thông báo đến Alerta.
Đầu tiên, kích hoạt module mạch ngắt Alerta mới được cài đặt trong tập tin cấu hình chính Nagios. Mở tệp cấu hình Nagios trong trình soạn thảo của bạn:
sudo vi /usr/local/nagios/etc/nagios.cfg
Tìm phần chứa chỉ thị 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, cần cung cấp hai đối số bắt buộc:
- URL: Địa chỉ được sử dụng để giao tiếp với API Alerta. Điều này đã được cấu hình trong Bước 3 của hướng dẫn Cách giám sát Zabbix Alerts với Alerta trên Ubuntu 16.04.
- key: Khóa API đã được tạo ở bước 4 của hướng dẫn Cách giám sát Zabbix thông báo với Alerta trên Ubuntu 16.04. Bạn cần điều này để xác thực với Alerta và đăng sự kiện.
Thêm dòng này vào tệp để định cấu hình 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 số đối số tùy chọn bổ sung mà bạn có thể chỉ định:
- env: Điều này chỉ định tên môi trường. Tên môi trường mặc định là Production.
- hard_only: Kết quả chỉ được chuyển tiếp ở trạng thái Hard. Bạn có thể tìm thêm thông tin về Nagios State Types trong tài liệu Nagios. Đặt giá trị này thành 1 để bật chế độ này.
- debug: - bật chế độ - enable debug cho module. Đặt giá trị này thành 1 để bật chế độ này.
Để chỉ định tất cả các tùy chọn này, hãy sử dụng dòng này để thay thế:
...
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...
Lưu tệp và thoát khỏi trình chỉnh sửa.
Để xác định các cảnh báo theo tên môi trường và dịch vụ, cần thiết lập tên môi trường và dịch vụ bằng cách sử dụng Nagios Custom Object Variables. Để làm điều này, hãy sử dụng các biến _Environment và _Service trong cấu hình.
Mở tệp cấu hình đối tượng lưu trữ Nagios mặc định mà bạn tìm thấy trong thư mục /usr/local/nagios/etc/objects/:
sudo vi /usr/local/nagios/etc/objects/localhost.cfg
Chúng tôi sẽ đánh dấu tất cả các cảnh báo với máy chủ lưu trữ dưới dạng Production alerts và gọi cho dịch vụ mặc định là Nagios. Tìm định nghĩa máy chủ 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
}...
Thêm các 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ờ đánh dấu tất cả các sự kiện liên quan đến việc thiếu không gian trên phân vùng hệ thống dưới dạng System alerts. Tìm phần này của tệp xác định cách kiểm tra dung lượng trống:
...
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%!/
}...
Sửa đổi để liên kết với System
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 tệp và thoát khỏi trình chỉnh sửa. Khởi động lại Nagios để áp dụng các cài đặt mới này:
sudo systemctl restart nagios.service
Kiểm tra tệp nhật ký Nagios để đảm bảo rằng dịch vụ đang chạy đúng:
tail /usr/local/nagios/var/nagios.log
Bạn sẽ thấy kết quả sau:
Output... [1505804481] [alerta] Initialising Nagios-Alerta Gateway module, v3.5.0 [1505804481] [alerta] debug is on [1505804481] [alerta] states=Hard (only) [1505804481] [alerta] Forward service checks, host checks and downtime to http://your_alerta_server_ip/api [1505804481] Event broker module '/usr/lib/nagios/alerta-neb.o' initialized successfully.[1505804481] Successfully launched command file worker with pid 25416
Bây giờ Nagios sẽ gửi thông báo ngay sau khi bất kỳ hệ thống hoặc dịch vụ nào bị tắt. Hãy tạo một sự kiện thử nghiệm.
Bước 3 - Tạo thông báo kiểm tra để xác minh tích hợp Nagios-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, Nagios theo dõi lượng dung lượng đĩa trống trên máy chủ của bạn.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 Nagios.
Đầu tiên, xác định bao nhiêu không gian trống bạn có trên máy chủ Nagios. 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ư dưới đây
OutputFilesystem Size Used Avail Use% Mounted on /dev/vda1 20G 3.1G 16G 17% /
Nhìn vào số lượng không gian trống có sẵn. Trong trường hợp này, dung lượng trống là 16GB. 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 14G /tmp/temp.img
Trong vòng một vài phút, Nagios sẽ kích hoạt một cảnh báo về số lượng không gian đĩa trống và sẽ 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:
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 mà bạn đã tạo để bạn có thể lấy lại dung lượng đĩa của mình:
rm -f /tmp/temp.img
Sau một phút, Nagios 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 của Alerta, nhưng bạn có thể xem tất cả các sự kiện đã đóng bằng cách chọn Closed.
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ấu hình Nagios để gửi thông báo đến một máy chủ khác đang chạy Alerta.
Alerta cung cấp một nơi thuận tiện để theo dõi các cảnh báo từ nhiều hệ thống. Ví dụ: nếu một số phần của cơ sở hạ tầng của bạn sử dụng Nagios và những phần khác sử dụng Zabbix, bạn có thể hợp nhất thông báo từ cả hai hệ thống thành một bảng.
Tìm hiểu thêm nhiều điều thú vị khác từ Vicloud!