Monitoring

Hướng dẫn cài đặt Nagios trên Centos 8

Nagios-Core-logo

Nagios là một hệ thống giám sát máy tính nguồn mở phổ biến và mạnh mẽ nhất. Nó theo dõi cơ sở hạ tầng CNTT của bạn và đảm bảo rằng mạng, máy chủ, ứng dụng và quy trình của bạn đang chạy trơn tru. Sử dụng hệ thống giám sát cho phép bạn xác định các vấn đề trước khi chúng xảy ra và triển khai các bản sửa lỗi nhanh chóng, giúp tiết kiệm chi phí và thời gian ngừng hoạt động.

Trong hướng dẫn này, bạn sẽ học cách cài đặt và cấu hình Nagios trên máy chủ chạy CentOS 8. Chúng tôi cũng sẽ thực hiện một số cấu hình cơ bản và cài đặt Nagios Remote Plugin Executor (NPRE), cho phép chúng tôi giám sát các máy chủ từ xa.

Điều kiện tiên quyết

  1. Một máy chủ chạy CentOS 8
  2. Người dùng không sử dụng sudo có quyền root.
  3. SELinux đã bị vô hiệu hóa
  4. Một máy chủ khác chạy CentOS 8 mà bạn muốn theo dõi.
  5. Đảm bảo mọi thứ đều được cập nhật.$ sudo dnf update

Bước 1 – Cấu hình Tường lửa

Bước đầu tiên là cấu hình tường lửa. Máy chủ Fedora đi kèm với tường lửa Firewalld.

Kiểm tra xem tường lửa có đang chạy không.

$ sudo firewall-cmd --state

Bạn sẽ nhận được kết quả sau.

running

Kiểm tra các dịch vụ/cổng hiện được phép.

$ sudo firewall-cmd --permanent --list-services

Nó sẽ hiển thị kết quả sau.

dhcpv6-client mdns ssh

Cho phép các cổng HTTP và HTTPS.

$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https

Kiểm tra lại trạng thái của tường lửa.

$ sudo firewall-cmd --permanent --list-services

Bạn sẽ thấy kết quả tương tự.Ezoic

dhcpv6-client http https mdns ssh

Tải lại Tường lửa.

$ sudo systemctl reload firewalld

Bước 2 – Cài đặt Apache và PHP

Để chạy Nagios, bạn sẽ cần cài đặt Apache cùng với PHP.

Cài đặt và kích hoạt dịch vụ Apache.

$ sudo dnf install httpd
$ sudo systemctl enable --now httpd

Để cài đặt PHP, chúng ta sẽ sử dụng Remi Repo. Cài đặt Remi Repo và bật PHP 7.4.

$ sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
$ sudo dnf module reset php
$ sudo dnf module enable php:remi-7.4

Cài đặt PHP và một số module PHP phổ biến.Ezoic

$ sudo dnf install php php-gd php-curl

Bật PHP và khởi động dịch vụ.

$ sudo systemctl enable --now php-fpm

Khởi động lại dịch vụ Apache để thay đổi có hiệu lực.

$ sudo systemctl restart httpd

Bạn có thể kiểm tra việc cài đặt Apache và PHP bằng cách tạo một tệp  info.php trong  /var/www/html thư mục do trình cài đặt Apache tạo ra.

$ sudo nano /var/www/html/info.php

Dán đoạn mã sau vào trình soạn thảo.

<?php phpinfo();

Lưu tệp bằng cách nhấn  Ctrl + X  và nhập  Y  khi được nhắc.

Mở URL  http://<yourserverip>/info.php trong trình duyệt của bạn và bạn sẽ thấy trang sau.

Bước 3 – Cài đặt Nagios

Hầu hết hướng dẫn này sẽ yêu cầu bạn cài đặt và làm việc trên máy chủ chính của mình.

Cài đặt phụ thuộc

Hướng dẫn này sẽ yêu cầu Nagios và các plugin của nó được xây dựng từ nguồn. Do đó, trước tiên bạn cần cài đặt một số thư viện phát triển.

