Hệ điều hành (OS), Linux

Hướng dẫn cài đặt và cấu hình Nagios Core trong Ubuntu 24.04

Nagios là một trong những công cụ giám sát mã nguồn mở mạnh mẽ và phổ biến nhất, giúp theo dõi trạng thái máy chủ, dịch vụ, và các thiết bị mạng khác. Bài viết này sẽ hướng dẫn bạn cách cài đặt Nagios Core trong Ubuntu 24.04, bao gồm cả cài đặt LAMP, cấu hình giám sát localhost và máy chủ khác.


Contents

☑️ 1. Cài đặt LAMP trong Ubuntu 24.04

Nagios sử dụng giao diện web viết bằng PHP, vì vậy bạn cần cài đặt LAMP (Linux, Apache, MySQL/MariaDB, PHP) bằng các lệnh sau.

sudo apt update

Giải thích: Cập nhật danh sách gói phần mềm để đảm bảo bạn cài phiên bản mới nhất.

sudo apt install apache2 php libapache2-mod-php -y

Giải thích: Cài đặt Apache web server và PHP – nền tảng cho giao diện web của Nagios.

sudo apt install mariadb-server -y

Giải thích: Cài đặt cơ sở dữ liệu MariaDB (Mặc dù Nagios Core không cần, tuy nhiên nhiều plugin Nagios sử dụng DB để lưu lịch sử dữ liệu).

Kiểm tra Apache:

sudo systemctl status apache2

Khởi động, và kích hoạt dịch vụ MariaDB:

sudo systemctl enable mariadb
sudo systemctl start mariadb

⚙️ 2. Cài đặt Nagios Core

Bước 1: Cài gói phụ thuộc

sudo apt install -y autoconf gcc libc6 libmcrypt-dev make libssl-dev wget bc gawk dc build-essential snmp libnet-snmp-perl gettext

Giải thích: Các gói này cần thiết để biên dịch mã nguồn Nagios.

Bước 2: Tạo người dùng Nagios

sudo useradd nagios
sudo groupadd nagcmd
sudo usermod -aG nagcmd nagios

Giải thích: Tạo người dùng và nhóm chuyên biệt để chạy Nagios an toàn.

Bước 3: Tải và cài đặt Nagios Core bằng cách chạy lần lượt các lệnh sau

cd /tmp
sudo apt install curl
curl -O https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.5.1.tar.gz
tar -zxvf nagios-4.5.1.tar.gz
cd nagios-4.5.1
./configure --with-command-group=nagcmd
make all
sudo make install-groups-users
sudo make install
sudo make install-daemoninit
sudo make install-commandmode
sudo make install-config
sudo make install-webconf

Giải thích: Cấu hình, biên dịch và cài đặt Nagios cũng như cấu hình web interface.

Vì sao cần Nagios Plugins?

Nagios Plugins là tập hợp các script và chương trình giúp Nagios kiểm tra các dịch vụ (HTTP, SSH, Load, Disk…). Khi bạn cài từ mã nguồn (source), các plugin cần được biên dịch nên đòi hỏi nhiều gói thư viện và công cụ build.

Bước 4: Download Nagios plugins mới nhất và cài đặt nó sử dụng lần lượt các lệnh sau.

cd /tmp
sudo apt install aria2 -y
aria2c https://github.com/nagios-plugins/nagios-plugins/releases/download/release-2.4.0/nagios-plugins-2.4.0.tar.gz
tar -zxvf nagios-plugins-2.4.0.tar.gz
cd nagios-plugins-2.4.0
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
sudo make install

Giải thích: Plugin giúp Nagios thực hiện kiểm tra các dịch vụ (ping, http, load, etc.)

Kết quả chạy thành công của lệnh “make” và “sudo make install“.

Bước 5: Tạo user đăng nhập web và Bật (Enable) Apache Module

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

Giải thích: Tạo tài khoản nagiosadmin để đăng nhập giao diện web của Nagios.

  • Bật (Enable)  Apache rewrite module.

                          sudo a2enmod rewrite

  • Bật (Enable)  Apache CGI module.

                          sudo a2enmod cgi

Khởi động dịch vụ:

sudo systemctl restart apache2
sudo systemctl enable nagios
sudo systemctl start nagios

️ 3. Cấu hình giám sát localhost (chính server cài Nagios)

Nagios đã có sẵn cấu hình mẫu trong /usr/local/nagios/etc/objects/localhost.cfg, bao gồm giám sát:

  • Load

  • Disk

  • Memory

  • SSH

  • Ping

Bạn chỉ cần chắc chắn rằng file localhost.cfg được include trong nagios.cfg (mặc định đã có):

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

Giải thích: Đảm bảo dòng sau KHÔNG bị comment:

cfg_file=/usr/local/nagios/etc/objects/localhost.cfg

