Cách theo dõi cảnh báo Nagios với Alerta trên Ubuntu 16.04
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ừ Nagios , hệ thống giám sát nguồn mở phổ biến.
Yêu cầu
Để làm theo hướng dẫn này, bạn cần :
- Hai server Ubuntu 16.04 được cài đặt theo hướng dẫn cài đặt server ban đầu Ubuntu 16.04 , bao gồm user không phải root có quyền sudo và firewall .
- Trên server Ubuntu đầu tiên, là nơi bạn sẽ chạy Nagios, 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 Ubuntu 16.04 .
- Nagios 4, được cài đặt theo hướng dẫn Cách cài đặt Nagios 4 và theo dõi server của bạn trên Ubuntu và các yêu cầu để cấu hình nó.
- Trên server Ubuntu 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 Ubuntu 16.04 .
- MongoDB, được cài đặt theo hướng dẫn Cách cài đặt MongoDB trên Ubuntu 16.04 .
- Alerta, được cài đặt theo các bước từ 1 đến 6 trong hướng dẫn Cách theo dõi Cảnh báo Zabbix bằng Alerta trên Ubuntu 16.04 .
Bước 1 - Cài đặt Nagios-to-Alerta Gateway
Bạn 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à thư viện được 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, ta sẽ cài đặt Nagios vào Alerta Gateway , module NEB sẽ gửi thông báo đến Alerta.
Đăng nhập vào server Nagios của bạn với quyền là user không phải root của bạn:
- ssh sammy@your_nagios_server_ip
Nagios to Alerta Gateway không có các gói hệ thống được cấu hình sẵn, vì vậy bạn sẽ phải xây dựng nó từ nguồn. Để làm điều đó, bạn cần cài đặt một số công cụ và file phát triển. Bạn cũng cần cài đặt Git để có thể tìm nạp mã nguồn từ GitHub.
- sudo apt-get install -y git curl gcc make libcurl4-openssl-dev
Với các yêu cầu được cài đặt, hãy sử dụng Git để sao chép mã nguồn từ repository GitHub của dự án:
- git clone https://github.com/alerta/nagios-alerta.git
Sau đó thay đổi sang folder nagios-alerta
:
- 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 bạn thấy điều gì đó khác, hãy đảm bảo bạn đã cài đặt tất cả các yêu cầu .
Bây giờ chạy tác vụ cài đặt:
- sudo make install
Bạn sẽ thấy kết quả này, cho biết 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, ta có thể 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 broker Alerta mới được cài đặt trong file cấu hình chính của Nagios. Mở file cấu hình Nagios trong editor :
- 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, bạn 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. Bạn đã cấu hình điều này trong Bước 3 của hướng dẫn Cách theo dõi Cảnh báo Zabbix bằng Alerta trên Ubuntu 16.04 .
- key : Khóa API bạn đã tạo trong bước 4 của hướng dẫn Cách theo dõi Cảnh báo Zabbix bằng 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 file để 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 : Chỉ chuyển tiếp kết quả ở trạng thái Hard. Bạn có thể tìm thêm thông tin về Các loại trạng thái Nagios trong tài liệu Nagios . Đặt giá trị này thành
1
để bật chế độ này. - debug : - bật chế độ gỡ lỗi 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 file và thoát khỏi editor .
Để xác định cảnh báo theo môi trường và tên dịch vụ, bạn cần cài đặt môi trường và tên dịch vụ bằng cách sử dụngBiến đối tượng tùy chỉnh Nagios. Để thực hiện việc này, hãy sử dụng các _Environment
và _Service
trong cấu hình của bạn. Hãy cấu hình chúng ngay bây giờ.
Mở file cấu hình đối tượng server lưu trữ Nagios mặc định, bạn sẽ tìm thấy file này trong folder /usr/local/nagios/etc/objects/
:
- sudo vi /usr/local/nagios/etc/objects/localhost.cfg
Ta sẽ đánh dấu tất cả các cảnh báo với server này là cảnh báo Sản xuất và ta sẽ gọi dịch vụ mặc định là Nagios . Tìm định nghĩa server 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 _Environment
và _Service
giá trị đối với 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 tất cả các sự kiện liên quan đến việc thiếu dung lượng trên phần mềm hệ thống dưới dạng Cảnh báo hệ thống . Tìm phần này của file 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 nó để liên kết nó với dịch vụ System
:
... 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 file và thoát khỏi editor . 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 file log Nagios đảm bảo rằng dịch vụ đang chạy bình thườ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 khi bất kỳ hệ thống hoặc dịch vụ nào hoạt động. 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ứ đều được kết nối. Theo mặc định, Nagios 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 Nagios.
Đầu tiên, xác định dung lượng trống bạn có trên server 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ư sau:
Output Filesystem 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 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 14G /tmp/temp.img
Trong vòng vài phút, Nagios sẽ kích hoạt cảnh báo về dung lượng ổ đĩa trống và sẽ gửi tin nhắn 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, Nagios sẽ gửi tin nhắn khôi phục. Sau đó, cảnh báo sẽ không xuất hiện khỏi console Alerta 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ấu hình Nagios để gửi thông báo đến một server khác đang chạy Alerta.
Alerta cung cấp cho bạn 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 trong 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 vào một console .
Các tin liên quan
Cách cài đặt Elasticsearch, Logstash và Kibana (ELK Stack) trên Ubuntu 14.042017-12-01
Cách cài đặt và sử dụng TensorFlow trên Ubuntu 16.04
2017-12-01
Cách cài đặt Elasticsearch, Logstash và Kibana (ELK Stack) trên Ubuntu 14.04
2017-12-01
Cách cài đặt Jenkins trên Ubuntu 16.04
2017-11-29
Cách tạo thiết lập tính khả dụng cao với Heartbeat và IP nổi trên Ubuntu 16.04
2017-11-22
Cách cài đặt phpIPAM trên Ubuntu 16.04
2017-11-22
Cách sử dụng Logrotate và S3cmd để lưu trữ log vào bộ nhớ đối tượng trên Ubuntu 16.04
2017-11-09
Cách quản lý các tệp log bằng Logrotate trên Ubuntu 16.04
2017-11-09
Cách tạo VPN điểm-điểm với WireGuard trên Ubuntu 16.04
2017-11-09
Cách đánh giá trang web bằng Firefox, Siege và Sproxy trên Ubuntu 16.04
2017-11-07