$ sudo dnf install gcc glibc glibc-common gd gd-devel make net-snmp openssl-devel xinetd unzip wget gettext autoconf net-snmp-utils epel-release postfix automake
$ sudo dnf config-manager --enable powertools 
$ sudo dnf install perl-Net-SNMP

Tải xuống Nagios

Chuyển đến  /usr/src thư mục nơi chúng ta sẽ đặt các tệp nguồn Nagios đã tải xuống.

$ cd /usr/src

Tải xuống phiên bản mới nhất của Nagios từ trang Github. Tại thời điểm hướng dẫn, 4.4.6 là phiên bản mới nhất có sẵn. Sửa đổi lệnh trong trường hợp bạn muốn phiên bản khác.

$ sudo wget https://github.com/NagiosEnterprises/nagioscore/archive/nagios-4.4.6.tar.gz

Giải nén tập tin tar.

$ sudo tar zxf nagios-*.tar.gz

Chuyển sang thư mục nguồn Nagios.

$ cd nagioscore-nagios-*/

Biên dịch Nagios

Bước tiếp theo là biên dịch Nagios từ các tệp nguồn của nó. Chạy tập  configure lệnh để thực hiện kiểm tra để đảm bảo tất cả các phụ thuộc đều có mặt.

$ sudo ./configure

Bạn sẽ nhận được kết quả tương tự sau khi hoàn tất tập lệnh thành công.

*** Configuration summary for nagios 4.4.6 2020-04-28 ***:

 General Options:
 -------------------------
        Nagios executable:  nagios
        Nagios user/group:  nagios,nagios
       Command user/group:  nagios,nagios
             Event Broker:  yes
        Install ${prefix}:  /usr/local/nagios
    Install ${includedir}:  /usr/local/nagios/include/nagios
                Lock file:  /run/nagios.lock
   Check result directory:  /usr/local/nagios/var/spool/checkresults
           Init directory:  /lib/systemd/system
  Apache conf.d directory:  /etc/httpd/conf.d
             Mail program:  /sbin/sendmail
                  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ắt đầu biên dịch.

$ sudo make all

Tạo người dùng và nhóm Nagios

Tạo người dùng và nhóm mới để chạy quy trình Nagios.

$ sudo make install-groups-users

Bạn sẽ thấy kết quả sau.

groupadd -r nagios
useradd -g nagios nagios

Thêm  apache người dùng vào  nagios nhóm.

$ sudo usermod -a -G nagios apache

Cài đặt Nagios Binaries

Chạy lệnh sau để cài đặt tệp nhị phân Nagios, CGI và tệp HTML.

$ sudo make install

Tạo thư mục lệnh bên ngoài

Nagios có thể xử lý các lệnh từ các ứng dụng bên ngoài và để làm được điều đó, cần phải thiết lập một thư mục.

$ sudo make install-commandmode
/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/var/rw
chmod g+s /usr/local/nagios/var/rw

*** External command directory configured ***

Cài đặt tập tin cấu hình Nagios

Cài đặt các tệp cấu hình mẫu.

$ sudo make install-config

Cài đặt tập tin cấu hình Apache

Chạy lệnh sau để cài đặt các tệp cấu hình Apache.

$ sudo make install-webconf

Khởi động lại máy chủ web để kích hoạt cấu hình.

$ sudo systemctl restart httpd

Tạo một tập tin dịch vụ Systemd

Chạy lệnh sau để cài đặt tệp đơn vị systemd.

$ sudo make install-daemoninit

Bật xác thực HTTP

Bạn có thể khóa giao diện web Nagios thông qua xác thực HTTP. Để làm được điều đó, hãy tạo một người dùng quản trị có tên là  nagiosadmin.

Chạy lệnh sau để sử dụng  htpasswd để tạo người dùng. Bạn sẽ được nhắc nhập mật khẩu.

$ sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
New password:
Re-type new password:
Adding password for user nagiosadmin

Khởi động lại máy chủ để cấu hình có hiệu lực.

$ sudo systemctl restart httpd

Bước 4 – Cài đặt Nagios Plugins

Cài đặt các điều kiện tiên quyết cần thiết cho plugin Nagios.