Mở trình duyệt web trong 1 Windows PC của bạn trong hệ thống mạng và truy cập vào máy chủ Nagios bằng cách truy cập : http://nagios_server_public_ip/nagios.


4. Giám sát máy chủ khác – Cấu hình Plugin NRPE để giám sát hệ thống từ Nagios Server (Ubuntu 24.04) đến CentOS 9.

Mục tiêu

  • Cài đặt và cấu hình plugin NRPE để giám sát máy khách CentOS 9 từ máy chủ Nagios Ubuntu 24.04.

  • Thiết lập giám sát các dịch vụ quan trọng như: Disk, Load, SSH, Ping, Apache, MariaDB,…

  • Hướng dẫn chi tiết, dễ hiểu cho học viên học quản trị hệ thống và DevOps.

️ 1. Trên máy chủ Nagios (Ubuntu 24.04), giả sử có IP là “192.168.146.164”, bạn hãy thay đổi theo IP Server của bạn.

Bước 1: Cài đặt plugin NRPE

sudo apt update
sudo apt install -y nagios-plugins nagios-nrpe-plugin

Giải thích:

  • nagios-plugins: Gồm các lệnh giám sát như check_disk, check_load

  • nagios-nrpe-plugin: Dùng để gửi yêu cầu từ Nagios đến NRPE trong máy client.

️ 2. Trên máy khách CentOS 9 (Client)

Bước 1: Cài EPEL và các packages cần thiết

sudo dnf config-manager --set-enable crb
sudo dnf install epel-release epel-next-release -y

Bước 2: Cài đặt NRPE và các plugin giám sát

sudo dnf --enablerepo=epel -y install nrpe nagios-plugins-all

Giải thích:

  • nagios-plugins-all giúp bạn có đủ các plugin như check_http, check_mysql, check_ping

Bước 3: Cấu hình NRPE

Mở file cấu hình:

sudo vi /etc/nagios/nrpe.cfg

Tìm dòng sau và sửa lại IP máy chủ Nagios, để cho phép máy chủ Nagios truy cập và kiểm tra Centos 9 :

allowed_hosts=127.0.0.1,::1,192.168.146.164

Lưu ý: Địa chỉ 192.168.146.164 là IP của máy chủ Nagios. Hãy điều chỉnh theo hệ thống thực tế của bạn.

Tạo user MariaDB chỉ dùng cho giám sát với check_mysql

Bước 1: Đăng nhập vào MariaDB/MySQL trong Centos 9

sudo mysql -u root -p

Bước 2: Tạo user giám sát và cấp quyền cần thiết

CREATE USER 'nagios'@'localhost' IDENTIFIED BY 'YourStrongPassword!';
GRANT USAGE ON *.* TO 'nagios'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Giải thích lệnh SQL:

  • USAGE: Quyền truy cập cơ bản, không cho phép xem dữ liệu, chỉ dùng để kiểm tra kết nối DB.

  • 'localhost': Giới hạn chỉ cho phép kết nối từ chính máy CentOS, giúp bảo mật hệ thống.

Bước 4: Thêm lệnh kiểm tra vào NRPE

Comment các dòng cấu hình này ở gần cuối file /etc/nagios/nrpe.cfg

#command[check_users]=/usr/lib64/nagios/plugins/check_users -w 5 -c 10
#command[check_load]=/usr/lib64/nagios/plugins/check_load -r -w .15,.10,.05 -c .30,.25,.20
#command[check_hda1]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1
#command[check_zombie_procs]=/usr/lib64/nagios/plugins/check_procs -w 5 -c 10 -s Z
#command[check_total_procs]=/usr/lib64/nagios/plugins/check_procs -w 150 -c 200

Và thêm các dòng cấu hình sau vào cuối file /etc/nagios/nrpe.cfg:

command[check_users]=/usr/lib64/nagios/plugins/check_users -w 5 -c 10
command[check_load]=/usr/lib64/nagios/plugins/check_load -w 1.0,1.5,2.0 -c 5.0,5.5,6.0
command[check_disk]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /
command[check_ssh]=/usr/lib64/nagios/plugins/check_ssh localhost
command[check_ping]=/usr/lib64/nagios/plugins/check_ping -H 127.0.0.1 -w 100.0,20% -c 500.0,60%

# Kiểm tra Apache Web Server
command[check_apache]=/usr/lib64/nagios/plugins/check_http -I 127.0.0.1 -p 80

# Kiểm tra MariaDB (giả sử user: nagios, và mật khẩu mà bạn đã chạy lệnh SQL)
command[check_mysql]=/usr/lib64/nagios/plugins/check_mysql -H 127.0.0.1 -u nagios -p YourStrongPassword!

Giải thích bổ sung:

  • check_http: kiểm tra phản hồi HTTP từ Apache.

  • check_mysql: kiểm tra trạng thái kết nối MariaDB qua tài khoản nagios.

