Làm thế nào để giám sát Nagios Alerts sử dụng Alerta trên CentOS 7

3 năm trước

                               

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:

 Outputcd ./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:

 Outputcd ./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 :

/usr/local/nagios/etc/nagios.cfg
...
# 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:

Thêm dòng file này để định cấu hình tích hợp Alerta:

/usr/local/nagios/etc/nagios.cfg
...
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ế:

/usr/local/nagios/etc/nagios.cfg
...
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ủ:

/usr/local/nagios/etc/objects/localhost.cfg
...
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:

/usr/local/nagios/etc/objects/localhost.cfg
...
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:

/usr/local/nagios/etc/objects/localhost.cfg
...
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 :

/usr/local/nagios/etc/objects/localhost.cfg
...
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:

 OutputFilesystem 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:

Alerta displaying the free space alert from Nagios

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.

Alerta's closed alerts

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.