Cách cài đặt giải pháp giám sát OpenNMS trên Ubuntu 22.04

theanh

Administrator
Nhân viên
OpeNNMS là giải pháp giám sát và quản lý mạng miễn phí và mã nguồn mở. Đây là nền tảng giám sát mạng cấp doanh nghiệp, có thể trực quan hóa và giám sát mọi thứ trên cả mạng cục bộ và mạng từ xa. OpenNMS là giải pháp mã nguồn mở hoàn toàn để giám sát và quản lý mạng, được phát hành theo giấy phép AGPLv3.

OpenNMS là nền tảng giám sát mạng có thể mở rộng cho phép bạn giám sát hàng chục nghìn mạng thông qua các hệ thống phân tán và phân tầng. Ngoài ra, OpenNMS là một nền tảng giám sát linh hoạt, dễ dàng tích hợp với hoạt động kinh doanh cốt lõi của bạn và các tiện ích mở rộng của bên thứ ba.

OpenNMS có nhiều thành phần được liệt kê bên dưới:
  1. OpenNMS Horizon - gói gồm ba thành phần chính: Core (thành phần chính của Horizon), Minion (được sử dụng để giám sát phân tán từ xa) và Sentinel (để mở rộng quy mô).
  2. Helm - bảng điều khiển tùy chỉnh cho OpenNMS.
  3. Kiến trúc cho tương quan hỗ trợ học tập (ALEC) (phân loại cảnh báo).
  4. Máy chủ tích hợp cung cấp (PRIS) (tích hợp dữ liệu đã trích xuất).
Hướng dẫn này chỉ cho bạn cách cài đặt Giải pháp giám sát OpenNMS với máy chủ cơ sở dữ liệu PostgreSQL và Nginx Reverse Proxy trên máy chủ Ubuntu 22.04. Ngoài ra, hướng dẫn này sẽ chỉ cho bạn cách cài đặt Java OpenJDK, cấu hình cơ bản của máy chủ cơ sở dữ liệu PostgreSQL và máy chủ web Nginx.

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

Trước hết, bạn sẽ cần các yêu cầu sau để hoàn thành hướng dẫn này:
  • Máy chủ Ubuntu 22.04 - Ví dụ này sử dụng máy chủ Ubuntu có tên máy chủ 'opennms-server' và bộ nhớ là 4GB.
  • Người dùng không phải root có quyền quản trị viên sudo/root.\
  • Tên miền hoặc tên miền cục bộ sẽ được sử dụng để chạy OpenNMS.

Cài đặt Java OpenJDK​

Giải pháp giám sát OPneNMS là một công cụ giám sát chủ yếu được viết bằng Java. Tại thời điểm viết bài này, phiên bản mới nhất của OpenNMS hỗ trợ tối thiểu Java 11. Kho lưu trữ Ubuntu 22.04 mặc định cung cấp Java OpenJDK 11 mà bạn có thể dễ dàng cài đặt qua APT.

Trước khi cài đặt Java, hãy chạy lệnh apt sau để cập nhật và làm mới gói của bạn index.
Mã:
sudo apt update
Bây giờ hãy cài đặt Java OpenJDK 11 thông qua lệnh apt bên dưới. Phiên bản Java mặc định cho hệ thống Ubuntu 22.04 là Java OpenJDK 11, phù hợp để cài đặt OpenNMS.
Mã:
sudo apt install default-jdk
Khi được nhắc, hãy nhập y để xác nhận và nhấn ENTER. Quá trình cài đặt Java OpenJDK sẽ bắt đầu.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22596%22%3E%3C/svg%3E


Sau khi Java OpenJDK được cài đặt, hãy chạy lệnh bên dưới để xác minh phiên bản Java đã cài đặt. Bạn nên cài đặt Java OpenJDK 1.11 trên hệ thống Ubuntu của mình.
Mã:
java -version

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22145%22%3E%3C/svg%3E


Sau khi cài đặt Java OpenJDK, hãy chuyển đến cài đặt cơ sở dữ liệu PostgreSQL.