Bước 5: Khởi động lại NRPE

sudo systemctl enable nrpe
sudo systemctl restart nrpe

Lưu ý cần tắt Firewalld hoặc Iptables để cho phép máy chủ Nagios truy cập vào (Nếu cần bảo mật hệ thống hãy cấu hình Firewall chỉ cho phép truy cập vào cổng nrpe là 5666) bằng các lệnh sau:

sudo systemctl stop firewalld
sudo systemctl stop iptables

3. Trở lại máy chủ Nagios (Ubuntu 24.04)

Bước 1: Kiểm tra kết nối NRPE

/usr/lib/nagios/plugins/check_nrpe -H 192.168.146.133

⏱ Kết quả hợp lệ: NRPE v4.x.x

Bước 2: Khai báo command check_nrpe

Chạy lệnh soạn thảo để soạn thảo file cấu hình như sau.

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

Di chuyển đến dòng cuối cùng vàthêm:

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

 

Bước 3: Định nghĩa host và các service trong file riêng

  • Nếu kiểm tra chưa có thư mục /usr/local/nagios/etc/servers , hãy chạy lệnh sau để tạo thư mục này.

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

Và chạy lệnh soạn thảo để soạn thảo file cấu hình như sau.

sudo vi /usr/local/nagios/etc/servers/linux-centos.cfg

Thêm nội dung:

define host {
use linux-server
host_name centos9
alias centos9
address 192.168.146.133
}

define service {
use generic-service
host_name centos9
service_description Check Load
check_command check_nrpe!check_load
}

define service {
use generic-service
host_name centos9
service_description Check Disk
check_command check_nrpe!check_disk
}

define service {
use generic-service
host_name centos9
service_description Check SSH
check_command check_nrpe!check_ssh
}

define service {
use generic-service
host_name centos9
service_description Check Ping
check_command check_nrpe!check_ping
}

define service {
use generic-service
host_name centos9
service_description Check Apache
check_command check_nrpe!check_apache
}

define service {
use generic-service
host_name centos9
service_description Check MariaDB
check_command check_nrpe!check_mysql
}

Bước 4: Cần khai báo file cấu hìnhlinux-centos.cfgvàonagios.cfg.

Do nếu thư mục chứa file cấu hình linux-centos.cfg chưa được khai báo, thì Nagios sẽ không biết để đọc file đó.Vậy cần khai báo file cấu hình linux-centos.cfg vào nagios.cfg như sau.

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

Và bỏ comment dòng cấu hình sau:

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

Bước 5: Cần khai báo đường dẫn thực thi plugin check_nrpecho Nagios như sau:

Mở file cấu hình:

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

Tìm dòng:

$USER1$=/usr/local/nagios/libexec

Thay bằng:

$USER1$=/usr/lib/nagios/plugins

✅ Giải thích thêm

  • $USER1$ là biến macro trong cấu hình Nagios, thường đại diện cho đường dẫn chứa các plugin kiểm tra (ví dụ như check_ping, check_http, check_nrpe,…).

  •  Trên Ubuntu cài từ repo, plugin được cài vào /usr/lib/nagios/plugins.

  •   Nhưng mặc định Nagios lại tìm trong /usr/local/nagios/libexec, nên bạn cần sửa lại cho đúng.

Bước 6: Kiểm tra cấu hình và khởi động lại Nagios

sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
sudo systemctl restart nagios

✅ Kết quả mong đợi

Khi truy cập http://<IP của Nagios Server>/nagios, bạn sẽ thấy hostcentos9 hiển thị cùng trạng thái của các dịch vụ như Disk, Load, Apache, MariaDB, SSH, Ping, giúp bạn giám sát hệ thống chủ động và hiệu quả.


✅ Kết luận

Qua hướng dẫn này, bạn đã có thể cấu hình đầy đủ hệ thống giám sát phân tán với Nagios + NRPE, bao gồm cả kiểm tra dịch vụ web và cơ sở dữ liệu. Hướng dẫn phù hợp với người học Linux, DevOps, và kỹ sư hệ thống doanh nghiệp thực tế.

Và qua bài viết này, bạn đã nắm được cách:

  • Cài đặt đầy đủ Nagios Core trên Ubuntu 24.04

  • Cài đặt LAMP phục vụ giao diện web

  • Giám sát localhost và các máy chủ khác

Nagios là công cụ rất mạnh mẽ và mở rộng được – bạn có thể tích hợp thêm check từ SNMP, log, hệ thống cloud…

#Nagios #NagiosCore #Ubuntu2404 #GiámSátServer #LinuxMonitoring #LAMP #SysAdmin #NagiosUbuntu #NagiosPlugin #OpenSourceMonitoring#Nagios #LinuxMonitoring #NRPEPlugin #GiámSátApache #MariaDBMonitoring #SysAdmin #DevOpsVietnam

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *