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.
Nếu mọi thứ diễn ra tốt đẹp, hãy tiến hành bước tiếp theo.
Cài đặt kho lưu trữ EPEL bằng lệnh yum bên dưới.
Bây giờ hãy cài đặt 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.
Vì vậy, máy chủ web Nginx đã được cài đặt trên hệ thống từ kho lưu trữ EPEL.
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.
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.
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.
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.
Ả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.
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'.
Tương tự, bỏ chú thích dòng cgi và thay đổi giá trị thành '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.
Thay đổi dòng cổng 'listen' thành tệp sock như bên dưới.
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.
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.
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 bảo bạn có kết quả của tệp '/var/run/php-fpm/php7.0-fpm.sock'.
Cài đặt MariaDB bằng lệnh yum bên dưới.
Khởi động dịch vụ MariaDB và cho phép nó tự động khởi động khi khởi động.
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.
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.
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.
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ộ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.
Dán cấu hình bổ sung sau vào phần '[mysqld]'.
Lưu và thoát vim, sau đó khởi động lại máy chủ mariadb.
Đ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.
Tạo thư mục mới cho nhật ký LibreNMS và tệp 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'.
Tạo tệp máy chủ ảo mới 'librenms.conf' trong thư mục 'conf.d' của nginx.
Dán cấu hình bên dưới.
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.
Khởi động firewalld và cho phép nó chạy khi khởi động bằng các lệnh systemctl sau.
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.
Á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 bảo các dịch vụ HTTP và HTTPS có trong danh sách.
http://librenms.hakase-labs.me/
Bạn sẽ được chuyển hướng đến trang cài đặt 'install.php'.
Sau đó nhấp vào 'Giai đoạn tiếp theo' để tiếp tục.
Và nhấp vào 'Giai đoạn tiếp theo' để tiếp tục.
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.
Nhấp vào 'Thêm người dùng' để tiếp tục cài đặt.
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/'.
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'.
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.
Thêm dòng sau vào cuối tệp.
Lưu và thoát khỏi trình soạn thảo.
Chỉnh sửa cấu hình mới.
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.
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.
Bây giờ hãy khởi động lại dịch vụ SNMP bằng lệnh systemctl sau.
Sao chép mẫu cấu hình vào thư mục '/etc/logrotate.d'.
Chờ vài phút để tập lệnh tự động chạy.
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.
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
- Cài đặt các gói cần thiết
- Cài đặt máy chủ web Nginx
- Cài đặt và cấu hình PHP-FPM
- Cài đặt và cấu hình MariaDB
- Tải xuống và cấu hình LibreNMS
- Cài đặt dựa trên web LibreNMS
- 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
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
Mã:
yum -y install nginx
Mã:
systemctl start nginx
systemctl enable nginx
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
Mã:
yum -y install php70w php70w-cli php70w-gd php70w-mysql php70w-snmp php70w-pear php70w-curl php70w-common php70w-fpm php70w-mcrypt
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
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
Mã:
data.timezone = Europe/Paris
Mã:
cgi.fix_pathinfo=0
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
Mã:
listen = /var/run/php-fpm/php7.0-fpm.sock
Mã:
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
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
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
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
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
Mã:
mysql -u root -p
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;
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
Mã:
innodb_file_per_table=1
sql-mode=""
lower_case_table_names=0
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
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/
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
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;
}
}
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
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
Mã:
firewall-cmd --reload
firewall-cmd --list-all
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:- Người dùng DB: 'librenms'
- Tên DB: 'librenms'
- 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
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
Mã:
$config['fping'] = "/usr/sbin/fping";
- 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
Mã:
vim /etc/snmp/snmpd.conf
Mã:
com2sec readonly default hakaselabs
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
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
- 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
Như vậy là hoàn tất cài đặt LibreNMS với máy chủ web Nginx trên CentOS 7.