Tại sao việc giám sát hệ thống lại là yếu tố sống còn đối với bất kỳ doanh nghiệp nào trong kỷ nguyên số? Khi mọi hoạt động kinh doanh đều phụ thuộc vào hạ tầng công nghệ, một phút ngừng hoạt động của máy chủ hay mạng có thể gây ra thiệt hại không lường. Việc duy trì hiệu suất và độ ổn định liên tục là một thách thức lớn, đòi hỏi sự theo dõi sát sao và phản ứng tức thì. Đây chính là lúc Nagios xuất hiện như một giải pháp cứu cánh. Nagios là phần mềm giám sát mã nguồn mở mạnh mẽ, tin cậy và cực kỳ linh hoạt, giúp các quản trị viên hệ thống theo dõi toàn diện từ máy chủ, dịch vụ đến các thiết bị mạng. Bài viết này sẽ hướng dẫn bạn chi tiết từng bước cài đặt, cấu hình và sử dụng Nagios trên CentOS 7, giúp bạn làm chủ công cụ giám sát hiệu quả này.
Yêu cầu hệ thống và chuẩn bị môi trường trên CentOS 7
Trước khi đi vào cài đặt, việc chuẩn bị một môi trường sạch và đáp ứng đủ yêu cầu là bước đầu tiên và quan trọng nhất. Điều này đảm bảo quá trình cài đặt Nagios diễn ra suôn sẻ và hệ thống hoạt động ổn định sau này.
Yêu cầu phần cứng và phần mềm cần thiết
Để Nagios hoạt động hiệu quả trên CentOS 7, hệ thống của bạn cần đáp ứng các yêu cầu tối thiểu sau đây. Về phần cứng, bạn cần ít nhất một CPU 1GHz, 1GB RAM và khoảng 200MB dung lượng ổ cứng trống cho việc cài đặt và lưu trữ logs. Tuy nhiên, để có trải nghiệm tốt hơn, AZWEB khuyến nghị sử dụng hệ thống có 2 CPU, 2GB RAM và 1GB ổ cứng. Đặc biệt, việc lựa chọn phần cứng như Chip Xeon và RAM ECC sẽ giúp nâng cao độ ổn định và hiệu suất cho các hệ thống giám sát.
Về phần mềm, bạn cần một máy chủ chạy hệ điều hành CentOS 7 phiên bản tối thiểu. Quan trọng hơn, chúng ta cần cài đặt sẵn một số gói phụ thuộc thiết yếu. Các gói này bao gồm máy chủ web Apache (httpd), ngôn ngữ kịch bản PHP, và các công cụ biên dịch như GCC và gcc-c++ để có thể biên dịch Nagios từ mã nguồn.
Cập nhật hệ thống và cài đặt các gói hỗ trợ
Để đảm bảo tính bảo mật và tương thích, hãy bắt đầu bằng việc cập nhật toàn bộ hệ thống CentOS 7 của bạn. Mở terminal và chạy lệnh sau với quyền root: yum update -y
Sau khi quá trình cập nhật hoàn tất, chúng ta sẽ tiến hành cài đặt Apache, PHP và các công cụ phát triển cần thiết. Đây là những thành phần không thể thiếu để Nagios có thể hoạt động và hiển thị giao diện web. yum install -y httpd php gcc glibc glibc-common gd gd-devel make net-snmp unzip

Tiếp theo, để tăng cường bảo mật, chúng ta không nên chạy Nagios với quyền root. Thay vào đó, hãy tạo một người dùng riêng biệt tên là “nagios” và một nhóm “nagcmd” để quản lý các tiến trình và tệp tin của Nagios. useradd nagios groupadd nagcmd usermod -a -G nagcmd nagios usermod -a -G nagcmd apache
Việc thêm người dùng “apache” vào nhóm “nagcmd” cho phép giao diện web của Nagios có thể thực thi các lệnh cần thiết. Môi trường của bạn bây giờ đã sẵn sàng cho các bước cài đặt tiếp theo. Nếu bạn mới tìm hiểu về web server là gì, hãy tham khảo bài viết này để hiểu rõ hơn về cách vận hành của Apache và các server tương tự.
Các bước cài đặt Nagios trên CentOS 7
Khi môi trường đã được chuẩn bị kỹ lưỡng, chúng ta có thể bắt đầu quá trình cài đặt Nagios Core và Nagios Plugins. Quá trình này bao gồm việc tải mã nguồn, biên dịch và cài đặt chúng vào hệ thống.
Tải và giải nén bộ cài Nagios và Nagios Plugins
Đầu tiên, bạn cần tải về phiên bản mới nhất của Nagios Core và Nagios Plugins từ trang chủ chính thức. Bạn có thể sử dụng lệnh wget để tải trực tiếp về máy chủ của mình. Hãy tạo một thư mục để chứa các tệp tải về, ví dụ như /tmp/nagios.
cd /tmp wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.4.6.tar.gz wget https://nagios-plugins.org/download/nagios-plugins-2.3.3.tar.gz
Sau khi tải về thành công, bạn sẽ có hai tệp nén. Bây giờ, hãy sử dụng lệnh tar để giải nén chúng. tar -zxvf nagios-4.4.6.tar.gz tar -zxvf nagios-plugins-2.3.3.tar.gz

Sau khi giải nén, bạn sẽ thấy hai thư mục mới tương ứng là nagios-4.4.6 và nagios-plugins-2.3.3. Đây chính là các thư mục chứa mã nguồn mà chúng ta sẽ sử dụng để biên dịch và cài đặt.
Biên dịch và cài đặt Nagios cùng với Plugins
Bây giờ là bước quan trọng nhất: biên dịch và cài đặt Nagios Core. Di chuyển vào thư mục mã nguồn Nagios vừa giải nén. cd /tmp/nagios-4.4.6
Quá trình này gồm ba bước chính: cấu hình, biên dịch và cài đặt. Lệnh ./configure sẽ kiểm tra các thành phần phụ thuộc trên hệ thống của bạn và chuẩn bị cho quá trình biên dịch. ./configure --with-command-group=nagcmd

Sau khi cấu hình thành công, hãy chạy lệnh make all để biên dịch toàn bộ mã nguồn. make all
Cuối cùng, chạy các lệnh sau để cài đặt Nagios, khởi tạo các kịch bản, và cài đặt tệp cấu hình. make install make install-init make install-config make install-commandmode make install-webconf
Tiếp theo, chúng ta cần biên dịch và cài đặt Nagios Plugins. Các plugin này là công cụ thiết yếu giúp Nagios kiểm tra các dịch vụ và tài nguyên khác nhau. cd /tmp/nagios-plugins-2.3.3 ./configure --with-nagios-user=nagios --with-nagios-group=nagios make make install

Sau khi hoàn tất các bước trên, Nagios và các plugin cần thiết đã được cài đặt thành công trên hệ thống CentOS 7 của bạn. Bước tiếp theo là cấu hình để bắt đầu giám sát.
Cấu hình phần mềm Nagios để giám sát hệ thống
Cài đặt chỉ là bước khởi đầu. Để Nagios thực sự hữu ích, bạn cần phải cấu hình nó để biết cái gì cần giám sát và ai sẽ nhận cảnh báo. Việc này được thực hiện thông qua các tệp tin văn bản đơn giản.
Thiết lập các dịch vụ và host để giám sát
Các tệp cấu hình chính của Nagios thường nằm trong thư mục /usr/local/nagios/etc/. Tệp quan trọng nhất là nagios.cfg, nó định nghĩa các thiết lập toàn cục và chỉ định đường dẫn đến các tệp cấu hình khác. Mặc định, Nagios cung cấp một bộ tệp cấu hình mẫu trong thư mục /usr/local/nagios/etc/objects/.
Hãy bắt đầu bằng cách chỉnh sửa tệp contacts.cfg để định nghĩa thông tin liên hệ của quản trị viên. Mở tệp và thay đổi địa chỉ email mặc định thành email của bạn. define contact{ contact_name nagiosadmin use generic-contact alias Nagios Admin email your-email@yourdomain.com}
Tiếp theo, chúng ta sẽ định nghĩa máy chủ cần giám sát. Mặc định, tệp localhost.cfg đã được cấu hình sẵn để giám sát chính máy chủ Nagios. Bạn có thể mở tệp này để xem cách một host và các dịch vụ liên quan (như PING, SSH, HTTP, CPU Load) được định nghĩa.

