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

Tác giả Security+, T.Tư 09, 2024, 11:31:04 SÁNG

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

LibreNMS là một hệ thống giám sát mạng mạnh mẽ, mã nguồn mở và miễn phí dựa trên giao thức SNMP. Nó hỗ trợ tất cả các bản phân phối chính, bao gồm Linux, FreeBSD và các thiết bị mạng như Cisco, Juniper, Brocade, Foundry và nhiều thiết bị khác. Nó tự động phát hiện toàn bộ mạng của bạn thông qua các giao thức CDP, FDP, LLDP, OSPF, BGP, SNMP và ARP.


1. Tính năng

  • Hỗ trợ thiết bị toàn diện.
  • Giao diện người dùng web thân thiện với thiết bị di động.
  • Thông báo qua email, Slack và Ic.
  • Hệ thống thanh toán và cập nhật tự động.
  • Hỗ trợ nhiều phương thức xác thực như LDAP, Active Directory, HTTP và MySQL.
  • Hỗ trợ bỏ phiếu phân tán.

Trong hướng dẫn này, chúng tôi giải thích cách cài đặt hệ thống giám sát LibreNMS trên CentOS 8 bằng Apache.

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

  • Một máy chủ chạy CentOS 8.
  • Mật khẩu root được thiết lập trên máy chủ của bạn.

3. Cài đặt các phụ thuộc cần thiết

Trước khi bắt đầu, bạn cần cài đặt kho lưu trữ EPEL và các phần phụ thuộc cần thiết khác trên hệ thống của mình. Bạn có thể cài đặt tất cả chúng bằng lệnh sau:

Mã nguồn [Chọn]
dnf install epel-release -y

dnf install zip unzip git cronie wget fping net-snmp net-snmp-utils yum-utils nmap whois mtr rrdtool curl -y

Sau khi tất cả các gói được cài đặt, bạn có thể tiến hành bước tiếp theo.

4. Cài đặt máy chủ LAMP

Tiếp theo, bạn cần cài đặt máy chủ web Apache, MariaDB, PHP và các phần mở rộng PHP khác trong hệ thống của mình. Bạn có thể cài đặt tất cả chúng bằng cách chạy lệnh sau:

Mã nguồn [Chọn]
dnf install httpd mariadb-server php php-cli php-common php-curl php-gd php-mbstring php-mysqlnd php-process php-snmp php-xml php-zip php-json -y
Sau khi tất cả các gói đã được cài đặt, hãy khởi động dịch vụ Apache và MariaDB và kích hoạt chúng để chúng khởi động sau khi khởi động lại hệ thống:

Mã nguồn [Chọn]
systemctl start httpd
systemctl enable httpd
systemctl start mariadb
systemctl enable mariadb

5. Định cấu hình cơ sở dữ liệu MariaDB

Trước tiên hãy bảo mật cài đặt MariaDB bằng lệnh sau:

Mã nguồn [Chọn]
mysql_secure_installation
Trả lời tất cả các câu hỏi như hình dưới đây:

Mã nguồn [Chọn]
Enter current password for root (enter for none):
Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Khi MariaDB được bảo mật, hãy đăng nhập vào trình bao MariaDB bằng lệnh sau:

Mã nguồn [Chọn]
mysql -u root -p
Nhập mật khẩu gốc MariaDB của bạn và tạo cơ sở dữ liệu và người dùng cho LibreNMS bằng lệnh sau:

Mã nguồn [Chọn]
MariaDB [(none)]> CREATE DATABASE libredb CHARACTER SET utf8 COLLATE utf8_unicode_ci;
MariaDB [(none)]> CREATE USER 'libreuser'@'localhost' IDENTIFIED BY 'password';

Tiếp theo, cấp cho cơ sở dữ liệu LibreNMS tất cả các quyền bằng lệnh sau:

Mã nguồn [Chọn]
MariaDB [(none)]> GRANT ALL PRIVILEGES ON libredb.* TO 'libreuser'@'localhost';
Xóa các ủy quyền và thoát khỏi trình bao MariaDB bằng lệnh sau:

Mã nguồn [Chọn]
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Bây giờ hãy mở tệp cấu hình MariaDB và thay đổi một số cài đặt:

Mã nguồn [Chọn]
nano /etc/my.cnf.d/mariadb-server.cnf
Thêm các dòng sau vào phần [mysqld]:

Mã nguồn [Chọn]
innodb_file_per_table=1
lower_case_table_names=0

Lưu và đóng tập tin. Sau đó khởi động lại dịch vụ MariaDB để áp dụng các thay đổi:

Mã nguồn [Chọn]
systemctl restart mariadb
6. Cài đặt trình soạn thảo

