Chủ Nhật, 12/04/2020 | 00:00 GMT+7

Cách cài đặt Nagios 4 và theo dõi server của bạn trên Ubuntu 18.04

Nagios là một hệ thống giám sát open-souce phổ biến. Nó giữ một bản kiểm kê các server của bạn và giám sát chúng để bạn biết các dịch vụ quan trọng của bạn đang hoạt động. Sử dụng hệ thống giám sát như Nagios là một công cụ cần thiết cho bất kỳ môi trường production nào, bởi vì bằng cách theo dõi thời gian hoạt động, mức sử dụng CPU hoặc dung lượng đĩa, bạn có thể khắc phục sự cố trước khi chúng xảy ra hoặc trước khi user gọi cho bạn.

Trong hướng dẫn này, bạn sẽ cài đặt Nagios 4 và cấu hình nó để bạn có thể giám sát tài nguyên server lưu trữ thông qua giao diện web của Nagios. Bạn cũng sẽ cài đặt Nagios Remote Plugin Executor (NRPE), chạy như một tác nhân trên các server từ xa để bạn có thể giám sát tài nguyên của chúng.

Yêu cầu

Để làm theo hướng dẫn này, bạn cần :

  • Hai server Ubuntu 18.04 được cài đặt theo Hướng dẫn cài đặt server ban đầu cho Ubuntu 18.04 của ta , bao gồm user không phải root có quyền sudo và firewall được cấu hình bằng ufw . Trên một server , bạn sẽ cài đặt Nagios; hướng dẫn này sẽ gọi đây là server Nagios . Nó sẽ giám sát server thứ hai của bạn; server thứ hai này sẽ được gọi là server Ubuntu thứ hai .
  • Server sẽ chạy server Nagios cần được cài đặt Apache và PHP. Làm theo hướng dẫn này để cấu hình chúng trên một trong các server của bạn. Bạn có thể bỏ qua các bước MySQL trong hướng dẫn đó.

Thông thường, Nagios chạy sau firewall phần cứng hoặc VPN. Nếu server Nagios của bạn được tiếp xúc với internet công cộng, bạn nên bảo mật giao diện web Nagios bằng cách cài đặt certificate TLS / SSL. Đây là tùy chọn nhưng được khuyến khích mạnh mẽ . Bạn có thể làm theo hướng dẫn Let's Encrypt trên Ubuntu 18.04 để lấy certificate TLS / SSL miễn phí.

Hướng dẫn này giả định server của bạn đã kích hoạt mạng riêng tư để việc giám sát diễn ra trên mạng riêng chứ không phải mạng công cộng. Nếu bạn chưa bật mạng riêng tư, bạn vẫn có thể làm theo hướng dẫn này bằng cách thay thế tất cả các tham chiếu đến địa chỉ IP riêng bằng địa chỉ IP công cộng.

Bước 1 - Cài đặt Nagios 4

Có nhiều cách để cài đặt Nagios, nhưng bạn sẽ cài đặt Nagios và các thành phần của nó từ nguồn đảm bảo bạn nhận được các tính năng, bản cập nhật bảo mật và sửa lỗi mới nhất.

Đăng nhập vào server chạy Apache của bạn. Trong hướng dẫn này, ta sẽ gọi đây là server Nagios :

  • ssh sammy@your_nagios_server_ip

Vì bạn đang xây dựng Nagios và các thành phần của nó từ nguồn, bạn phải cài đặt một vài thư viện phát triển để hoàn thành việc xây dựng, bao gồm trình biên dịch, tiêu đề phát triển và OpenSSL.

Cập nhật danh sách gói của bạn đảm bảo bạn có thể download version mới nhất của yêu cầu :

  • sudo apt update

Sau đó cài đặt các gói yêu cầu:

  • sudo apt install autoconf gcc make unzip libgd-dev libmcrypt-dev libssl-dev dc snmp libnet-snmp-perl gettext

Với các yêu cầu được cài đặt, bạn có thể tự cài đặt Nagios. Download mã nguồn cho bản phát hành ổn định mới nhất của Nagios Core. Truy cập trang download Nagios và nhấp vào liên kết Bỏ qua để download bên dưới biểu mẫu. Sao chép địa chỉ liên kết cho bản phát hành ổn định mới nhất để bạn có thể download server Nagios của bạn .