Cài đặt và cấu hình PostgreSQL Server​

PostgreSQL là RDMS (Hệ thống quản lý cơ sở dữ liệu quan hệ) hiệu suất cao. OpenNMS chỉ hỗ trợ PostgreSQL làm cơ sở dữ liệu phụ trợ. Tại thời điểm viết bài này, OpenNMS hỗ trợ PostgreSQL v10.x-14.x.

Bây giờ bạn sẽ cài đặt và cấu hình cơ sở dữ liệu PostgreSQL v14 trên máy chủ Ubuntu. Theo mặc định, kho lưu trữ Ubuntu cung cấp nhiều phiên bản PostgreSQL và bạn sẽ cài đặt PostgreSQL 14.x để triển khai OpenNMS.

Chạy lệnh apt bên dưới để cài đặt PostgreSQL 14.
Mã:
sudo apt install postgresql-14
Khi được nhắc xác nhận, 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=%22724%22%20height=%22373%22%3E%3C/svg%3E


Sau khi gói PostgreSQL được cài đặt, hãy chạy lệnh systemctl sau để xác minh dịch vụ PostgreSQL và đảm bảo rằng dịch vụ đang chạy và được bật.
Mã:
sudo systemctl is-enabled postgresql
sudo systemctl status postgresql
Sau đó, bạn sẽ thấy dịch vụ PostgreSQL được bật và sẽ tự động chạy khi khởi động. Và trạng thái của dịch vụ PostgreSQL đang chạy.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22201%22%3E%3C/svg%3E


Bây giờ cơ sở dữ liệu PostgreSQL đang chạy, bạn sẽ xem xét cơ sở dữ liệu và tạo người dùng cho OpenNMS. Bạn cũng sẽ thiết lập mật khẩu cho người dùng PostgreSQL mặc định 'postgres'.

Chạy lệnh bên dưới để tạo người dùng PostgreSQL mới 'opennms'. Khi được nhắc nhập mật khẩu, hãy nhập mật khẩu mới cho người dùng 'opennms' và lặp lại.
Mã:
sudo -u postgres createuser -P opennms
Tiếp theo, tạo cơ sở dữ liệu mới 'opennms' với chủ sở hữu 'opennms' thông qua lệnh sau.
Mã:
sudo -u postgres createdb -O opennms opennms
Cuối cùng, hãy thay đổi mật khẩu của Người dùng 'postgres' thông qua lệnh sau. Và hãy chắc chắn thay đổi mật khẩu mới mạnh hơn.
Mã:
sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD '5up3rp4ssw0rd';"

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22137%22%3E%3C/svg%3E


Bây giờ bạn đã cài đặt java OpenJDK và PostgreSQL, bạn đã sẵn sàng để cài đặt OpenNMS.

Cài đặt và cấu hình OpenNMS​

Bạn đã cài đặt Java OpenJDK và cơ sở dữ liệu PostgreSQL, bạn cũng đã tạo một cơ sở dữ liệu và người dùng mới cho OpenNMS và cấu hình mật khẩu mặc định cho người dùng PostgreSQL 'postgres'. Sau đó, bạn sẽ bắt đầu cài đặt và cấu hình OpenNMS.

Trong phần này, bạn sẽ cài đặt OpenNMS thông qua kho lưu trữ OpenNMS chính thức. Sau đó, bạn sẽ thiết lập OpenNMS với cơ sở dữ liệu PostgreSQL, thiết lập môi trường Java, khởi tạo lược đồ cơ sở dữ liệu, phát hiện thư viện hệ thống và cho phép OpenNMS chạy trên các cổng đặc quyền.

Đầu tiên, hãy chạy lệnh sau để thêm khóa GPG và kho lưu trữ OpenNMS.
Mã:
sudo apt-key adv --fetch-keys https://debian.opennms.org/OPENNMS-GPG-KEY
sudo add-apt-repository -s 'deb https://debian.opennms.org stable main'
Khi được nhắc, hãy nhấn ENTER để xác nhận và thêm kho lưu trữ OpenNMS.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22307%22%3E%3C/svg%3E


