Các công cụ giám sát mạng trên thị trưởng
Các công cụ mã nguồn mở
Nagios là một trong những công cụ giám sát mạng và máy chủ phổ biến nhất trong gần 18 năm qua Nagios Core hỗ trợ các tổ chức và doanh nghiệp duy trì sự ổn định cho mạng lưới của họ, đồng thời giúp phát hiện và khắc phục sự cố trước khi chúng trở nên nghiêm trọng.
Zabbix là một hệ thống mã nguồn mở miễn phí, được phát triển bằng PHP và tuân thủ giấy phép GPL Hệ thống này cung cấp giao diện thân thiện và dễ sử dụng để giám sát mạng, giúp người dùng nhận cảnh báo kịp thời về các sự cố đáng ngờ Ngoài ra, Zabbix còn mang đến đồ thị có cấu trúc rõ ràng và dữ liệu hữu ích cho việc quản lý mạng.
MRTG (Multi Router Traffic Grapher) là một công cụ giám sát mạng đơn giản, tương tự như Nagios và Zabbix, được thiết kế cho các mạng có quy mô vừa và nhỏ Hệ thống này chủ yếu giám sát các thiết bị như CPU, RAM và các cổng kết nối mạng, với giao diện đồ họa hấp dẫn và cung cấp số liệu thống kê chi tiết.
Icinga là một công cụ giám sát mạnh mẽ cho môi trường Linux, cho phép theo dõi tất cả thiết bị mạng và tài nguyên kết nối Công cụ này cung cấp cảnh báo tức thì khi phát hiện bất thường trên hệ thống và thiết bị, giúp người dùng nhanh chóng xử lý sự cố.
3 doanh nghiệp sử dụng cho hệ thống lớn và các văn phòng nằm ở các địa điểm khác nhau.
OpenNMS là một hệ thống giám sát mạng mã nguồn mở nổi bật, được thiết kế cho các doanh nghiệp lớn với khả năng quản lý hàng triệu thiết bị kết nối Hệ thống này cho phép người dùng tự động phát hiện các node và theo dõi đa dạng dịch vụ trong mạng, mang lại hiệu quả cao trong việc quản lý và giám sát hạ tầng mạng.
Centreon, hay còn gọi là Centreon Enterprise Server (CES), là một hệ thống giám sát mạng mạnh mẽ, được sử dụng rộng rãi bởi các ngân hàng lớn, công ty IT, cũng như các doanh nghiệp bảo hiểm và tài chính trên toàn cầu Với khả năng theo dõi người dùng và tình trạng mạng lưới của doanh nghiệp 24/7, CES giúp bạn yên tâm giám sát cơ sở hạ tầng và ứng dụng của mình một cách hiệu quả.
Công cụ mã nguồn đóng
SolarWinds® Network Performance Monitor (NPM) là giải pháp giám sát hiệu suất mạng hiệu quả và tiết kiệm chi phí, giúp người dùng nhanh chóng phát hiện, chẩn đoán và khắc phục các vấn đề liên quan đến hiệu suất mạng cũng như sự cố ngừng hoạt động.
SolarWinds® Network Performance Monitor (NPM) có giá từ
$1638 (giá theo trang chủ của SolarWinds).
Giao diện của SolarWinds® Network Performance Monitor
PRTG Network Monitor là phần mềm giám sát mạng toàn diện với chi phí hợp lý, cho phép bạn theo dõi nhiều khía cạnh của mạng như lưu lượng, cơ sở dữ liệu, ứng dụng, băng thông, dịch vụ đám mây, máy chủ, môi trường ảo, thời gian hoạt động, gói dữ liệu, cổng, phần cứng, bảo mật, sử dụng bộ nhớ, dịch vụ web, sử dụng ổ đĩa, môi trường và thiết bị IoT.
ManageEngine OpManager is an affordable and user-friendly network monitoring solution that effectively oversees a wide range of network devices It monitors routers, switches, firewalls, load balancers, wireless LAN controllers, servers, virtual machines, printers, storage devices, and any IP-connected devices.
OpManager là một công cụ mạnh mẽ giúp theo dõi và quản lý các thiết bị mạng một cách liên tục Nó cung cấp khả năng hiển thị chuyên sâu và kiểm soát hiệu quả, cho phép bạn nhanh chóng xác định nguyên nhân của các lỗi phát sinh Nhờ đó, bạn có thể khắc phục vấn đề trước khi nó ảnh hưởng đến hệ thống.
WhatsUp Gold là một bộ công cụ giám sát mạnh mẽ, nổi bật với khả năng hiển thị toàn bộ thông tin giám sát trên màn hình chính Giao diện dễ sử dụng cho phép người quản lý theo dõi hệ thống một cách nhanh chóng và hiệu quả, tiết kiệm thời gian thao tác.
Tổng quan về Cacti
Sự ra đời
Dự án Cacti, do Ian Berry khởi xướng vào ngày 2 tháng 9 năm 2001, được hình thành từ nguồn cảm hứng khi ông làm việc cho một ISP nhỏ Mục tiêu của Berry là phát triển một công cụ dễ sử dụng hơn RRDtool và linh hoạt hơn MRTG.
Vào ngày 13 tháng 9 năm 2004, phiên bản 0.8.6 của chương trình đã được phát hành, đánh dấu sự khởi đầu cho sự phát triển mạnh mẽ hơn với sự tham gia của nhiều nhà phát triển, từ đó cải thiện tốc độ và khả năng mở rộng của chương trình.
Vào tháng 6 năm 2012, trang web thông báo rằng phiên bản 1.0.0 dự kiến sẽ ra mắt trong quý đầu tiên của năm 2013 Tuy nhiên, đến tháng 8 năm 2013, thông báo này đã được thay đổi.
“Lộ trình này đã lỗi thời Chúng tôi tổ chức lại để cải thiện chu kỳ phát triển của Cacti”.
Khái niệm
Cacti là một phần mềm mã nguồn mở chuyên giám sát mạng và tạo đồ họa, được phát triển trên nền tảng PHP/MySQL Phần mềm này sử dụng RRDTool (Round-robin database tool) để lưu trữ dữ liệu và tạo đồ họa trực quan Cacti có khả năng thu thập dữ liệu định kỳ thông qua Net-SNMP, một bộ công cụ hỗ trợ giao thức SNMP (Simple Network Management Protocol).
So sánh với các công cụ trên thị trường
Giao diện điều khiển Đơn giản và dễ dàng nắm bắt.
Cần có hỗ trợ và hướng dẫn từ hãng.
Cần có hỗ trợ và hướng dẫn từ hang. Tính năng quản lý
Việc thêm thiết bị bằng tay là cần thiết, tuy nhiên, thông tin thu thập phải đầy đủ và thiết thực Các gói tin SNMP không làm ảnh hưởng đến hiệu suất mạng, vì vậy đây là công cụ hữu ích để người dùng làm quen với quy trình này.
Phải thêm thiết bị bằng tay, các thông tin thu thập rất nhiều và liên tục, dễ gây rối do số lượng tin nhiều và không cần thiết
Có tính năng tự dò thiết bị được quản lý trong mạng Có thể tùy chỉnh thông tin nào cần lấy và không.
Cacti OpManager Whatsup Gold giám sát hệ thống.
Phải tự lập topo, topo mạng là tĩnh.
Có khả năng tự động tạo topo, topo mạng luôn tự động cập nhật.
Có khả năng tự động lập topo, thể hiện rõ các cấu hình trên topo một cách trực quan. Khả năng thiết lập quy trình
Hệ thống cảnh báo rất chính xác, có thể thiết lập ngưỡng cảnh báo.
Tuy nhiên, do là phần mềm nguồn mở nên có hạn chế về phương thức cảnh báo và hỗ trợ xử lý lỗi.
Hệ thống có khả năng cảnh báo hiệu quả, tự động kiểm tra theo quy trình IT đã được thiết lập khi nhận được cảnh báo, đồng thời cung cấp các gợi ý để xử lý sự cố một cách nhanh chóng và hiệu quả.
Có thể cảnh báo tới người quản lý theo nhiều cách.
Hệ thống cảnh báo có phân cấp mức độ nghiêm trọng cho từng cảnh báo, khi có lỗi có thể đưa ra các gợi ý kèm theo để xử lý.
Tài liệu hỗ trợ phong phú và dễ dàng truy cập, cho phép người quản lý tham khảo ý kiến từ các nhà phát triển toàn cầu và phát triển thêm kỹ năng của bản thân Tất cả thông tin đều được cung cấp từ hãng, đảm bảo tính chính xác và độ tin cậy cao.
Việc ứng dụng vào hệ thống trở nên dễ dàng, đánh dấu bước khởi đầu quan trọng trong quản lý giám sát Người dùng có thể nắm bắt thông tin qua các tài liệu hướng dẫn được cung cấp, giúp tối ưu hóa các tính năng của hệ thống.
Khó áp dụng vào quản lý trong những doanh nghiệp thông thường do chi phí quá lớn Cần có sự hỗ trợ từ hãng để làm quen
Khó áp dụng bước đầu vào doanh nghiệp do chi phí quá lớn
Cacti OpManager Whatsup Gold đơn giản, dễ hiểu và dễ sử dụng.
Chỉ dùng cho doanh nghiệp vừa và nhỏ, quy mô dưới 500 thiết bị mạng và máy tính.
Dùng cho mọi quy mô doanh nghiệp, không giới hạn số lượng thiết bị quản lý.
Có thể quản lý đến 20.000 thiết bị.
Chi phí Miễn phí Từ 2000$ đến
25.000$ hoặc hơn tùy theo quy mô doanh nghiệp
Từ 2.200$ đến 8.500$ hoặc hơn, tùy theo quy mô của doanh nghiệp.
Cacti không phải là công cụ nổi bật so với các phần mềm giám sát khác, nhưng nó cung cấp những thông tin cần thiết và đầy đủ cho việc quản lý Đặc biệt, Cacti là lựa chọn lý tưởng cho những người mới bắt đầu và cho mục đích đào tạo các chuyên gia quản trị mạng trong doanh nghiệp Hơn nữa, với tính chất là phần mềm nguồn mở, Cacti cho phép tùy biến và phát triển, có tiềm năng vượt trội hơn các công cụ khác mà không tốn chi phí.
Giới thiệu giao thức SNMP
Tổng quan
SNMP, viết tắt của "Simple Network Management Protocol", là giao thức quản lý mạng đơn giản Các thiết bị hỗ trợ và hoạt động theo giao thức này được gọi là "có hỗ trợ SNMP" hoặc "tương thích SNMP".
SNMP là giao thức quản lý mạng cho phép theo dõi, thu thập thông tin, nhận thông báo và can thiệp để hệ thống hoạt động theo ý muốn Một số khả năng nổi bật của phần mềm SNMP bao gồm việc giám sát trạng thái thiết bị, thu thập dữ liệu hiệu suất và gửi cảnh báo khi có sự cố xảy ra.
- Theo dõi tốc độ đường truyền của một router, biết được tổng số byte đã truyền/nhận.
- Lấy thông tin máy chủ đang có bao nhiêu ổ cứng, mỗi ổ cứng còn trống bao nhiêu.
- Lấy thông tin một máy sử dụng bao nhiêu ram, bao nhiêu % cpu, chạy bao nhiêu tiến trình trong 1 giây.
- Tự động nhận cảnh báo khi switch có một port bị down.
- Điều khiển tắt (shutdown) các port trên switch.
SNMP (Simple Network Management Protocol) là giao thức quản lý mạng được thiết kế để hoạt động trên nền tảng TCP/IP, cho phép quản lý các thiết bị mạng như switch, router, firewall, ADSL gateway và cả một số phần mềm hỗ trợ quản trị qua SNMP Điều này có nghĩa là ngay cả những thiết bị không phải máy tính, như máy giặt có khả năng kết nối IP và hỗ trợ SNMP, cũng có thể được quản lý từ xa một cách hiệu quả.
Kiến trúc của SNMP
3.2.1 Các thành phần của SNMP
Kiến trúc của SNMP bao gồm 2 thành phần: các trạm quản lý mạng và các phần tử mạng.
Hình 3.1 Trạm quản lý mạng
Trạm quản lý mạng thường là một máy tính chạy phần mềm quản lý SNMP, dùng để giám sát và điều khiển tập trung các phần tử mạng.
Phần tử mạng bao gồm các thiết bị, máy tính và phần mềm tương thích với SNMP, tất cả được quản lý bởi trạm quản lý mạng Các phần tử này không chỉ bao gồm thiết bị mà còn cả máy trạm và ứng dụng, tạo thành một hệ thống mạng đồng bộ và hiệu quả.
Một trạm quản lý có khả năng quản lý nhiều phần tử, và ngược lại, một phần tử có thể được quản lý bởi nhiều trạm Khi một phần tử được quản lý bởi hai trạm, nếu một trạm lấy thông tin từ phần tử, cả hai trạm sẽ nhận được thông tin giống nhau Tuy nhiên, nếu hai trạm cùng tác động lên một phần tử, phần tử đó sẽ phản ứng theo thứ tự tác động của chúng, tức là cái nào đến trước sẽ được thực hiện trước.
SNMP agent là tiến trình hoạt động trên phần tử mạng, có chức năng cung cấp thông tin cho trạm quản lý Trạm quản lý và SNMP agent tương tác trực tiếp thông qua các ứng dụng chạy trên chúng Những ví dụ minh họa sẽ giúp làm rõ hơn về khái niệm SNMP agent và vai trò của nó trong việc quản lý phần tử mạng.
Để quản lý các máy con chạy hệ điều hành Windows thông qua SNMP, cần cài đặt phần mềm quản lý SNMP trên máy chủ và kích hoạt dịch vụ SNMP trên các máy con.
- Để dùng một máy chủ giám sát lưu lượng của một router thì phải: cài phần mềm quản lý SNMP trên máy chủ, bật tính năng
OID, hay "Mã nhận diện đối tượng", là một thuật ngữ dùng để xác định duy nhất các đối tượng được quản lý, được định nghĩa trong các tệp MIB.
Trên máy in, cần theo dõi các trạng thái hộp mực và số lượng tệp đã in, trong khi trên switch, các yếu tố quan trọng bao gồm lưu lượng dữ liệu vào và ra, tỷ lệ mất gói và số lượng gói gửi đến địa chỉ quảng bá.
Hệ thống phân cấp đối tượng OID được hình dung như một cây với nhiều cấp độ, bắt đầu từ gốc cho đến các lá Mỗi OID được xác định bởi một địa chỉ theo cấu trúc của cây OID.
MIB, viết tắt của "Management Information Base" (Cơ sở Thông tin Quản lý), là một định dạng độc lập dùng để định nghĩa thông tin quản lý Nó chứa các OID được xác định rõ ràng, trong đó mỗi đối tượng đều có định nghĩa cụ thể về các thuộc tính của nó trong thiết bị được quản lý Các đối tượng này có thể được truy cập thông qua giao thức SNMP.
Tại sao cần có OID và MIB?
Tất cả thông tin quản lý trong mạng, như mức sử dụng bộ nhớ của máy chủ, lưu lượng truy cập trên bộ chuyển mạch, hay các tệp đang chờ in, đều được thu thập thông qua SNMP và được phân biệt bằng OID riêng OID là yếu tố quan trọng giúp quản trị viên xác định và giám sát các đối tượng trong mạng, từ đó nâng cao hiệu quả của công tác giám sát.
Để đảm bảo sự giao tiếp hiệu quả giữa thực thể quản lý và thiết bị được quản lý trong mạng, cả hai cần nắm rõ các OID khả dụng Điều này lý giải sự tồn tại của MIB và tầm quan trọng của chúng đối với quản trị viên hệ thống Mọi đối tượng cần giám sát trên thiết bị phải được cung cấp bởi MIB của thiết bị đó Do vậy, quản trị viên cần đảm bảo rằng tất cả MIB cần thiết được lưu trữ trên các thiết bị SNMP Agent cũng như trong hệ thống thực thể quản lý Tệp MIB thường dễ nhận diện qua phần mở rộng my hoặc mib.
Các nhà sản xuất thiết bị thường cung cấp MIB cần thiết kèm theo sản phẩm hỗ trợ SNMP Tuy nhiên, tùy thuộc vào giải pháp giám sát được áp dụng, người dùng có thể cần chuyển đổi MIB sang các phiên bản MIB tương thích với sản phẩm cụ thể.
Các phương thức của SNMP
Giao thức SNMP có 8 phương thức hoạt động, tương ứng với 8 loại bản tin như sau:
Bản tin/phương thức Mô tả tác dụng
GetRequest Manager gửi GetRequest cho agent để yêu cầu agent cung cấp thông tin GetNextRequest
Manager gửi GetNextRequest có chứa một ObjectID cho agent để yêu cầu cung cấp thông tin nằm kế tiếp ObjectID đó trong MIB
GetBulkRequest là một tính năng mới được thêm vào SNMP Phiên bản 2, cải tiến từ yêu cầu GetNextRequest Tính năng này cho phép phản hồi chứa nhiều dữ liệu theo yêu cầu, giúp người dùng thực hiện nhiều GetNextRequests cùng lúc Điều này cho phép tạo danh sách toàn bộ dữ liệu và thông số có sẵn một cách hiệu quả.
SetRequest Manager gửi SetRequest cho agent để đặt giá trị cho đối tượng của agent dựa vào ObjectID
GetResponse Agent gửi GetResponse cho Manager để trả lời khi nhận được
Trap Agent tự động gửi Trap cho Manager khi có một sự kiện xảy ra đối với nó InformRequest
Loại tin nhắn này đã được thêm vào SNMP v2 để cung cấp cho Manager khả năng xác nhận rằng nó đã nhận được tin nhắn “trap” của Agent.
SNMP v3 là cần thiết để sử dụng chức năng tin nhắn báo cáo, cho phép Trình quản lý SNMP xác định loại sự cố mà tác nhân SNMP Agent từ xa đã phát hiện.
Các cơ chế bảo mật SNMP
Một trạm quản lý SNMP có khả năng giám sát nhiều yếu tố SNMP bằng cách gửi yêu cầu và nhận thông báo trap Tuy nhiên, mỗi yếu tố SNMP có thể được cấu hình để chỉ cho phép một số trạm quản lý SNMP nhất định thực hiện việc giám sát và quản lý.
Các cơ chế bảo mật đơn giản này gồm có: community string, view và SNMP access control list.
Community string là một chuỗi ký tự được cài đặt giống nhau trên cả SNMP manager và SNMP agent, đóng vai trò như “mật khẩu” giữa
2 bên khi trao đổi dữ liệu Community string có 3 loại: Read- community, Write-Community và Trap-Community.
The community string consists of three types, but each type can have multiple strings This means that an agent can declare several read-communities and multiple write-communities.
Trên hầu hết hệ thống, read-community mặc định là “public”, write-community mặc định là “private” và trap-community mặc định là “public”.
Chuỗi community string là dạng ký tự rõ ràng, dễ bị nghe lén khi truyền qua mạng Các community mặc định như "public" và "private" nếu không được thay đổi bởi người quản trị sẽ dễ dàng bị phát hiện Khi community string bị lộ, bất kỳ người dùng nào trong mạng cũng có thể quản lý hoặc giám sát các thiết bị cùng community mà không cần sự cho phép của quản trị viên.
Khi manager có quyền read-community, nó có khả năng truy cập toàn bộ OID của agent Tuy nhiên, agent có thể giới hạn quyền truy cập chỉ cho phép đọc một số OID liên quan, tức là chỉ cho phép truy cập một phần của MIB Tập hợp con này được gọi là view, và agent có thể định nghĩa nhiều view khác nhau Ví dụ, agent có thể tạo view interfaceView cho các OID liên quan đến giao diện, storageView cho các OID liên quan đến lưu trữ, hoặc AllView cho tất cả các OID.
Each view must be associated with a specific community string, which determines how the agent processes requests For instance, if the agent defines the read-community "inf" for the interfaceView and "sto" for the storageView, a request from the manager for the OID ifNumber with the community "inf" will be fulfilled, as ifNumber is included in the interfaceView Conversely, if the manager requests the OID hrStorageSize using the community "inf," the agent will not respond since hrStorageSize is not part of the interfaceView However, if the request for hrStorageSize is made with the community "sto," the agent will respond, as hrStorageSize is included in the storageView.
Việc định nghĩa các view như thế nào tùy thuộc vào từng SNMP agent khác nhau Có nhiều hệ thống không hỗ trợ tính năng view.
Khi một manager gửi yêu cầu đến community không đúng hoặc khi OID cần lấy lại không nằm trong view cho phép, agent sẽ không phản hồi Tuy nhiên, nếu community bị lộ, các manager khác vẫn có thể yêu cầu thông tin Để ngăn chặn hoàn toàn các SNMP manager không được phép truy cập, người quản trị có thể sử dụng danh sách kiểm soát truy cập SNMP (ACL).
SNMP ACL là danh sách địa chỉ IP được phép quản lý và giám sát agent, áp dụng riêng cho giao thức SNMP và cài đặt trên agent Nếu một manager có IP không nằm trong danh sách ACL gửi yêu cầu, agent sẽ không xử lý yêu cầu đó, ngay cả khi community string là chính xác Hầu hết các thiết bị tương thích với SNMP đều cho phép thiết lập SNMP ACL.
Các phiên bản của SNMP
SNMP có ba phiên bản chính: SNMPv1, SNMPv2c và SNMPv3, mỗi phiên bản có sự khác biệt về định dạng bản tin và phương thức hoạt động Hiện nay, SNMPv1 được ưa chuộng nhất vì tương thích với nhiều thiết bị và có nhiều phần mềm hỗ trợ, trong khi SNMPv3 chỉ được hỗ trợ bởi một số thiết bị và phần mềm nhất định.
SNMP phiên bản 1 (SNMPv1), được định nghĩa vào năm 1988 và dựa trên SGMP (RFC 1028), đã trở thành một tiêu chuẩn phổ biến trong lĩnh vực công nghệ thông tin và vẫn được sử dụng cho đến ngày nay Với các chức năng cơ bản để thu thập dữ liệu, SNMPv1 dễ sử dụng và không tốn kém do không có thuật toán mã hóa Tuy nhiên, vì lý do bảo mật, nó chỉ nên được áp dụng trong các mạng LAN Hạn chế lớn nhất của SNMPv1 là kiến trúc bộ đếm 32 bit, không đủ cho các mạng gigabyte hiện đại hoặc lớn hơn.
SNMP phiên bản 2 (SNMPv2) hỗ trợ bộ đếm 64 bit nhưng vẫn truyền tải dữ liệu quan trọng dưới dạng văn bản, do đó không cải thiện đáng kể về bảo mật Khi người dùng gặp SNMPv2, thường là "SNMPv2c", trong đó chữ "c" đại diện cho "community" Ngoài ra, còn có hai phiên bản khác là SNMPv2p và SNMPv2u, nhưng chúng chỉ được triển khai trong một số trường hợp hiếm hoi.
SNMP phiên bản 3, được giới thiệu vào năm 2002, không chỉ kế thừa các ưu điểm của SNMPv2c mà còn bổ sung các giải pháp bảo mật như tài khoản người dùng, xác thực và mã hóa dữ liệu Điều này làm tăng cường bảo mật, khiến SNMPv3 trở thành lựa chọn hàng đầu cho các ứng dụng yêu cầu an toàn thông tin Tuy nhiên, việc cấu hình SNMPv3 trở nên phức tạp hơn, đặc biệt là trong việc quản lý người dùng, và yêu cầu nhiều sức mạnh xử lý hơn, đặc biệt khi giám sát với tần suất cao SNMPv3 cung cấp ba cấp độ bảo mật: NoAuthNoPriv (Không xác thực, Không bảo mật) chỉ nên sử dụng trong mạng kín; AuthNoPriv (Xác thực, Không bảo mật) yêu cầu xác thực nhưng không mã hóa dữ liệu; và AuthPriv (Xác thực và Bảo mật) cung cấp cả hai chức năng bảo mật.
“Xác thực và Bảo mật” Đây là cách triển khai SNMPv3 an toàn nhất Tin nhắn SNMP phải được xác thực và tất cả dữ liệu được
Trong quá trình truyền dữ liệu, 17 mã hóa được áp dụng nhằm ngăn chặn tác nhân độc hại gửi yêu cầu Nhận (GET request) hoặc Đặt (SET request) Điều này giúp bảo vệ thông tin bằng cách không cho phép chúng truy cập vào dữ liệu được tạo ra từ các yêu cầu hợp pháp.
Giới thiệu hệ thống RRDTool (Round-Robin Database Tool)
RRDTool là hệ thống ghi và vẽ dữ liệu hiệu suất cao, chuyên xử lý dữ liệu chuỗi thời gian như băng thông, nhiệt độ phòng, tải CPU và tải server, đồng thời giám sát các thiết bị như router và UPS Hệ thống này cho phép quản trị viên ghi lại và phân tích dữ liệu từ nhiều nguồn khác nhau Phân tích dữ liệu của RRDTool dựa trên khả năng tạo ra đồ thị hiển thị giá trị thu thập trong khoảng thời gian định kỳ Được phát triển bằng ngôn ngữ C, RRDTool lưu trữ dữ liệu trong file rrd, với số lượng bản ghi không bao giờ tăng lên do các bản ghi cũ được loại bỏ thường xuyên.
- Thu thập dữ liệu: Dữ liệu được thu thập trong khoảng thời gian cố định sẽ được lưu trong một cơ sở dữ liệu vòng.
Hợp nhất dữ liệu là một thách thức lớn trong việc quản lý thông tin từ nhiều thiết bị trong thời gian dài RRDTool hỗ trợ người quản trị bằng cách cung cấp các hàm chức năng như max, min và average để phân tích dữ liệu hiệu quả, đồng thời lưu trữ vòng dữ liệu hợp nhất một cách tối ưu.
Khi dữ liệu không có sẵn do thiết bị hỏng hoặc các nguyên nhân khác, RRDTool sẽ ghi lại giá trị dữ liệu là UNKNOWN trong file RRD.
- Vẽ đồ thị: Cho phép người quản trị tạo ra các báo cáo ở dạng đồ thị dựa trên dữ liệu được lưu trữ trong cơ sở dữ liệu.
Cơ chế hoạt động
Hình 5.1 Hoạt động của Cacti
Hoạt động của Cacti gồm 3 tác vụ:
Cacti thu thập dữ liệu thông qua phương thức Poll, với lịch trình mặc định là mỗi 5 phút một lần Hệ thống sử dụng giao thức SNMP để lấy thông tin từ các thiết bị khác nhau, cho phép giám sát hiệu quả các thiết bị tương thích với SNMP.
Cacti sử dụng công cụ RRD để lưu trữ và hiển thị dữ liệu theo thời gian, như băng thông mạng và nhiệt độ phòng máy RRD là hệ thống hiệu quả giúp quản lý và theo dõi các thông số quan trọng trong môi trường IT.
Biểu diễn dữ liệu là một trong những đặc điểm nổi bật của RRD, nhờ vào tính năng tích hợp đồ họa Dữ liệu được trình bày một cách trực quan, giúp người dùng dễ dàng đánh giá hiệu suất của thiết bị đang được giám sát.
Tính năng
Biểu đồ là yếu tố cốt lõi trong Cacti, nơi cung cấp giao diện người dùng thân thiện với RRD mà không yêu cầu người dùng hiểu rõ cách hoạt động của RRD Mỗi biểu đồ trong Cacti đều được cấu hình với ít nhất một công cụ biểu đồ liên kết, trong khi các thiết lập biểu đồ xác định các tính chất tổng thể Các công cụ biểu đồ đóng vai trò quan trọng trong việc xác định dữ liệu hiển thị và nội dung của chú giải trên biểu đồ.
Hì nh 6.1 Biểu đồ trong Cacti
Biểu đồ trong hình 6.1 minh họa băng thông của cổng Ethernet 0 trên switch, được đo bằng bit/s Trục tung thể hiện lượng dữ liệu, trong khi trục hoành phản ánh thời gian theo dõi Màu xanh lá biểu thị dữ liệu tải xuống (download), còn màu xanh ra trời đại diện cho dữ liệu tải lên (upload).
Cacti hỗ trợ đa dạng các kiểu biểu đồ và loại dữ liệu, cho phép theo dõi lưu lượng theo các khoảng thời gian như phút, giờ, ngày và tháng Nó cũng có khả năng giám sát lưu lượng trong khoảng thời gian nhất định, cùng với hiệu năng CPU và các thông số hệ thống khác.
Cacti cho phép người dùng thu thập dữ liệu thông qua chức năng "data input", nơi họ có thể định nghĩa các đoạn mã cần thiết Mỗi đoạn mã yêu cầu nhập các tham số cụ thể, chẳng hạn như địa chỉ IP, để thực hiện việc thu thập dữ liệu hiệu quả Cacti cũng hỗ trợ nhiều phiên bản của giao thức SNMP, giúp tối ưu hóa quá trình thu thập thông tin.
SNMP là một giao thức quan trọng cho phép Cacti thu thập dữ liệu từ các thiết bị hỗ trợ nó Việc sử dụng SNMP hoặc các đoạn mã viết sẵn giúp tối ưu hóa quá trình thu thập thông tin từ nhiều nguồn khác nhau.
Cacti cho phép thiết lập topo mạng tổng thể, giúp người quản lý giám sát băng thông giữa các thiết bị Tính năng này hỗ trợ phát hiện lưu lượng bất thường, như tấn công DDoS từ bên ngoài hoặc các mối đe dọa nội bộ, từ đó xử lý kịp thời nhờ vào khả năng thu thập dữ liệu hiệu quả.
Hình 2.4 Weather map trong Cacti
Bản đồ trạng thái của hệ thống trong hình 2.4 thể hiện các liên kết giữa các thiết bị qua màu sắc cụ thể, với mỗi màu phản ánh lưu lượng theo tỷ lệ phần trăm Chẳng hạn, màu vàng biểu thị lưu lượng đạt 55-70% Nếu liên kết đột ngột chuyển sang màu đỏ, điều này cho thấy có lưu lượng bất thường trong hệ thống hoặc hệ thống đang gặp phải một cuộc tấn công.
Giám sát trạng thái thiết bị là một tính năng quan trọng khi sử dụng Cacti để theo dõi hoạt động mạng Người quản lý có thể dễ dàng xác định thiết bị nào đang hoạt động hiệu quả và thiết bị nào đã ngừng hoạt động Cacti thực hiện việc ping liên tục đến các thiết bị được giám sát, giúp theo dõi trạng thái của chúng Nếu một thiết bị không phản hồi, nó sẽ được đánh dấu là ngừng hoạt động, giúp người quản lý nhanh chóng xử lý sự cố.
Bảng giám sát trạng thái thiết bị trong Cacti hiển thị tình trạng hoạt động của thiết bị bằng màu sắc: màu xanh lá cho thiết bị hoạt động bình thường và màu đỏ cho thiết bị ngừng hoạt động hoặc không phản hồi, kèm theo thông báo âm thanh Thời gian ngừng hoạt động của thiết bị được thể hiện rõ ràng trong bảng.
Trong Cacti, người quản lý có thể thiết lập ngưỡng cảnh báo cho từng thiết bị, chẳng hạn như khi lưu lượng đạt 10Gbps, hệ thống sẽ gửi thông báo qua tin nhắn hoặc email, hoặc hiển thị trực tiếp trên màn hình Việc cấu hình các tham số này hoàn toàn linh hoạt, giúp cảnh báo sớm để người quản lý có thể xác định và dự đoán các rủi ro tiềm ẩn trong hệ thống mạng, từ đó đưa ra giải pháp xử lý phù hợp.
Ưu nhược điểm của Cacti
- Được phân phối theo dõi bởi admin.
- Hỗ trợ máy chủ Linux, Solaris, HP-UX, AIX, Free BSD, OPEN BSD, OSX.
- Hỗ trợ máy trạm Linux, Solaris, Centos,…
- Giao diện web trực quan.
- Có thể thông báo sự cố qua email.
- Có xem báo cáo, biểu đồ qua giao diện web.
- Gần như miễn phí và đáp ứng hầu hết các mong muốn khi giám sát.
Nhược Điểm của Cacti là:
- Phần mềm cung cấp ít tùy chọn quản lí hơn so với các phần mềm giám sát khác
- Cần phải bổ xung các plugin cần thiết.
- Cần am hiểu các luật riêng khi muốn giám sát từng ngóc ngách của hệ thống như giám sát lưu lượng trên 1 port.
- Cần thiết bị phần cứng hỗ trợ cao để chạy được Cacti hơn các phần mềm khác có chức năng tương đương,…
Cài đặt demo
Cài các gói cần thiết
Trước khi bắt đầu, bạn nên cập nhật phần mềm bằng lệnh: sudo apt-get update -y
Sau đó cài các gói cần thiết: sudo apt-get install snmp php-snmp rrdtool librrds-perl unzip curl git gnupg2 -y
Cài đặt LAMP
To set up your web server, start by installing Apache, MariaDB, PHP, and essential PHP extensions You can easily accomplish this by executing the following command: `sudo apt-get install apache2 mariadb-server php php-mysql libapache2-mod-php php-xml php-ldap php-mbstring php-gd php-gmp -y`.
Sau khi cài đặt tất cả các gói, hãy cấu hình lại tệp php.ini: sudo nano /etc/php/7.4/apache2/php.ini
Thay đổi các dòng sau: memory_limit = 512M max_execution_time = 60 date.timezone = Asia/Ho_Chi_Minh
Sau đó làm tương tự với tệp /etc/php/7.4/cli/php.ini.
Khởi động lại apache để áp dụng các thay đổi: sudo systemctl restart apache2
Cấu hình MariaDB
Chỉnh sửa tệp cấu hình của MariaDB:
- Mở tệp: sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
To optimize your MySQL server configuration, add the following lines to the [mysqld] section: set the collation-server to utf8mb4_unicode_ci, adjust max_heap_table_size to 128M, tmp_table_size to 64M, and join_buffer_size to 64M Additionally, configure innodb_file_format to Barracuda, enable innodb_large_prefix, and allocate innodb_buffer_pool_size to 512M For improved performance, set innodb_flush_log_at_timeout to 3, and increase innodb_read_io_threads to 32, innodb_write_io_threads to 16, innodb_io_capacity to 5000, and innodb_io_capacity_max to 10000.
Khởi động lại MariaDB để áp dụng các thay đổi: sudo systemctl restart mariadb
Tiếp theo, đăng nhập vào MariaDB bằng lệnh sau: sudo mysql -u root -p
Tạo database dùng cho Cacti:
MariaDB [(none)]> create database cactidb;
MariaDB [(none)]> GRANT ALL ON cactidb.* TO cactiuser@localhost IDENTIFIED BY 'password';
Tiếp theo, bạn cần nhập dữ liệu múi giờ vào cơ sở dữ liệu MySQL: sudo mysql -u root -p mysql <
/usr/share/mysql/mysql_test_data_timezone.sql
Cấp các quyền cần thiết trên múi giờ MySQL bằng lệnh: sudo mysql -u root -p
MariaDB [(none)]> GRANT SELECT ON mysql.time_zone_name TO cactiuser@localhost;
Cài đặt và cấu hình Cacti
Tải về phiên bản mới nhất của Cacti trên website bằng câu lệnh sau: sudo wget https://www.cacti.net/downloads/cacti- latest.tar.gz
Giải nén rồi chuyển đến thư mục /var/www/html/cacti: sudo tar -zxvf cacti-latest.tar.gz sudo mv cacti-1* /var/www/html/cacti
Thêm database vào cactidb đã tạo ở phần trước: sudo mysql -u root -p cactidb <
/var/www/html/cacti/cacti.sql
27 sudo nano /var/www/html/cacti/include/config.php
Thay đổi các dòng sau:
- “cactidb” là tên cơ sở dữ liệu mình đã tạo.
- “cactiuser” và “password” là tên user và mật khẩu để đăng nhập vào mysql (user sử dụng trong bài là “root”).
Để tạo file log cho Cacti, sử dụng lệnh `sudo touch /var/www/html/cacti/log/cacti.log` Tiếp theo, đặt quyền sở hữu và quyền truy cập cho các thư mục của Cacti bằng cách thực hiện lệnh `sudo chown -R www-data:www-data /var/www/html/cacti/` và `sudo chmod -R 775 /var/www/html/cacti/`.
Tạo file cron cho Cacti: sudo nano /etc/cron.d/cacti
*/5 * * * * www-data php /var/www/html/cacti/poller.php > /dev/null 2>&1
Chú ý: 5 là 5 phút/lần cacti sẽ đùng phương thức poll để lấy dữ liệu từ các thiết bị
Cấu hình Apache cho Cacti
Tạo tệp cấu hình máy chủ ảo cho Cacti: sudo nano /etc/apache2/sites-available/cacti.conf Điền vào nội dung sau:
Alias /cacti /var/www/html/cacti
AddType application/x-httpd-php php
To optimize your PHP configuration, ensure that the magic quotes feature is disabled, short open tags are enabled, and both register_globals and track_vars are set to off and on, respectively Additionally, allow the use of register_argc_argv to enhance script functionality.
# this setting is necessary for some locales
29 php_value mbstring.func_overload 0 php_value include_path
Bật tệp máy chủ ảo: sudo a2ensite cacti
Restart Apache: sudo systemctl restart apache2
Truy cập giao diện web Cacti
Mở trình duyệt web của bạn và truy cập giao diện web Cacti bằng URL http://your_ip/cacti Bạn sẽ được chuyển đến trang đăng nhập của Cacti.
Your_ip có thể là ip của bạn hoặc localhost nếu dùng trên máy cài đặt Cacti.
Username và Password là admin, bạn đăng nhập để đổi mật khẩu mới Sau đó ấn Save Bạn sẽ thấy trang Thỏa thuận cấp phép:
Chấp nhận thỏa thuận và nhấp vào nút Begin Bạn sẽ thấy màn hình kiểm tra cài đặt trước:
Bấm vào nút Next Bạn sẽ thấy màn hình Loại cài đặt:
Chọn kiểu cài đặt mong muốn của bạn và nhấp vào nút Next Bạn sẽ thấy màn hình kiểm tra quyền thư mục:
Bấm vào nút Next Bạn sẽ thấy màn hình kiểm tra vị trí và phiên bản:
Bấm vào nút Next Bạn sẽ thấy màn hình sau:
35 Đánh dấu vào "I have read this statement" và nhấp vào nút
Next Bạn sẽ thấy màn hình sau:
Chọn các tùy chọn mong muốn của bạn và nhấp vào nút Next Bạn sẽ thấy màn hình thiết lập mẫu:
Bấm vào nút Next Bạn sẽ thấy màn hình xác nhận cài đặt:
Chọn “Confirm Installation” và nhấp vào nút Install Sau khi cài đặt hoàn tất, bạn sẽ thấy màn hình sau:
Nhấp chuột vào nút Get Started Bạn sẽ thấy bảng điều khiển