Cách cài đặt công cụ giám sát LibreNMS với Nginx trên CentOS 7

theanh

Administrator
Nhân viên
LibreNMS là một công cụ giám sát mã nguồn mở dựa trên PHP/MYSQL/SNMP. Đây là một hệ thống giám sát mạng đầy đủ tính năng, hỗ trợ nhiều loại phần cứng và hệ điều hành mạng, bao gồm FreeBSD, Cisco, Linux, HP, v.v.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt và cấu hình LibreNMS bằng cách sử dụng Nginx làm máy chủ web và MariaDB làm cơ sở dữ liệu. Chúng tôi sẽ sử dụng máy chủ CentOS 7 làm máy chủ chính.

Những việc chúng tôi sẽ làm​

  1. Cài đặt các gói cần thiết
  2. Cài đặt máy chủ web Nginx
  3. Cài đặt và cấu hình PHP-FPM
  4. Cài đặt và cấu hình MariaDB
  5. Tải xuống và cấu hình LibreNMS
  6. Cài đặt dựa trên web LibreNMS
  7. Cấu hình cuối cùng

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

  • Máy chủ CentOS 7
  • Quyền root

Bước 1 - Cài đặt các gói cần thiết​

Trước khi cài đặt LibreNMS trên máy chủ, chúng ta cần cài đặt một số gói, bao gồm ImageMagick, rrdtool, SNMP, git, v.v. Lệnh sau đây sẽ thực hiện những việc cần thiết:
Mã:
yum -y install net-snmp ImageMagick jwhois nmap mtr rrdtool MySQL-python net-snmp-utils cronie fping git
Nếu mọi thứ diễn ra tốt đẹp, hãy tiến hành bước tiếp theo.

Bước 2 - Cài đặt máy chủ web Nginx​

Trong bước này, chúng ta sẽ cài đặt epel-repository để cài đặt máy chủ web nginx. Kho lưu trữ EPEL (Gói bổ sung cho Enterprise Linux) là kho lưu trữ bổ sung cho hệ điều hành dựa trên rpm bao gồm CentOS 7.

Cài đặt kho lưu trữ EPEL bằng lệnh yum bên dưới.
Mã:
yum -y install epel-release
Bây giờ hãy cài đặt nginx.
Mã:
yum -y install nginx
Sau khi cài đặt nginx, hãy khởi động dịch vụ và cho phép dịch vụ tự động chạy khi khởi động bằng các lệnh systemctl sau.
Mã:
systemctl start nginx
systemctl enable nginx
Vì vậy, máy chủ web Nginx đã được cài đặt trên hệ thống từ kho lưu trữ EPEL.


Bước 3 - Cài đặt và cấu hình PHP-FPM​

Trước khi tiến hành, đây là một số thông tin đáng chia sẻ:

Chúng tôi sẽ sử dụng PHP-FPM phiên bản 7 để cài đặt LibreNMS. Tất cả các gói PHP 7 cho CentOS 7 đều có sẵn trên kho lưu trữ của bên thứ ba và chúng tôi sẽ sử dụng phiên bản PHP 7 từ kho lưu trữ 'webtatic'.

Vậy chúng ta hãy bắt đầu.

Thêm kho lưu trữ webtatic PHP 7 vào hệ thống bằng lệnh rpm sau.
Mã:
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Cài đặt PHP 7 và tất cả các tiện ích mở rộng cần thiết từ kho lưu trữ wetatic bằng lệnh yum.
Mã:
yum -y install php70w php70w-cli php70w-gd php70w-mysql php70w-snmp php70w-pear php70w-curl php70w-common php70w-fpm php70w-mcrypt
Bây giờ hãy cập nhật kho lưu trữ PEAR và cài đặt một số PEAR (Tiện ích mở rộng và ứng dụng PHP Repository) bằng lệnh pear.
Mã:
pear channel-update pear.php.net
pear install Net_IPv4-1.3.4
pear install Net_IPv6-1.2.2b2


Như vậy, bạn có thể cài đặt tất cả các gói PHP cần thiết.

Tiếp theo, cấu hình PHP-FPM để cài đặt LibreNMS. Chúng ta cần xác định múi giờ mặc định trong tệp php.ini và đảm bảo múi giờ khớp với múi giờ hiện tại mà hệ thống sử dụng. Bạn có thể kiểm tra múi giờ hiện tại mà hệ thống của bạn đang sử dụng thông qua lệnh sau.
Mã:
timedatectl
Ảnh chụp màn hình sau đây cho thấy lệnh trên đang hoạt động:



Vì vậy, chúng ta đang sử dụng múi giờ 'Châu Âu/Paris'.

