Cách cài đặt Nagios 4 và giám sát Servers của bạn trên Ubuntu 14.04

1 năm trước

Giới thiệu

Trong hướng dẫn này, chúng tôi sẽ đề cập đến việc cài đặt Nagios 4, một hệ thống giám sát nguồn mở rất phổ biến trên Ubuntu 14.04. Chúng tôi sẽ giới thiệu một số cấu hình cơ bản, vì vậy bạn sẽ có thể theo dõi tài nguyên máy chủ thông qua giao diện web. Chúng tôi cũng sẽ sử dụng Nagios Remote Plugin Executor (NRPE),được cài đặt như một tác nhân trên máy chủ từ xa để giám sát tài nguyên cục bộ.

Nagios hữu ích cho việc lưu trữ các servers và đảm bảo các dịch vụ quan trọng đang hoạt động. Sử dụng hệ thống giám sát, như Nagios, là công cụ cần thiết cho bất kỳ môi trường máy chủ sản xuất nào.

 

Điều kiện tiên quyết

Để làm theo hướng dẫn này, bạn phải có đặc quyền superuser trên máy chủ Ubuntu 14.04 chạy Nagios. Lý tưởng nhất là sử dụng user non-root với quyền superuser. Nếu cần trợ giúp thiết lập điều đó, hãy truy cập vicloud.vn để được hướng dẫn chi tiết.

LAMP stack cũng được yêu cầu.

Hướng dẫn này giả định server đã bật mạng riêng. Nếu không, chỉ cần 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ây giờ có các điều kiện tiên quyết được sắp xếp, hãy chuyển sang cài đặt Nagios 4.

 

Cài đặt Nagios 4

Phần này sẽ giới thiệu cách cài đặt Nagios 4 trên máy chủ giám sát. Bạn chỉ cần hoàn thành phần này một lần.

Tạo Nagios User và Group  

Chúng ta phải tạo một user và group chạy quá trình Nagios. Tạo user "nagios" và nhóm "nagcmd", sau đó thêm user vào group bằng các lệnh sau:

sudo useradd nagios 
sudo groupadd nagcmd 
sudo usermod -a -G nagcmd nagios 

Cài đặt Build Dependencies

Vì đang xây dựng Nagios Core từ nguồn, chúng ta phải cài đặt một vài thư viện phát triển cho phép hoàn thành việc xây dựng. Trong khi đang ở đó, chúng ta cũng cài đặt apache2-utils để thiết lập giao diện web Nagios.

Trước tiên, cập nhật danh sách các gói apt-get :

sudo apt-get update 

Sau đó cài đặt các gói cần thiết:

sudo apt-get install build-essential libgd2-xpm-dev openssl libssl-dev xinetd apache2-utils unzip 

Hãy cài đặt Nagios ngay bây giờ.

Cài đặt Nagios Core

Tải về mã nguồn cho bản phát hành ổn định mới nhất của Nagios Core. Truy cập trang tải xuống Nagios và nhấp vào liên kết Skip to 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 để có thể tải xuống máy chủ Nagios.

Tại thời điểm viết bài này, bản phát hành ổn định mới nhất là Nagios 4.1.1. Tải nó về thư mục chính với curl:

cd ~
curl -L -O https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.1.1.tar.gz

Giải nén kho lưu trữ Nagios bằng lệnh này:

tar xvf nagios-*.tar.gz 

Sau đó thay đổi thư mục được trích xuất:

cd nagios-*

Trước khi xây dựng Nagios, phải định dạng nó. Nếu muốn định dạng nó để sử dụng postfix (có thể cài đặt bằng apt-get),hãy thêm --with-mail=/usr/sbin/sendmail vào lệnh sau:

./configure --with-nagios-group=nagios --with-command-group=nagcmd 

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

make all 

Bây giờ có thể chạy các lệnh này để cài đặt Nagios, init script và các tệp cấu hình mẫu:

sudo make install 
sudo make install-commandmode 
sudo make install-init 
sudo make install-config 
sudo /usr/bin/install -c -m 644 sample-config/httpd.conf /etc/apache2/sites-available/nagios.conf 

Để phát hành các lệnh bên ngoài thông qua giao diện web tới Nagios, chúng ta phải thêm web server user, www-data, vào nhóm nagcmd:

sudo usermod -G nagcmd www-data 

Cài đặt Nagios Plugins