Download bản phát hành vào folder chính của bạn bằng lệnh curl :

  • cd ~
  • curl -L -O https://github.com/NagiosEnterprises/nagioscore/archive/nagios-4.4.4.tar.gz

Extract repository Nagios:

  • tar zxf nagios-4.4.4.tar.gz

Sau đó, thay đổi folder đã extract :

  • cd nagioscore-nagios-4.4.4

Trước khi xây dựng Nagios, hãy chạy tập lệnh configure và chỉ định folder configure Apache:

  • ./configure --with-httpd-conf=/etc/apache2/sites-enabled

Lưu ý: Nếu bạn muốn Nagios để gửi email bằng Postfix, bạn phải cài đặt Postfix và cấu hình Nagios để sử dụng nó bằng cách thêm --with-mail=/usr/sbin/sendmail với configure lệnh. Ta sẽ không đề cập đến Postfix trong hướng dẫn này, nhưng nếu bạn chọn sử dụng Postfix và Nagios sau này, bạn cần phải cấu hình lại và cài đặt lại Nagios để sử dụng hỗ trợ Postfix.

Bạn sẽ thấy kết quả sau đây từ các configure lệnh:

Output
*** Configuration summary for nagios 4.4.4 2019-07-29 ***: General Options: ------------------------- Nagios executable: nagios Nagios user/group: nagios,nagios Command user/group: nagios,nagios Event Broker: yes Install ${prefix}: /usr/local/nagios Install ${includedir}: /usr/local/nagios/include/nagios Lock file: /run/nagios.lock Check result directory: /usr/local/nagios/var/spool/checkresults Init directory: /lib/systemd/system Apache conf.d directory: /etc/apache2/sites-enabled Mail program: /bin/mail Host OS: linux-gnu IOBroker Method: epoll Web Interface Options: ------------------------ HTML URL: http://localhost/nagios/ CGI URL: http://localhost/nagios/cgi-bin/ Traceroute (used by WAP): Review the options above for accuracy. If they look okay, type 'make all' to compile the main program and CGIs.

Bây giờ biên dịch Nagios với lệnh này:

  • make all

Tiếp theo, tạo một Nagios user và Nagios group . Chúng sẽ được sử dụng để chạy quy trình Nagios:

  • sudo make install-groups-users

Bây giờ hãy chạy các lệnh make này để cài đặt file binary Nagios, file dịch vụ và file cấu hình mẫu của nó:

  • sudo make install
  • sudo make install-daemoninit
  • sudo make install-commandmode
  • sudo make install-config

Bạn sẽ sử dụng Apache để phục vụ giao diện web của Nagios, vì vậy hãy chạy phần sau để cài đặt file cấu hình Apache và cấu hình cài đặt của nó:

  • sudo make install-webconf

Kích hoạt tính năng rewrite Apache và module cgi bằng lệnh a2enmod :

  • sudo a2enmod rewrite
  • sudo a2enmod cgi

Để đưa ra các lệnh bên ngoài qua giao diện web cho Nagios, hãy thêm user web server , www-data , vào group nagios :

  • sudo usermod -a -G nagios www-data

Sử dụng lệnh htpasswd để tạo admin-user có tên nagiosadmin có thể truy cập giao diện web Nagios:

  • sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Nhập password khi được yêu cầu . Hãy nhớ password này, vì bạn cần password để truy cập giao diện web Nagios.

Cảnh báo: Nếu bạn tạo user có tên không phải nagiosadmin , bạn cần chỉnh sửa /usr/local/nagios/etc/cgi.cfg và thay đổi tất cả các tham chiếu nagiosadmin đến user mà bạn đã tạo.

Khởi động lại Apache để tải cấu hình Apache mới:

  • sudo systemctl restart apache2

Đến đây bạn đã cài đặt Nagios. Nhưng để điều này hoạt động, cần phải cài đặt các Plugin Nagios mà bạn sẽ đề cập trong bước tiếp theo.

Bước 2 - Cài đặt các Plugin Nagios