Bây giờ, hãy chỉnh sửa tệp '/etc/php.ini' bằng vim.
Mã:
vim /etc/php.ini
Tiếp theo, bỏ chú thích dòng 'date.timezone' và cung cấp giá trị với múi giờ máy chủ 'Châu Âu/Paris'.
Mã:
data.timezone = Europe/Paris
Tương tự, bỏ chú thích dòng cgi và thay đổi giá trị thành '0'.
Mã:
cgi.fix_pathinfo=0
Vậy là xong. Bây giờ hãy lưu các thay đổi và thoát khỏi trình soạn thảo.

Tiếp theo, chúng ta cần xác định cách PHP-FPM chạy trên hệ thống. Trong trường hợp của chúng ta, PHP-FPM sẽ chạy dưới tệp 'sock' thay vì cổng máy chủ.

Chỉnh sửa tệp 'www.conf' bằng vim để cấu hình PHP-FPM.
Mã:
vim /etc/php-fpm.d/www.conf
Thay đổi dòng cổng 'listen' thành tệp sock như bên dưới.
Mã:
listen = /var/run/php-fpm/php7.0-fpm.sock
Bỏ chú thích dòng 'listen' cho chủ sở hữu, nhóm và quyền của tệp sock như cấu hình bên dưới.
Mã:
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
Vậy là xong. Bây giờ hãy lưu các thay đổi và thoát khỏi trình soạn thảo.

Vậy là cấu hình PHP-FPM đã hoàn tất. Khởi động dịch vụ và cho phép nó chạy tự động khi khởi động bằng các lệnh sau.
Mã:
systemctl start php-fpm
systemctl enable php-fpm
Bây giờ PHP-FPM đang chạy dưới tệp sock. Bạn có thể kiểm tra bằng lệnh netstat.
Mã:
netstat -pl | grep php


Đảm bảo bạn có kết quả của tệp '/var/run/php-fpm/php7.0-fpm.sock'.

Bước 4 - Cài đặt và cấu hình MariaDB​

LibreNMS đang sử dụng cơ sở dữ liệu MySQL để lưu trữ tất cả dữ liệu. Đối với hướng dẫn này, chúng tôi sẽ sử dụng phiên bản cơ sở dữ liệu MariaDB. Nó có sẵn trong kho lưu trữ và chúng ta cần cài đặt và thêm một số cấu hình để cài đặt LibreNMS, bao gồm thêm cơ sở dữ liệu và người dùng cho LibreNMS.

Cài đặt MariaDB bằng lệnh yum bên dưới.
Mã:
yum -y install mariadb mariadb-server
Khởi động dịch vụ MariaDB và cho phép nó tự động khởi động khi khởi động.
Mã:
systemctl start mariadb
systemctl enable mariadb


Bây giờ hãy cấu hình mật khẩu gốc MariaDB bằng lệnh 'mysql_secure_installation' bên dưới.
Mã:
mysql_secure_installation
Bạn sẽ được hỏi về mật khẩu gốc mới cho cơ sở dữ liệu MariaDB cùng với một số câu hỏi khác.

Nhập 'Y' và nhấn Enter để xác nhận.
Mã:
Đặt mật khẩu gốc? [Y/n] Y
 Xóa người dùng ẩn danh? [Y/n] Y
 Không cho phép đăng nhập root từ xa? [Y/n] Y
 Xóa cơ sở dữ liệu thử nghiệm và truy cập vào cơ sở dữ liệu đó? [Y/n] Y
 Tải lại bảng đặc quyền ngay bây giờ? [Y/n] Y
Vậy là MariaDB đã được cài đặt. Bây giờ chúng ta cần tạo một cơ sở dữ liệu mới và một người dùng mới cho LibreNMS. Đăng nhập vào dòng lệnh shell mysql bằng mysql client và với mật khẩu mới của bạn.
Mã:
mysql -u root -p
Tạo một cơ sở dữ liệu mới có tên là 'librenms', một người dùng mới 'librenms' với mật khẩu 'hakase-labs123'.

Tạo tất cả bằng cách sử dụng các truy vấn MySQL bên dưới.
Mã:
CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'hakase-labs123';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;
Một người dùng và cơ sở dữ liệu mới để cài đặt LibreNMS đã được đã tạo.



Bây giờ bạn cần chỉnh sửa tệp my.cnf để thêm cấu hình mysql mới. Chỉnh sửa tệp '/etc/my.cnf' bằng vim.
Mã:
vim /etc/my.cnf
Dán cấu hình bổ sung sau vào phần '[mysqld]'.
Mã:
innodb_file_per_table=1
 sql-mode=""
 lower_case_table_names=0