$ sudo dnf install -y gcc glibc glibc-common make gettext automake autoconf wget openssl-devel net-snmp net-snmp-utils epel-release postgresql-devel libdbi-devel openldap-devel mysql-devel mysql-libs bind-utils samba-client fping openssh-clients lm_sensors
$ sudo dnf config-manager --enable powertools
$ sudo dnf install -y perl-Net-SNMP

Quay lại  /usr/src thư mục.

$ cd /usr/src

Tải xuống phiên bản mới nhất của Nagios từ  trang Github của nó . Tại thời điểm hướng dẫn, 2.3.3 là phiên bản mới nhất có sẵn. Sửa đổi lệnh trong trường hợp bạn muốn một phiên bản khác.

$ sudo wget -O nagios-plugins.tar.gz https://github.com/nagios-plugins/nagios-plugins/releases/download/release-2.3.3/nagios-plugins-2.3.3.tar.gz

Giải nén tập tin tar.

$ sudo tar zxf nagios-plugins.tar.gz

Chuyển tới thư mục plugin.

$ cd nagios-plugins-*

Chạy các lệnh sau để biên dịch và cài đặt plugin.

$ sudo ./configure
$ sudo make
$ sudo make install

Bước 5 – Cài đặt plugin check_nrpe

Chuyển sang  /usr/src thư mục.

$ cd /usr/src

Tải xuống phiên bản mới nhất của NPRE từ  trang Github của nó . Tại thời điểm viết hướng dẫn này, phiên bản mới nhất có sẵn là 4.0.3. Sửa đổi lệnh sau trong trường hợp bạn muốn một phiên bản khác.

$ sudo wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.3/nrpe-4.0.3.tar.gz

Giải nén tệp lưu trữ.

$ sudo tar zxf nrpe-*.tar.gz

Chuyển tới thư mục NPRE.

$ cd nrpe-4.0.3

Cấu hình và cài đặt plugin.

$ sudo ./configure
$ sudo make check_nrpe
$ sudo make install-plugin

Thao tác này sẽ đặt  check_nrpe plugin vào trong  /usr/local/nagios/libexec/ thư mục.

Bước 6 – Khởi động Nagios

Sau khi Nagios và các plugin đã được cài đặt, đã đến lúc khởi động dịch vụ Nagios.

$ sudo systemctl start nagios

Kiểm tra trạng thái của dịch vụ để xem nó có chạy bình thường không.

$ sudo systemctl status nagios

Giao diện web Nagios

Mở URL  http://<domain_or_ip_address>/nagios trong trình duyệt của bạn. Bạn sẽ thấy lời nhắc đăng nhập.

Nhập thông tin đăng nhập bạn đã tạo trong phương thức xác thực HTTP và bạn sẽ thấy màn hình sau.

Bước 7 – Giám sát máy chủ

Để giám sát máy chủ, bạn cần cài đặt NRPE Daemon và plugin Nagios trên máy chủ. Chúng tôi sẽ giám sát máy chủ dựa trên CentOS 8 từ máy chủ Nagios của chúng tôi.

Đăng nhập vào máy chủ của bạn.

$ ssh user@monitored_server_ip

Cài đặt Nagios Plugins

Cài đặt plugin Nagios bằng cách lặp lại bước 4 trước đó.

Cài đặt NRPE

Cài đặt các điều kiện tiên quyết cần thiết cho daemon NRPE.

$ sudo dnf install -y gcc glibc glibc-common openssl openssl-devel perl wget

Chuyển sang  /usr/src thư mục.

$ cd /usr/src

Tải xuống NRPE.

$ sudo wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-4.0.3/nrpe-4.0.3.tar.gz

Giải nén tệp lưu trữ.

$ sudo tar zxf nrpe-*.tar.gz

Chuyển tới thư mục NPRE.

$ cd nrpe-4.0.3

Cấu hình và cài đặt NPRE.

$ sudo ./configure --enable-command-args
$ sudo make all

Tạo Người dùng và nhóm.

$ sudo make install-groups-users

Cài đặt NPRE Binaries, NPRE daemon và plugin check_npre.

$ sudo make install

Cài đặt các tập tin cấu hình.