Tìm phiên bản mới nhất của Nagios Plugins tại đây: Nagios Plugins Download. Sao chép địa chỉ liên kết cho phiên bản mới nhất và sao chép địa chỉ liên kết để có thể tải xuống máy chủ Nagios của mình.

Tại thời điểm viết bài này, phiên bản mới nhất là Nagios Plugins 2.1.1. Tải nó về thư mục chính với curl:

cd ~
curl -L -O http://nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz

Giải nén Nagios Plugins lưu trữ với lệnh này:

tar xvf nagios-plugins-*.tar.gz 

Sau đó thay đổi thư mục được trích xuất:

cd nagios-plugins-* 

Trước khi xây dựng Nagios Plugins, chúng ta phải định dạng nó. Sử dụng lệnh này:

./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl 

Bây giờ biên dịch Nagios Plugins bằng lệnh này:

make 

Sau đó cài đặt với lệnh này:

sudo make install 

Cài đặt NRPE

Tìm mã nguồn cho bản phát hành ổn định mới nhất của NRPE tại NRPE downloads page. Tải xuống phiên bản mới nhất cho máy chủ Nagios của bạn.

Tại thời điểm viết bài này, bản phát hành mới nhất là 2,15. Tải nó về thư mục chính với curl:

cd ~ 
curl -L -O http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz 

Giải nén kho lưu trữ NRPE bằng lệnh này:

tar xvf nrpe-*.tar.gz 

Sau đó thay đổi thư mục được trích xuất:

cd nrpe-* 

Định cấu hình NRPE bằng các lệnh sau:

./configure --enable-command-args --with-nagios-user=nagios --with-nagios-group=nagios --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnu 

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

make all 
sudo make install 
sudo make install-xinetd 
sudo make install-daemon-config 

Mở tập lệnh khởi động xinetd trong trình chỉnh sửa:

sudo vi /etc/xinetd.d/nrpe 

Sửa đổi dòng only_from bằng cách thêm địa chỉ IP riêng của Nagios server vào cuối (thay thế địa chỉ IP thực của server của bạn):

only_from = 127.0.0.1 10.132.224.168

Lưu và thoát. Chỉ máy chủ Nagios mới được phép giao tiếp với NRPE.

Khởi động lại dịch vụ xinetd để khởi động NRPE:

sudo service xinetd restart 

Bây giờ Nagios 4 đã được cài đặt, chúng ta cần định dạng nó.

 

Định dạng Nagios

Bây giờ hãy thực hiện cấu hình Nagios ban đầu. Bạn chỉ cần thực hiện phần này một lần, trên máy chủ Nagios của mình.

Tổ chức cấu hình Nagios

Mở tập tin cấu hình Nagios chính trong trình soạn thảo văn bản yêu thích của bạn. Sử dụng vi để chỉnh sửa tệp:

sudo vi /usr/local/nagios/etc/nagios.cfg

Bây giờ, hãy tìm cách bỏ ghi chú dòng này bằng cách xóa #:

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

Lưu và thoát.

Bây giờ tạo thư mục lưu trữ tệp cấu hình cho mỗi máy chủ sẽ giám sát:

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

Định dạng Nagios Contacts

Mở cấu hình liên lạc Nagios trong trình soạn thảo văn bản yêu thích của bạn. Chúng Sử dụng vi để chỉnh sửa tệp:

sudo vi /usr/local/nagios/etc/objects/contacts.cfg

Tìm chỉ thị email và thay thế giá trị của nó (phần được đánh dấu) bằng địa chỉ email của riêng bạn:

email nagios@localhost ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******

Lưu và thoát.

Định cấu hình lệnh check_nrpe

Hãy thêm một lệnh mới vào cấu hình Nagios:

sudo vi /usr/local/nagios/etc/objects/commands.cfg 

Thêm phần sau vào cuối tệp:

define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

Lưu và thoát. Điều này cho phép sử dụng lệnh check_nrpe trong định nghĩa dịch vụ Nagios.

Định dạng Apache

Bật mô-đun viết lại và cgi của Apache:

sudo a2enmod rewrite
sudo a2enmod cgi

Sử dụng htpasswd để tạo admin user, được gọi là "nagiosadmin", có thể truy cập vào giao diện web của Nagios:

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

Nhập mật khẩu tại dấu nhắc. Hãy nhớ mật khẩu này, vì bạn sẽ cần nó để truy cập vào giao diện web Nagios.

