Để có thể giám sát một máy chủ từ xa với nagios, Ta có thể sử dụng nhiều loại plugins khác nhau, Ở đây tôi giới thiệu với các bạn về một plugins thường được sử dụng là NRPE.

Để thực hiện được bài này cần phải cài đặt một nagios server trước đó để có thể giám sát một máy bằng nagios server đó. Nếu bạn chưa biết cách tạo một nagios server thì có thể tham khảo Tại Đây

Mô hình và kịch bản

Kịch bản : Cài đặt nagios lên một máy được gọi là nagios server. Cài đặt và sử dụng NRPE để có thể giám sát được máy linux từ xa được gọi là remote linux

Hostname IP CPURAM DISK
serve 192.168.80.2211 core 1G20G
client 192.168.80.2251 core 1G20G

Thực hiện

Trên remote linux

1. Cài đặt các gói phụ kiện cần thiết

yum install -y gcc glibc glibc-common gd gd-devel make net-snmp openssl-devel

2. Tạo user để NRPE dùng nó để xử lý tiến trình

useradd nagios
passwd nagios

3. Download file plugins

yum install wget -y 
wget https://www.nagios-plugins.org/download/nagios-plugins-2.1.2.tar.gz

4. Giải nén và cài đặt plugins

tar -xvf nagios-plugins-2.1.2.tar.gz
cd nagios-plugins-2.1.2
./configure
 make
 make install

5. Sau đó thêm user vào group và cấp quyền sử dụng tập lưu NRPE cho user nagios và group nagios

usermod -a -G nagios nagios
chown nagios.nagios /usr/local/nagios
chown -R nagios.nagios /usr/local/nagios/libexec

6. Cài đặt xinetd

yum install xinetd -y 

7. Download và cài đặt NRPE

cd 
wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-3.2.1/nrpe-3.2.1.tar.gz

tar xzf nrpe-3.2.1.tar.gz
cd nrpe-3.2.1
./configure
make all 
make install
make install-plugin
make install-config 
make install-init
make install-inetd

8. Sửa file /usr/local/nagios/etc/nrpe.cfg để có thể nghe thấy nagios server

allowed_hosts=127.0.0.1,(nagios server IP )
Ví dụ :
      allowed_hosts=127.0.0.1,192.168.80.221

9. Sửa file /etc/services sử dụng port 5666 cho NRPE. Thêm dòng dưới đây

nrpe            5666/tcp                 #NRPE

10. Chạy các dịch vụ

service xinetd restart
systemctl start nrpe 
systemctl enable nrpe 

11. Kiểm tra xem đã cài đặt và sử dụng được NRPE chưa

/usr/local/nagios/libexec/check_nrpe -H 127.0.0.1
NRPE v3.2.1

Trên Nagios Server

1.Download NRPE

wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-3.2.1/nrpe-3.2.1.tar.gz

2. Giải nén file vừa download

tar xzf nrpe-3.2.1.tar.gz

3. Cài đặt lệnh NRPE

cd nrpe-3.2.1
./configure
make check_nrpe
make install-plugin

4. Kiểm tra xem đã sử dụng được NRPE chưa

/usr/local/nagios/libexec/check_nrpe -H <remote_linux_ip_address>

Thêm một host vào để nagios server giám sát

1.Thêm vào file /usr/local/nagios/etc/nagios.cfg. Khai báo file chứa thông tin của host cần giám sát

cfg_file=/usr/local/nagios/etc/hosts.cfg
cfg_file=/usr/local/nagios/etc/services.cfg

2. Khai báo lệnh NRPE vào file vi /usr/local/nagios/etc/objects/commands.cfg

###############################################################################
# NRPE CHECK COMMAND
#
# Command to use NRPE to check remote host systems
###############################################################################

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

3. Thêm thông tin của host vào file /usr/local/nagios/etc/hosts.cfg

define host{
name                            linux-box
use                             generic-host
check_period                    24x7
check_interval                  5
retry_interval                  1
max_check_attempts              10
check_command                   check-host-alive
notification_period             24x7
notification_interval           30
notification_options            d,r
contact_groups                  admins
register                        0
}
define host{
use                             linux-box
host_name                       client
alias                           CentOS 7
address                         192.168.80.225
}

4. Thêm thông tin của service vào file /usr/local/nagios/etc/services.cfg

define service{
        name                    service-test
        use                     generic-service
        check_period                    24x7
        check_interval                  3
        retry_interval                  1
        max_check_attempts              3
        notifications_enabled           1
        contact_groups                  admins
        active_checks_enabled           1
        passive_checks_enabled          1
        register                        0
        notification_interval           5
        notification_options            r,c,w
}

define service{
        use                     service-test
        host_name               client
        service_description     CPU Load1
        check_command           check_nrpe!check_load

 }


define service{
        use                     generic-service
        host_name               client
        service_description     disk load1
        check_command           check_nrpe!check_hda1
        contact_groups          admins
        }

5. Kiểm tra cấu hình xem đúng hay sai kết quả giống hiện ra ở dưới sẽ là đúng và không có lỗi xảy ra

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Nagios Core 4.1.1
Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 08-19-2015
License: GPL

Website: https://www.nagios.org
Reading configuration data...
   Read main config file okay...
   Read object config files okay...

Running pre-flight check on configuration data...

Checking objects...
	Checked 10 services.
	Checked 2 hosts.
	Checked 1 host groups.
	Checked 0 service groups.
	Checked 1 contacts.
	Checked 1 contact groups.
	Checked 25 commands.
	Checked 5 time periods.
	Checked 0 host escalations.
	Checked 0 service escalations.
Checking for circular paths...
	Checked 2 hosts
	Checked 0 service dependencies
	Checked 0 host dependencies
	Checked 5 timeperiods
Checking global event handlers...
Checking obsessive compulsive processor commands...
Checking misc settings...

Total Warnings: 0
Total Errors:   0

6. Khởi động lại dịch vụ nagios

service nagios restart
Kết quả trên web của nagios server sau khi thêm 2 dịch vụ giám sát CPU và disk

Đã có thể giám sát host và service. Vậy khi chúng gặp sự cố thì làm sao chúng ta có thể biết được. Ở bài hướng dẫn cảnh báo qua mail tôi sẽ hướng các bạn dẫn cài đặt cảnh báo