$ sudo make install-config

Cập nhật tệp dịch vụ.  /etc/services Tệp này được sử dụng để dịch tên dịch vụ thành số cổng.

$ sudo sh -c "echo >> /etc/services"
$ sudo sh -c "sudo echo '# Nagios services' >> /etc/services"
$ sudo sh -c "sudo echo 'nrpe    5666/tcp' >> /etc/services"

Cài đặt daemon dịch vụ NPRE.

$ sudo make install-init
$ sudo systemctl enable nrpe

Bạn cần cập nhật tệp cấu hình NPRE nằm tại  /usr/local/nagios/etc/nrpe.cfg.

Mở tệp để chỉnh sửa.

$ sudo nano /usr/local/nagios/etc/nrpe.cfg

Theo mặc định, NPRE chỉ lắng nghe các yêu cầu từ máy chủ cục bộ (127.0.0.1). Bạn cần thêm địa chỉ IP của máy chủ Nagios vào tệp.

allowed_hosts=127.0.0.1,10.25.5.2

Tùy chọn sau đây xác định xem daemon NPRE có cho phép máy khách chỉ định đối số lệnh hay không. Cho phép tùy chọn bằng cách nhập giá trị  1 cho phép cấu hình NPRE nâng cao.

dont_blame_nrpe=1

Tiếp theo, khi bạn cuộn xuống, bạn sẽ thấy danh sách các lệnh NRPE cùng với định nghĩa của chúng. Tất cả chúng đều được chú thích. Bạn cần bỏ chú thích để Nagios có thể sử dụng chúng.

Mỗi lệnh có thể được truyền tham số. Một số lệnh có tham số được mã hóa cứng ở phía trước trong khi một số có thể chấp nhận tham số từ người dùng. Mỗi lệnh có thể có các tùy chọn thông báo sau.

  • W = viết tắt của Trạng thái dịch vụ cảnh báo
  • C = là viết tắt của trạng thái dịch vụ quan trọng
  • R = là viết tắt của thông báo về việc phục hồi dịch vụ (trạng thái OK)

Vì vậy, bạn có thể chỉ định loại thông báo nào mà lệnh có thể gửi. Chúng tôi sẽ không đi sâu vào mô tả chi tiết và chức năng của từng lệnh vì chúng nằm ngoài phạm vi của hướng dẫn này.

# The following examples use hardcoded command arguments...
# This is by far the most secure method of using NRPE

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

# The following examples allow user-supplied arguments and can
# only be used if the NRPE daemon was compiled with support for
# command arguments *AND* the dont_blame_nrpe directive in this
# config file is set to '1'.  This poses a potential security risk, so
# make sure you read the SECURITY file before doing this.

### MISC SYSTEM METRICS ###
command[check_users]=/usr/local/nagios/libexec/check_users $ARG1$
command[check_load]=/usr/local/nagios/libexec/check_load $ARG1$
command[check_disk]=/usr/local/nagios/libexec/check_disk $ARG1$
command[check_swap]=/usr/local/nagios/libexec/check_swap $ARG1$
command[check_cpu_stats]=/usr/local/nagios/libexec/check_cpu_stats.sh $ARG1$
command[check_mem]=/usr/local/nagios/libexec/custom_check_mem -n $ARG1$

### GENERIC SERVICES ###
command[check_init_service]=sudo /usr/local/nagios/libexec/check_init_service $ARG1$
command[check_services]=/usr/local/nagios/libexec/check_services -p $ARG1$

### SYSTEM UPDATES ###
command[check_yum]=/usr/local/nagios/libexec/check_yum
command[check_apt]=/usr/local/nagios/libexec/check_apt

### PROCESSES ###
command[check_all_procs]=/usr/local/nagios/libexec/custom_check_procs
command[check_procs]=/usr/local/nagios/libexec/check_procs $ARG1$

### OPEN FILES ###
command[check_open_files]=/usr/local/nagios/libexec/check_open_files.pl $ARG1$

### NETWORK CONNECTIONS ###
command[check_netstat]=/usr/local/nagios/libexec/check_netstat.pl -p $ARG1$ $ARG2$

