Làm thế nào để giám sát Nagios Alerts sử dụng Alerta trên CentOS 7
Giới thiệu
Alerta là một ứng dụng Web được sử dụng để tích hợp cũng như phân tích các hệ thống đa giám sát và mô phỏng chúng trên 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,...
Trong phần này, bạn sẽ cài đặt Alerta và định cấu hình cho nó để hiển thị thông báo từ Nagios - một hệ thống giám sát mã nguồn mở thông dụng.
Yêu cầu căn bản
Để cài đặt bạn cần có:
- Hai máy chủ Cloud Server CentOS 7 ,thêm một người dùng giả định sudo và một firewall.
- Máy chủ CentOS đầu tiên dùng để chạy Nagios, cài đặt thêm các công cụ:
- Apache, MySQL, và PHP.
- Và Nagios 4.
- Máy chủ CentOS thứ hai để cài Alerta , và cần cài thêm:
- Nginx.
- MongoDB.
- Và Alerta.
Bước 1 - Cài module Nagios-to-Alerta Event Broker
Bạn có thể mở rộng thêm chức năng của Nagios bằng việc cài thêm module Nagios Event Broker (NEB). Đây là một cơ chế tích hợp event của Nagios, và nó được chia sẻ các thư viện giúp ta tích hợp nhiều chương trình khác với Nagios. Trong bước này chúng ta sẽ cài Nagios to Alerta Gateway , và module NEB sẽ gửi thông báo đến Alerta.
Đăng nhập máy chủ Nagios với tư cách người dùng:
ssh sammy@your_nagios_server_ip
Nagios to Alerta Gateway chưa được định cấu hình các gói hệ thống, nên ta cần xây dựng chúng từ mã nguồn. Để làm được thì thì cần cài thêm vài fie và công cụ phát triển, bạn có thể kiếm nguồn code từ GitHub.
sudo yum install -y git curl gcc make libcurl-devel
Khi cài đặt xong thì sử dụng Git để sao lưu nguồn code từ kho lưu trữ GitHub:
git clone https://github.com/alerta/nagios-alerta.git
Sau đó di chuyển tới thư mục nagios-alerta
.
cd nagios-alerta
Sau đó thực thi module nagios-alerta
sử dụng make
:
make nagios4
Đầu ra như sau:
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 không đúng như thế thì bạn cần xem lại liệu rằng bạn đã cài đặt đúng và đầy đủ những yêu cầu nêu như bên trên chưa.
Giờ thì cài đặt:
sudo make install
Đầu ra sẽ thế này, ngụ ý rằng nó được lưu trong địa chỉ /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'
Khi hoàn thành , ta sẽ định cấu hình Nagios để sử dụng module mới.
Bước 2 - Định cấu hình module Nagios-to-Alerta
Ta cần định cấu hình Nagios để gửi thông báo tới Alerta.
Đầu tiên, hữu hiệu hóa module Alerta brocker vừa mới cài đặt bằng cách mở file cấu hình chính của Nagios.
sudo vi /usr/local/nagios/etc/nagios.cfg
Tìm mục có địa chỉ 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
...
Để định cấu hình module Alerta, cần cung cấp hai yếu tố bắt buộc:
- URL:Địa chỉ được sử dụng để giao tiếp với Alerta API. Bạn có thể định cấu hình nó trong bước 3 theo hướng dẫn How To Monitor Zabbix Alerts with Alerta on CentOS 7.
- key: Khóa API mà bạn tạo theo bước 4 theo hướng dẫn này How To Monitor Zabbix Alerts with Alerta on CentOS 7. Cần khóa này để xác thực với Alerta.
Thêm dòng file này để đị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...
Thêm vài chức năng bạn cần xác định:
- env: Tên môi trường, mặc định là
Production
. - hard_only: Chỉ phản hồi kết quả ở trạng thái Hard , bạn có thể tìm hiểu thêm Nagios State Types ở tài liệu. Cài nấc
1
để bật trạng thái. - debug: - sửa lỗi cho module. cài nấc
1
để bật trạng thái.
Để xác định các công cụ đó nhập lệnh 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 và thoát.
Để nhận diện cảnh báo bằng tên môi trường hoặc chương trình thì bạn cần cài đặt chúng sử dụng Nagios Custom Object Variables. Để cài đặt thì dùng command _Environment
và _Service
.
Mở file cấu hình mặc định máy chủ Nagios , cần tím đến địa chỉ /usr/local/nagios/etc/objects/
:
sudo vi /usr/local/nagios/etc/objects/localhost.cfg
Đánh dấu tất cả các cảnh báo với máy chủ bằng cảnh báo Production .Sử dụng chương trình mặc định Nagios. Tìm file định nghĩa máy chủ:
...
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 vào cấu hình các giá trị _Environment
và _Service
:
...
host_name localhost
alias localhost
address 127.0.0.1
_Environment Production_Service Nagios }...
Giờ thì đánh dấu tất cả các event được kết hợp mà thiếu không gian lưu trữ trên ổ đĩa là cảnh báo System. Đặt phần này vào mục định nghĩa cách kiểm tra không gian 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%!/
}...
Điều chỉnh để kết hợp với chương trình 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 và thoát, rồi khởi động lại Nagios để cập nhật thay đổi:
sudo systemctl restart nagios.service
Để đảm bảo chương trình chạy mượt mà bằng cách kiểm tra trạng thái:
systemctl status nagios.service
Đầu ra như sau:
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
Giờ thì Nagios sẽ gửi thông báo tới hệ thống sớm nhất có thể.
Sau đây ta sẽ chuyển sang phần kiểm tra event.
Bước 3 - Tạo Test Alert để xác minh khả năng tích hợp của Nagios-Alerta
Tạo công cụ cảnh báo kiểm tra để đảm bảo rằng mọi thứ đã được kết nối. Theo mặc định, Nagios sẽ theo dõi lượng không gian còn trống trong máy chủ của bạn. Chúng ta sẽ tạo ra một file tạm thời có dung lượng đủ lớn để kích hoạt hệ thống file Nagios sử dụng cảnh báo.
Đầu tiên, xác định lượng không gian lưu trữ còn trống trong máy chủ Nagios sử dụng command df:
df -h
Đầu ra như sau:
Output
Filesystem Size Used Avail Use% Mounted on /dev/vda1 20G 3.1G 16G 17% /
Nhìn vào lượng không gian trống ta có thể thấy trong trường hợp này máy còn trống 16GB . Có thể máy của bạn sẽ khác.
Sử dụng command fallocate
để tạo ra một file mới mà sao cho nó chiếm khoảng hơn 80% dung lượng không gian trống để cho chúng kích hoạt công cụ cảnh báo:
fallocate -l 14G /tmp/temp.img
Chỉ trong chốc lát, Nagios sẽ kích hoạt công cụ cảnh báo về lượng không gian còn trống và gửi thông báo tới ứng dụng Alerta. Và thông báo sẽ được hiển thị trên giao diện Alerta:
Giờ thì công cụ cảnh báo đã hoạt động, bạn hãy xóa file vừa tạo để đem lại không gian trống ban đầu:
rm -f /tmp/temp.img
Sau một lúc Nagios sẽ gửi thông báo không gian đã được khôi phục tới và công cụ cảnh báo sẽ ẩn khỏi giao diện, để đóng chọn Closed.
Nhấp chuột vào vùng event để xem chi tiết hơn.
Kết luận
Trong phần này bạn đã được hướng dẫn cách định cấu hình Nagios để gửi thông báo tới Alerta đang hoạt động trên máy chủ của bạn.
Alerta đem đến cho bạn một nơi tuyệt vời để theo dõi cảnh báo từ nhiều hệ thống. Ví dụ, nếu một phần cấu trúc cơ sở hạ tầng máy của bạn dùng Nagios, phần còn lại dùng Zabbix thì bạn có thể xác nhập thông báo từ cả hai hệ thống này tới cùng một giao diện Alerta.