[NAGIOS] Cài đặt Nagios Core Server và giám sát máy chủ của bạn

Nagios là một hệ thống giám sát hạ tầng mạng và dịch vụ mạng vô cùng mạnh mẽ cho phép các doanh nghiệp, công ty xác định và giải quyết các vấn đề về cơ sở hạ tầng Công Nghệ Thông Tin trước khi chúng làm ảnh hưởng đến các hoạt động kinh doanh, vận hành nội bộ của công ty. Nagios thực hiện việc theo dõi và đưa ra các cảnh báo về trạng thái các host và các dịch vụ.

Trong hướng dẫn này, mình sẽ cài đặt Nagios 4 và cấu hình nó để bạn có thể theo dõi tài nguyên máy chủ thông qua giao diện web của Nagios

A. Mô hình



B. Thực hiện

1. Cài đặt Nagios 4

Ở đây mình cài đặt Nagios Core và các thành phần của nó từ nguồn để đảm bảo có được các tính năng mới nhất, cập nhật bảo mật và sửa lỗi.

Đầu tiên ta tạo một usergroup để chạy quá trình Nagios. Tạo user "nagios" và nhóm "nagcmd" bằng các lệnh sau:

sudo useradd nagios 

sudo groupadd nagcmd

Sau đó thêm user vào group

sudo usermod -a -G nagcmd nagios

Vì đang xây dựng Nagios Core từ nguồn nên chúng ta phải cài đặt một vài thư viện cho phép hoàn thành việc xây dựng

Đối với bất kỳ công việc nào sử dụng apt, danh sách các gói cần phải được cập nhật.

sudo apt-get update

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

Chúng ta cũng cài đặt apache2 để thiết lập giao diện web Nagios.

sudo apt install php php-cgi libapache2-mod-php php-common php-pear php-mbstring

Tải về mã nguồn cho bản phát hành ổn định mới nhất của Nagios Core, tải nó về thư mục chính

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 vừa tải về

tar zxf nagios-*.tar.gz

Và di chuyển đến thư mục nagios-*

cd nagios-*

Hãy chạy configure để chỉ định user và group bạn muốn Nagios sử dụng. Nếu bạn muốn Nagios gửi email bằng cách sử dụng Postfix, bạn phải cài đặt Postfix và định cấu hình Nagios để sử dụng nó bằng cách thêm --with-mail=/usr/sbin/sendmail. Nhưng ở đây mình k sử dụng postfix. Sử dụng user nagios và group nagcmd bạn đã tạo

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

Sau khi chạy câu lệnh trên ta sẽ được kết quả như sau:

Output*** Configuration summary for nagios 4.3.4 2017-08-24 ***:

 General Options:
 -------------------------
        Nagios executable:  nagios
        Nagios user/group:  nagios,nagios
       Command user/group:  nagios,nagcmd
             Event Broker:  yes
        Install ${prefix}:  /usr/local/nagios
    Install ${includedir}:  /usr/local/nagios/include/nagios
                Lock file:  /run/nagios.lock
   Check result directory:  ${prefix}/var/spool/checkresults
           Init directory:  /etc/init.d
  Apache conf.d directory:  /etc/apache2/sites-available
             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

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

sudo make install 
sudo make install-commandmode 
sudo make install-init 
sudo make install-config

Do bạn sẽ sử dụng Apache để phục vụ giao diện web của Nagios, vì vậy hãy sao chép tệp cấu hình Apache mẫu vào thư mục /etc/apache2/sites-available (nếu thắc mắc tại sao phải copy vào thư mục site-available thì các bạn tham khảo có thể tìm hiểu thêm trên mạng)

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

Để tiến 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 user web server www-data, vào nhóm nagcmd:

sudo usermod -G nagcmd www-data


Nagios đã được cài đặt. Hãy cài đặt một plugin cho phép Nagios thu thập dữ liệu từ nhiều máy agent khác nhau.

2. Cài đặt plugin NRPE

Nagios giám sát các máy chủ từ xa bằng cách sử dụng Nagios Remote Plugin Executor (NRPE).
Nó bao gồm hai phần:

  • check_nrpe plugin được sử dụng bởi máy chủ Nagios Server. 
  • daemon NRPE, chạy trên máy bị giám sát và gửi dữ liệu đến máy chủ Nagios.


 Tiến hành cài đặt check_nrpe plugin trên Nagios Server.

cd ~ 

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

Giải nén kho lưu trữ NRPE :

tar xvf nrpe-*.tar.gz

Di chuyển đến thư mục nrpe-*

cd nrpe-*