Bỏ chú thích các lệnh trên bằng cách xóa  # biểu tượng trước chúng. Bạn có thể bỏ chú thích bao nhiêu lệnh tùy ý.

Khi hoàn tất, hãy lưu tệp bằng cách nhấn  Ctrl + X  và nhập  Y  khi được nhắc.

Cho phép cổng 5666 được plugin NPRE sử dụng.

$ sudo firewall-cmd --permanent --add-port=5666/tcp

Tải lại tường lửa.

$ sudo systemctl reload firewalld

Bắt đầu NPRE.

$ sudo systemctl start nrpe

Tất cả các lệnh từ đây trở đi sẽ được chạy trên máy chủ Nagios chính trừ khi có chỉ định khác.

Kiểm tra xem NRPE có hoạt động hay không bằng cách chạy lệnh sau trên máy chủ Nagios chính của bạn.

$ /usr/local/nagios/libexec/check_nrpe -H monitored_server_ip

Bạn sẽ thấy kết quả sau.

NRPE v4.0.3

Để giám sát các máy chủ, bạn sẽ cần tạo các tệp cấu hình cho từng máy chủ mà bạn muốn giám sát. Các máy chủ này sau đó sẽ có thể truy cập được thông qua giao diện web Nagios.

Tạo thư mục để lưu trữ các tập tin cấu hình và cấp cho nó các quyền thích hợp.

$ sudo mkdir /usr/local/nagios/etc/servers
$ sudo chown -R nagios:nagios /usr/local/nagios/etc/servers
$ sudo chmod g+w /usr/local/nagios/etc/servers

Mở tệp cấu hình Nagios  /usr/local/nagios/etc/nagios.cfg để chỉnh sửa. Tìm tệp sau và bỏ chú thích bằng cách xóa  # ở phía trước tệp.

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

Lưu tệp bằng cách nhấn  Ctrl + X  và nhập  Y  khi được nhắc.

Bước tiếp theo là thêm lệnh  check_nrpe vào  /usr/local/nagios/etc/objects/commands.cfg tệp để có thể sử dụng lệnh đó để giám sát máy chủ.

Mở tệp  /usr/local/nagios/etc/objects/commands.cfg để chỉnh sửa.

$ sudo nano /usr/local/nagios/etc/objects/commands.cfg

Dán đoạn mã sau vào cuối tệp.

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

Lưu tệp bằng cách nhấn  Ctrl + X  và nhập  Y  khi được nhắc.

Tạo một tệp cấu hình mới cho máy chủ từ xa trong  /usr/local/nagios/etc/servers/ thư mục.

$ sudo nano /usr/local/nagios/etc/servers/yourhost.cfg

Thêm mã sau bằng cách thay thế  host_name giá trị bằng tên máy chủ từ xa,  alias giá trị bằng mô tả cho máy chủ của bạn và  address giá trị bằng địa chỉ IP của máy chủ từ xa.

define host {
        use                             linux-server
        host_name                       monitored_server_host_name
        alias                           My client server
        address                         monitored_server_private_ip
        max_check_attempts              5
        check_period                    24x7
        notification_interval           30
        notification_period             24x7
}

Với cấu hình này, Nagios sẽ cho bạn biết khi nào máy chủ hoạt động hoặc ngừng hoạt động. Bạn sẽ cần thêm nhiều dịch vụ hơn để giám sát những thứ bổ sung.

Thêm khối sau để kiểm tra số liệu thống kê kết nối cho máy chủ.

define service {
      use                             generic-service
      host_name                       client01
      service_description             PING
      check_command                   check_ping!200.0,20%!400.0,90%
}

Thêm khối sau để theo dõi mức tải trung bình của máy chủ.

define service {
        use                             generic-service
        host_name                       monitored_server_host_name
        service_description             Load average
        check_command                   check_nrpe!check_load!-a '-w 0.7,0.6,0.5 -c 0.9,0.8,0.7'
}

Chỉ thị này  use generic-service yêu cầu Nagios kế thừa từ một mẫu được  generic-serviceNagios xác định trước.

Tiếp theo, thêm một khối để theo dõi mức sử dụng đĩa.