Để thêm một máy chủ mới, bạn có thể tạo một tệp tin .cfg mới trong thư mục objects và khai báo host tương tự. Ví dụ, để giám sát một máy chủ web khác, bạn sẽ tạo một định nghĩa host với địa chỉ IP và các dịch vụ bạn muốn theo dõi. Thông tin chi tiết về cách vận hành máy chủ và các loại máy chủ có thể tham khảo bài viết Server là gì.
Cấu hình thông báo và cảnh báo
Một trong những tính năng mạnh mẽ nhất của Nagios là khả năng gửi thông báo tự động khi có sự cố. Chúng ta đã định nghĩa email của quản trị viên ở bước trước. Bây giờ, bạn cần đảm bảo hệ thống có thể gửi email. Bạn có thể cài đặt một MTA (Mail Transfer Agent) như Postfix hoặc Sendmail.
Trong các tệp cấu hình dịch vụ, bạn có thể tinh chỉnh tần suất kiểm tra và thời gian timeout. Ví dụ, check_interval xác định tần suất Nagios kiểm tra dịch vụ (tính bằng phút) khi trạng thái là OK, trong khi retry_interval là tần suất kiểm tra lại khi dịch vụ gặp sự cố. Việc tùy chỉnh các thông số này giúp bạn cân bằng giữa việc phát hiện sự cố nhanh chóng và tránh gây quá tải cho hệ thống. Đừng quên xác thực tệp cấu hình của bạn trước khi khởi động lại dịch vụ Nagios để đảm bảo không có lỗi cú pháp. /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Khởi động và kiểm tra dịch vụ Nagios
Sau khi hoàn tất cài đặt và cấu hình ban đầu, đã đến lúc chúng ta “bật công tắc” và xem thành quả. Bước này bao gồm việc khởi động dịch vụ Nagios, Apache và đảm bảo chúng sẽ tự động chạy mỗi khi máy chủ khởi động lại.
Khởi tạo dịch vụ Nagios và bật trong hệ thống
Trước tiên, chúng ta cần khởi động dịch vụ máy chủ web Apache, vì giao diện của Nagios chạy trên đó. systemctl start httpd
Tiếp theo, hãy khởi động dịch vụ Nagios. systemctl start nagios
Để đảm bảo Nagios và Apache luôn hoạt động mỗi khi bạn khởi động lại máy chủ, hãy bật chúng lên bằng các lệnh sau: systemctl enable httpd systemctl enable nagios
Những lệnh này sẽ tạo các liên kết cần thiết để systemd tự động khởi chạy các dịch vụ này trong quá trình boot hệ thống. Điều này rất quan trọng để đảm bảo việc giám sát không bị gián đoạn. Nếu bạn muốn hiểu thêm về server và cách hoạt động khi chạy dịch vụ, bài viết Phòng server là gì và IaaS là gì sẽ giúp bạn có một cái nhìn toàn cảnh hơn về hạ tầng và môi trường vận hành.
Kiểm tra trạng thái và truy cập giao diện Web
Sau khi khởi động, bạn nên kiểm tra trạng thái của cả hai dịch vụ để chắc chắn rằng chúng đang chạy mà không gặp lỗi. systemctl status httpd systemctl status nagios

Nếu cả hai đều hiển thị trạng thái “active (running)”, xin chúc mừng, bạn đã cài đặt thành công!
Bây giờ là phần thú vị nhất: truy cập giao diện web của Nagios. Trước khi làm điều đó, bạn cần tạo một tài khoản để đăng nhập. Hãy tạo mật khẩu cho người dùng nagiosadmin bằng lệnh htpasswd. htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Sau khi nhập và xác nhận mật khẩu, hãy mở trình duyệt web và truy cập vào địa chỉ: http://[IP-may-chu-cua-ban]/nagios. Một hộp thoại đăng nhập sẽ xuất hiện. Hãy sử dụng tên người dùng là nagiosadmin và mật khẩu bạn vừa tạo.

