Nghiên cứu và thực hành triển khai kỹ thuật Monitoring cho hệ thống mạng, tổng quan về monitoring và đưa ra các bài toán cần đên monitoring, khái niệm và tính năng của nagios, giao thức giám sát mạng SNMP, cài đặt nagios trên máy chủ
Trang 1ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
BÁO CÁO BÀI TẬP LỚN MÔN HỌC: QUẢN TRỊ MẠNG
Nội dung thực hiện: Nghiên cứu và thực hành triển khai kỹ thuật Monitoring cho hệ thống mạng.
Sinh viên thực hiện: Trịnh Huy Long
Năm 2020
Trang 2Mục lục
I Tổng quan về Monitoring
1 Khái niệm
Khái niệm: Hệ thống giám sát mạng (Network montoring) là hệ thống giám sát
các sự cố, hiêu năng, tình trạng của các thiết bị và máy tính trong hệ thống mạng
Hệ thống bao gồm một phần mềm ghi nhận thông tin và giúp người quan trị hệ thống có thể ghi nhận, theo dõi các thông tin thông qua nó Phần mềm này còn có khả năng gởi các thông báo, các cảnh báo cho người quản trị hệ thống biết khi có nguy cơ sự cố hoặc có sự cố đang diển ra trong hệ thống
Vậy trong các hệ thống mạng, người ta thường giám sát những gì và bằng cách náo có thể giám sát được hệ thống mạng?
Trong hệ thống mạng, người ta thường giám sát các thiết bị như các server, switch, router, firewall, tổng đài và điện thoại VoIP, máy in, tất cả các thiết bị có hỗ trợ giám sát Việc giám sát sẽ thông qua các giao thức mà thiết bị hoặc hệ điều hành của nó cung cấp, một trong những giao thức quan trọng nhất và được sử dụng rộng rãi là SNMP, bên cạnh đó có rất nhiều giao thức khác như Netflow, WMI, ICMP, IPSLA… các giao thức này tiến hành thu thập thông tin trên thiết bị và gởi các dữ liệu về phần mềm giám sát hệ thống, phần mềm sẽ tiến hành xử lý và lưu trữ các dữ liệu này trong cơ sở dữ liệu của nó Kết quả của quá trình giám sát sẽ được hiển thị lên giao diện quản lý của phần mềm cho phép người quản trị có thể xem xét tình trạng, các vấn đề của hệ thống mạng, của các thiết bị của hệ thống
2 Các đặc điểm của một hệ thống Monitoring
Xử lí real time
Có hệ thống cảnh báo
Trang 3Có khả năng tạo reports
Có khả năng cài cắm các plugins
3 Các thành phần
• Thông thường một hệ thống monitoring thường có 4 thành phần chính:
Collector: Được cài trên các máy agent (các máy muốn monitor), có nhiệm
vụ collect metrics của host và gửi về database
Database: Lưu trữ các metrics mà colletor thu thập được, thường thì chúng
ta sẽ sử dụng các time series database
Visualizer: Có nhiệm vụ trực quan hóa các metrics thu thập được qua các
biểu đồ, bảng,
Alerter: Gửi thống báo đến cho sysadmin khi có sự cố xảy ra
4 Tầm quan trọng của giám sát mạng
Giám sát mạng thực sự là một việc rất cần thiết trong công việc Không chỉ bởi tính an toàn và bảo mật dữ liệu, giám sát mạng có thể giúp doanh nghiệp tiết kiệm chi phí sửa chữa, giảm thiểu thời gian chết của hệ thống khi gặp sự cố, đảm bảo
Trang 4tính thông suốt trong toàn hệ thống Những tiêu chí dưới đây sẽ giải thích rõ hơn vì sao giám sát mạng lại là một phần quan trọng đối với các hệ thống:
- Tính bảo mật: Đảm bảo các thông tin không bị lộ ra ngoài Là một trong những phần quan trọng của giám sát mạng, tính năng này sẽ theo dõi những biến động trong hệ thống mạng và cảnh báo cho quản trị viên biết khi có sự cố xảy ra kịp thời Thông qua màn hình giám sát, người quản trị có thể xác định được vấn đề khả nghi và tìm cách giải quyết phù hợp nhất cho vấn đề đó
- Khả năng xử lý sự cố: Khả năng này là một trong các lợi thế của giám sát mạng Tiết kiệm thời gian chẩn đoán sai lệch trong mạng, giám sát viên có thể biết chính xác thiết bị nào đang có vấn đề và xử lý nó một cách nhanh nhất trước khi người dùng mạng phát hiện
- Tiết kiệm thời gian và tiền bạc: Nếu không có phần mềm giám sát thì sẽ mất nhiều thời gian để tìm kiếm và sửa lỗi hệ thống mà lẽ ra chỉ mất vài giây để sửa lỗi
đó Điều này không chỉ tốn thêm chi phí mà còn làm giảm năng suất lao động Ngược lại, nhờ có phần mềm giám sát, vấn đề sẽ nhanh chóng được tìm ra và xử lý hiệu quả, có thể tập trung nhiều hơn vào công việc khác, lợi nhuận công ty cũng gia tăng
- Lập kế hoạch thay đổi: Với giám sát mạng, giám sát viên có thể theo dõi được thiết bị nào sắp hỏng và cần phải thay mới Giám sát mạng cho người giám sát khả năng lên kế hoạch sẵn và dễ dàng tạo ra thay đổi cần thiết cho hệ thống mạng
5 Các bài toán đưa ra
5.1 Bài toán thứ nhất Giám sát tài nguyên máy chủ.
- Chúng ta cần giám sát tài nguyên của tất cả máy chủ hàng ngày, hàng giờ để kịp thời phát hiện các máy chủ sắp bị quá tải và đưa ra phương thức giải quyết phù hợp và kịp thời
- Giám sát tài nguyên máy chủ nghĩa là theo dõi tỷ lệ chiếm dụng CPU, dung lượng còn lại của ổ cứng, tỷ lệ sử dụng bộ nhớ RAM,
- Chúng ta không thể kết nối vào từng máy để xem vì số lượng máy nhiều và có cách thức kiểm tra khác nhau
5.2 Bài toán thứ ba Hệ thống tự động cảnh báo sự cố tức thời
Bạn có hàng ngàn thiết bị mạng và chúng có thể gặp nhiều vấn đề trong quá trình hoạt động như:
Trang 5Một host hay 1 services nào đó bị mất tín hiệu, có ai đó đã cố kết nối (login) vào thiết bị nhưng nhập sai username và password, thiết bị vừa mới bị khởi động lại (restart) Hệ thống cần thông báo sự kiện để người quản trị biết được sự kiện khi nó vừa mới xảy ra
Để giải quyết các vấn đề trên bạn có thể dùng một ứng dụng phần mềm giám sát được máy chủ, nó sẽ lấy được thông tin từ các máy chủ
II Tổng quan về nagios
1. Khái niệm Nagios
Nagios là một phần mềm nguồn mở hỗ trợ cho người quản trị mạng trong việc giám sát các Host, Services (DHCP, HTTP, …) và một số tài nguyên hệ thống như dung lượng trên các ổ đĩa, hoạt động của CPU, trong hệ thống mạng
Hiểu đơn giản, Nagios là một hệ thống dùng để giám sát một hệ thống, mạng
và cơ sở hạ tầng
Đây là một trong những hệ thống giám sát Linux hiển thị kết quả trên nền web phổ biến nhất hiện nay, thực sự nó là tiêu chuẩn công nghiệp để theo dõi cơ sở
hạ tầng công nghệ thông tin
2. Tính năng của Nagios
Cộng đồng nguồn mở: Với hàng triệu người dùng trên toàn thế giới, hàng
nghìn plugin và addons, cộng đồng Nagios là một tài sản mạnh mẽ cho mọi nhu cầu hỗ trợ hoặc phát triển của bạn
Lên kế hoạch nâng cấp cơ sở hạ tầng trước khi những hệ thống lỗi thời gây ra lỗi
• Giải quyết vấn đề ngay lập tức khi phát hiện ra những dấu hiệu đầu tiên
• Tự động thực hiện chữa lỗi khi dò tìm phát hiện ra lỗi
• Phối hợp với hoạt động của team IT
• Đảm bảo rằng các vấn đề về cơ sở hạ tầng IT ảnh hưởng ít nhất tới hệ thống của công ty
• Nguyên lí làm việc của Nagios
Bước 1: Thu thập thông tin
Trang 6Bước 2: Xư lí thông tin
Bước 3: Báo kết quả
3. Giao thức giám sát mạng SNMP
SNMP– Simple Network Management Protocol (Giao thức quản lý mạng đơn giản) Về bản chất SNMP là một tập các thao tác cho phép người quản trị hệ thống
có thể thay đổi trạng thái của các thiết bị (có hỗ trợ SNMP)
Một thiết bị hiểu được và hoạt động theo giao thức SNMP được gọi là “có hỗ trợ SNMP” (SNMP supported) hoặc “tương thích SNMP” (SNMP compartible) SNMP dùng để quản lý nghĩa là: có thể theo dõi, lấy thông tin, được thông báo,
và có thể tác động để hệ thống hoạt động như ý muốn Ví dụ một số khả năng của phần mềm SNMP:
+ 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
+ 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 được thiết kế để chạy trên nền TCP/IP và quản lý các thiết bị có nối mạng TCP/IP Các thiết bị mạng không nhất thiết phải là máy tính mà có thể là switch, router, firewall, ADSL gateway, và cả một số phần mềm cho phép quản trị bằng SNMP
Các thành phần trong 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 (network management station) và các thành tố mạng (network element)
Trang 7Network management station thường là một máy tính chạy phần mềm quản lý SNMP (SNMP management application), dùng để giám sát và điều khiển tập trung các network element
Network element là các thiết bị, máy tính, hoặc phần mềm tương thích SNMP
và được quản lý bởi network management station Như vậy element bao gồm device, host và application
Một management station có thể quản lý nhiều element, một element cũng có thể được quản lý bởi nhiều management station Vậy nếu một element được quản lý bởi 2 station thì điều gì sẽ xảy ra? Nếu station lấy thông tin từ element thì cả 2 station sẽ có thông tin giống nhau Nếu 2 station tác động đến cùng một element thì element sẽ đáp ứng cả 2 tác động theo thứ tự cái nào đến trước
Khái niệm SNMP agent: SNMP agent là một tiến trình (process) chạy trên network element, có nhiệm vụ cung cấp thông tin của element cho station, nhờ đó station có thể quản lý được element Nói cách khác, Application chạy trên station
và agent chạy trên element là 2 tiến trình SNMP trực tiếp liên hệ với nhau Các ví
dụ minh họa sau đây sẽ làm rõ hơn các khái niệm này:
+ Để dùng một máy chủ (station) quản lý các máy con (element) chạy HĐH Windows thông qua SNMP thì bạn phải: cài đặt một phần mềm quản lý SNMP (application) trên máy chủ, bật SNMP service (agent) trên máy con
Trang 8+ Để dùng một máy chủ (station) giám sát lưu lượng của một router (element) thì bạn phải: cài phần mềm quản lý SNMP (= application) trên máy chủ, bật tính năng SNMP (agent) trên router
3.1. Object ID
Một thiết bị hỗ trợ SNMP có thể cung cấp nhiều thông tin khác nhau, mỗi thông tin đó gọi là một object
Ví dụ:
+ Máy tính có thể cung cấp các thông tin: tổng số ổ cứng, tổng số port nối mạng, tổng số byte đã truyền/nhận, tên máy tính, tên các process đang chạy, …
+ Router có thể cung cấp các thông tin: tổng số card, tổng số port, tổng số byte
đã truyền/nhận, tên router, tình trạng các port của router, …
Mỗi object có một tên gọi và một mã số để nhận dạng object đó, mã số gọi là Object ID (OID)
Ví dụ: Muốn lấy tên của một PC chạy Windows, tên của một PC chạy Linux hoặc tên của một router thì SNMP application chỉ cần gửi bản tin có chứa OID là 1.3.6.1.2.1.1.5.0 Khi SNMP agent chạy trên PC Windows, PC Linux hay router nhận được bản tin có chứa OID 1.3.6.1.2.1.1.5.0, agent lập tức hiểu rằng đây là bản tin hỏi sysName.0, và agent sẽ trả lời bằng tên của hệ thống Nếu SNMP agent nhận được một OID mà nó không hiểu (không hỗ trợ) thì nó sẽ không trả lời
Một trong các ưu điểm của SNMP là nó được thiết kế để chạy độc lập với các thiết bị khác nhau Chính nhờ việc chuẩn hóa OID mà ta có thể dùng một SNMP application để lấy thông tin các loại device của các hãng khác nhau
3.2. Object Access
Mỗi object có quyền truy cập là READ_ONLY hoặc READ_WRITE Mọi object đều có thể đọc được nhưng chỉ những object có quyền READ_WRITE mới
có thể thay đổi được giá trị
Ví dụ: Tên của một thiết bị (sysName) là READ_WRITE, có thể thay đổi tên của thiết bị thông qua giao thức SNMP Tổng số port của thiết bị (ifNumber) là READ_ONLY và không thể thay đổi số port của nó
3.3. Management Information Base
Trang 9MIB (cơ sở thông tin quản lý) là một cấu trúc dữ liệu gồm các đối tượng được quản lý (managed object), được dùng cho việc quản lý các thiết bị chạy trên nền TCP/IP MIB là kiến trúc chung mà các giao thức quản lý trên TCP/IP nên tuân theo, trong đó có SNMP MIB được thể hiện thành 1 file (MIB file), và có thể biểu diễn thành 1 cây (MIB tree) MIB có thể được chuẩn hóa hoặc tự tạo
Một manager có thể quản lý được một device chỉ khi ứng dụng SNMP manager
và ứng dụng SNMP agent cùng hỗ trợ một MIB Các ứng dụng này cũng có thể hỗ trợ cùng lúc nhiều MIB
3.4. Các phương thức của SNMP
Giao thức SNMP có 5 phương thức hoạt động cơ bản, tương ứng với 5 loại bản tin như sau:
Hình 2.2.2.5: Bảng các phương thức cơ bản của SNMP
Mỗi bản tin đều có chứa OID để cho biết object mang trong nó là gì OID trong GetRequest cho biết nó muốn lấy thông tin của object nào OID trong GetResponse cho biết nó mang giá trị của object nào OID trong SetRequest chỉ ra nó muốn thiết lập giá trị cho object nào OID trong Trap chỉ ra nó thông báo sự kiện xảy ra đối với object nào
4. Hệ thống Nagios gồm hai phần chính
4.1. Nagios core
- Nagios core là công cụ giám sát và cảnh báo
- Nagios core được xem như là lịch trình sự kiện cơ bản, xử lý sự kiện và quản lý thông báo cho các phần tử được theo dõi Nó khắc họa một sooss API (Application Programming Interface_Giao diện lập trình ứng dụng) được sử dụng để mở rộng khả năng của mình để thực hiện nhiệm vụ bổ
Trang 10sung, được thực hiện như một tiến trình được viết bằng C vì lý do hiệu suất,
và được thiết kế để chạy tự nhiên trên hệ thống Linux/* nix
4.2. Nagios Plugins
- Nagios plugins là phần mở rộng độc lập để Nagios Core cung cấp ở mức độ thấp về cách theo dõi bất cứ điều gì và tất cả mọi thứ với Nagios Core Plugins hoạt động như các ứng dụng độc lập, nhưng thương được thiết kế để thực thi bởi Nagios Core
- Plugins xử lý đối số dòng lệnh, đi về các doanh nghiệp thực hiện kiểm tra,
và sau đó trả lại kết quả cho Nagios Core để xử lý tiếp Plugin có thể được biên dịch nhị phân (viết bằng C, C++, …) hoặc các bản thực thi (Perl, PHP,
…)
5 Hướng dẫn cài đặt Nagios trên máy chủ
5.1 Installation
Đầu tiên: trên server1 cài đặt Nagios package
- Trong terminal gõ lệnh sau và ấn Enter
sudo apt install nagios3 nagios-nrpe-plugin
Trang 11- Tiếp theo, trên server2 gõ lệnh: sudo apt install nagios-nrpe-server
Trang 125.2 Configuration
Đầu tiên, tạo một tệp cấu hình máy chủ cho server2 Hãy chạy các lệnh này trên server1 trong terminal và nhấn Enter:
sudo cp /etc/nagios3/conf.d/localhost_nagios2.cfg \
/etc/nagios3/conf.d/server02.cfg
- Sửa file server02.cfg: sudo gedit /etc/nagios3/conf.d/server02.cfg
- hostname sửa ở trong /etc/hosts (sửa = lệnh: sudo gedit /etc/hosts)
- Server1: IP là 192.168.12.139 hostname: server1
- Server2: IP là 192.168.12.133 hostname: server2
Trang 13define host {
use generic-host
host_name server2
alias Server 2
address 192.168.12.133
}
# Define a service to check the disk space of the root partition
# on the local machine Warning if < 20% free, critical if
# < 10% free space on partition
Trang 14define service {
use generic-service
host_name server2
service_description Disk Space
check_command check_all_disks!192.168.12.133
}
- Khởi động lại service (khởi tạo service sudo /etc/init d/nagios3 start)
sudo systemctl restart nagio3.services
* Thiết lập NRPE để kiểm tra dung lượng ổ đĩa ở server2
- Ở server1 thêm dịch vụ kiểm tra (service) vào file /etc/nagios3/conf.d/server02.cfg (sudo gedit /etc/nagios3/conf.d/server02.cfg) define service {
use generic-service
host_name server2
service_description nrpe-disk
check_command check_all_disks!192.168.12.133
}
Trang 15- Ở server2 sửa file /etc/nagios/nrpe.cfg (sudo gedit /etc/nagios/nrpe.cfg)
thêm địa chỉ ip server1 được cho phép sử dụng plugin
allowed_hosts=192.168.12.131
- Thêm vào file nrpe.cfg lệnh:
command[check_all_disks] = /usr/lib/nagios/plugins/check_disk -w 20% -c 10% -e
Trang 16- - Sau đó khởi động lại service trên server2
- sudo systemctl restart nagios-nrpe-server.service
Trang 17- Đồng thời khởi động lại service nagios trên server1
sudo systemctl restart nagios3.service