define service {
        use                             generic-service
        host_name                       monitored_server_host_name
        service_description             /dev/sda1 free space
        check_command                   check_nrpe!check_disk!-a '-w 20% -c 10% -p /dev/sda1'
}

Tiếp theo, chúng ta có thể theo dõi dịch vụ HTTP bằng khối mã sau.

define service {
    use                 				generic-service
    host_name 					        monitored_server_host_name
    service_description 				HTTP
    check_command       				check_http
}

Giám sát SSH bằng khối sau. Khối sau sẽ kiểm tra máy chủ SSH và tạo cảnh báo nếu máy chủ không phản hồi trong vòng 5 giây.

define service {
    use                                 generic-service
    host_name                           nagiosclient
    service_description                 SSH Version Check
    check_command                       check_ssh!-t 5
}

Chúng ta hãy kiểm tra tổng số tiến trình đang chạy.

define service{                     
    use                     			generic-service            
    host_name               			monitored_server_host_name            
    service_description     			Total Processes            
    check_command           			check_nrpe!check_total_procs
}

Kiểm tra những người dùng hiện đang đăng nhập.

define service{                     
    use                     			generic-service            
    host_name               			monitored_server_host_name            
    service_description     			Current Users            
    check_command           			check_nrpe!check_users!-a '-w 5 -c 10'
}

Kiểm tra phân vùng gốc và mức sử dụng đĩa của nó.

define service{                     
    use                     			generic-service            
    host_name               			monitored_server_host_name            
    service_description     			Root / Partition            
    check_command           			check_nrpe!check_root
}

Kiểm tra mức sử dụng đĩa SWAP.

define service{                     
    use                     			generic-service            
    host_name               			monitored_server_host_name            
    service_description     			SWAP Usage            
    check_command           			check_nrpe!check_swap!-a '-w 40% -c 20%'
}

Lưu tệp bằng cách nhấn  Ctrl + X  và nhập  Y  khi được nhắc.

Khởi động lại Nagios.

$ sudo systemctl restart nagios

Kiểm tra màn hình

Mở bảng điều khiển Nagios của bạn và nhấp vào tùy chọn Hosts từ thanh bên trái. Bạn sẽ thấy máy chủ mới được cấu hình cùng với localhost trên trang.

Nhấp vào máy chủ mới được cấu hình ( nagiosclient ) và nếu mọi thứ được cấu hình đúng, bạn sẽ thấy trạng thái của nó. Sẽ mất khoảng một phút để trạng thái xuất hiện.

Để xem các dịch vụ hoặc màn hình chúng tôi đã cấu hình, hãy nhấp vào tùy chọn  Xem chi tiết trạng thái cho máy chủ này  và bạn sẽ thấy trang sau.

Trong trường hợp của chúng tôi, chúng tôi chưa cấu hình bộ nhớ Swap và do đó chúng tôi nhận được trạng thái quan trọng cho dịch vụ vì không gian Swap là 0. Điều này sẽ giúp bạn hiểu rõ hơn về cách máy chủ của bạn hoạt động.

Bước 8 – Cài đặt và cấu hình Nginx

Bạn có thể chạy Nagios trực tiếp qua IP máy chủ hoặc để nó lưu trữ trên tên miền của riêng bạn. Nagios đã được cung cấp với các tệp cấu hình Apache, nhưng chúng tôi sẽ sử dụng Nginx để chạy nó. Chúng tôi sẽ sử dụng Nginx làm proxy ngược trước máy chủ web Apache.

Apache đã chạy nó trên cổng 80. Do đó, trước tiên chúng ta cần thay đổi cổng đó. Sau đó, chúng ta có thể chạy Nginx như một proxy.

Mở tệp  /etc/httpd/conf/httpd.conf để chỉnh sửa.

$ sudo nano /etc/httpd/conf/httpd.conf

Đổi dòng  Listen 80 thành  Listen 8080.

Lưu tệp bằng cách nhấn  Ctrl + X  và nhập  Y  khi được nhắc.

Thêm địa chỉ IP mới vào tường lửa của bạn.

$ sudo firewall-cmd --permanent --add-port=8080/tcp
$ sudo systemctl reload firewalld