Lưu và thoát vim, sau đó khởi động lại máy chủ mariadb.
Mã:
systemctl restart mariadb

Bước 5 - Tải xuống và cấu hình LibreNMS​

Trong bước này, chúng ta sẽ cấu hình hệ thống để cài đặt LibreNMS.

- Thêm người dùng và tải xuống mã nguồn LibreNMS

Tạo một người dùng hệ thống mới có tên 'librenms', sau đó định nghĩa thư mục gốc cho người dùng trên thư mục '/opt/librenms' và cuối cùng thêm người dùng 'librenms' vào nhóm 'nginx'.
Mã:
useradd librenms -d /opt/librenms -M -r
usermod -a -G librenms nginx
Đi đến thư mục '/opt/' và tải xuống mã nguồn LibreNMS bằng lệnh git clone như bên dưới.
Mã:
cd /opt/
git clone https://github.com/librenms/librenms.git librenms


Tạo thư mục mới cho nhật ký LibreNMS và tệp rrd.
Mã:
mkdir -p /opt/librenms/logs/
mkdir -p /opt/librenms/rrd/
chmod 775 /opt/librenms/rrd/
Bây giờ hãy thay đổi quyền sở hữu của tất cả các tệp và thư mục trong thư mục '/opt/librenms' thành người dùng và nhóm 'librenms'.
Mã:
chown -R librenms:librenms /opt/librenms/


- Cấu hình máy chủ ảo LibreNMS

LibreNMS là ứng dụng dựa trên Web và chúng tôi đang sử dụng máy chủ web Nginx để lưu trữ ứng dụng này.


Tạo tệp máy chủ ảo mới 'librenms.conf' trong thư mục 'conf.d' của nginx.
Mã:
vim /etc/nginx/conf.d/librenms.conf
Dán cấu hình bên dưới.
Mã:
server {
 
 # Thêm tên miền của riêng bạn
 listen 80;
 server_name librenms.irsyadf.me;
 
 # Thư mục gốc Webroot của LibreNMS
 root /opt/librenms/html;
 index index.php;
 
 # Nhật ký LibreNMS
 access_log /opt/librenms/logs/access_log;
 error_log /opt/librenms/logs/error_log;
 
 # Bật nén Gzip trên Nginx
 charset utf-8;
 gzip on;
 gzip_types text/css application/javascript text/javascript application/x-javascript image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
 
 location / {
 try_files $uri $uri/ /index.php?$query_string;
 }
 
 location /api/v0 {
 try_files $uri $uri/ /api_v0.php?$query_string;
 }
 
 # PHP-FPM xử lý tất cả các yêu cầu tệp .php
 location ~ \.php {
 include fastcgi.conf;
 fastcgi_split_path_info ^(.+\.php)(/.+)$;
 fastcgi_pass unix:/var/run/php-fpm/php7.0-fpm.sock;
 }
 
 location ~ /\.ht {
 deny all;
 }
 }
Vậy là xong. Bây giờ hãy lưu và thoát Vim.

Kiểm tra cấu hình nginx và đảm bảo không có lỗi. Sau đó khởi động lại máy chủ web.
Mã:
nginx -t
systemctl restart nginx

- Cấu hình tường lửa

Đảm bảo các gói tường lửa được cài đặt trên hệ thống của bạn. Nếu không, bạn có thể cài đặt firewalld bằng lệnh yum sau.
Mã:
yum -y install firewalld
Khởi động firewalld và cho phép nó chạy khi khởi động bằng các lệnh systemctl sau.
Mã:
systemctl start firewalld
systemctl enable firewalld


Mở HTTP, HTTPS và cổng SNMP mới 161/udp bằng lệnh firewall-cmd như hiển thị bên dưới.
Mã:
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --add-port=161/udp --permanent
Áp dụng cấu hình bằng cách tải lại firewalld và kiểm tra tất cả các dịch vụ.
Mã:
firewall-cmd --reload
firewall-cmd --list-all
Đảm bảo các dịch vụ HTTP và HTTPS có trong danh sách.

Bước 6 - Cài đặt LibreNMS trên nền web​

Mở trình duyệt web của bạn và nhập URL LibreNMS vào thanh địa chỉ.

http://librenms.hakase-labs.me/

Bạn sẽ được chuyển hướng đến trang cài đặt 'install.php'.

- Kiểm tra hỗ trợ Mô-đun PHP

Đảm bảo tất cả các mô-đun và tiện ích mở rộng php cần thiết đều được cài đặt trên hệ thống.



Sau đó nhấp vào 'Giai đoạn tiếp theo' để tiếp tục.

- Cấu hình cơ sở dữ liệu

