Nagios 4 là một hệ thống giám sát mã nguồn mở vô cùng phổ biến trên CentOS 7 và RHEL 7. Bài viết này sẽ hướng dẫn chi tiết các bước cài đặt phần mềm giám sát Nagios trên CentOS 7 để giám sát trạng thái và tài nguyên hệ thống qua giao diện web.
Điều kiện để cài đặt phần mềm giám sát Nagios trên CentOS 7
- Tài khoản root (superuser privileges – phân quyền cao nhất) trên server chạy CentOS 7 có Nagios được cài đặt sẵn. Để tránh rủi ro cũng như các hậu quả nếu không kiểm soát được quyền superuser – root, người dùng nên dùng tài khoản user non-root có phân quyền sudo.
- Server trên sẽ chạy LAMP (nền tảng Linux, Apache, database MySQL và ngôn ngữ PHP).
- Trong bài sẽ giả định tình huống hệ thống có dùng mạng cá nhân (private network), nếu ngược lại bạn chỉ cần thay các IP riêng bằng IP công cộng.
Bước 1 – Cài đặt Nagios 4
Cài đặt các bản dựng Dependencies
Ta sẽ build Nagios Core từ mã nguồn, do đó bắt buộc phải cài một vài thư viện phát triển để thực hiện quá trình cài đặt. Bạn có thể dùng lệnh sau để cài đặt các package cần thiết:
sudo yum install gcc glibc glibc-common gd gd-devel make net-snmp openssl-devel xinetd unzip
Tạo user và nhóm cho Nagios
Sau đó, tạo một user và group để chạy tiến trình Nagios. Người dùng sẽ tạo một user “nagios” và group “nagcmd” rồi thêm user vào group này bằng các lệnh sau:
sudo useradd nagios
sudo groupadd nagcmd
sudo usermod -a -G nagcmd nagios
Cài đặt Nagios Core
Bây giờ bạn có thể bắt đầu cài đặt Nagios. Trước tiên, bạn cần vào trang web của Nagios và chọn phần Downloads, chọn mục Nagios-core, tìm bản mà mình cần và tải xuống. (Hoặc có thể vào trực tiếp tại link)
Ở thời điểm viết bài thì phiên bản mới nhất đang là Nagios 4.1.1. Bạn có thể download bằng curl
như sau:
cd ~
curl -L -O https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.1.1.tar.gz
Sau đó giải nén Nagios:
tar xvf nagios-*.tar.gz
Đi đến thư mục vừa giải nén:
cd nagios-*
Trước khi tiếp tục, người dùng bắt buộc phải sửa đổi thư mục này với lệnh sau:
./configure --with-command-group=nagcmd
Sau đó biên dịch Nagios:
make all
Bây giờ bạn có thể chạy các lệnh sau để cài đặt Nagios, script init và các file cấu hình mẫu:
sudo make install
sudo make install-commandmode
sudo make install-init
sudo make install-config
sudo make install-webconf
Để đưa ra các lệnh bên ngoài thông qua giao diện web đến Nagios, bạn cần thêm user web server (apache
) vào group nagcmd
:
sudo usermod -G nagcmd apache
Cài đặt Nagios Plugins
Người dùng sẽ truy cập trang tải xuống Nagios Plugins, trong trường hợp cần sử dụng lại các bản cũ bạn sẽ truy cập vào link. Copy link để download về server Nagios. Ở thời điểm viết bài thì phiên bản mới nhất là Nagios Plugins 2.11. Bạn có thể dùng lệnh curl để download như sau:
cd ~
curl -L -O http://nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz
Sau đó giải nén file lưu trữ Nagios Plugins:
tar xvf nagios-plugins-*.tar.gz
Vào thư mục vừa giải nén và mở cấu hình Nagios Plugins:
cd nagios-plugins-*
./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl
Sau đó biên dịch bằng lệnh make
rồi cài đặt:
make
sudo make install
Cài đặt NRPE
Tương tự như các bước trên, bạn cũng có thể copy link download NRPE tại đây rồi download bằng 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 file NRPE, vào thư mục vừa giải nén rồi cấu hình NRPE:
tar xvf nrpe-*.tar.gz
cd nrpe-*
./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ờ bạn có thể build rồi cài đặt NRPE trong script startup bằng các lệnh sau:
make all
sudo make install
sudo make install-xinetd
sudo make install-daemon-config
Mở script xinetd trong một editor bất kỳ:
sudo vi /etc/xinetd.d/nrpe
Tìm dòng only_from
, thêm địa chỉ IP private của server Nagios vào cuối (chính xác hơn là thay bằng IP server của bạn):
only_from = 127.0.0.1 10.132.224.168
Sau đó lưu và đóng lại file. Bây giờ chỉ server Nagios mới có thể giao tiếp được với NRPE.
Restart lại dịch vụ xinetd để khởi động NRPE:
sudo service xinetd restart
Bước 2 – Cấu hình Nagios
Ở bước này người dùng sẽ bắt đầu thực hiện cấu hình cho Nagios, phần này chỉ cần thực hiện một lần trên server.
Tổ chức cấu hình Nagios
Mở file cấu hình Nagios (dùng bất kì text editor nào để mở, ví dụ như vi
):
sudo vi /usr/local/nagios/etc/nagios.cfg
Tìm và uncomment dòng sau bằng cách bỏ dấu #
ở trước:
#cfg_dir=/usr/local/nagios/etc/servers
Lưu rồi đóng lại file.
Tiếp theo, tạo một thư mục chứa file cấu hình cho mỗi server cần giám sát:
sudo mkdir /usr/local/nagios/etc/servers
Cấu hình các liên hệ của Nagios
Tiếp theo, mở cấu hình các liên hệ của Nagios:
sudo vi /usr/local/nagios/etc/objects/contacts.cfg
Tìm directive email rồi đổi giá trị thành địa chỉ email của bạn:
email nagios@localhost ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
Sau đó lưu rồi đóng file.
Cấu hình lệnh check_nrpe
Mở cấu hình Nagios:
sudo vi /usr/local/nagios/etc/objects/commands.cfg
Sau đó thêm các dòng dưới đây vào cuối file:
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
Cuối cùng là lưu rồi đóng lại file. Bây giờ bạn có thể dùng lệnh check_nrpe
trong các định nghĩa của dịch vụ Nagios.
Cấu hình Apache
Tiếp theo, dùng htpasswd để tạo một user admin có tên nagiosadmin
có quyền truy cập vào giao diện web Nagios:
sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Nhập mật khẩu để đăng nhập. Hãy ghi nhớ mật khẩu này để truy cập giao diện web Nagios ở những lần sau.
Lưu ý: Nếu bạn sử dụng tên user admin khác thì cần mở file /usr/local/nagios/etc/cgi.cfg
rồi đổi mọi tham chiếu đến “nagiosadmin” thành tên user admin tương ứng của bạn.
Bây giờ hãy restart lại Apache:
sudo systemctl daemon-reload
sudo systemctl start nagios.service
sudo systemctl restart httpd.service
Bạn có thể sử dụng lệnh sau nếu muốn cho phép Nagios khởi động khi server boot:
sudo chkconfig nagios on
(Không bắt buộc) Giới hạn truy cập theo địa chỉ IP
Nếu bạn muốn giới hạn các địa chỉ IP có quyền truy cập vào giao diện web Nagios thì có thể chỉnh sửa file cấu hình Apache:
sudo vi /etc/httpd/conf.d/nagios.conf
Sau đó tìm hai dòng dưới đây rồi comment bằng cách đặt dấu #
ở phía trước:
Order allow,deny
Allow from all
Tiếp theo, uncomment các dòng dưới đây rồi thêm địa chỉ IP hoặc một nhóm địa chỉ (ngăn cách nhau bởi khoảng trắng) mà bạn cần cho phép truy cập vào dòng Allow from
:
# Order deny,allow
# Deny from all
# Allow from 127.0.0.1
Các dòng này xuất hiện hai lần trong file cấu hình, do đó bạn cần thực hiện các bước trên hai lần. Sau khi hoàn tất hãy lưu rồi đóng lại file.
Bây giờ bạn có thể khởi động Nagios và restart Apache để áp dụng các thay đổi:
sudo systemctl restart nagios.service
sudo systemctl restart httpd.service
Bước 3 – Giám sát host bằng Nagios
Truy cập giao diện web Nagios
Tiếp đến, mở một trình duyệt web bất kỳ rồi vào server Nagios như sau (thay địa chỉ hoặc hostname tương ứng của bạn vào lệnh):
http://nagios_server_public_ip/nagios
Vì ta đã cấu hình cho Apache sử dụng htpasswd nên bạn cần nhập các thông tin đăng nhập đã tạo trước đó:
Sau khi xác thực xong, bạn sẽ được đưa đến trang chủ mặc định của Nagios. Click vào link Hosts ở thanh bên trái để xem các host mà Nagios đang giám sát:
Như ảnh trên thì Nagios chỉ đang giám sát “localhost”, tức là chính nó. Bây giờ hãy thử giám sát một host khác bằng Nagios.
Giám sát host CentOS 7 bằng NRPE
Trước tiên hãy cài đặt repo EPEL trên server cần giám sát:
sudo yum install epel-release
Sau đó cài đặt Nagios Plugins và NRPE:
sudo yum install nrpe nagios-plugins-all
Tiếp theo, hãy cập nhật file cấu hình NRPE:
sudo vi /etc/nagios/nrpe.cfg
Tìm directive allowed_hosts
rồi thêm địa chỉ IP private của server Nagios vào phần địa chỉ 10.132.224.168
trong lệnh:
allowed_hosts=127.0.0.1,10.132.224.168
Sau đó lưu rồi đóng lại file. Bây giờ NRPE sẽ chấp nhận các request từ server Nagios của bạn thông qua địa chỉ IP private.
Restart lại NRPE để áp dụng các thay đổi:
sudo systemctl start nrpe.service
sudo systemctl enable nrpe.service
Tiếp theo bạn cần thêm các host muốn giám sát vào cấu hình của server Nagios.
Thêm host và cấu hình Nagios
Trên server Nagios, tạo một file cấu hình mới cho mỗi remote host cần giám sát trong thư mục /usr/local/nagios/etc/servers/
. Thay phần yourhost
trong lệnh thành tên host tương ứng của bạn:
sudo vi /usr/local/nagios/etc/servers/yourhost.cfg
Sau đó thêm phần cấu hình host như sau, thay giá trị host_name
thành tên remote host tương ứng, alias
là phần mô tả host và giá trị address
là địa chỉ IP private của remote host.
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 cấu hình như trên thì Nagios sẽ chỉ giám sát trạng thái xem server có đang hoạt động hay không. Nếu bạn cần giám sát thêm một số dịch vụ cụ thể thì hãy thêm những khối định nghĩa như sau vào cấu hình. Trong đó check_command
xác định những gì cần được giám sát, bao gồm cả giá trị về trạng thái ngưỡng. Bạn có thể tham khảo một số ví dụ như sau:
Ping:
define service {
use generic-service
host_name yourhost
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}
SSH (nếu giá trị notifications_enabled
là 0
thì thông báo sẽ bị disable):
define service {
use generic-service
host_name yourhost
service_description SSH
check_command check_ssh
notifications_enabled 0
}
Sau đó lưu rồi đóng lại file. Reload lại cấu hình để áp dụng các thay đổi mới:
sudo systemctl reload nagios.service
Bây giờ bạn có thể truy cập lại vào giao diện web của Nagios để kiểm tra. Trang Services sẽ cho thấy danh sách các host và dịch vụ đang được giám sát:
Nhìn chung, công việc quản trị server khá phức tạp và yêu cầu người quản trị phải có kiến thức sâu rộng trong lĩnh vực này. Để tiết kiệm chi phí quản trị và giúp hạn chế tối thiểu rủi ro xảy đến, doanh nghiệp nên cân nhắc thuê thiết bị server từ các nhà cung cấp thay vì tự xây dựng hệ thống. Từ đó doanh nghiệp có thể tập trung nhân sự cho vấn đề kinh doanh mà không cần quan tâm đến những đề kỹ thuật.
Một trong những đơn vị cho thuê server được nhiều cá nhân, tổ chức lựa chọn hiện nay là Vietnix. Các gói dịch vụ được thiết kế ổn định, tốc độ cao giúp người dùng có thể an tâm xây dựng thương hiệu, phát triển kinh doanh trên internet.
Qua 11 năm hoạt động, Vietnix hiện đang là một trong những nhà cung cấp dịch vụ Hosting, VPS, cho thuê máy chủ, tên miền, Firewall chất lượng, uy tín hàng đầu Việt Nam. Với sự đầu tư liên tục về hạ tầng và nhân sự để có thể nhanh chóng đáp ứng được các tiêu chuẩn khắt khe của thị trường hosting, VPS,… Vietnix hiện đã được hơn 50.000+ khách hàng trong lẫn ngoài nước tin tưởng trong đó có thể kể đến như: iVIVU.com, GTV, Vietnamwork, UBGroup, KINGFOOD,…
Năm 2022 vừa qua, Vietnix vinh dự nhận được giải thưởng “Thương hiệu Việt Nam xuất sắc 2022”, hạng mục “Sản phẩm dịch vụ xuất sắc”.
Liên hệ Vietnix để được tư vấn chi tiết:
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh
- Hotline: 1800 1093
- Email: sales@vietnix.com.vn
Lời kết
Bài viết này đã hướng dẫn cách cài đặt Nagios 4 để giám sát các host và dịch vụ từ xa trên server CentOS 7. Nếu có bất kỳ thắc mắc nào khác, hãy để lại ở phần bình luận bên dưới để được Vietnix hỗ trợ nhanh nhất nhé. Chúc bạn thành công.