Bây giờ hãy cài đặt gói OpenNMS với các gói R bổ sung thông qua lệnh apt bên dưới.
Mã:
sudo apt install opennms r-recommended
Khi được nhắc xác nhận, 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=%22714%22%3E%3C/svg%3E


Tiếp theo, chạy lệnh apt bên dưới để tắt tính năng tự động cập nhật của gói OpenNMS. OpenNMS yêu cầu các bước và cấu hình thủ công khi nâng cấp lên phiên bản mới, vì vậy bạn phải nâng cấp thủ công để tránh lỗi trong/sau khi nâng cấp.
Mã:
sudo apt-mark hold libopennms-java \
libopennmsdeps-java \
opennms-common \
opennms-db

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22650%22%20height=%22241%22%3E%3C/svg%3E


Bây giờ OpenNMS đã được cài đặt, bạn có thể xác minh thư mục cài đặt OpenNMS '/usr/share/opennms' thông qua lệnh bên dưới. Ngoài ra, bất kỳ thay đổi nào liên quan đến OpenNMS đều phải được áp dụng cho các tệp trong thư mục '/usr/share/opennms'.
Mã:
sudo apt install tree -y
sudo tree /usr/share/opennms -L 1
Bạn có thể thấy danh sách các thư mục và tệp cho gói OpenNMS.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22581%22%20height=%22351%22%3E%3C/svg%3E


Tiếp theo, bạn sẽ thiết lập cấu hình cơ sở dữ liệu cho OpenNMS. Mở tệp '/usr/share/opennms/etc/opennms-datasources.xml' bằng lệnh nano editor sau. Lệnh 'sudo -u opennms..' cho biết bạn đang chạy lệnh với tư cách là người dùng 'opennms' chứ không phải là người dùng root.
Mã:
sudo -u opennms nano /usr/share/opennms/etc/opennms-datasources.xml
Thay đổi 'jdbc-data-source' cho 'opennms' phải sử dụng thông tin chi tiết của cơ sở dữ liệu và người dùng 'opennms'. Và đối với 'opennms-admin', bạn nên sử dụng người dùng quản trị PostgreSQL 'postgres'.
Mã:
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 sau để phát hiện môi trường Java trên hệ thống của bạn, môi trường này sẽ được lưu trữ vĩnh viễn trong tệp cấu hình '/usr/share/opennms/etc/java.conf'.
Mã:
sudo -u opennms /usr/share/opennms/bin/runjava -s

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22221%22%3E%3C/svg%3E


Sau đó, chạy lệnh bên dưới để khởi tạo cơ sở dữ liệu và phát hiện các thư viện hệ thống cho OpenNMS. Thư viện cho OpenNMS sẽ được liệt kê trong tệp '/opt/opennms/etc/libraries.properties'.
Mã:
sudo -u opennms /usr/share/opennms/bin/install -dis

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22359%22%3E%3C/svg%3E


Tiếp theo, chỉnh sửa tệp dịch vụ OpenNMS thông qua lệnh systemctl sau. Bạn nên có EDITOR mặc định trên hệ thống của mình.
Mã:
sudo systemctl edit --full opennms.service
Thêm cấu hình sau vào phần '[Dịch vụ]'. Điều này cho phép dịch vụ OpenNMS chạy và liên kết trong các cổng đặc quyền (cổng 1-1024).
Mã:
[Service]
...
AmbientCapabilities=CAP_NET_RAW CAP_NET_BIND_SERVICE
Lưu tệp và thoát khỏi trình chỉnh sửa khi bạn hoàn tất.

Sau khi sửa đổi tệp dịch vụ OpenNMS, hãy chạy lệnh sau để tải lại trình quản lý systemd, khởi động lại và bật OpenNMS dịch vụ.
Mã:
sudo systemctl daemon-reload
sudo systemctl restart opennms
sudo systemctl enable opennms
Bây giờ dịch vụ OpenNMS đã hoạt động với cấu hình mới, sau đó bạn sẽ xác minh dịch vụ OpenNMS thông qua lệnh systemctl bên dưới.
Mã:
sudo systemctl is-enabled opennms
sudo systemctl status opennms
Đầu ra - Dịch vụ OpenNMS đã được bật và sẽ tự động chạy khi hệ thống khởi động. Và dịch vụ OpenNMS hiện đang chạy.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22257%22%3E%3C/svg%3E