Khởi động lại máy chủ Apache.

$ sudo systemctl restart httpd

Tiếp theo, cài đặt Nginx.

CentOS 8 được cài đặt Nginx 1.14 theo mặc định, nhưng đây là phiên bản cũ. Chúng ta cũng có thể kích hoạt phiên bản mới nhất.

$ sudo dnf module enable nginx:1.20
$ sudo dnf install nginx

Bật máy chủ Nginx.

$ sudo systemctl enable nginx

Bước 8a – Cài đặt và cấu hình SSL

Trước khi cấu hình Nginx, chúng ta sẽ thiết lập và cấu hình chứng chỉ SSL cho tên miền mà chúng ta sẽ sử dụng với Nagios. Trong trường hợp của chúng ta, chúng ta sẽ sử dụng  http://nagios.example.com.

Để cài đặt chứng chỉ SSL bằng Let’s Encrypt, chúng ta cần tải xuống công cụ Certbot. Certbot có sẵn trong kho lưu trữ EPEL của CentOS mà chúng tôi đã thêm trước đó trong hướng dẫn.

$ sudo dnf install certbot python3-certbot-nginx

Dừng dịch vụ Nginx.

$ sudo systemctl stop nginx

Tạo chứng chỉ SSL.

$ sudo certbot certonly --standalone --preferred-challenges --agree-tos --email [email protected] http -d nagios.example.com

Lệnh trên sẽ tải chứng chỉ xuống  /etc/letsencrypt/live/nagios.example.com thư mục trên máy chủ của bạn.

Tạo Cron Job để gia hạn SSL. Nó sẽ chạy hàng ngày để kiểm tra chứng chỉ và gia hạn nếu cần. Để làm được điều đó, trước tiên, hãy tạo tệp  /etc/cron.daily/certbot-renew và mở tệp để chỉnh sửa.

$ sudo nano /etc/cron.daily/certbot-renew

Dán đoạn mã sau.

#!/bin/sh
certbot renew --cert-name nagios.example.com --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx"

Lưu tệp bằng cách nhấn  Ctrl + X  và nhập  Y  khi được nhắc.

Thay đổi quyền trên tệp tác vụ để có thể thực thi được.

$ sudo chmod +x /etc/cron.daily/certbot-renew

Tạo  chứng chỉ nhóm Diffie-Hellman  .

$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Trước khi cấu hình Nginx, có một thay đổi khác mà chúng ta nên thực hiện. Theo mặc định, Apache phục vụ Nagios qua  http://<serverIP>:8080/nagios. Bây giờ, chúng ta có thể thiết lập proxy trực tiếp qua Nagios, nhưng nó sẽ được phục vụ qua  https://nagios.example.com/nagios. Chúng ta có thể chuyển hướng qua Nginx đến URL gốc, điều này làm phức tạp mọi thứ. Vì lý do đó, chúng ta sẽ thực hiện thay đổi trực tiếp tại Apache và Nagios.

Đầu tiên, hãy mở  /usr/local/nagios/etc/cgi.cfg tệp để chỉnh sửa.

$ sudo nano /usr/local/nagios/etc/cgi.cfg

Đổi  url_html_path=/nagios thành  url_html_path=/.

Lưu tệp bằng cách nhấn  Ctrl + X  và nhập  Y  khi được nhắc.

Tiếp theo, mở  /etc/httpd/conf.d/nagios.conf để chỉnh sửa.

$ sudo nano /etc/httpd/conf.d/nagios.conf

Đổi  ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin" thành  ScriptAlias /cgi-bin "/usr/local/nagios/sbin".

Bình luận dòng đó  Alias /nagios "/usr/local/nagios/share" bằng cách sửa nó thành như sau.

#Alias /nagios "/usr/local/nagios/share" 

Thêm dòng sau vào bên dưới.

DocumentRoot /usr/local/nagios/share

Thêm dòng sau vào đầu tệp.

<VirtualHost *:1080>

Thêm dòng sau vào cuối tệp.

</VirtualHost>

Khi hoàn tất, hãy lưu tệp bằng cách nhấn  Ctrl + X  và nhập  Y  khi được nhắc.