Nagios cần các plugin để hoạt động bình thường. Gói Nagios Plugins chính thức chứa hơn 50 plugin cho phép bạn theo dõi các dịch vụ cơ bản như thời gian hoạt động, sử dụng đĩa, sử dụng swap , NTP và các dịch vụ khác.

Hãy cài đặt gói plugin.

Bạn có thể tìm thấy version mới nhất của Plugin Nagios trên trang web chính thức .

Download folder chính của bạn với curl :

  • cd ~
  • curl -L -O https://nagios-plugins.org/download/nagios-plugins-2.2.1.tar.gz

Extract repository NRPE và chuyển vào folder được extract :

  • tar zxf nagios-plugins-2.2.1.tar.gz
  • cd nagios-plugins-2.2.1

Tiếp theo cấu hình cài đặt của họ:

  • ./configure

Bây giờ xây dựng và cài đặt các plugin:

  • make
  • sudo make install

Bây giờ các plugin đã được cài đặt, nhưng bạn cần thêm một plugin để giám sát các server từ xa. Hãy cài đặt nó tiếp theo.

Bước 3 - Cài đặt Plugin check_nrpe

Nagios giám sát các server từ xa bằng Nagios Remote Plugin Executor, hoặc NRPE. Nó bao gồm hai phần:

  • Plugin check_nrpe mà server Nagios sử dụng.
  • Daemon NRPE, chạy trên các server từ xa và gửi dữ liệu đến server Nagios.

Hãy cài đặt plugin check_nrpe trên server Nagios của ta .

Tìm URL download cho version NRPE ổn định mới nhất tại trang GitHub .

Download folder chính của bạn với curl :

  • cd ~
  • curl -L -O https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-3.2.1/nrpe-3.2.1.tar.gz

Extract repository NRPE:

  • tar zxf nrpe-3.2.1.tar.gz

Sau đó, thay đổi folder đã extract :

  • cd nrpe-3.2.1

Cấu hình plugin check_nrpe :

  • ./configure

Bây giờ xây dựng và cài đặt plugin check_nrpe :

  • make check_nrpe
  • sudo make install-plugin

Tiếp theo hãy cấu hình server Nagios.

Bước 4 - Cấu hình Nagios

Bây giờ ta hãy thực hiện cấu hình Nagios ban đầu, liên quan đến việc chỉnh sửa một số file cấu hình. Bạn chỉ cần thực hiện phần này một lần trên server Nagios của bạn .

Mở file cấu hình Nagios chính trong editor bạn muốn . Ở đây, bạn sẽ sử dụng nano :

  • sudo nano /usr/local/nagios/etc/nagios.cfg

Tìm dòng này trong file :

/usr/local/nagios/etc/nagios.cfg
... #cfg_dir=/usr/local/nagios/etc/servers ... 

Bỏ comment này bằng cách xóa ký tự # khỏi đầu dòng:

/usr/local/nagios/etc/nagios.cfg
cfg_dir=/usr/local/nagios/etc/servers 

Lưu và đóng nagios.cfg bằng cách nhấn CTRL+X , tiếp theo là Y , rồi ENTER (nếu bạn đang sử dụng nano ).

Bây giờ, hãy tạo folder sẽ lưu trữ file cấu hình cho từng server mà bạn sẽ theo dõi:

  • sudo mkdir /usr/local/nagios/etc/servers

Mở cấu hình danh bạ Nagios trong editor của bạn:

  • sudo nano /usr/local/nagios/etc/objects/contacts.cfg

Tìm chỉ thị email và thay thế giá trị của nó bằng địa chỉ email của bạn :