Nếu đăng nhập thành công, bạn sẽ được chào đón bởi giao diện điều khiển của Nagios, nơi bạn có thể bắt đầu theo dõi hệ thống của mình.
Hướng dẫn cơ bản sử dụng Nagios để giám sát hiệu suất mạng
Giao diện web của Nagios là trung tâm điều khiển của bạn. Từ đây, bạn có thể xem trạng thái tổng quan của toàn bộ hạ tầng, đi sâu vào chi tiết của từng máy chủ và dịch vụ, cũng như phân tích các dữ liệu lịch sử.
Theo dõi tình trạng tài nguyên máy chủ
Khi đăng nhập vào Nagios, trang đầu tiên bạn thấy là bảng điều khiển chính. Ở phía bên trái, bạn sẽ thấy một menu điều hướng. Hãy nhấp vào mục “Hosts” để xem danh sách tất cả các máy chủ bạn đang giám sát và trạng thái của chúng (Up, Down, hoặc Unreachable). Nhấp vào một host cụ thể sẽ hiển thị tất cả các dịch vụ được giám sát trên host đó.
Ví dụ, với cấu hình localhost mặc định, bạn sẽ thấy các dịch vụ như “CPU Load”, “Current Users”, “HTTP”, “PING”, “Root Partition”, và “SSH”. Nagios sẽ hiển thị trạng thái của từng dịch vụ (OK, Warning, Critical, hoặc Unknown) cùng với thông tin chi tiết. Chẳng hạn, dịch vụ “Root Partition” sẽ cho bạn biết dung lượng ổ đĩa đã sử dụng và còn trống. Bạn có thể thiết lập ngưỡng cảnh báo (Warning và Critical) cho từng dịch vụ. Ví dụ, bạn có thể cấu hình Nagios gửi cảnh báo khi dung lượng ổ đĩa sử dụng vượt quá 85% (Warning) và 95% (Critical).
Phân tích và báo cáo hiệu suất mạng qua Nagios
Nagios không chỉ hiển thị trạng thái hiện tại mà còn lưu trữ dữ liệu lịch sử, cho phép bạn phân tích hiệu suất theo thời gian. Trong menu bên trái, mục “Reports” cung cấp nhiều loại báo cáo hữu ích. Báo cáo “Availability” cho bạn biết tỷ lệ phần trăm thời gian hoạt động (uptime) của các host và dịch vụ, giúp bạn đánh giá độ tin cậy của hệ thống.

Báo cáo “State History” ghi lại mọi thay đổi trạng thái, giúp bạn truy vết lại thời điểm và nguyên nhân của sự cố. Bạn cũng có thể xem các biểu đồ xu hướng (Trends) để theo dõi việc sử dụng tài nguyên như CPU và bộ nhớ theo thời gian. Các báo cáo này có thể được tùy chỉnh theo khoảng thời gian và đối tượng giám sát cụ thể, cung cấp những thông tin quý giá cho việc lập kế hoạch nâng cấp hoặc tối ưu hóa hệ thống. Việc tận dụng tốt các tính năng báo cáo này sẽ biến Nagios từ một công cụ cảnh báo đơn thuần thành một trợ thủ đắc lực trong quản trị hệ thống.
Khắc phục sự cố phổ biến khi cài đặt và sử dụng Nagios
Mặc dù quá trình cài đặt Nagios khá đơn giản, đôi khi bạn vẫn có thể gặp phải một số lỗi phổ biến. Hiểu rõ nguyên nhân và cách khắc phục sẽ giúp bạn tiết kiệm rất nhiều thời gian và công sức.
Lỗi không khởi động được dịch vụ Nagios
Đây là sự cố thường gặp nhất sau khi cài đặt hoặc thay đổi cấu hình. Khi bạn chạy lệnh systemctl start nagios và dịch vụ không thể khởi động, nguyên nhân hàng đầu thường là do lỗi cú pháp trong các tệp cấu hình .cfg.
Để chẩn đoán, hãy luôn chạy lệnh kiểm tra cấu hình trước khi khởi động lại dịch vụ: /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Lệnh này sẽ quét tất cả các tệp cấu hình và chỉ ra chính xác dòng nào bị lỗi. Các lỗi phổ biến bao gồm dấu ngoặc nhọn {} không cân xứng, thiếu một tham số bắt buộc, hoặc định nghĩa trùng lặp. Một nguyên nhân khác có thể là vấn đề về quyền truy cập. Hãy đảm bảo người dùng nagios có quyền đọc các tệp cấu hình và quyền ghi vào các thư mục log và spool. Cuối cùng, việc thiếu một gói phụ thuộc nào đó cũng có thể gây ra lỗi. Kiểm tra lại log hệ thống (/var/log/messages) có thể cung cấp thêm manh mối.
Giao diện web Nagios không truy cập được
Nếu dịch vụ Nagios đang chạy nhưng bạn không thể truy cập giao diện web, vấn đề thường nằm ở Apache hoặc firewall. Đầu tiên, hãy kiểm tra xem dịch vụ Apache (httpd) có đang hoạt động không: systemctl status httpd.
Nếu Apache đang chạy, nguyên nhân tiếp theo có thể là do firewall của CentOS đang chặn cổng 80 (HTTP). Bạn có thể kiểm tra và mở cổng này bằng các lệnh sau: firewall-cmd --zone=public --add-service=http --permanent firewall-cmd --reload