Và cuối cùng, mở tệp  /usr/local/nagios/share/config.inc.php để chỉnh sửa.

$ sudo nano /usr/local/nagios/share/config.inc.php

Đổi  $cfg['cgi_base_url']='/nagios/cgi-bin'; thành  $cfg['cgi_base_url']='/cgi-bin';.

Lưu tệp bằng cách nhấn  Ctrl + X  và nhập  Y  khi được nhắc.

Khởi động lại cả Apache và Nagios.

$ sudo systemctl restart httpd
$ sudo systemctl restart nagios

Để xác nhận mọi thứ hoạt động bình thường, hãy mở URL  http://<serverIP>:1080 trong trình duyệt của bạn và bạn sẽ thấy Nagios hoạt động bình thường. Ngoài ra, hãy đảm bảo dữ liệu của Hosts đang được nhận.

Khi mọi thứ đã hoạt động, chúng ta có thể tiến hành tạo tệp cấu hình cho Nginx.

Tạo tệp cấu hình cho Nagios trong  /etc/nginx/conf.d thư mục.

$ sudo nano /etc/nginx/conf.d/nagios.conf

Dán đoạn mã sau vào đó.

server {
    	listen 80; listen [::]:80;
	    server_name nagios.example.com;
    	return 301 https://$host$request_uri;
}

server {
        server_name nagios.example.com;

        listen 443 ssl http2;
        listen [::]:443 ssl http2;

        access_log /var/log/nginx/nagios.access.log;
        error_log /var/log/nginx/nagios.error.log;

        ssl_certificate /etc/letsencrypt/live/nagios.example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/nagios.example.com/privkey.pem;
        ssl_trusted_certificate /etc/letsencrypt/live/nagios.example.com/chain.pem;
        ssl_session_timeout 1d;
        ssl_session_cache shared:MozSSL:10m;
        ssl_session_tickets off;

        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;

        ssl_stapling on;
        ssl_stapling_verify on;
        ssl_dhparam /etc/ssl/certs/dhparam.pem;
 
        location / {
                proxy_pass http://127.0.0.1:8080;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		       proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
        	    proxy_set_header X-Forwarded-Proto $scheme;
        }
}

Khi hoàn tất, hãy lưu tệp bằng cách nhấn  Ctrl + X  và nhập  Y  khi được nhắc.

Xác thực tệp cấu hình.

$ sudo nginx -t

Nếu bạn gặp lỗi sau, bạn sẽ cần phải chỉnh sửa tệp  /etc/nginx/nginx.conf để thêm/điều chỉnh kích thước của biến  server_names_hash_bucket_size.

nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size

Mở tệp  /etc/nginx/nginx.conf để chỉnh sửa.

$ sudo nano /etc/nginx/nginx.conf

Thêm dòng sau vào trước

server_names_hash_bucket_size  64;

Sau khi hoàn tất, hãy lưu tệp bằng cách nhấn  Ctrl + X  và nhập  Y  khi được nhắc. Xác thực Nginx một lần nữa.

Nếu bạn không thấy vấn đề gì, hãy khởi động máy chủ Nginx.

$ sudo systemctl start nginx

Khởi chạy tên miền  https://nagios.example.com trong trình duyệt của bạn và bạn sẽ thấy trang chủ của Nagios.

Phần kết luận

Bạn đã cài đặt và cấu hình Nagios trên máy chủ chạy CentOS 8 để giám sát một số dịch vụ như tải, sử dụng đĩa/hoán đổi, người dùng, tổng quy trình, HTTP và SSH. Như vậy là kết thúc hướng dẫn của chúng tôi. Nếu bạn muốn tìm hiểu thêm, bạn nên kiểm tra tài liệu chính thức của Nagios về giám sát và nhiều lệnh khác nhau một cách chi tiết. Nếu bạn có bất kỳ câu hỏi nào, hãy đăng chúng trong phần bình luận bên dưới.

Đọc thêm:

https://congdonglinux.com/huong-dan-cai-dat-nagios-tren-ubuntu/

Add Comment

Click here to post a comment