Để làm được điều đó người quản trị cần phải có công cụ, nền tảng mạnh để hoàn thành công việc trên 1 cách có năng suất.Do đó, trong đồ án này, nhóm sẽ nghiên cứu 1 nền tảng quản lý mạng
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG
ĐỒ ÁN MÔN HỌC
ĐỒ ÁN CHUYÊN NGÀNH
1 19522399 Đoàn Tất Minh Triệu
2 19521800 Thân Trọng Hoàng Long
Trang 2ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG
ĐỒ ÁN MÔN HỌC TÌM HIỂU VÀ TRIỂN KHAI OPENNMS TRONG ỨNG DỤNG SERVER MONITORING
Giảng viên hướng dẫn Lê Trung Quân
Trang 3MỤC LỤC
I Tổng quan về đề tài nghiên cứu 3
1 Tổng quan về OpenNMS 3
1.1 Cơ sở lí thuyết 3
2.1 Các ứng dụng của OpenNMS 4
3.1 Các component của OpenNMS 5
4.1 Ưu điểm của OpenNMS so với các nền tảng khác 8
II Triển khai và mô hình triển khai 9
1 Các thiết bị liên quan 9
2 Mô hình triển khai 10
III Cài đặt và triển khai 10
1 Cài đặt Database và OpenNMS 10
2 Cài đặt và cấu hình OpenNMS 12
3 Cài đặt và cấu hình Minion 13
4 Giao tiếp với OpenNMS thông qua API 15
IV Kết luận và tự đánh giá 17
V Ảnh và chú thích 17
VI Tài liệu tham khảo 20
Trang 4I Tổng quan về đề tài nghiên cứu
1.1 Cơ sở lí thuyết
Cùng với sự phát triển của nền công nghiệp 4.0, chuyển đổi số đang là xu hướng của các công ty, công ty công nghệ và cả chính phủ Cùng với sự phát triển là trên là sự gia tăng đầu tư vào hạ tầng mạng kéo theo nhiều vấn đề như lỗi mạng hoặc mạng quá tải khi hạ tầng mạng được nâng cấp và mở rộng, và do đó vai trò giám sát mạng để phòng tránh, khắc phục các lỗi liên quan đến mạng của các quản trị viên càng được cũng cố Không chỉ thế mà họ cũng cần phải giám sát hiệu suất vận hành của mạng để họ có hướng tối ưu hóa nếu mạng hoạt động không như mong muốn Để làm được điều đó người quản trị cần phải có công cụ, nền tảng mạnh để hoàn thành công việc trên 1 cách
có năng suất
Do đó, trong đồ án này, nhóm sẽ nghiên cứu 1 nền tảng quản lý mạng mã nguồn
mở tên là OpenNMS, nền tảng này được phát triển bởi cộng đồng người dùng và các nhàphát triển của OpenNMS Group
OpenNMS là một nền tảng quản lý mạng mã nguồn mở được thiết kế để xây dựng các giải pháp giám sát mạng Dự án OpenNMS được bắt đầu vào tháng 7/1999, đây là nền tảng có khả năng mở rộng cho tất các các khía cạnh của mô hình quản lý FCAPS; có thể quản lý trên 10.000 thiết bị và đáp ứng nhu cầu quản lý mạng quy mô lớn với khả năng nâng cấp, mở rộng, tích hợp linh hoạt Việc thu thập các dữ liệu trong hệ thống mạng được sử dụng thông qua nhiều cách thức như JMX, WMI, SNMP, NRPE, XML HTTP, JDBC, XML, JSON…
Một số thuật ngữ sẽ được nhóm sử dụng trong báo cáo sẽ được liệt kê ở sau:
+SNMP: viết tắt của Simple Network Management Protocol là 1 giao thức được
sử dụng cho monitoring trong OpenNMS
Trang 5+CDP: viết tắt của Cisco Discovery Protocol là 1 giao thức liên kết dữ liệu được phát triển bởi Cisco với ứng dụng chia sẽ thông tin về thiết bị Cisco được kết nối.
+LLDP: viết tắt của Link Layer Discovery Protocol là 1 giao thức liên kết dữ liệu
sử dụng chuẩn IEEE 802.1ab để thu thập dữ liệu của các máy, thiết bị và chia sẻ thông tin, dữ liệu của nó cho các máy khác trong hệ thống
+IS-IS: là giao thức định tuyến nội hay còn gọi với tên đầy đủ là Intermediate System to Intermediate System được thiết kế để định tuyến thông tin 1 cách tối ưu trong mạng
+LDAP: tên gọi đầy đủ là Lightweight Directory Access Protocol / Active
Directory là 1 giao thức truy cập cơ sở dữ liệu phân tán chạy theo mô hình Client – Server
2.1 Các ứng dụng của OpenNMS
OpenNMS sở hữu các tính năng hỗ trợ như:
Hỗ trợ nhiều giao thức như CDP, LLDP, IS-IS, v.v…
Hỗ trợ thu thập dữ liệu thông qua nhiều giao thức như SNMP, XML, v.v…
Có khả năng truyền dữ liệu từ xa
Tương thích trên cả IPv4 và IPv6
Hoạt động trên cả hai layer 2 và layer 3 của mạng
Trang 6Vì những tính năng trên cho phép OpenNMS được ứng dụng nhiều trong trong giải pháp giám sát mạng.
3.1 Các component của OpenNMS
Các thành phần trong phiên bản OpenNMS Horizon nếu được hiểu đơn giản có thểđược liệt kê như sau:
Apache Kafka hoặc ActiveMQ (đóng vai trò là message broker)
PostgreSQL làm database
Elasticsearch là 1 engine tìm kiếm và phân tích được tích hợp trong
OpenNMS
Apache Cassandra lưu trữ dữ liệu
Grafana and Kibana hỗ trợ tạo dashboard
Các thiết bị ngoại vi hay còn gọi là minion (kể cả trực tiếp hoặc kết nối remote)
Nếu phân tích sâu hơn, thì OpenNMS được thiết kế theo kiến trúc hướng sự kiện, các thành phần của OpenNMS sẽ như hình sau:
Trang 7Nhóm sẽ giải thích qua từng module và các thành phần tiêu biểu của từng module trong hình
● Module Monitoring tổng hợp các dịch vụ và daemon để phục vụ thu thập, giám sátcác dữ liệu trong mạng, trong đó 2 dịch vụ lần lượt là Pollerd để kiểm tra sự hiện diện của thiết bị đầu cuối và Collectd để thu thập dữ liệu, hiệu suất của thiết bị 1 dịch vụ còn lại là SnmpPoller để giám sát trạng thái của SNMP interface, và 1 daemon PassiveStatusd có chức năng tạo trạng thái ngừng dịch vụ dựa trên sự kiệngửi về
Module Provisioning là tổng hợp các dịch vụ, daemon có chức năng quản lý các node thông qua chính sách mà quản trị viên đặt ra Trong đó daemon Provisiond
có nhiệm vụ quét nodes từ event, file đã được import để thêm vào database 2
Trang 8Daemon còn lại là Discovery và Linkd có nhiệm vụ là quét node mới và giám sát kết nối giữa các node.
● Core tổng hợp các daemon và dịch vụ được sử dụng để lấy dữ liệu từ database và
xử lí các sự kiện trong đó tiêu biểu là Eventd - 1 tiến trình ở core có vai trò như subscribe dữ liệu và lấy dữ liệu Queued quản lí các tiến trình thực hiện
Các dữ liệu, logs, thư viện được lưu trữ ở Database module, các chính sách được quản lí ở Module configuration và kết quả giám sát được hiển thị thông qua User Interface
OpenNMS giám sát mạng bằng cách thu thập thông tin về thiết bị đang được giám sát thông qua SNMP, phân tích flow để phân tích và cho ra thông tin nhằm giúp người quản trị biết được tình trạng của mạng thông qua hiển thị dashboard
Module Provisioning sẽ quét các node hiện có và node mới và quản lí các node Thành phần Monitoring sẽ thu thập thông tin đang có của các node thông qua các giao thức LLDP hoặc CDP, bao gồm thông số, hiệu suất của node Các thay đổi, hoặc những
gì được thêm mới sẽ được daemon tạo thành event và gửi về module cores thông qua daemon Eventd sử dụng SNMP trap, module Cores sẽ xử lí dữ liệu và gửi luồng dữ liệu
đó về Automation đồng thời lưu trữ log vào database, và cuối cùng là hiển thị ra
dashboard nếu cần
Trang 94.1 Ưu điểm của OpenNMS so với các nền tảng khác
OpenNMS có 2 phiên bản, 1 phiên bản trả phí là Meridian và phiên bản mã nguồn
mở miễn phí là Horizon Giữa 2 phiên bản có không có sự khác nhau nhiều về mặt kiến trúc và cách vận hành
Dưới đây là bảng so sánh giữa OpenNMS và 1 ứng dụng monitoring miễn phí khác là Cacti
Trang 10II Triển khai và mô hình triển khai
Các thiết bị liên quan được liệt kê sau đây:
Máy ảo với vai trò monitoring sử dụng hệ điều hành
Các máy ảo khác làm minions
Trang 112 Mô hình triển khai
Đồ án sẽ sử dụng 2 máy ảo, trong đó 1 máy cài OpenNMS và 1 máy còn lạicài agent (hay còn gọi là minion), máy chính sẽ monitor tình trạng máy minion như hình sau
III Cài đặt và triển khai
Cài đặt Database, trong đồ án này nhóm sẽ sử dụng PosgreSQL làm database Cài đặt bằng câu lệnh sau:
sudo apt -y install postgresql
Nhớ tạo Username và Password cho PosgreSQL bằng lệnh
sudo -u postgres createuser -P opennms
Tạo database trống của username đã tạo và cài đặt mật khẩu username theo ý của bạn
sudo -u postgres createdb -O opennms opennms
sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'YOUR-POSTGRES-PASSWORD';"
Trang 12với 'YOUR-POSTGRES-PASSWORD' là password cho protgresSQL ứng với
cơ sở dữ liệu của opennms
Tiếp theo sẽ là bước cài đặt thành phần core của OpenNMS
Thêm OpenNMS repository GPG key
sudo dnf -y install stable-rhel9.noarch.rpm
https://yum.opennms.org/repo昀椀les/opennms-repo-sudo rpm import https://yum.opennms.org/OPENNMS-GPG-KEY
Thêm và cập nhật apt repository
echo "deb [signed-by=/usr/share/keyrings/opennms.gpg]
https://debian.opennms.org stable main" | sudo tee
/etc/apt/sources.list.d/opennms.list
sudo apt update
Cài đặt OpenNMS và dependencies của nó
sudo apt -y install opennms
Hoàn thành cài đặt và kiểm tra lại các file
sudo apt -y install tree
Trang 13sudo -u opennms ${OPENNMS_HOME}/bin/scvcli set postgres opennmspassword
sudo -u opennms ${OPENNMS_HOME}/bin/scvcli set postgres-admin postgres password
Tạo và thêm quyền cho kết nối PostgreSQL
sudo -u opennms vi /usr/share/opennms/etc/opennms-datasources.xml
Tìm và chỉnh sửa file opennms-datasources.xml như sau
sudo /usr/share/opennms/bin/install -dis
Chạy lệnh systemctl edit opennms.service và thêm dòng code sau
AmbientCapabilities=CAP_NET_RAW CAP_NET_BIND_SERVICE
Restart dịch vụ opennms bằng 2 câu lệnh
sudo systemctl enable now opennms
sudo ufw allow 8980/tcp
Trang 14Cài đặt message broker, nhóm sử dụng ActiveMQ
Tạo file cài đặt cho ActiveMQ
sudo systemctl restart opennms
Sơ qua 1 chút, Minion hoạt động với chức năng giám sát các node Chúng giao tiếp với Cores thông qua ActiveMQ như hình sau trong ngữ cảnh kết nối remote
Tương tự như cài đặt thành phần core của OpenNMS
Thêm OpenNMS repository GPG key
curl -fsSL https://debian.opennms.org/OPENNMS-GPG-KEY | sudo gpg
Trang 15echo "deb [signed-by=/usr/share/keyrings/opennms.gpg]
https://debian.opennms.org stable main" | sudo tee
/etc/apt/sources.list.d/opennms.list
sudo apt update
Cài minion
sudo apt -y install opennms-minion
sudo apt-mark hold opennms-minion
Kiểm tra lại file
sudo apt -y install tree
tree /usr/share/minion -L 1
Và chạy dịch lệnh dưới để enable minion
sudo systemctl enable now minion
Tiếp theo là các bước config, vì ở trên sử dụng ActiveMQ để kết nối, minion cũng sẽ sử dụng ActiveMQ để kết nối
Đăng nhập vào Karaf shell sử dụng tài khoản admin đã được cài đặt, nếu máy đã có Karaf
ssh -p 8201 admin@localhost
Cấu hình ActiveMQ
ssh -p 8201 admin@localhost
con昀椀g:edit org.opennms.minion.controller
con昀椀g:property-set location my-location
con昀椀g:property-set broker-url failover:tcp://core-instance-ip:61616
Trang 164 Giao tiếp với OpenNMS thông qua API
Ngoài theo dõi trực quan qua Dashboard mặc định hay của Grafana , OpenNMS còn có bộ REST API với các hướng dẫn nằm ở mục API Documentation trên phần Help
Dựa theo Header Content-Type mà kết quả có thể trả về dưới dạng JSon hay XML , cũngnhư có thể tự động hoá và giao tiếp giữa máy với máy thông qua RESTAPI Các Request cũng phải cần thông tin user và password được cài đặt trước ở Dashboard để xác thực
Trang 17Phản hồi khi GET request đến /test/alarms để có thể nhận thông tin về các thông báo trục trặc của các máy.
IV Kết luận và tự đánh giá.
Như vậy, thông qua nghiên cứu và tìm hiểu, nhóm đã triển khai 1 mô hình
monitoring chạy trên nền tảng OpenNMS phiên bản Horizon Nhóm đã nắm rõ lý thuyết, các thành phần, cấu trúc thiết kế của OpenNMS, cách thức hoạt động của nền tảng đồng thời cài đặt và triển khai thành công
Tuy nhiên trong quá trình thực hiện đồ án, nhóm cũng gặp 1 số sơ suất liên quan đến quản lí thời gian thực hiện đồ án chuyên ngành và 1 số lỗi liên quan đến triển khai Ngoài ra nhóm cũng chưa hoàn toàn mở rộng mô hình của nhóm thành 1 mô hình lớn hơn và cũng chưa triển khai vật lí để thể hiện các tính năng OpenNMS Và qua đó nhóm cũng xin rút kinh nghiệm những đồ án mà nhóm làm sau này
Trang 18V Ảnh và chú thích
Cấu hình folder opennms sau khi cài đặt
Màn hình đăng nhập dashboard của OpenNMS
Trang 19Giao diện dashboard của OpenNMS
Cài đặt kết nối thành công node minion tới máy monitor
Trang 20Máy minion với trang thái “ Status : Up “ đã kết nối với máy monitor
VI Tài liệu tham khảo.
1 Ứng dụng opennms Trong Giám sát an Ninh Mạng (phần 2) - an toàn thông tin, An Toan Thong Tin Available at: https://m.antoanthongtin.gov.vn/gp-atm/ung-dung-opennms-trong-
giam-sat-an-ninh-mang-phan-2-107369#:~:text=OpenNMS%20đáp%20ứng%20yêu%20cầu
%20về%20giám%20sát%20an%20ninh%20mạng&text=-%20Thu%20thập%20dữ%20liệu
%20thông,mỗi%205%20phút%20%5B4%5D (Accessed: 17 December 2023)
2 Tạp chí An toàn thông tin Ứng dụng opennms Trong Giám sát an Ninh Mạng (phần 1) -
tạp chí an toàn thông tin, An Toan Thong Tin Available at:
https://antoanthongtin.vn/gp-atm/ung-dung-opennms-trong-giam-sat-an-ninh-mang-phan-1-107363 (Accessed: 17
Trang 214 Cacti® - the complete rrdtool-based graphing solution (no date) Cacti® - The Complete RRDTool-based Graphing Solution Available at: https://www.cacti.net/ (Accessed: 17
December 2023)