Composer là trình quản lý phụ thuộc cho PHP. Nó được sử dụng để cài đặt các phần phụ thuộc được yêu cầu bởi các ứng dụng dựa trên PHP.

Đầu tiên, tải xuống tệp thiết lập Composer bằng lệnh sau:

Mã nguồn [Chọn]
curl -sS https://getcomposer.org/installer -o composer-setup.php
Tiếp theo, sử dụng lệnh sau để kiểm tra xem tập lệnh cài đặt có bị hỏng hay không:

Mã nguồn [Chọn]
HASH="$(wget -q -O - https://composer.github.io/installer.sig)"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

Nếu mọi thứ đều ổn, bạn sẽ nhận được kết quả đầu ra sau:

Mã nguồn [Chọn]
Installer Verified
Tiếp theo, chạy lệnh sau để cài đặt Composer trong thư mục /usr/local/bin.

Mã nguồn [Chọn]
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
Sau khi cài đặt, bạn sẽ nhận được kết quả đầu ra sau:

Mã nguồn [Chọn]
All settings correct for using Composer
Downloading...

Composer (version 1.10.0) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer

7. Tải xuống LibreNMS

Đầu tiên, tạo người dùng mới bằng lệnh sau để chạy LibreNMS:

Mã nguồn [Chọn]
useradd librenms -d /var/www/html/librenms -M -r
Tiếp theo, thêm người dùng librenms vào nhóm apache bằng lệnh sau:

Mã nguồn [Chọn]
usermod -a -G librenms apache
Tiếp theo, thay đổi thư mục thành thư mục gốc của web Apache và tải xuống phiên bản LibreNMS mới nhất bằng lệnh sau.

Mã nguồn [Chọn]
cd /var/www/html
git clone https://github.com/librenms/librenms.git

Tiếp theo, sử dụng lệnh sau để thay đổi chủ sở hữu thư mục librenms thành người dùng librenms:

Mã nguồn [Chọn]
chown -R librenms:librenms /var/www/html/librenms
Tiếp theo, thay đổi thư mục thành librenms và cài đặt các phần phụ thuộc PHP bằng lệnh sau:

Mã nguồn [Chọn]
./scripts/composer_wrapper.php install --no-dev
Khi tất cả các phụ thuộc được cài đặt, bạn sẽ nhận được kết quả sau:

Mã nguồn [Chọn]
Discovered Package: darkghosthunter/larapoke
Discovered Package: fideloper/proxy
Discovered Package: laravel/laravel
Discovered Package: laravel/tinker
Discovered Package: martinlindhe/laravel-vue-i18n-generator
Discovered Package: nesbot/carbon
Discovered Package: oriceon/toastr-5-laravel
Discovered Package: spatie/laravel-cors
Discovered Package: tightenco/ziggy
Package manifest generated successfully.
> LibreNMS\ComposerHelper::postInstall
setfacl -R -m g::rwx rrd/ logs/ storage/ bootstrap/cache/
setfacl -d -m g::rwx rrd/ logs/ storage/ bootstrap/cache/
php artisan key:generate
Application key set successfully.
> Illuminate\Foundation\ComposerScripts::postInstall
> @php artisan vue-i18n:generate --multi-locales --format=umd

8. Định cấu hình SNMP

Tiếp theo, bạn cần sao chép tệp cấu hình mẫu SNMP vào thư mục /etc/snmp. Bạn có thể sao chép nó bằng lệnh sau:

Mã nguồn [Chọn]
cp /var/www/html/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
Tiếp theo, mở tệp /etc/snmp/snmpd.conf như hiển thị bên dưới:

Mã nguồn [Chọn]
nano /etc/snmp/snmpd.conf
Thay đổi chuỗi cộng đồng của bạn như hiển thị bên dưới:


Lưu và đóng tập tin. Sau đó tải xuống tập lệnh để xác định phiên bản phân phối bằng lệnh sau:

Mã nguồn [Chọn]
curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
chmod +x /usr/bin/distro

Tiếp theo, khởi động dịch vụ SNMP và kích hoạt nó bằng lệnh sau để nó khởi động sau khi hệ thống khởi động lại:

Mã nguồn [Chọn]
systemctl start snmpd
systemctl enable snmpd

Bạn có thể kiểm tra trạng thái của dịch vụ SNMP bằng lệnh sau:

Mã nguồn [Chọn]
systemctl status snmpd
Đầu ra:

Mã nguồn [Chọn]
? snmpd.service - Simple Network Management Protocol (SNMP) Daemon.
   Loaded: loaded (/usr/lib/systemd/system/snmpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-03-13 08:37:40 EDT; 7s ago
 Main PID: 6562 (snmpd)
    Tasks: 1 (limit: 25028)
   Memory: 4.7M
   CGroup: /system.slice/snmpd.service
           ??6562 /usr/sbin/snmpd -LS0-6d -f

Mar 13 08:37:40 centos8 systemd[1]: Stopped Simple Network Management Protocol (SNMP) Daemon..
Mar 13 08:37:40 centos8 systemd[1]: Starting Simple Network Management Protocol (SNMP) Daemon....
Mar 13 08:37:40 centos8 snmpd[6562]: NET-SNMP version 5.8
Mar 13 08:37:40 centos8 systemd[1]: Started Simple Network Management Protocol (SNMP) Daemon..

9. Định cấu hình Apache cho LibreNMS

Tiếp theo, tạo tệp cấu hình mới cho máy chủ ảo LibreNMS bằng lệnh sau:

Mã nguồn [Chọn]
nano /etc/httpd/conf.d/librenms.conf
Thêm các dòng sau:

Mã nguồn [Chọn]
<VirtualHost *:80>
  DocumentRoot /var/www/html/librenms/html/
  ServerName  your-server-ip

  AllowEncodedSlashes NoDecode
  <Directory "/var/www/html/librenms/html/">
    Require all granted
    AllowOverride All
    Options FollowSymLinks MultiViews
  </Directory>
</VirtualHost>

Lưu và đóng tệp khi bạn hoàn tất. Sau đó khởi động lại dịch vụ Apache để áp dụng các thay đổi:

Mã nguồn [Chọn]
systemctl restart httpd
10. Cài đặt linh tinh

Tiếp theo, tạo một tệp mới http_fping.tt để cho phép ping.

Mã nguồn [Chọn]
nano http_fping.tt
Thêm các dòng sau:

Mã nguồn [Chọn]
module http_fping 1.0;

require {
type httpd_t;
class capability net_raw;
class rawip_socket { getopt create setopt write read };
}

#============= httpd_t ==============
allow httpd_t self:capability net_raw;
allow httpd_t self:rawip_socket { getopt create setopt write read };

Lưu và đóng tệp rồi thực hiện lệnh sau:

Mã nguồn [Chọn]
checkmodule -M -m -o http_fping.mod http_fping.tt
semodule_package -o http_fping.pp -m http_fping.mod
semodule -i http_fping.pp

Tiếp theo, khởi động lại dịch vụ Apache để áp dụng các thay đổi:

Mã nguồn [Chọn]
systemctl restart httpd
Tiếp theo, sao chép tệp cron và logrotate LibreNMS bằng lệnh sau:

Mã nguồn [Chọn]
cp /var/www/html/librenms/librenms.nonroot.cron /etc/cron.d/librenms
cp /var/www/html/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms

Tiếp theo, tạo tệp nhật ký mới cho LibreNMS bằng lệnh sau:

Mã nguồn [Chọn]
touch /var/www/html/librenms/logs/librenms.log
Cuối cùng, đặt quyền chính xác cho LibreNMS bằng lệnh sau:

Mã nguồn [Chọn]
chown librenms:librenms /var/www/html/librenms/logs/librenms.log
chown -R librenms:librenms /var/www/html/librenms
setfacl -d -m g::rwx /var/www/html/librenms/rrd /var/www/html/librenms/logs /var/www/html/librenms/bootstrap/cache/ /var/www/html/librenms/storage/
chmod -R ug=rwX /var/www/html/librenms/rrd /var/www/html/librenms/logs /var/www/html/librenms/bootstrap/cache/ /var/www/html/librenms/storage/
chmod -R 777 /var/www/html/librenms

11. Định cấu hình SELinux và tường lửa

SELinux được kích hoạt theo mặc định trong CentOS 8. Do đó, bạn phải thiết lập ngữ cảnh SELinux chính xác cho LibreNMS. Bạn có thể làm điều này bằng lệnh sau:

Mã nguồn [Chọn]
semanage fcontext -a -t httpd_sys_content_t '/var/www/html/librenms/logs(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/librenms/logs(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/librenms/logs/librenms.log(/.*)?'
restorecon -RFv /var/www/html/librenms/logs/librenms.log
restorecon -RFvv /var/www/html/librenms/logs/
semanage fcontext -a -t httpd_sys_content_t '/var/www/html/librenms/rrd(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/librenms/rrd(/.*)?'
restorecon -RFvv /var/www/html/librenms/rrd/
semanage fcontext -a -t httpd_sys_content_t '/var/www/html/librenms/storage(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/librenms/storage(/.*)?'
restorecon -RFvv /var/www/html/librenms/storage/
semanage fcontext -a -t httpd_sys_content_t '/var/www/html/librenms/bootstrap/cache(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/librenms/bootstrap/cache(/.*)?'
restorecon -RFvv /var/www/html/librenms/bootstrap/cache/
setsebool -P httpd_can_sendmail=1
restorecon -RFv /var/www/html/librenms
setsebool httpd_can_network_connect on -P

Tiếp theo, bạn cần cho phép cổng 80 và 443 thông qua tường lửa. Bạn có thể bỏ chặn chúng bằng lệnh sau:

Mã nguồn [Chọn]
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload

Khi bạn hoàn thành việc này, bạn có thể tiến hành bước tiếp theo.

12. Truy cập trình hướng dẫn cài đặt LibreNMS

Bây giờ hãy mở trình duyệt web của bạn và nhập URL http://your-server-ip. Trên màn hình sau, bạn sẽ thấy trình hướng dẫn kiểm tra trước LibreNMS:


Xác nhận tất cả các kiểm tra và nhấp vào nút Bước tiếp theo. Bạn sẽ thấy màn hình sau:


Nhập chi tiết cơ sở dữ liệu của bạn và nhấp vào nút Giai đoạn tiếp theo. Bạn sẽ thấy màn hình sau:


Bấm vào nút Đi tới Thêm người dùng. Bạn sẽ thấy màn hình sau:


Nhập tên người dùng, địa chỉ email và mật khẩu quản trị viên mong muốn của bạn và nhấp vào nút Thêm người dùng. Khi người dùng đã được thêm thành công. Bạn sẽ thấy màn hình sau:


Nhấp vào nút Tạo cấu hình để tạo tệp cấu hình mới cho LibreNMS. Khi tệp đã được tạo, bạn sẽ thấy màn hình sau:


Sao chép nội dung của tệp được tạo từ màn hình trên, mở terminal của bạn và dán nó vào tệp sau:

Mã nguồn [Chọn]
nano /var/www/html/librenms/config.php
Thêm các dòng sau mà bạn đã sao chép từ trình hướng dẫn cài đặt:

Mã nguồn [Chọn]
<?php
## Have a look in defaults.inc.php for examples of settings you can set here. DO NOT EDIT defaults.inc.php!

### Database config
$config['db_host'] = 'localhost';
$config['db_port'] = '3306';
$config['db_user'] = 'libreuser';
$config['db_pass'] = 'password';
$config['db_name'] = 'libredb';
$config['db_socket'] = '';

// This is the user LibreNMS will run as
//Please ensure this user is created and has the correct permissions to your install
$config['user'] = 'librenms';

### Locations - it is recommended to keep the default
#$config['install_dir']  = "/var/www/html/librenms";

### This should *only* be set if you want to *force* a particular hostname/port
### It will prevent the web interface being usable form any other hostname
#$config['base_url']        = "http://librenms.company.com";

### Enable this to use rrdcached. Be sure rrd_dir is within the rrdcached dir
### and that your web server has permission to talk to rrdcached.
#$config['rrdcached']    = "unix:/var/run/rrdcached.sock";

### Default community
$config['snmp']['community'] = array("public");

### Authentication Model
$config['auth_mechanism'] = "mysql"# default, other options: ldap, http-auth
#$config['http_auth_guest'] = "guest"; # remember to configure this user if you use http-auth

### List of RFC1918 networks to allow scanning-based discovery
#$config['nets'][] = "10.0.0.0/8";
#$config['nets'][] = "172.16.0.0/12";
#$config['nets'][] = "192.168.0.0/16";

# Update configuration
#$config['update_channel'] = 'release';  # uncomment to follow the monthly release channel
#$config['update'] = 0;  # uncomment to completely disable updates

Lưu và đóng tệp và thay đổi chủ sở hữu của tệp:

Mã nguồn [Chọn]
chown librenms:librenms /var/www/html/librenms/config.php
Bây giờ hãy nhấp vào nút " Hoàn tất cài đặt " để hoàn tất quá trình cài đặt LibreNMS. Bạn sẽ thấy trang sau:


Nhấp vào "Kiểm tra cài đặt của bạn và khắc phục mọi sự cố ". Bạn sẽ được chuyển hướng đến màn hình đăng nhập LibreNMS:


Nhập tên người dùng và mật khẩu quản trị viên LibreNMS của bạn và nhấp vào nút " Đăng nhập". Trên màn hình sau, bạn sẽ thấy bảng điều khiển mặc định của LibreNMS:


Chúc mừng! Bạn đã cài đặt và định cấu hình thành công LibreNMS trên CentOS 8. Bạn có thể tìm thêm thông tin trong tài liệu LibreNMS trong LibreNMS.