Định cấu hình check_nrpe cần thiết bằng câu lệnh configure  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


  • xinetd là một dịch vụ hay còn gọi là daemon trong Linux. Nó là một máy chủ dịch vụ đa năng (super server), xinetd chịu trách nhiệm tạo socket kết nối với máy khách. Dựa vào cổng và giao thức (tcp hay udp) nó biết được phải trao đổi dữ liệu mà nó nhận được với back-end nào dựa vào thuộc tính server trong file cấu hình.

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

sudo gedit /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): 



Điều này để chỉ định 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

Tiếp theo ta phải cấu hình Nagios Server

Bây giờ chúng ta hãy thực hiện cấu hình Nagios, bao gồm chỉnh sửa một số tập tin cấu hình và cấu hình Apache để phục vụ giao diện web Nagios. Bạn chỉ cần thực hiện phần này một lần trên Nagios Server .

Mở tệp cấu hình nagios.cfg , nó được lưu ở đường dẫn sau:

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

Tìm đến dòng này #cfg_dir=/usr/local/nagios/etc/servers  và bỏ dấu # đi, sau đó lưu lại và thoát khỏi trình chỉnh sửa.


Bây giờ tạo thư mục lưu trữ tệp cấu hình cho mỗi máy agent mà bạn sẽ theo dõi:

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

3.Định dạng Nagios contact

Tìm email  và thay thế giá trị của nó bằng địa chỉ email của chính bạn trong thư mục /usr/local/nagios/etc/objects/contacts.cfg

sudo gedit /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                           nagios@localhost        ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
...

Lưu lại và thoát khỏi trình chỉnh sửa.

4. Định nghĩa cấu hình lệnh check_nrpe

Thêm định nghĩa một lệnh mới vào cấu hình Nagios cho phép bạn sử dụng check_nrpe lệnh trong định nghĩa dịch vụ Nagios. Mở tập tin /usr/local/nagios/etc/objects/commands.cfg trong trình chỉnh sửa của bạn:

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

Thêm lệnh này vào cuối tập tin

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

Lưu và thoát khỏi trình chỉnh sửa.

Bước kế tiếp, bây giờ cấu hình Apache để phục vụ giao diện người dùng Nagios. Bật Apache rewritecgi


sudo a2enmod rewrite 

sudo a2enmod cgi

Sử dụng lệnh  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 khi được yêu cầu. 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

Chú ý: Nếu bạn tạo người dùng có tên khác nagiosadmin, bạn sẽ cần chỉnh sửa /usr/local/nagios/etc/cgi.cfg và thay đổi tất cả những gì liên quan đến nagiosadmin  bạn đã 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 bằng câu lệnh sau:

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


  • site-enabled/ – Thư mục chứa file cấu hình VirtualHost của Apache trên Ubuntu đang được bật. (các bạn có thể lên mạng tìm hiểu thêm về web Apache)


Cấu hình Nagios tự động khởi động khi server khởi động.

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

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

sudo service nagios start 

sudo service apache2 restart

Lưu ý 
Nếu bạn gặp phải lỗi khi xài câu lệnh start nagios 

Failed to start nagios.service: Unit nagios.service failed to load: No such file or directory.

Thì hãy làm như sau:

sudo gedit /etc/systemd/system/nagios.service

thêm nội dung này vào và lưu lại

[Unit]
Description=Nagios
BindTo=network.target


[Install]
WantedBy=multi-user.target

[Service]
User=nagios
Group=nagios
Type=simple
ExecStart=/usr/local/nagios/bin/nagios /usr/local/nagios/etc/nagios.cfg
sudo systemctl enable /etc/systemd/system/nagios.service sudo systemctl start nagios sudo systemctl restart nagios

Truy cập vào giao diện web http://172.100.100.21/nagios  ( thay thế 172.100.100.21 bằng địa chỉ IP   Nagios server của bạn)

Nhập vào user name : nagiosadmin và mật khẩu bạn đã tạo ở bước trên để hoàn tất việc đăng nhập.




Như bạn có thể thấy, Nagios server chỉ giám sát chính nó.

Mình sẽ hướng dẫn các bạn thêm các máy agent vào để  Nagios server giám sát ở bài sau
,
Do buồn ngủ quá nên mình viết chắc hơi khó hiểu @@!

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



Nhận xét

Đăng nhận xét

Bài đăng phổ biến từ blog này

[EVE-NG] Hướng dẫn import cisco IOL vào EVE server

[EVE-NG] Hướng dẫn kết nối thiết bị ảo với Internet thông qua cổng vật lý máy thât.

[LAB] Hướng dẫn cấu hình NAT overload qua mô hình lab trên EVE-NG