Tại thời điểm này, bạn đã hoàn tất việc cài đặt và cấu hình OpenNMS. Nhưng bạn sẽ chạy OpenNMS với proxy ngược Nginx. Đọc tiếp để tìm hiểu cách thiết lập Nginx làm proxy ngược cho OpenNMS.

Cài đặt Nginx làm Proxy ngược cho OpenNMS​

Bây giờ bạn đã chạy OpenNMS trên cổng mặc định '8980', sau đó bạn sẽ cài đặt và cấu hình Nginx làm proxy ngược cho OpenNMS.

Chạy lệnh apt sau để cài đặt gói Nginx vào hệ thống của bạn.
Mã:
sudo apt install nginx
Nhập y khi được nhắc, sau đó nhấn ENTER để tiếp tục. Và 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=%22351%22%3E%3C/svg%3E


Tiếp theo, hãy xác minh dịch vụ Nginx bằng lệnh systemctl sau.
Mã:
sudo systemctl is-enabled nginx
sudo systemctl status nginx
Bạn sẽ thấy dịch vụ Nginx được bật và sẽ tự động chạy khi khởi động. Ngoài ra, dịch vụ Nginx sẽ tự động khởi động sau khi quá trình cài đặt hoàn tất.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22228%22%3E%3C/svg%3E


Sau khi Nginx được cài đặt, hãy tạo một khối máy chủ Nginx mới '/etc/nginx/sites-available/opennms.conf' bằng trình chỉnh sửa nano sau lệnh.
Mã:
sudo nano /etc/nginx/sites-available/opennms.conf
Thêm cấu hình sau vào tệp. Hãy chắc chắn thay đổi tên miền bằng tên miền của bạn.
Mã:
server {
 listen 80;
 server_name opennms.howtoforge.local;
 access_log /var/log/nginx/opennms.access.log;
 error_log /var/log/nginx/opennms.error.log;


 location / {
 proxy_set_header Host $http_host;
 proxy_set_header X-Forwarded-Host $host;
 proxy_set_header X-Forwarded-Server $host;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header X-OpenNMS-Server-URL https://opennms.howtoforge.local/;
 proxy_pass http://localhost:8980;
 }

}
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, kích hoạt khối máy chủ 'opennms.conf' và xác minh cấu hình Nginx để đảm bảo rằng bạn có cấu hình chính xác.
Mã:
sudo ln -s /etc/nginx/sites-available/opennms.conf /etc/nginx/sites-enabled/
sudo nginx -t
Nếu bạn thấy thông báo đầu ra như 'kiểm tra thành công - cú pháp ok', điều đó có nghĩa là cấu hình Nginx của bạn là chính xác.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22197%22%3E%3C/svg%3E


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
Bây giờ Nginx đang chạy như một proxy ngược cho OpenNMS, sau đó bạn sẽ xem qua cấu hình tường lửa UFW và mở một số cổng cho một số dịch vụ.

Thiết lập tường lửa UFW​

Sau khi cấu hình proxy ngược Nginx, bạn sẽ thiết lập UFW trên máy chủ OpenNMS của mình. Bạn sẽ chạy Công cụ giám sát OpenNMS với UFW được bật, vì vậy bạn phải thêm một số cổng sẽ được sử dụng cho OpenNMS.

Chạy lệnh apt sau để cài đặt UFW trên hệ thống của bạn.
Mã:
sudo apt install ufw -y
Sau khi UFW được cài đặt, hãy chạy lệnh bên dưới để thêm dịch vụ OpenSSH. Sau đó, hãy khởi động và kích hoạt dịch vụ UFW.
Mã:
sudo ufw allow OpenSSH
sudo ufw enable
Khi được nhắc, hãy nhập y để xác nhận và nhấn ENTER để tiếp tục. Bây giờ UFW sẽ chạy và được bật và sẽ tự động chạy khi khởi động.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22718%22%20height=%22199%22%3E%3C/svg%3E