Lưu ý: Nếu tạo một user không được đặt tên là "nagiosadmin", bạn cần phải chỉnh sửa  /usr/local/nagios/etc/cgi.cfg và thay đổi các tham chiếu "nagiosadmin" cho user đã tạo.

Bây giờ tạo một liên kết tượng trưng của nagios.conf đến thư mục sites-enabled:

sudo ln -s /etc/apache2/sites-available/nagios.conf /etc/apache2/sites-enabled/

Nagios đã sẵn sàng để bắt đầu. Hãy làm điều đó và khởi động lại Apache:

sudo service nagios start
sudo service apache2 restart

Để kích hoạt Nagios để khởi động máy chủ, hãy chạy lệnh sau:

sudo ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios

Tùy chọn: Hạn chế quyền truy cập theo địa chỉ IP

Nếu muốn giới hạn địa chỉ IP có thể truy cập vào giao diện web Nagios, cần chỉnh sửa tệp cấu hình Apache:

sudo vi /etc/apache2/sites-available/nagios.conf

Tìm và nhận xét hai dòng sau bằng cách thêm # ký tự ở phía trước:

Order allow,deny
Allow from all

Sau đó, bỏ ghi chú các dòng sau, bằng cách xóa # ký hiệu và thêm địa chỉ IP hoặc dải ô (dấu tách cách) được cho phép trong dòng Allow from:

# Order deny,allow
# Deny from all
# Allow from 127.0.0.1

Vì những dòng này sẽ xuất hiện hai lần trong tệp cấu hình nên bạn sẽ cần phải thực hiện lại các bước này một lần nữa.

Lưu và thoát.

Bây giờ khởi động lại Apache để đặt thay đổi có hiệu lực:

sudo service nagios restart
sudo service apache2 restart

Nagios hiện đang chạy, vì vậy hãy thử và đăng nhập.

 

Truy cập vào giao diện web Nagios

Mở trình duyệt web ưa thích của bạn và truy cập Nagios server (thay thế địa chỉ IP hoặc tên server cho phần được đánh dấu):

http://nagios_server_public_ip/nagios

Vì đã định cấu hình Apache để sử dụng htpasswd, bạn phải nhập bằng chứng xác thực đăng nhập đã tạo trước đó. Chúng ta đã sử dụng "nagiosadmin" làm tên user:

htaccess Authentication Prompt

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

Nagios Hosts Page

Như có thể thấy, Nagios chỉ giám sát "localhost", hoặc chính nó.

Hãy theo dõi một máy chủ khác với Nagios!

 

Giám sát Máy chủ lưu trữ bằng NRPE

Trong phần này, sẽ hướng dẫn cách thêm một máy chủ mới vào Nagios, vì vậy nó sẽ được theo dõi. Lặp lại phần này cho mỗi máy chủ muốn theo dõi.

Trên máy chủ mà bạn muốn theo dõi, cập nhật apt-get:

sudo apt-get update

Bây giờ hãy cài đặt Nagios Plugins và NRPE:

sudo apt-get install nagios-plugins nagios-nrpe-server

Định cấu hình Allowed Hosts

Bây giờ, hãy cập nhật tệp cấu hình NRPE. Mở nó trong trình soạn thảo yêu thích của bạn (đang sử dụng vi):

sudo vi /etc/nagios/nrpe.cfg

Tìm chỉ thị allowed_hosts và thêm địa chỉ IP riêng của máy chủ Nagios vào danh sách được phân cách bằng dấu phẩy (thay thế nó cho ví dụ được đánh dấu):

allowed_hosts=127.0.0.1,10.132.224.168

Lưu và thoát. Điều này định dạng NRPE chấp nhận yêu cầu từ máy chủ Nagios, thông qua địa chỉ IP riêng của nó.

Định dạng lệnh Allowed NRPE 

Tra cứu tên của hệ thống tập tin gốc (vì nó là một trong các mục muốn theo dõi):

df -h /

Chúng tôi sẽ sử dụng tên hệ thống tập tin trong cấu hình NRPE để giám sát việc sử dụng đĩa của bạn (có thể là /dev/vda). Bây giờ mở nrpe.cfg để chỉnh sửa:

sudo vi /etc/nagios/nrpe.cfg

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

  • server_address: Đặt thành địa chỉ IP riêng của máy chủ lưu trữ này
  • allowed_hosts: Đặt thành địa chỉ IP riêng của máy chủ Nagios 
  • command[check_hda1]: Thay đổi /dev/hda1 thành bất kỳ hệ thống tập tin root của bạn