Một vấn đề khác liên quan đến SELinux. Mặc định, SELinux trên CentOS có thể chặn Apache thực thi các script CGI của Nagios. Bạn có thể tạm thời đặt SELinux ở chế độ cho phép (permissive) để kiểm tra: setenforce 0. Nếu cách này giải quyết được vấn đề, bạn cần cấu hình các quy tắc SELinux phù hợp thay vì tắt nó hoàn toàn. Cuối cùng, hãy kiểm tra lại cấu hình Apache cho Nagios tại /etc/httpd/conf.d/nagios.conf để đảm bảo các quyền truy cập và đường dẫn được thiết lập chính xác. Nếu bạn gặp các lỗi liên quan đến máy chủ hoặc web server, hãy tham khảo thêm bài viết về Lỗi 502 Bad Gateway hoặc Lỗi 403 Forbidden để biết cách xử lý.
Best Practices
Để vận hành Nagios một cách hiệu quả và bền vững, việc tuân thủ các thực tiễn tốt nhất là vô cùng quan trọng. Những kinh nghiệm này giúp tối ưu hóa hiệu suất, tăng cường bảo mật và đảm bảo hệ thống giám sát của bạn luôn đáng tin cậy.
- Luôn sao lưu tệp cấu hình trước khi thay đổi: Đây là quy tắc vàng. Trước khi chỉnh sửa bất kỳ tệp
.cfgnào, hãy tạo một bản sao. Nếu cấu hình mới gây ra lỗi, bạn có thể nhanh chóng khôi phục lại phiên bản hoạt động ổn định trước đó. Tham khảo thêm về Revision là gì để hiểu rõ hơn về quản lý phiên bản trong hosting. - Cập nhật Nagios và plugin định kỳ: Giống như bất kỳ phần mềm nào, Nagios và các plugin của nó luôn có các bản cập nhật để vá lỗi bảo mật và cải thiện tính năng. Việc thường xuyên kiểm tra và nâng cấp lên phiên bản mới nhất giúp hệ thống của bạn được bảo vệ tốt hơn.
- Tối ưu cấu hình kiểm tra để tránh quá tải máy chủ: Đừng đặt tần suất kiểm tra (
check_interval) quá dày đặc một cách không cần thiết. Việc kiểm tra liên tục có thể gây ra tải không cần thiết cho cả máy chủ Nagios và các máy chủ được giám sát. Hãy điều chỉnh thông số này phù hợp với mức độ quan trọng của từng dịch vụ. - Không tắt các cảnh báo quan trọng: Có thể bạn sẽ cảm thấy phiền toái khi nhận được nhiều cảnh báo, nhưng đừng tắt chúng một cách bừa bãi. Mỗi cảnh báo đều là một dấu hiệu tiềm ẩn. Thay vào đó, hãy tinh chỉnh các ngưỡng (thresholds) để cảnh báo trở nên hữu ích và chính xác hơn, giúp bạn không bỏ sót bất kỳ sự cố nghiêm trọng nào.
Kết luận
Qua hướng dẫn chi tiết này, chúng ta đã cùng nhau đi qua toàn bộ quá trình từ chuẩn bị môi trường, cài đặt, cấu hình cho đến sử dụng và khắc phục sự cố cơ bản của phần mềm giám sát Nagios trên hệ điều hành CentOS 7. Việc triển khai thành công Nagios mang lại một lợi ích to lớn: bạn có được một “người lính gác” cần mẫn, theo dõi sức khỏe của toàn bộ hạ tầng công nghệ 24/7. Điều này không chỉ giúp bạn phát hiện và xử lý sự cố nhanh chóng hơn mà còn cung cấp dữ liệu quý giá để tối ưu hóa hiệu suất và lập kế hoạch cho tương lai.
AZWEB khuyến khích bạn hãy bắt tay vào thực hành ngay theo các bước đã hướng dẫn. Việc tự mình cài đặt và cấu hình sẽ giúp bạn hiểu sâu hơn về cách hoạt động của hệ thống. Để mở rộng kiến thức và xử lý các bài toán giám sát nâng cao hơn, đừng ngần ngại tham khảo các tài liệu chính thức từ trang chủ Nagios và tham gia vào cộng đồng người dùng đông đảo trên khắp thế giới. Bảo vệ hệ thống của bạn hiệu quả chính là bảo vệ sự thành công của doanh nghiệp bạn. Nếu bạn đang tìm kiếm một VPS tốt nhất để triển khai Nagios hoặc các dịch vụ giám sát, hãy tham khảo các lựa chọn về VPS Singapore, VPS Hong Kong hoặc Thuê VPS theo giờ phù hợp với nhu cầu thử nghiệm và vận hành của bạn.