Tiếp theo, thêm một quy tắc mới để cho phép lưu lượng truy cập vào máy chủ web Nginx.
Mã:
sudo ufw allow "Nginx Full"

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22597%22%20height=%22286%22%3E%3C/svg%3E


Sau đó, mở tệp '/etc/ufw/before.rules' bằng lệnh trình chỉnh sửa nano sau.
Mã:
sudo nano /etc/ufw/before.rules
Thêm cấu hình sau vào trước phần '*filter'. Thao tác này sẽ kích hoạt NAT và định tuyến lại/chuyển tiếp lưu lượng từ 62/udp đến 10162/udp.
Mã:
*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -p udp --dport 162 -j REDIRECT --to-port 10162
COMMIT
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 thêm quy tắc mới để cho phép cả hai cổng 62/udp 10162/udp.
Mã:
sudo ufw allow in 162/udp
sudo ufw allow in 10162/udp
Tải lại UFW để áp dụng các thay đổi và xác minh trạng thái của UFW thông qua lệnh sau.
Mã:
sudo ufw reload
sudo ufw status

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22517%22%20height=%22360%22%3E%3C/svg%3E


Cho đến nay, bạn đã hoàn tất việc cài đặt và cấu hình OpenNMS với các gói phụ thuộc như cơ sở dữ liệu PostgreSQL và máy chủ web Nginx, đồng thời cấu hình UFW. Đối với bước cuối cùng, bạn sẽ truy cập cài đặt OpenNMS thông qua trình duyệt web và thiết lập người dùng quản trị cho OpenNMS.

Truy cập Công cụ giám sát OpenNMS​

Mở trình duyệt web và truy cập tên miền cài đặt OpenNMS của bạn (ví dụ: http://opennms.howtoforge.local). Bạn sẽ thấy trang đăng nhập của Công cụ giám sát OpenNMS.

Nhập tên người dùng/mật khẩu mặc định là 'admin/admin' và nhấp vào 'Đăng nhập'.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22427%22%3E%3C/svg%3E


Sau đó, bạn sẽ thấy bảng điều khiển quản trị OpenNMS.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22374%22%3E%3C/svg%3E


Sau khi đăng nhập vào OpenNMS thông qua tên người dùng/mật khẩu mặc định là 'admin/admin', sau đó bạn sẽ thay đổi tên người dùng và mật khẩu mặc định cho cài đặt OpenNMS của mình.

Trên thanh menu trên cùng, nhấp vào menu 'Admin' và chọn 'Change Password'.

Bây giờ hãy nhập mật khẩu cũ là 'admin' và nhập mật khẩu OpenNMS mới, sau đó nhập lại mật khẩu. Sau đó, nhấp vào 'Gửi' để áp dụng.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22627%22%20height=%22418%22%3E%3C/svg%3E


Bây giờ bạn đã hoàn tất cấu hình OpenNMS.

Kết luận​

Bây giờ bạn đã cài đặt OpenNMS, một công cụ giám sát có khả năng tùy chỉnh và mở rộng cao, trên máy chủ Ubuntu 22.04 của mình. Bạn cũng đã cấu hình máy chủ cơ sở dữ liệu PostgreSQL được cài đặt và máy chủ web Nginx được cấu hình làm proxy ngược cho OpenNMS. Với OpenNMS được cấu hình đầy đủ, giờ đây bạn có thể thêm máy chủ mới để giám sát qua giao thức SNMP, thiết lập giám sát phân tán qua OpenNMS Minion, mở rộng OpenNMS qua Sentinel và bắt đầu tùy chỉnh bảng điều khiển qua Helm.

Nếu bạn muốn chạy OpenNMS trên các triển khai lớn, hãy xem tài liệu chính thức.
 
Back
Bên trên