Nhập thông tin chi tiết về cơ sở dữ liệu bên dưới:
  1. Người dùng DB: 'librenms'
  2. Tên DB: 'librenms'
  3. Mật khẩu DB: 'hakase-labs123'


Và nhấp vào 'Giai đoạn tiếp theo' để tiếp tục.

- Nhập cơ sở dữ liệu MySQL

Không đóng trang cài đặt vì nó sẽ hiển thị nhập cơ sở dữ liệu. Đảm bảo không có lỗi nào.



Khi quá trình hoàn tất, hãy nhấp vào 'Đi đến Thêm người dùng' để thêm người dùng quản trị mới.

- Thêm người dùng quản trị

Nhập tên người dùng quản trị, email và mật khẩu của bạn.



Nhấp vào 'Thêm người dùng' để tiếp tục cài đặt.

- Tạo tệp cấu hình



Nhấp vào nút 'Tạo cấu hình' và bạn sẽ thấy một trang tương tự như sau.



Sao chép mã php có trong hộp và tạo tệp 'config.php' mới trong thư mục '/opt/librenms/'.
Mã:
cd /opt/librenms/
vim config.php
Dán trong tệp mới mã bạn vừa sao chép, sau đó lưu và thoát khỏi trình chỉnh sửa. Bây giờ hãy thay đổi quyền sở hữu của tệp config.php thành người dùng và nhóm 'librenms'.
Mã:
chown librenms:librenms config.php


Quay lại trình duyệt của bạn và nhấp vào nút 'Hoàn tất cài đặt' ở cuối trang. Bạn sẽ thấy một thông báo chào mừng tương tự như sau.



Ở giai đoạn này, chúng ta đã hoàn tất cài đặt dựa trên web. Quay lại terminal/shell và thêm cấu hình.

Bước 7 - Cấu hình cuối cùng​

Ở bước này, chúng ta sẽ thêm một số cấu hình cho cài đặt LibreNMS của mình.

- Xác định lệnh fping

Xác định lệnh 'fping' bằng cách chỉnh sửa tệp cấu hình LibreNMS. Đi đến thư mục '/opt/librenms/' và chỉnh sửa tệp config.php bằng trình soạn thảo vim.
Mã:
cd /opt/librenms/
vim config.php
Thêm dòng sau vào cuối tệp.
Mã:
$config['fping'] = "/usr/sbin/fping";
Lưu và thoát khỏi trình soạn thảo.

- Cấu hình SNMP

Sao lưu tệp snmp.conf mặc định trên thư mục '/etc/snmp/' và sao chép tệp mới từ thư mục librenms.
Mã:
mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.asli
cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
Chỉnh sửa cấu hình mới.
Mã:
vim /etc/snmp/snmpd.conf
Thay đổi văn bản 'RANDOMSTRINGGOESHERE' bằng tên cộng đồng của riêng bạn như bên dưới.
Mã:
com2sec readonly default hakaselabs
Vậy là xong. Lưu và thoát Vim.



Tiếp theo, tải xuống tập lệnh librenms-agent để phát hiện hệ điều hành bạn đã thêm. Nếu bạn thêm hệ điều hành Linux, tập lệnh cũng sẽ phát hiện bản phân phối Linux cụ thể.

Tải xuống tập lệnh bằng curl và thực thi.
Mã:
curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
chmod +x /usr/bin/distro
Bây giờ hãy khởi động lại dịch vụ SNMP bằng lệnh systemctl sau.
Mã:
systemctl restart snmpd

- Cấu hình Logrotate cho LibreNMS

LibreNMS cung cấp cấu hình cho cấu hình logrotate và nằm trong thư mục '/opt/librenms/misc'.

Sao chép mẫu cấu hình vào thư mục '/etc/logrotate.d'.
Mã:
cp misc/librenms.logrotate /etc/logrotate.d/librenms

- Cấu hình cronjob LibreNMS

Vào thư mục 'opt/librenms' và sao chép tập lệnh crontab 'librenms.nonroot.cron' vào thư mục 'cron.d'.
Mã:
cd /opt/librenms/
cp librenms.nonroot.cron /etc/cron.d/librenms
Chờ vài phút để tập lệnh tự động chạy.

- Xác thực cấu hình LibreNMS

Để xác minh cài đặt, hãy sử dụng tập lệnh validate.php. Đi đến thư mục '/opt/librenms/' và chạy tập lệnh.
Mã:
cd /opt/librenms/
./validate.php
Giả sử bạn không gặp lỗi nào, bạn sẽ thấy đầu ra tương tự như sau:



Như vậy là hoàn tất cài đặt LibreNMS với máy chủ web Nginx trên CentOS 7.

Tham khảo​

 
Back
Bên trên