ĐẠ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.
Giáo viên hướng dẫn:
Sinh viên thực hiện:
Lê Danh Tài
Trịnh Huy Long
Năm 2020
Mụ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
Visualization
2
Có 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 tồ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
3
tính thơng suốt trong tồ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 ngồ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ư:
4
Mộ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 tồ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.
•
Ngun lí làm việc của Nagios
Bước 1: Thu thập thơng tin
5
Bướ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).
6
Network 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.
7
+ Để 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
8
MIB (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ổ
9
sung, đượ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
10
-
Tiếp theo, trên server2 gõ lệnh:
sudo apt install nagios-nrpe-server
11
5.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
12
define host {
use
host_name
alias
address
generic-host
server2
Server 2
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.
13
define service {
use
host_name
service_description
check_command
generic-service
server2
Disk Space
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
/etc/nagios3/conf.d/server02.cfg (sudo gedit /etc/nagios3/conf.d/server02.cfg)
define service {
use
host_name
service_description
check_command
generic-service
server2
nrpe-disk
check_all_disks!192.168.12.133
}
14
file
- Ở 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
15
-
- Sau đó khởi động lại service trên server2
sudo systemctl restart nagios-nrpe-server.service
16
-
Đồng thời khởi động lại service nagios trên server1
sudo systemctl restart nagios3.service
17
-
Truy cập http://192.168.12.131/nagios3
(user: nagiosadmin pass: 1)
Trang chủ của nagios trên trình duyệt web
18
Các host được quản lí bởi nagios
19
Dịch vụ của các host
Hàng đợi lập lịch cho các service
20