/usr/local/nagios/etc/objects/contacts.cfg
... define contact{         contact_name                    nagiosadmin             ; Short name of user         use                             generic-contact         ; Inherit default values from generic-contact template (defined above)         alias                           Nagios Admin            ; Full name of user         email                           your_email@your_domain.com        ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ****** ...  

Lưu và thoát khỏi editor .

Tiếp theo, thêm một lệnh mới vào cấu hình Nagios của bạn để cho phép bạn sử dụng lệnh check_nrpe trong định nghĩa dịch vụ Nagios. Mở file /usr/local/nagios/etc/objects/commands.cfg trong editor :

  • sudo nano /usr/local/nagios/etc/objects/commands.cfg

Thêm phần sau vào cuối file để xác định lệnh mới được gọi là check_nrpe :

/usr/local/nagios/etc/objects/commands.cfg
... define command{         command_name check_nrpe         command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ } 

Điều này xác định tên và chỉ định các tùy chọn dòng lệnh để thực thi plugin.

Lưu và thoát khỏi editor .

Sau đó khởi động Nagios và cho phép nó khởi động khi server khởi động:

  • sudo systemctl start nagios

Nagios hiện đang chạy, vì vậy hãy đăng nhập vào giao diện web của nó.

Bước 5 - Truy cập giao diện web Nagios

Mở trình duyệt web yêu thích của bạn và truy cập server Nagios của bạn bằng cách truy cập http:// nagios_server_public_ip /nagios .

Nhập thông tin đăng nhập cho giao diện web trong cửa sổ bật lên xuất hiện. Sử dụng nagiosadmin cho tên user và password bạn đã tạo cho user đó.

Sau khi xác thực, bạn sẽ thấy trang chủ Nagios mặc định. Nhấp vào liên kết Server trong thanh chuyển bên trái để xem server nào mà Nagios đang theo dõi:

Trang chủ của Nagios

Như bạn thấy , Nagios chỉ giám sát “localhost” hoặc chính nó.

Hãy theo dõi server khác của ta với Nagios,

Bước 6 - Cài đặt các plugin Nagios và NRPE Daemon trên server

Hãy thêm một server mới để Nagios có thể giám sát nó. Bạn sẽ cài đặt Nagios Remote Plugin Executor (NRPE) trên server từ xa, cài đặt một số plugin, sau đó cấu hình server Nagios để giám sát server này.

Đăng nhập vào server thứ hai, mà ta sẽ gọi là server Ubuntu thứ hai :

  • ssh sammy@your_monitored_server_ip

Đầu tiên, hãy tạo một user nagios sẽ chạy tác nhân NRPE:

  • sudo useradd nagios

Bạn sẽ cài đặt NRPE từ nguồn, nghĩa là bạn cần cùng một thư viện phát triển mà bạn đã cài đặt trên server Nagios ở Bước 1. Cập nhật các nguồn gói của bạn và cài đặt các yêu cầu của NRPE:

  • sudo apt update
  • sudo apt install autoconf gcc libmcrypt-dev make libssl-dev wget dc build-essential gettext

NRPE yêu cầu rằng Plugin Nagios được cài đặt trên server từ xa. Hãy cài đặt gói này từ nguồn.

Tìm bản phát hành mới nhất của Plugin Nagios từ trang download .

Download Nagios Plugins vào folder chính của bạn với curl :

  • cd ~
  • curl -L -O https://nagios-plugins.org/download/nagios-plugins-2.2.1.tar.gz

Extract repository Nagios Plugins và thay đổi thành folder được extract :

  • tar zxf nagios-plugins-2.2.1.tar.gz
  • cd nagios-plugins-2.2.1

Trước khi xây dựng các Plugin Nagios, hãy cấu hình chúng bằng lệnh sau:

  • ./configure

Bây giờ biên dịch các plugin:

  • make

Sau đó cài đặt chúng bằng lệnh:

  • sudo make install

Tiếp theo, cài đặt NRPE daemon. Tìm URL download cho bản phát hành ổn định mới nhất của NRPE tại trang GitHub giống như bạn đã làm ở Bước 3. Download bản phát hành ổn định mới nhất của NRPE vào folder chính của server được giám sát của bạn bằng curl :

  • cd ~
  • curl -L -O https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-3.2.1/nrpe-3.2.1.tar.gz

Extract repository NRPE bằng lệnh này:

  • tar zxf nrpe-3.2.1.tar.gz

Sau đó, thay đổi folder đã extract :

  • cd nrpe-3.2.1

Cấu hình NRPE:

  • ./configure

Bây giờ xây dựng và cài đặt NRPE và tập lệnh khởi động của nó bằng các lệnh sau:

  • make nrpe
  • sudo make install-daemon
  • sudo make install-config
  • sudo make install-init

Bây giờ, hãy cập nhật file cấu hình NRPE và thêm một số kiểm tra cơ bản mà Nagios có thể giám sát.

Đầu tiên, hãy theo dõi việc sử dụng đĩa của server này. Sử dụng lệnh df -h để tìm hệ thống file root . Bạn sẽ sử dụng tên hệ thống file này trong cấu hình NRPE:

  • df -h /

Bạn sẽ thấy kết quả tương tự như sau:

Output
Filesystem Size Used Avail Use% Mounted on /dev/vda1 25G 1.4G 23G 6% /

Bây giờ hãy mở file /usr/local/nagios/etc/nrpe.cfg trong editor :

  • sudo nano /usr/local/nagios/etc/nrpe.cfg

Tệp cấu hình NRPE rất dài và đầy đủ các comment . Có một vài dòng mà bạn cần tìm và sửa đổi:

  • server_address : Đặt thành địa chỉ IP riêng của server được giám sát.
  • allow_hosts : Thêm địa chỉ IP riêng của server Nagios của bạn vào danh sách được phân tách bằng dấu phẩy.
  • command [check_hda1] : Thay đổi /dev/hda1 thành bất kỳ hệ thống file root nào của bạn được gọi.

Tìm các cài đặt này và thay đổi chúng một cách thích hợp:

/usr/local/nagios/etc/nrpe.cfg
... server_address=second_ubuntu_server_private_ip ... allowed_hosts=127.0.0.1,::1,your_nagios_server_private_ip ... command[check_vda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/vda1 ... 

Lưu và thoát khỏi editor . Đến đây bạn có thể bắt đầu NRPE:

  • sudo systemctl start nrpe.service

Đảm bảo rằng dịch vụ đang chạy bằng cách kiểm tra trạng thái của nó:

  • sudo systemctl status nrpe.service

Bạn sẽ thấy kết quả sau:

Output
... Aug 01 06:28:31 client systemd[1]: Started Nagios Remote Plugin Executor. Aug 01 06:28:31 client nrpe[8021]: Starting up daemon Aug 01 06:28:31 client nrpe[8021]: Server listening on 0.0.0.0 port 5666. Aug 01 06:28:31 client nrpe[8021]: Server listening on :: port 5666. Aug 01 06:28:31 client nrpe[8021]: Listening for connections on port 5666 Aug 01 06:28:31 client nrpe[8021]: Allowing connections from: 127.0.0.1,::1,165.22.212.38

Tiếp theo, cho phép truy cập vào cổng 5666 thông qua firewall . Nếu bạn đang sử dụng UFW, hãy cấu hình nó để cho phép kết nối TCP tới cổng 5666 bằng lệnh sau:

  • sudo ufw allow 5666/tcp

Bạn có thể tìm hiểu thêm về UFW trong Cách cài đặt Tường lửa với UFW trên Ubuntu 18.04 .

Đến đây bạn có thể kiểm tra giao tiếp với server NRPE từ xa. Chạy lệnh sau trên server Nagios:

  • /usr/local/nagios/libexec/check_nrpe -H second_ubuntu_server_ip

Bạn sẽ thấy kết quả sau:

Output
NRPE v3.2.1

Lặp lại các bước trong phần này cho từng server bổ sung mà bạn muốn theo dõi.

Sau khi hoàn tất cài đặt và cấu hình NRPE trên các server mà bạn muốn theo dõi, bạn sẽ phải thêm các server này vào cấu hình server Nagios của bạn trước khi nó bắt đầu giám sát chúng. Hãy làm điều đó tiếp theo.

Bước 7 - Giám sát Server với Nagios

Để giám sát các server của bạn với Nagios, bạn sẽ thêm các file cấu hình cho từng server lưu trữ chỉ định những gì bạn muốn giám sát. Sau đó, bạn có thể xem các server đó trong giao diện web Nagios.

Trên server Nagios của bạn, hãy tạo một file cấu hình mới cho từng server từ xa mà bạn muốn theo dõi trong /usr/local/nagios/etc/servers/ . Thay thế từ được đánh dấu, monitored_server_host_name bằng tên server của bạn:

  • sudo nano /usr/local/nagios/etc/servers/your_monitored_server_host_name.cfg

Thêm định nghĩa server sau, thay thế giá trị host_name bằng tên server từ xa của bạn, giá trị alias bằng mô tả server và giá trị address bằng địa chỉ IP riêng của server từ xa:

/usr/local/nagios/etc/servers/your_monitored_server_host_name.cfg
define host {         use                             linux-server         host_name                       your_monitored_server_host_name         alias                           My client server         address                         your_monitored_server_private_ip         max_check_attempts              5         check_period                    24x7         notification_interval           30         notification_period             24x7 } 

Với cấu hình này, Nagios sẽ chỉ cho bạn biết server đang hoạt động hay không. Hãy thêm một số dịch vụ để giám sát.

Đầu tiên, thêm khối này để theo dõi mức trung bình tải:

/usr/local/nagios/etc/servers/your_monitored_server_host_name.cfg
define service {         use                             generic-service         host_name                       your_monitored_server_host_name         service_description             Load average         check_command                   check_nrpe!check_load } 

Chỉ thị use generic-service yêu cầu Nagios kế thừa các giá trị của một mẫu dịch vụ được gọi là dịch vụ chung , được định nghĩa bởi Nagios.

Tiếp theo, thêm khối này để giám sát việc sử dụng đĩa:

/usr/local/nagios/etc/servers/your_monitored_server_host_name.cfg
define service {         use                             generic-service         host_name                       your_monitored_server_host_name         service_description             /dev/vda1 free space         check_command                   check_nrpe!check_vda1 } 

Bây giờ lưu và thoát. Khởi động lại dịch vụ Nagios để mọi thay đổi có hiệu lực:

  • sudo systemctl restart nagios

Sau vài phút, Nagios sẽ kiểm tra các server mới và bạn sẽ thấy chúng trong giao diện web Nagios. Nhấp vào liên kết Dịch vụ trong thanh chuyển bên trái để xem tất cả các server và dịch vụ được giám sát của bạn.

Trang Dịch vụ Nagios

Kết luận

Bạn đã cài đặt Nagios trên một server và cấu hình nó để theo dõi mức trung bình tải và việc sử dụng đĩa của ít nhất một máy từ xa.

Đến đây bạn đang theo dõi một server và một số dịch vụ của nó, bạn có thể bắt đầu sử dụng Nagios để theo dõi các dịch vụ quan trọng của bạn . Bạn có thể sử dụng Nagios để cài đặt thông báo cho các sự kiện quan trọng. Ví dụ: bạn có thể nhận được email khi việc sử dụng đĩa của bạn đạt đến ngưỡng cảnh báo hoặc ngưỡng quan trọng hoặc thông báo khi trang web chính của bạn không hoạt động. Bằng cách này, bạn có thể giải quyết tình huống kịp thời hoặc thậm chí trước khi sự cố xảy ra.


Tags:

Các tin liên quan

Cách cài đặt và cấu hình SimpleSAMLphp để Xác thực SAML trên Ubuntu 18.04
2020-04-02
Cách sử dụng Vuls làm máy quét lỗ hổng bảo mật trên Ubuntu 18.04
2020-04-01
Cách tạo người dùng mới hỗ trợ Sudo trên Ubuntu 18.04 [Quickstart]
2020-03-23
Cách cài đặt và cấu hình SNMP Daemon và Client trên Ubuntu 18.04
2020-03-17
Cách lưu trữ một trang web với Caddy trên Ubuntu 18.04
2020-03-13
Cách sử dụng nsh để chạy các lệnh từ xa an toàn trên Ubuntu 18.04
2020-03-04
Cách đóng gói và xuất bản ứng dụng Snap trên Ubuntu 18.04
2020-02-25
Cách thiết lập Nền tảng Eclipse Theia Cloud IDE trên Ubuntu 18.04 [Khởi động nhanh]
2020-02-10
Cách sử dụng Cron để tự động hóa công việc trên Ubuntu 18.04
2020-01-31
Cách cài đặt và sử dụng Radamsa để Fuzz kiểm tra các chương trình và dịch vụ mạng trên Ubuntu 18.04
2020-01-30