LibreNMS là một công cụ giám sát hỗ trợ tự động phát hiện với nhiều giao thức, bao gồm SNMP, ARP, OSPF và BGP. Để giám sát hệ điều hành, bạn có thể sử dụng giao thức SNMP, có sẵn trên hầu hết các hệ điều hành, bao gồm Linux, Windows và BSD.
Có ba phiên bản Giao thức SNMP, v1 và v2 được bảo mật chỉ bằng mật khẩu cộng đồng và giao thức v3 hỗ trợ mật khẩu để xác thực và mã hóa. Đối với môi trường sản xuất, bạn nên sử dụng giao thức SNMP v3, an toàn hơn v2 và v1.
Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt công cụ giám sát LibreNMS trên máy chủ Rocky Linux. Hướng dẫn này bao gồm cài đặt LEMP Stack (Nginx, MariaDB và PHP-FPM) và cấu hình cơ bản của dịch vụ SNMP.
Cuối cùng, bạn sẽ có giải pháp giám sát LibreNMS sẵn sàng cho sản xuất và bạn chỉ cần thêm máy chủ hoặc máy chủ mới hoặc thiết bị để giám sát LibreNMS.
Chạy lệnh dnf sau để thêm kho lưu trữ EPEL vào hệ thống của bạn.
Nhập Y khi được nhắc xác nhận và nhấn ENTER để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22650%22%20height=%22263%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh dnf sau để thêm kho lưu trữ Remi của PHP. Kho lưu trữ này cung cấp nhiều phiên bản PHP, bao gồm PHP 8.1 mới nhất cần thiết cho quá trình cài đặt LibreNMS.
Bây giờ hãy nhập Y và nhấn ENTER để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22302%22%3E%3C/svg%3E
Sau khi kho lưu trữ EPEL và Remi được thêm vào, hãy xác minh bằng cách sử dụng lệnh dnf bên dưới.
Bạn sẽ thấy kho lưu trữ EPEL và Remi được thêm vào và có sẵn trên hệ thống Rocky Linux của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22141%22%3E%3C/svg%3E
Trước khi bắt đầu cài đặt, hãy chạy lệnh sau để bật mô-đun kho lưu trữ PHP 'remi-8.1'. Phiên bản mới nhất của LibreNMS yêu cầu ít nhất PHP 8.
Nhập y để xác nhận và kích hoạt kho lưu trữ PHP Remi 8.1.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22197%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh dnf sau để cài đặt các gói phụ thuộc cho LibreNMS. Khi được nhắc xác nhận cài đặt, hãy nhập y và nhấn ENTER để tiếp tục, quá trình cài đặt sẽ bắt đầu.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22327%22%3E%3C/svg%3E
Sau khi các phụ thuộc được cài đặt, hãy chạy lệnh sau để khởi động và kích hoạt một số dịch vụ như Nginx, MariaDB, PHP-FPM và snmpd.
Tại thời điểm này, một số dịch vụ cơ bản Nginx, MariaDB, PHP-FPM và snmpd sẽ được tự động khởi động khi khởi động hệ thống. Và tất cả các dịch vụ đó đều đang chạy.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22164%22%3E%3C/svg%3E
Chạy lệnh firewall-cmd sau để thêm các dịch vụ HTTP và HTTPS vào firewalld. Bạn sẽ nhận được thông báo đầu ra 'thành công' có nghĩa là quy tắc mới đã được thêm.
Tiếp theo, tải lại firewalld để áp dụng các thay đổi mới. Sau đó, xác minh trạng thái tường lửa bằng lệnh sau.
Bạn sẽ nhận được đầu ra của cả giao thức HTTP và HTTPS được thêm vào tường lửa.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22263%22%3E%3C/svg%3E
Chạy lệnh sau để tạo một người dùng hệ thống mới 'librenms'. Người dùng này sẽ được sử dụng để chạy ứng dụng LibreNMS.
Bây giờ hãy di chuyển thư mục làm việc của bạn đến '/opt' và tải xuống mã nguồn LibreNMS thông qua lệnh git bên dưới. Bây giờ bạn sẽ nhận được một thư mục mới '/opt/librenms', sẽ được sử dụng làm thư mục cài đặt LibreNMS.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22220%22%3E%3C/svg%3E
Thay đổi quyền sở hữu và quyền của thư mục cài đặt LibreNMS '/opt/librenms'. Quyền sở hữu cài đặt phải là người dùng 'librenms' và quyền 771 cũng cho phép người dùng đọc, ghi và thực thi trên thư mục.
Cuối cùng, hãy chạy lệnh sau để thiết lập danh sách kiểm soát truy cập cho một số thư mục LibreNMS. Điều này sẽ cấp cho nhóm 'librenms' quyền đọc, ghi và thực thi trên một số thư mục LibreNMS cụ thể.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2288%22%3E%3C/svg%3E
Đăng nhập với tư cách là người dùng 'librenms' bằng lệnh sau.
Bây giờ, hãy cài đặt các phụ thuộc PHP thông qua tập lệnh cài đặt như bên dưới.
Bây giờ bạn sẽ thấy cài đặt các phụ thuộc PHP cần thiết cho LibreNMS. Bạn cũng sẽ thấy cài đặt các gói Python cho LibreNMS.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22220%22%3E%3C/svg%3E
Sau khi cài đặt các phụ thuộc PHP hoàn tất, bây giờ bạn có thể thoát khỏi người dùng 'librenms' bằng cách nhấn 'Ctrl+d' hoặc bạn có thể nhập lệnh 'exit'.
Chạy lệnh sau để thiết lập múi giờ chính xác cho hệ thống Rocky Linux của bạn.
Bây giờ hãy chỉnh sửa cấu hình PHP '/etc/php.ini' bằng lệnh nano sau biên tập viên.
Bỏ ghi chú tùy chọn 'date.timezone' và thay đổi giá trị theo múi giờ máy chủ hiện tại của bạn.
Lưu tệp và đóng trình biên tập khi bạn hoàn tất.
Tiếp theo, sao chép cấu hình nhóm PHP-FPM mặc định 'www.conf' vào 'librenms'.conf'. Trong ví dụ này, bạn sẽ thiết lập nhóm PHP-FPM cụ thể cho công cụ giám sát LibreNMS.
Bây giờ hãy chỉnh sửa cấu hình nhóm PHP-FPM '/etc/php-fpm.d/librenms.conf' bằng trình chỉnh sửa nano sau.
Thay đổi tên nhóm mặc định từ '[www]' thành '[librenms]'.
Thay đổi người dùng và nhóm mặc định thành 'librenms'. Lệnh này sẽ chạy quy trình PHP-FPM với tư cách là người dùng và nhóm 'librenms'.
Cuối cùng, hãy thay đổi tùy chọn listen thành '/run/php-fpm-librenms.sock'. Lệnh này sẽ chỉ định tệp sock cho nhóm librenms PHP-FPM.
Lưu tệp và thoát khỏi trình soạn thảo khi bạn hoàn tất.
Bây giờ hãy chạy lệnh systemctl sau để khởi động lại dịch vụ PHP-FPM và áp dụng các thay đổi mới.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22196%22%3E%3C/svg%3E
LibreNMS yêu cầu máy chủ cơ sở dữ liệu MariaDB có bật InnoDB. Vì vậy, bây giờ bạn sẽ cần bật nó. Sau đó, bạn sẽ tạo một cơ sở dữ liệu và người dùng mới cho LibreNMS.
Chỉnh sửa cấu hình máy chủ MariaDB '/etc/my.cnf.d/mariadb-server.cnf' bằng trình chỉnh sửa nano sau.
Đặt cấu hình sau vào dưới '[mysqld]' section.
Lưu tệp và thoát khỏi trình chỉnh sửa khi bạn hoàn tất.
Bây giờ hãy chạy lệnh systemctl sau đây để khởi động lại dịch vụ MariaDB và áp dụng các thay đổi mới. Máy chủ MariaDB hiện đang chạy với công cụ cơ sở dữ liệu InnoDB được bật.
Tiếp theo, hãy đăng nhập vào shell MariaDB thông qua lệnh mysql bên dưới. Khi được nhắc nhập mật khẩu, bạn chỉ cần nhấn ENTER hoặc nhập mật khẩu gốc MariaDB.
Chạy các truy vấn sau để tạo cơ sở dữ liệu và người dùng mới cho LibreNMS. Trong ví dụ này, bạn sẽ tạo một cơ sở dữ liệu và người dùng mới 'librenms', và hãy nhớ thay đổi mật khẩu cơ sở dữ liệu bằng mật khẩu của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22214%22%3E%3C/svg%3E
Tiếp theo, chạy truy vấn sau để xác minh các đặc quyền cho người dùng cơ sở dữ liệu 'librenms@localhost'.
Bạn sẽ thấy người dùng 'librenms'@localhost' có quyền đối với cơ sở dữ liệu 'librenms'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22185%22%3E%3C/svg%3E
Bây giờ hãy nhập 'exit' để đăng xuất khỏi shell MariaDB.
Trước khi bắt đầu, hãy đảm bảo rằng bạn đã quyết định tên miền cục bộ sẽ được sử dụng cho LibreNMS. Trong ví dụ này, LibreNMS phải chạy với miền 'librenms.howtoforge.local'.
Tạo cấu hình khối máy chủ Nginx mới '/etc/nginx/conf.d/librenms.conf' bằng trình chỉnh sửa nano sau.
Thêm cấu hình sau vào tệp và đảm bảo thay đổi tên miền bằng domain.
Lưu tệp và thoát khỏi trình chỉnh sửa khi bạn hoàn tất.
Tiếp theo, chạy lệnh sau để xác minh cấu hình Nginx và đảm bảo cấu hình là chính xác.
Nếu cấu hình Nginx của bạn đúng, bạn sẽ thấy thông báo đầu ra như 'kiểm tra thành công - Cú pháp OK'.
Bây giờ hãy khởi động lại dịch vụ Nginx để áp dụng cấu hình khối máy chủ mới.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22731%22%20height=%22196%22%3E%3C/svg%3E
Tại đây point, bạn đã hoàn tất cấu hình LEMP Stack (Nginx, cơ sở dữ liệu MariaDB và PHP-FPM) cho LibreNMS. Ngoài ra, LibreNMS hiện sẽ chạy trên hệ thống Rocky Linux của bạn.
Để bắt đầu, hãy chạy lệnh dnf sau đây để cài đặt gói 'policycoreutils-python-utils' vào hệ thống Rocky Linux của bạn. Gói này cung cấp nhiều dòng lệnh để quản lý SELinux.
Khi được nhắc, hãy nhập y để xác nhận và nhấn ENTER để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22239%22%3E%3C/svg%3E
Tiếp theo, hãy chạy lệnh sau để thiết lập nhãn cho nguồn LibreNMS mã.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22160%22%3E%3C/svg%3E
Chạy lệnh sau để cho phép truy cập một số dịch vụ cho web Nginx máy chủ.
Bây giờ, hãy tạo một tệp mới 'http_fping.tt' bằng trình chỉnh sửa nano sau.
Thêm cấu hình sau vào tệp.
Lưu tệp và thoát khỏi trình chỉnh sửa khi bạn hoàn tất.
Tiếp theo, chạy lệnh sau để chuyển đổi 'http_fping.tt' sang định dạng cho SELinux. Sau đó, thêm quy tắc đã biên dịch mới vào SELinux.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22223%22%3E%3C/svg%3E
Bây giờ bạn đã hoàn tất cấu hình SELinux cho LibreNMS. Tiếp theo, bạn sẽ thiết lập một số cấu hình bổ sung cho LibreNMS.
Chạy lệnh sau để kích hoạt dòng lệnh 'lnms' và sao chép lệnh bash hoàn thành 'lnms'.
Sao chép cấu hình mẫu của cron LibreNMS vào '/etc/cron.d/librenms'.
Sao chép cấu hình logrotate mặc định cho LibreNMS vào '/etc/logrotate.d/librenms'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22191%22%3E%3C/svg%3E
Bây giờ hãy sao chép cấu hình dịch vụ snmpd mặc định vào '/etc/snmp/snmpd.conf'. Sau đó, chỉnh sửa tệp mới '/etc/snmp/snmpd.conf' bằng trình chỉnh sửa nano.
Thay đổi mật khẩu cộng đồng mặc định cho dịch vụ snmpd 'RANDOMSTRINGGOESHERE' bằng mật khẩu của bạn.
Lưu tệp và thoát khỏi trình chỉnh sửa khi bạn hoàn tất.
Tiếp theo, tải xuống tệp nhị phân sẽ được LibreNMS sử dụng để tự động phát hiện hệ điều hành của mọi máy chủ đích. Sau đó, hãy thực thi bằng cách thay đổi quyền mặc định.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22144%22%3E%3C/svg%3E
Cuối cùng, hãy khởi động lại dịch vụ snmpd để áp dụng các thay đổi mới và cấu hình.
Bây giờ tất cả các cấu hình cơ bản đã hoàn tất. Tiếp theo, bạn sẽ bắt đầu cài đặt LibreNMS thông qua trình duyệt web.
Bây giờ hãy mở trình duyệt web và truy cập tên miền cài đặt LibreNMS của bạn (ví dụ: http://librenms.howtoforge.local/).
Đầu tiên, trình cài đặt LibreNMS sẽ kiểm tra môi trường để cài đặt. Đảm bảo tất cả các yêu cầu được đánh dấu màu xanh lá cây, điều này có nghĩa là hệ thống đã sẵn sàng để cài đặt LibreNMS.
Nhấp vào biểu tượng cơ sở dữ liệu để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22689%22%20height=%22609%22%3E%3C/svg%3E
Bây giờ hãy nhập thông tin chi tiết về cơ sở dữ liệu và người dùng cho LibreNMS của bạn và nhấp vào 'Kiểm tra thông tin xác thực'. Nếu thông tin xác thực cơ sở dữ liệu của bạn chính xác, phần này sẽ được đánh dấu màu xanh lá cây.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22609%22%20height=%22750%22%3E%3C/svg%3E
Bây giờ hãy nhấp vào 'Xây dựng cơ sở dữ liệu' để bắt đầu di chuyển cơ sở dữ liệu cho LibreNMS.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22632%22%20height=%22530%22%3E%3C/svg%3E
Sau khi quá trình di chuyển cơ sở dữ liệu hoàn tất, bạn sẽ thấy phần 'Xây dựng cơ sở dữ liệu' được đánh dấu là màu xanh lá cây.
Nhấp vào biểu tượng chìa khóa để bắt đầu cấu hình người dùng quản trị cho LibreNMS.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22621%22%20height=%22542%22%3E%3C/svg%3E
Bây giờ hãy nhập người dùng quản trị mới, mật khẩu và địa chỉ email cho cài đặt LibreNMS của bạn và nhấp vào 'Thêm người dùng'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22627%22%20height=%22544%22%3E%3C/svg%3E
Bây giờ quá trình cài đặt đã hoàn tất và bạn sẽ thấy trang sau. Bạn có thể thấy quá trình cài đặt đã hoàn tất và các cấu hình đã được ghi vào tệp '.env'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22623%22%20height=%22712%22%3E%3C/svg%3E
Bây giờ hãy nhấp vào liên kết 'xác thực cài đặt của bạn' để xác minh cài đặt LibreNMS.
Bây giờ bạn sẽ được chuyển hướng đến trang đăng nhập LibreNMS. Nhập tên người dùng và mật khẩu quản trị viên của bạn, sau đó nhấp vào 'Đăng nhập'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22692%22%20height=%22529%22%3E%3C/svg%3E
Bây giờ hãy đảm bảo rằng tất cả các cấu hình được đánh dấu là 'OK', nghĩa là cấu hình không có lỗi.
Bạn cũng có thể sửa tất cả các lỗi hoặc cảnh báo bằng cách làm theo hướng dẫn do LibreNMS khuyến nghị.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22723%22%3E%3C/svg%3E
Bây giờ bạn có thể thêm máy chủ đích, máy ảo hoặc thiết bị mạng mới để giám sát Giải pháp giám sát LibreNMS.
Từ đây, bạn có thể tiếp tục thêm máy chủ hoặc máy đích để giám sát, thiết lập LibreNMS Agent, thiết lập cảnh báo hoặc thông báo, thiết lập tích hợp của bên thứ ba với Graylog và thực hiện các tác vụ khác.
Có ba phiên bản Giao thức SNMP, v1 và v2 được bảo mật chỉ bằng mật khẩu cộng đồng và giao thức v3 hỗ trợ mật khẩu để xác thực và mã hóa. Đối với môi trường sản xuất, bạn nên sử dụng giao thức SNMP v3, an toàn hơn v2 và v1.
Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt công cụ giám sát LibreNMS trên máy chủ Rocky Linux. Hướng dẫn này bao gồm cài đặt LEMP Stack (Nginx, MariaDB và PHP-FPM) và cấu hình cơ bản của dịch vụ SNMP.
Cuối cùng, bạn sẽ có giải pháp giám sát LibreNMS sẵn sàng cho sản xuất và bạn chỉ cần thêm máy chủ hoặc máy chủ mới hoặc thiết bị để giám sát LibreNMS.
Điều kiện tiên quyết
Để hoàn thành hướng dẫn này, bạn sẽ cần các yêu cầu sau:- Máy chủ Rocky Linux - Ví dụ này sử dụng Rocky Linux 8.
- Người dùng không phải root có quyền sudo root/administrator.
- Tên miền cục bộ để triển khai cục bộ.
Thiết lập kho lưu trữ
Trước khi bắt đầu cài đặt các gói, bây giờ bạn sẽ thiết lập kho lưu trữ trên hệ thống Rocky Linux của mình. Bạn sẽ cần thêm kho lưu trữ EPEL (Gói bổ sung cho Enterprise Linux) và kho lưu trữ PHP Remi.Chạy lệnh dnf sau để thêm kho lưu trữ EPEL vào hệ thống của bạn.
Mã:
sudo dnf install epel-release
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22650%22%20height=%22263%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh dnf sau để thêm kho lưu trữ Remi của PHP. Kho lưu trữ này cung cấp nhiều phiên bản PHP, bao gồm PHP 8.1 mới nhất cần thiết cho quá trình cài đặt LibreNMS.
Mã:
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22302%22%3E%3C/svg%3E
Sau khi kho lưu trữ EPEL và Remi được thêm vào, hãy xác minh bằng cách sử dụng lệnh dnf bên dưới.
Mã:
sudo dnf repolist
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22141%22%3E%3C/svg%3E
Cài đặt các gói phụ thuộc
Sau khi thêm kho lưu trữ EPEL và Remi, bạn sẽ bây giờ hãy bắt đầu cài đặt các gói phụ thuộc cho LibreNMS. Bao gồm LEMP Stack, các gói SNMP và một số gói phụ thuộc Python cơ bản.Trước khi bắt đầu cài đặt, hãy chạy lệnh sau để bật mô-đun kho lưu trữ PHP 'remi-8.1'. Phiên bản mới nhất của LibreNMS yêu cầu ít nhất PHP 8.
Mã:
sudo dnf reset php
sudo dnf module enable php:remi-8.1
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22197%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh dnf sau để cài đặt các gói phụ thuộc cho LibreNMS. Khi được nhắc xác nhận cài đặt, hãy nhập y và nhấn ENTER để tiếp tục, quá trình cài đặt sẽ bắt đầu.
Mã:
sudo dnf install bash-completion cronie fping git ImageMagick mariadb-server mtr net-snmp net-snmp-utils nginx nmap php-fpm php-cli php-common php-curl php-gd php-gmp php-json php-mbstring php-process php-snmp php-xml php-zip php-mysqlnd python3 python3-PyMySQL python3-devel python3-redis python3-memcached python3-pip python3-systemd rrdtool unzip
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22327%22%3E%3C/svg%3E
Sau khi các phụ thuộc được cài đặt, hãy chạy lệnh sau để khởi động và kích hoạt một số dịch vụ như Nginx, MariaDB, PHP-FPM và snmpd.
Mã:
sudo systemctl enable nginx php-fpm mariadb snmpd
sudo systemctl start nginx php-fpm mariadb snmpd
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22164%22%3E%3C/svg%3E
Thiết lập Firewalld
Trong ví dụ này, chúng tôi sử dụng Rocky Linux với firewalld được bật. Bây giờ bạn sẽ thêm cả giao thức HTTP và HTTPS vào firewalld.Chạy lệnh firewall-cmd sau để thêm các dịch vụ HTTP và HTTPS vào firewalld. Bạn sẽ nhận được thông báo đầu ra 'thành công' có nghĩa là quy tắc mới đã được thêm.
Mã:
sudo firewall-cmd --permanent --zone public --add-service http
sudo firewall-cmd --permanent --zone public --add-service https
Mã:
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22263%22%3E%3C/svg%3E
Đang tải xuống LibreNMS Mã nguồn
Trong bước này, bạn sẽ tải xuống mã nguồn LibreNMS từ GitHub. Nhưng trước đó, bạn cũng sẽ tạo một người dùng chuyên dụng mới 'librenms' sẽ được sử dụng để chạy ứng dụng LibreNMS.Chạy lệnh sau để tạo một người dùng hệ thống mới 'librenms'. Người dùng này sẽ được sử dụng để chạy ứng dụng LibreNMS.
Mã:
sudo useradd librenms -d /opt/librenms -M -r -s "$(which bash)"
Mã:
cd /opt
git clone https://github.com/librenms/librenms.git
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22220%22%3E%3C/svg%3E
Thay đổi quyền sở hữu và quyền của thư mục cài đặt LibreNMS '/opt/librenms'. Quyền sở hữu cài đặt phải là người dùng 'librenms' và quyền 771 cũng cho phép người dùng đọc, ghi và thực thi trên thư mục.
Mã:
sudo chown -R librenms:librenms /opt/librenms
sudo chmod 771 /opt/librenms
Mã:
sudo setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/
sudo setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2288%22%3E%3C/svg%3E
Cài đặt PHP Dependencies cho LibreNMS
Sau khi tải xuống mã nguồn LibreNMS và cấu hình quyền chính xác, bây giờ bạn sẽ cài đặt các phụ thuộc PHP cho LibreNMS.Đăng nhập với tư cách là người dùng 'librenms' bằng lệnh sau.
Mã:
su - librenms
Mã:
./scripts/composer_wrapper.php install --no-dev
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22220%22%3E%3C/svg%3E
Sau khi cài đặt các phụ thuộc PHP hoàn tất, bây giờ bạn có thể thoát khỏi người dùng 'librenms' bằng cách nhấn 'Ctrl+d' hoặc bạn có thể nhập lệnh 'exit'.
Cấu hình PHP-FPM
Trong bước này, bạn sẽ cấu hình cài đặt PHP-FPM cho LibreNMS. Bạn sẽ sửa đổi cấu hình mặc định '/etc/php.ini' và thiết lập một nhóm PHP-FPM cụ thể cho LibreNMS.Chạy lệnh sau để thiết lập múi giờ chính xác cho hệ thống Rocky Linux của bạn.
Mã:
sudo timedatectl set-timezone Europe/Stockholm
Mã:
sudo nano /etc/php.ini
Mã:
date.timezone = Europe/Stockholm
Tiếp theo, sao chép cấu hình nhóm PHP-FPM mặc định 'www.conf' vào 'librenms'.conf'. Trong ví dụ này, bạn sẽ thiết lập nhóm PHP-FPM cụ thể cho công cụ giám sát LibreNMS.
Mã:
cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/librenms.conf
Mã:
sudo nano /etc/php-fpm.d/librenms.conf
Mã:
[librenms]
Mã:
user = librenms
group = librenms
Mã:
listen = /run/php-fpm-librenms.sock
Bây giờ hãy chạy lệnh systemctl sau để khởi động lại dịch vụ PHP-FPM và áp dụng các thay đổi mới.
Mã:
sudo systemctl restart php-fpm
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22196%22%3E%3C/svg%3E
Cấu hình máy chủ MariaDB
Sau khi cấu hình PHP-FPM, bây giờ bạn sẽ thiết lập máy chủ cơ sở dữ liệu MariaDB và tạo cơ sở dữ liệu và người dùng mới cho LibreNMS.LibreNMS yêu cầu máy chủ cơ sở dữ liệu MariaDB có bật InnoDB. Vì vậy, bây giờ bạn sẽ cần bật nó. Sau đó, bạn sẽ tạo một cơ sở dữ liệu và người dùng mới cho LibreNMS.
Chỉnh sửa cấu hình máy chủ MariaDB '/etc/my.cnf.d/mariadb-server.cnf' bằng trình chỉnh sửa nano sau.
Mã:
sudo nano /etc/my.cnf.d/mariadb-server.cnf
Mã:
[mysqld]
....
innodb_file_per_table=1
lower_case_table_names=0
Bây giờ hãy chạy lệnh systemctl sau đây để khởi động lại dịch vụ MariaDB và áp dụng các thay đổi mới. Máy chủ MariaDB hiện đang chạy với công cụ cơ sở dữ liệu InnoDB được bật.
Mã:
sudo systemctl restart mariadb
Mã:
sudo mysql -u root -p
Mã:
CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22214%22%3E%3C/svg%3E
Tiếp theo, chạy truy vấn sau để xác minh các đặc quyền cho người dùng cơ sở dữ liệu 'librenms@localhost'.
Mã:
SHOW GRANTS FOR librenms@localhost;
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22185%22%3E%3C/svg%3E
Bây giờ hãy nhập 'exit' để đăng xuất khỏi shell MariaDB.
Thiết lập Nginx Server Blocks
Sau khi bạn đã cấu hình máy chủ MariaDB và tạo cơ sở dữ liệu và người dùng, bây giờ bạn sẽ tạo cấu hình khối máy chủ Nginx mới cho LibreNMS.Trước khi bắt đầu, hãy đảm bảo rằng bạn đã quyết định tên miền cục bộ sẽ được sử dụng cho LibreNMS. Trong ví dụ này, LibreNMS phải chạy với miền 'librenms.howtoforge.local'.
Tạo cấu hình khối máy chủ Nginx mới '/etc/nginx/conf.d/librenms.conf' bằng trình chỉnh sửa nano sau.
Mã:
sudo nano /etc/nginx/conf.d/librenms.conf
Mã:
server {
listen 80;
server_name librenms.howtoforge.local;
root /opt/librenms/html;
index index.php;
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 ~ [^/]\.php(/|$) {
fastcgi_pass unix:/run/php-fpm-librenms.sock;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi.conf;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
Tiếp theo, chạy lệnh sau để xác minh cấu hình Nginx và đảm bảo cấu hình là chính xác.
Mã:
sudo nginx -t
Bây giờ hãy khởi động lại dịch vụ Nginx để áp dụng cấu hình khối máy chủ mới.
Mã:
sudo systemctl restart nginx
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22731%22%20height=%22196%22%3E%3C/svg%3E
Tại đây point, bạn đã hoàn tất cấu hình LEMP Stack (Nginx, cơ sở dữ liệu MariaDB và PHP-FPM) cho LibreNMS. Ngoài ra, LibreNMS hiện sẽ chạy trên hệ thống Rocky Linux của bạn.
Cấu hình SELinux
Đối với hướng dẫn này, bạn sẽ chạy LibreNMS với SELinux được bật ở chế độ thực thi. Vì vậy, bây giờ bạn sẽ thiết lập các quy tắc SELinux cho LibreNMS.Để bắt đầu, hãy chạy lệnh dnf sau đây để cài đặt gói 'policycoreutils-python-utils' vào hệ thống Rocky Linux của bạn. Gói này cung cấp nhiều dòng lệnh để quản lý SELinux.
Mã:
sudo dnf install policycoreutils-python-utils
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22239%22%3E%3C/svg%3E
Tiếp theo, hãy chạy lệnh sau để thiết lập nhãn cho nguồn LibreNMS mã.
Mã:
semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/html(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/(rrd|storage)(/.*)?'
semanage fcontext -a -t httpd_log_t "/opt/librenms/logs(/.*)?"
semanage fcontext -a -t bin_t '/opt/librenms/librenms-service.py'
restorecon -RFvv /opt/librenms
chcon -t httpd_sys_rw_content_t /opt/librenms/.env
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22160%22%3E%3C/svg%3E
Chạy lệnh sau để cho phép truy cập một số dịch vụ cho web Nginx máy chủ.
Mã:
setsebool -P httpd_can_sendmail=1
setsebool -P httpd_execmem 1
Mã:
nano http_fping.tt
Mã:
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 };
Tiếp theo, chạy lệnh sau để chuyển đổi 'http_fping.tt' sang định dạng cho SELinux. Sau đó, thêm quy tắc đã biên dịch mới vào SELinux.
Mã:
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
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22223%22%3E%3C/svg%3E
Bây giờ bạn đã hoàn tất cấu hình SELinux cho LibreNMS. Tiếp theo, bạn sẽ thiết lập một số cấu hình bổ sung cho LibreNMS.
Hoàn tất cấu hình LibreNMS
Để hoàn tất cấu hình LibreNMS, bây giờ bạn sẽ thiết lập dòng lệnh 'lnms', sao chép một số cấu hình mặc định của LibreNMS bao gồm các cấu hình cho cron và logrotate. Ngoài ra, bạn sẽ thiết lập dịch vụ SNMP cho LibreNMS.Chạy lệnh sau để kích hoạt dòng lệnh 'lnms' và sao chép lệnh bash hoàn thành 'lnms'.
Mã:
ln -s /opt/librenms/lnms /usr/bin/lnms
cp /opt/librenms/misc/lnms-completion.bash /etc/bash_completion.d/
Mã:
sudo cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms
Mã:
sudo cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22191%22%3E%3C/svg%3E
Bây giờ hãy sao chép cấu hình dịch vụ snmpd mặc định vào '/etc/snmp/snmpd.conf'. Sau đó, chỉnh sửa tệp mới '/etc/snmp/snmpd.conf' bằng trình chỉnh sửa nano.
Mã:
sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
sudo nano /etc/snmp/snmpd.conf
Mã:
# Change RANDOMSTRINGGOESHERE to your preferred SNMP community string
com2sec readonly default RANDOMSTRINGGOESHERE
Tiếp theo, tải xuống tệp nhị phân sẽ được LibreNMS sử dụng để tự động phát hiện hệ điều hành của mọi máy chủ đích. Sau đó, hãy thực thi bằng cách thay đổi quyền mặc định.
Mã:
curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
chmod +x /usr/bin/distro
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22144%22%3E%3C/svg%3E
Cuối cùng, hãy khởi động lại dịch vụ snmpd để áp dụng các thay đổi mới và cấu hình.
Mã:
systemctl restart snmpd
Truy cập Cài đặt Web LibreNMS
Trên máy cục bộ của bạn, hãy chỉnh sửa tệp '/etc/hosts' và xác định tên miền cục bộ của cài đặt LibreNMS của bạn. Ngoài ra, hãy đảm bảo thay đổi địa chỉ IP bằng địa chỉ IP máy chủ của bạn.
Mã:
192.168.5.100 librenms.howtoforge.local
Đầu tiên, trình cài đặt LibreNMS sẽ kiểm tra môi trường để cài đặt. Đảm bảo tất cả các yêu cầu được đánh dấu màu xanh lá cây, điều này có nghĩa là hệ thống đã sẵn sàng để cài đặt LibreNMS.
Nhấp vào biểu tượng cơ sở dữ liệu để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22689%22%20height=%22609%22%3E%3C/svg%3E
Bây giờ hãy nhập thông tin chi tiết về cơ sở dữ liệu và người dùng cho LibreNMS của bạn và nhấp vào 'Kiểm tra thông tin xác thực'. Nếu thông tin xác thực cơ sở dữ liệu của bạn chính xác, phần này sẽ được đánh dấu màu xanh lá cây.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22609%22%20height=%22750%22%3E%3C/svg%3E
Bây giờ hãy nhấp vào 'Xây dựng cơ sở dữ liệu' để bắt đầu di chuyển cơ sở dữ liệu cho LibreNMS.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22632%22%20height=%22530%22%3E%3C/svg%3E
Sau khi quá trình di chuyển cơ sở dữ liệu hoàn tất, bạn sẽ thấy phần 'Xây dựng cơ sở dữ liệu' được đánh dấu là màu xanh lá cây.
Nhấp vào biểu tượng chìa khóa để bắt đầu cấu hình người dùng quản trị cho LibreNMS.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22621%22%20height=%22542%22%3E%3C/svg%3E
Bây giờ hãy nhập người dùng quản trị mới, mật khẩu và địa chỉ email cho cài đặt LibreNMS của bạn và nhấp vào 'Thêm người dùng'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22627%22%20height=%22544%22%3E%3C/svg%3E
Bây giờ quá trình cài đặt đã hoàn tất và bạn sẽ thấy trang sau. Bạn có thể thấy quá trình cài đặt đã hoàn tất và các cấu hình đã được ghi vào tệp '.env'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22623%22%20height=%22712%22%3E%3C/svg%3E
Bây giờ hãy nhấp vào liên kết 'xác thực cài đặt của bạn' để xác minh cài đặt LibreNMS.
Bây giờ bạn sẽ được chuyển hướng đến trang đăng nhập LibreNMS. Nhập tên người dùng và mật khẩu quản trị viên của bạn, sau đó nhấp vào 'Đăng nhập'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22692%22%20height=%22529%22%3E%3C/svg%3E
Bây giờ hãy đảm bảo rằng tất cả các cấu hình được đánh dấu là 'OK', nghĩa là cấu hình không có lỗi.
Bạn cũng có thể sửa tất cả các lỗi hoặc cảnh báo bằng cách làm theo hướng dẫn do LibreNMS khuyến nghị.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22723%22%3E%3C/svg%3E
Bây giờ bạn có thể thêm máy chủ đích, máy ảo hoặc thiết bị mạng mới để giám sát Giải pháp giám sát LibreNMS.
Kết luận
Xin chúc mừng! Bạn đã cài đặt Giải pháp giám sát LibreNMS trên máy chủ Rocky Linux. Bạn cũng đã tìm hiểu cấu hình cơ bản của LEMP Stack (Nginx, MariaDB và PHP-FPM) trên Rocky Linux.Từ đây, bạn có thể tiếp tục thêm máy chủ hoặc máy đích để giám sát, thiết lập LibreNMS Agent, thiết lập cảnh báo hoặc thông báo, thiết lập tích hợp của bên thứ ba với Graylog và thực hiện các tác vụ khác.