Ba dòng nói trên sẽ trông như thế này (thay thế các giá trị thích hợp):

server_address=client_private_IP
allowed_hosts=nagios_server_private_IP
command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/vda

Lưu ý rằng một số "lệnh" khác được định nghĩa trong tệp này sẽ chạy nếu máy chủ Nagios được định cấu hình sử dụng chúng. Cũng lưu ý rằng NRPE sẽ nghe trên cổng 5666 vì server_port=5666 được thiết lập. Nếu có bất kỳ tường lửa nào chặn, hãy chắc chắn mở nó vào máy chủ Nagios.

Lưu và thoát.

Khởi động lại NRPE

Khởi động lại NRPE để thay đổi có hiệu lực:

sudo service nagios-nrpe-server restart

Khi hoàn tất việc cài đặt và cấu hình NRPE trên máy chủ bạn muốn theo dõi, sẽ phải thêm các máy chủ này vào cấu hình máy chủ Nagios trước khi bắt đầu theo dõi chúng.

Thêm máy chủ lưu trữ vào cấu hình Nagios

Trên máy chủ Nagios, tạo một tệp cấu hình mới cho mỗi máy chủ từ xa muốn theo dõi trong  /usr/local/nagios/etc/servers/. Thay thế từ được đánh dấu, "yourhost", với tên của máy chủ lưu trữ của bạn:

sudo vi /usr/local/nagios/etc/servers/yourhost.cfg

Thêm vào định nghĩa máy chủ sau, thay thế giá trị host_name bằng tên máy chủ từ xa  ("web-1" trong ví dụ),giá trị alias  với mô tả của máy chủ và giá trị address với địa chỉ IP riêng của máy chủ từ xa:

define host {
use linux-server
host_name yourhost alias My first Apache server address 10.132.234.52 max_check_attempts 5
check_period 24x7
notification_interval 30
notification_period 24x7
}

Với tập tin cấu hình ở trên, Nagios sẽ chỉ giám sát nếu máy chủ lưu trữ lên hoặc xuống. Nếu đã đủ đối với bạn, hãy lưu và thoát rồi khởi động lại Nagios. Nếu bạn muốn theo dõi các dịch vụ cụ thể, hãy đọc tiếp.

Thêm bất kỳ khối dịch vụ nào cho các dịch vụ bạn muốn theo dõi. Lưu ý rằng giá trị của check_command xác định những gì được theo dõi, bao gồm các giá trị ngưỡng trạng thái. Dưới đây là một số ví dụ có thể thêm vào tệp cấu hình của máy chủ lưu trữ của mình:

Ping:

define service {
use generic-service
host_name yourhost service_description PING
check_command check_ping!100.0,20%!500.0,60%
}

SSH (notifications_enabled được đặt thành 0 sẽ tắt thông báo cho dịch vụ):

define service {
use generic-service
host_name yourhost service_description SSH
check_command check_ssh
notifications_enabled 0
}

Nếu không chắc chắn về use generic-service là gì, nó đơn giản là kế thừa các giá trị của một mẫu dịch vụ được gọi là "generic-service" được định nghĩa theo mặc định.

Bây giờ hãy lưu và thoát. Tải lại cấu hình Nagios để đặt bất kỳ thay đổi nào có hiệu lực:

sudo service nagios reload

Khi hoàn tất việc cấu hình Nagios để giám sát tất cả các máy chủ từ xa của mình, bạn nên thiết lập. Hãy chắc chắn truy cập vào giao diện web Nagios và xem trang Services để xem tất cả các máy chủ và dịch vụ được giám sát:

Nagios Services Page

 

Kết luận

Bây giờ bạn theo dõi máy chủ và một số dịch vụ của họ, bạn có thể muốn dành chút thời gian để tìm ra dịch vụ nào là quan trọng đối với mình, vì vậy hãy bắt đầu theo dõi những dịch vụ đó. Bạn có thể muốn thiết lập thông báo, ví dụ, bạn nhận được email khi sử dụng đĩa đạt đến cảnh báo hoặc ngưỡng quan trọng hoặc trang web chính bị hỏng, vì vậy bạn có thể giải quyết tình huống ngay lập tức hoặc trước khi sự cố xảy ra.

Chúc bạn thành công!