Tải bản đầy đủ (.pdf) (59 trang)

Nghiên cứu xây dựng hệ thống giám sát hạ tầng CNTT với giải pháp mã nguồn mở

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.8 MB, 59 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
..

LUẬN VĂN THẠC SĨ

Nghiên cứu, xây dựng hệ thống giám sát
hạ tầng CNTT với giải pháp mã nguồn mở

VŨ XUÂN HẢI
Ngành Mạng máy tính và An tồn thơng tin

Giảng viên hướng dẫn:

TS. Trần Hồng Hải

Viện:

Công nghệ Thông tin và Truyền thông

HÀ NỘI, 2020


TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

LUẬN VĂN THẠC SĨ
Nghiên cứu, xây dựng hệ thống giám sát
hạ tầng CNTT với giải pháp mã nguồn mở

VŨ XUÂN HẢI
Ngành Mạng máy tính và An tồn thơng tin


Giảng viên hướng dẫn: TS. Trần Hồng Hải
Chữ ký của GVHD

Viện:

Cơng nghệ Thơng tin và Truyền thông

HÀ NỘI, 2020


CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc

BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ
Họ và tên tác giả luận văn : VŨ XUÂN HẢI
Đề tài luận văn: Nghiên cứu, xây dựng hệ thống giám sát hạ tầng CNTT
với giải pháp mã nguồn mở
Chun ngành: Mạng máy tính và An tồn thơng tin
Mã số SV: CB180195
Tác giả, Người hướng dẫn khoa học và Hội đồng chấm luận văn xác nhận tác
giả đã sửa chữa, bổ sung luận văn theo biên bản họp Hội đồng ngày
27/06/2020 với các nội dung sau:
- Sửa chương 1 : Mục tiêu, quy mô của đề tài, hiện trạng phần mềm giám
sát mạng
-

Trình bày hiện trạng hạ tầng CNTT

-


Trình bày đối tượng được giám sát
Ngày tháng

năm 2020

Giáo viên hướng dẫn

Tác giả luận văn

TS. Trần Hoàng Hải

Vũ Xuân Hải

CHỦ TỊCH HỘI ĐỒNG


LỜI CẢM ƠN

Tôi xin gửi lời chân thành cảm ơn đến tồn thể thầy, cơ giáo trong Viện
Cơng nghệ thơng tin Trường Đại học Bách Khoa Hà Nội. Đồng thời tơi xin bày
tỏ lịng cảm ơn sâu sắc tới TS. Trần Hồng Hải - Người đã tận tình hướng dẫn,
định hướng và chỉ bảo cho tơi trong suốt q trình nghiên cứu hồn thành Luận
văn.
Trong q trình hồn thiện luận văn, mặc dù đã nỗ lực cố gắng với tinh thần
trách nhiệm cao nhất, song bản luận văn không thể tránh khỏi những thiếu sót,
hạn chế nhất định. Tơi rất mong nhận được sự đóng góp ý kiến của các Thầy/Cô
giáo; các anh, chị đồng nghiệp và các bạn quan tâm để bản luận văn này được
hoàn thiện hơn nữa.
Xin trân trọng cảm ơn !


Hà Nội, ngày

tháng
Học viên

Vũ Xuân Hải

năm 2020


MỤC LỤC
CHƯƠNG 1. MỞ ĐẦU ........................................................................................ 1
1.1 Lý do chọn đề tài ............................................................................................. 1
1.2 Mục tiêu của đề tài........................................................................................... 2
CHƯƠNG 2. TỔNG QUAN VỀ HỆ THỐNG GIÁM SÁT ............................. 4
2.1 Khái niệm hệ thống giám sát ........................................................................... 4
2.2 Vai trò của hệ thống giám sát mạng ................................................................ 5
2.3 Giao thức giám sát mạng SNMP ..................................................................... 5
2.3.1 Các phương thức của SNMP ............................................................ 6
2.3.2 Các cơ chế bảo mật cho SNMP ...................................................... 10
2.3.3 Cấu trúc bản tin SNMP .................................................................. 11
CHƯƠNG 3. XÂY DỰNG GIẢI PHÁP GIÁM SÁT SỬ DỤNG ZABBIX .. 13
3.1 Mô tả hiện trạng hạ tầng CNTT của Công ty cổ phần Thương mại và Dịch vụ
Lotteshop Việt Nam ............................................................................................. 13
3.2 Lựa chọn giải pháp Zabbix ............................................................................ 14
3.2.1 Kiến trúc của Zabbix .................................................................... 17
3.2.2 Bảo mật trong Zabbix .................................................................. 19
3.2.3 Cơ chế thu thập dữ liệu của Zabbix ............................................. 19
3.2.4 Các mơ hình triển khai Zabbix ..................................................... 22
3.3 Triển khai thử nghiệm ................................................................................... 25

3.3.1 Cài đặt Zabbix server ................................................................... 26
3.3.2 Giới thiệu giao diện Dashboard ................................................... 31
3.3.3 Cấu hình giám sát thêm 1 server .................................................. 31
3.3.4 Template trong Zabbix ................................................................. 35
3.3.5 Auto Discovery ............................................................................ 40
3.3.6 Cấu hình cảnh báo trong Zabbix thông qua ứng dụng Telegram 42
3.3.7 Kết quả thử nghiệm ...................................................................... 47
CHƯƠNG 4. KẾT LUẬN .................................................................................. 50
4.1 Kết luận.......................................................................................................... 50
4.2 Hướng phát triển của luận văn trong tương lai .............................................. 50
TÀI LIỆU THAM KHẢO ................................................................................. 51


DANH MỤC HÌNH VẼ

Hình 2.1: Cấu trúc bản tin SNMP ........................................................................ 11
Hình 3.1 : Mơ hình hạ tầng CNTT Cơng ty cổ phần Thương mại và dịch vụ
Lotteshop Việt Nam ............................................................................................. 13
Hình 3.2 : Zabbix Monitor ................................................................................... 16
Hình 3.3 : Kiến trúc Zabbix ................................................................................. 17
Hình 3.4 : Các thành phần Zabbix ....................................................................... 18
Hình 3.5: Zabbix check ........................................................................................ 21
Hình 3.6 : Mơ hình triển khai Zabbix trên 1 node ............................................... 23
Hình 3.7 : Mơ hình triển khai Zabbix có tính sẵn sàng cao ................................. 24
Hình 3.8 : Mơ hình Zabbix phân tán .................................................................... 25
Hình 3.9 : Cài đặt Zabbix server .......................................................................... 27
Hình 3.10 : Cài đặt Databases cho Zabbix........................................................... 28
Hình 3.11 : Cấp quyền user Zabbix trên Database .............................................. 28
Hình 3.12: Cấu hình Zabbix server, php .............................................................. 29
Hình 3.13 : Restart services Zabbix server .......................................................... 29

Hình 3.14 : Cấu hình Zabbix server ..................................................................... 30
Hình 3.15: Giao diện đăng nhập Zabbix .............................................................. 30
Hình 3.16: Giao diện Dashboard ......................................................................... 31
Hình 3.17: Giao diện Graphs ............................................................................... 31
Hình 3.18: Install Zabbix-agent ........................................................................... 32
Hình 3.19: Cấu hình Zabbix agent ....................................................................... 32
Hình 3.20: Start Zabbix-agent ............................................................................. 32
Hình 3.21: Create hosts ........................................................................................ 33
Hình 3.22: Add hosts ........................................................................................... 33
Hình 3.23: Screen trong Zabbix ........................................................................... 34
Hình 3.24: Template trong Zabbix ...................................................................... 36
Hình 3.25: Multiple templates ............................................................................. 36
Hình 3.26: Items trong Zabbix ............................................................................. 37
Hình 3.27: Import template .................................................................................. 38
Hình 3.28: Add template cho hosts ...................................................................... 38


Hình 3.29: Cấu hình send items ........................................................................... 39
Hình 3.30: New template ..................................................................................... 39
Hình 3.31: Triggers trong Zabbix ........................................................................ 40
Hình 3.32: Biểu đổ trong Zabbix ......................................................................... 40
Hình 3.33: Auto discovery ................................................................................... 41
Hình 3.34: Tạo bot Telegram ............................................................................... 43
Hình 3.35: API, token mà Telegram cung cấp ..................................................... 44
Hình 3.36: Test API của telegram ........................................................................ 44
Hình 3.37 : Cấu hình gửi cảnh báo qua Telegram trên agent .............................. 45
Hình 3.38: Cấu hình media type trên Zabbix server ............................................ 45
Hình 3.39 : Tạo Media Telegram ......................................................................... 46
Hình 3.40: Cấu hình action trong Zabbix server .................................................. 46
Hình 3.41: Telegram gửi tin nhắn cảnh báo......................................................... 47

Hình 3.42: Giám sát hiệu nang CPU .................................................................... 48
Hình 3.43: Giám sát dung lượng HDD ................................................................ 48
Hình 3.44: Giám sát sử dụng RAM ..................................................................... 48
Hình 3.45: Giám sát băng thơng .......................................................................... 49
Hình 3.46: Cảnh báo qua Telegram ..................................................................... 49


DANH MỤC BẢNG BIỂU
Bảng 2.1 Các phương thức của SNMP .................................................................. 8
Bảng 3.1: So sánh Zabbix, Nagios, Cacti ............................................................ 16
Bảng 3.2: Phân quyền User trong Zabbix ............................................................ 19
Bảng 3.3: Cấu hình tối thiểu cài đặt Zabbix ........................................................ 26
Bảng 3.4 : Cấu hình database............................................................................... 26
Bảng 3.5: Yêu cầu software chạy trên Zabbix frontend ...................................... 27
Bảng 3.6: Các mức độ cảnh báo trong Zabbix .................................................... 42


CHƯƠNG 1. MỞ ĐẦU
1.1 Lý do chọn đề tài
Hiện nay, Internet đã trở thành một phần không thể thiếu trong đời sống của
con người. Internet giúp quá trình trao đổi thơng tin, truyền thơng nhanh chóng.
Trong thời đại 4.0 rất nhiều nước đã coi sự phát triển công nghệ thông tin và
truyền thông là hướng ưu tiên trong chiến lược phát triển kinh tế xã hội. Thế giới
dưới những tác động của công nghệ thông tin và truyền thông, đang đi vào nền
kinh tế tri thức, trong đó cơng nghệ thơng tin có một vai trị quyết định. Các cơng
ty/tập đồn cơng nghệ ln nằm trong phần lớn top 10 các tập đoàn lớn nhất thế
giới.
Hiện nay trong hạ tầng công nghệ thông tin của bất kỳ doanh nghiệp, tổ
chức nào hầu hết đều có những thiết bị mạng, máy chủ dịch vụ phục vụ cho các
công việc nội bộ cũng hoạt động kinh doanh mang lại lợi ích kinh tế cao. Câu hỏi

đặt ra cho người quản trị hệ thống IT của doanh nghiệp là: Làm thế nào có được
bức tranh toàn cảnh của toàn bộ hệ thống đang hoạt động như nào. Làm thế nào
có thể 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? Giám sát tài nguyên máy chủ (Tỷ lệ sử
dụng bộ nhớ RAM. Theo dõi tỷ lệ chiếm dụng CPU, dung lượng cịn lại của ổ
cứng,...) Chúng ta khơng thể kết nối vào từng thiết bị mạng, từng máy chủ để mà
theo dõi hiệu năng của chúng, cũng như xem các ứng dụng có đang chạy hay
khơng? Rồi làm thế nào để biết 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)…
Chính vì vậy việc đảm bảo hạ tầng công nghệ thông tin hoạt động ổn định
là vô cùng quan trọng trong doanh nghiệp. Phần mềm giám sát chính là cơng cụ
giúp chúng ta có thể thực hiện việc này một cách tối ưu nhất.
Phần mềm giám sát giúp cho việc quản lý theo dõi, giám sát tập trung hệ
thống mạng, dịch vụ, thực hiện các tác vụ quản lý vận hành mạng. Ghi thông tin
và hiển thị chi tiết theo giờ, ngày, tuần, tháng, năm việc sử dụng các thơng số
chính của từng thiết bị: lưu lượng qua các giao tiếp mạng, sử dụng CPU, HDD,
RAM…
Ghi thông tin và hiển thị chi tiết theo giờ, ngày, tuần, tháng, năm các dịch
vụ mạng, các máy chủ…
• Giám sát các hoạt động của người sử dụng, các tấn cơng và các hoạt động
khơng bình thường, có thể gây hại cho hệ thống
1


• Quản lý và giám sát chi tiết về bảo mật, lưu lượng, sử dụng băng thơng sử
dụng
• Giám sát và thống kê các lưu lượng, các giao thức, các dịch vụ được sử
dụng trong hệ thống, sử dụng hết bao nhiêu.
Đối với hạ tầng hệ thống Công nghệ thông tin hiện nay, đặc biệt là các hệ
thống cung cấp dịch vụ cho khách hàng, thì độ an tồn, ổn định, tính sẵn sàng

cao ln là ưu tiên hàng đầu. Việc theo dõi, giám sát, đưa ra các cảnh bảo của
các hạ tầng công nghệ thông tin là điều không thể thiếu. Do nguồn nhân lực về
con người là có hạn nên không thể giám sát thủ công liên tục hàng ngày hàng
giờ, nên việc phải có một hệ thống giám sát là điều khơng thể thiếu.
Hiện nay có rất nhiều công cụ giám sát hỗ trợ cho công việc của người quản
trị. Có những cơng cụ thương mại trả phí như Polestar, SolarWinds… có rất
nhiều chức năng giám sát, phục vụ hầu hết các yêu cầu giám sát của doanh
nghiệp. Tuy nhiên giá thành thường khá cao, thích hợp với các hệ thống của các
công ty lớn. Trong khi đó có những cơng cụ giám sát mã nguồn mở cho phép
giám sát rất hiệu quả như Zabbix, Nagios, Cacti…Các cơng cụ này có thể tùy
biến linh hoạt để đáp ứng nhu cầu giám sát hệ thống một cách hiệu quả nhất.
Nên việc chọn đề tài “Nghiên cứu, xây dựng hệ thống giám sát hạ tầng
CNTT với giải pháp mã nguồn mở” cũng mang ý nghĩa cấp thiết cho việc đảm
bảo hạ tầng CNTT hoạt động ổn định và giảm thiểu các rủi ro về an tồn thơng
tin trong doanh nghiệp.
1.2 Mục tiêu của đề tài, quy mô của đề tài
Mục tiêu nghiên cứu của đề tài bao gồm :
• Tìm hiểu hệ thống giám sát mạng
• Tìm hiểu phần mềm mã nguồn mở Zabbix
• Ứng dụng triển khai thử nghiệm giám sát cho hệ thồng của Công ty cổ
phần Thương mại và Dịch vụ Lotteshop Việt Nam
• Nghiên cứu triển khai hệ thống cảnh báo qua Telegram Messager
Đối tượng nghiên cứu:
• Phần mềm giám sát Zabbix và ứng dụng
Phạm vi nghiên cứu:
• Tìm hiểu chung về các phần mềm giám sát Zabbix, và các phần mềm trả
phí như : SolarWinds, Datadog, Atera…
• Nghiên cứu triển khai mơ hình Zabbix và ứng dụng cho mơ hình của Cơng
ty cổ phần Thương mại và Dịch vụ Lotteshop Việt Nam.
2



Phương pháp nghiên cứu:
• Phương pháp nghiên cứu lý thuyết kết hợp với cài đặt thử nghiệm trong
môi trường thực tế hạ tâng của cơng ty.
• Phương pháp theo dõi, đánh giá

3


CHƯƠNG 2. TỔNG QUAN VỀ HỆ THỐNG GIÁM SÁT
2.1 Khái niệm hệ thống giám sát
Hệ thống giám sát mạng là một phần của hệ thống mạng thơng qua nó cho
phép giám sát, thu thập thông tin trên các thành phần của hệ thống, phân tích các
thơng tin, dấu hiệu nhằm đánh giá và đưa ra các cảnh báo cho người quản trị hệ
thống. Đối tượng của hệ thống giám sát gồm: các máy trạm; cơ sở dữ liệu, các
ứng dụng, các server, các thiết bị mạng,...
Các bước thực hiện của một hệ thống giám sát mạng bao gồm:
- Thu thập dữ liệu :
Việc thu thập dữ liệu là việc lấy các thơng tin liên quan đến tình trạng hoạt
động của các thiết bị trong hệ thống mạng. Với mỗi thiết bị có những đặc điểm
riêng và có các loại log khác nhau. Log là một thành phần quan trọng của hệ
thống mạng nó lưu lại một cách chính xác mọi hoạt động của hệ thống, tình trạng
hoạt động của các ứng dụng, các thiết bị đã và đang hoạt động trong hệ thống.
Để có thể thu thập được dữ liệu trong hệ thống, ta có thể sử dụng 2
phương pháp :
* The Push Method : Các sự kiện từ các thiết bị, server sẽ được tự động
chuyển về các server giám sát theo thời gian thực hoặc sau mỗi khoảng thời gian
phụ thuộc vào việc cấu hình trên các thiết bị tương ứng. Các server giám sát sẽ
thực hiện việc nghe và nhận các sự kiện khi chúng xảy ra. Ví dụ như: Syslog-ng

* The Pull Method: Các server giám sát tự thu thập từ các sự kiện được
phát sinh và lưu trữ trên chính các thiết bị, server cần giám sát qua các agent
được cài đặt trên thiết bị, server hoặc qua giao thức giám sát mạng. Giao thức
phổ biến để thu thập được các sự kiện là SNMP (Simple Network Management
Protocol – Giao thức hỗ trợ quản lý các thiết bị từ xa)
-

Phân tích dữ liệu :

Khi đã thu thập được những thông tin về hệ thống và các thiết bị thì cơng
việc tiếp theo là phân tích thông tin, cụ thể là việc thực hiện chỉ mục hóa dữ liệu
và phát hiện những điều bất thường, những mối đe dọa của hệ thống. Dựa trên
những thông tin về thông tin log của hệ thống, lưu lượng truy cập, trạng thái truy
cập, định dạng request.
-

Cảnh bảo :

Sau khi đã thực hiện việc phân tích dữ liệu từ các thông tin thu thập được việc
tiếp theo là thực hiện việc đánh giá các dữ liệu đó, dựa vào các ngưỡng người
4


quản trị tự cấu hình để đưa ra được các quyết định các sự kiện đó có ảnh hưởng
như nào đến hệ thống. Khi dữ liệu thu thập và phân tích được chạm đến các
ngưỡng, hệ thống sẽ tự động gửi email, sms cho người quản trị để khắc phục các
sự cố có thể xảy ra.
2.2 Vai trị của hệ thống giám sát mạng
Hệ thống giám sát mạng đóng vai trị quan trọng, khơng thể thiếu trong hạ
tầng cơng nghệ thông tin của các đơn vị, tổ chức. Hệ thống này cho phép thu

thập, chuẩn hóa, lưu trữ và phân tích tồn bộ các sự kiện an tồn mạng được sinh
ra trong hệ thống. Ngoài ra, hệ thống giám sát an toàn mạng phát hiện kịp thời
các các điểm yếu, của các thiết bị, ứng dụng và dịch vụ trong hệ thống, phát hiện
kịp thời sự bùng nổ virus trong hệ thống mạng. Các sự kiện của toàn bộ hệ thống
được theo dõi chặt chẽ giúp sớm phát hiện nhưng lỗi phát sinh giảm thiểu rủi ro
đảm bảo hệ thống hoạt động an toàn ổn định.
Hệ thống giám sát mạng sẽ giúp định hướng trong môi trường mạng phức
tạp, đưa ra các báo cáo và các nhận định để đảm bảo cơng tác giám sát mạng an
tồn hiệu quả. Thơng qua hệ thống giám sát mạng giúp cho người quản trị hệ
thống có thể:
-

Có cái nhìn tồn cảnh các sự kiện đang diễn ra trên hệ thống.

-

Tiết kiệm chi phí tiềm lực bằng cách tìm nguồn dữ liệu dư thừa.

-

Xác định điểm yếu của hệ thống và nút thắt cổ chai.

-

Nhanh chóng xác định được sự kiện lỗi phát sinh, từ đó nhanh chóng có
giải pháp hạn chế ngăn chặn các lỗi lớn xảy ra.

-

Trợ giúp xác định năng xuất của nhân viên nhờ việc không phải monitor

thủ công hệ thống liên tục

2.3 Giao thức giám sát mạng SNMP
SNMP là một giao thức, do đó nó có những quy định riêng mà các thành
phần trong mạng phải tuân theo. Một thiết bị hiểu được và hoạt động tuân theo
giao thức SNMP được gọi là “hỗ trợ SNMP” (SNMP supported) hoặc “tương
thích SNMP” (SNMP compatible). 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 thành phần mạng. Thành phần mạng 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 Trạm Quản lý.
Ngồi ra cịn có khái niệm SNMP agent. SNMP agent là một tiến trình
(process) chạy trên thành phần mạng, có nhiệm vụ cung cấp thơng tin của thành
phần cho trạm, nhờ đó trạm có thể quản lý được thành phần trong mạng.
5


2.3.1 Các phiên bản của SNMP [1]
SNMP có 4 phiên bản: SNMPv1, SNMPv2c, SNMPv2u và SNMPv3. Các
phiên bản này khác nhau một chút ở định dạng bản tin và phương thức hoạt
động. Hiện tại SNMPv1 là phổ biến nhất do có nhiều thiết bị tương thích nhất và
có nhiều phần mềm hỗ trợ nhất. Trong khi đó chỉ có một số thiết bị và phần mềm
hỗ trợ SNMPv3.
SNMP version 1: chuẩn của giao thức SNMP được định nghĩa trong RFC
1157 và là một chuẩn đầy đủ của IETF. Vấn đề bảo mật của SNMPv1 dựa trên
nguyên tắc cộng đồng, không có nhiều password, chuỗi văn bản thuần và cho
phép bất kỳ một ứng dụng nào đó dựa trên SNMP có thể hiểu các chuỗi này để
có thể truy cập vào các thiết bị quản lý. Có 3 tiêu chuẩn trong: read-only, readwrite và trap.
SNMP version 2: phiên bản này dựa trên các chuỗi “community”. Do đó
phiên bản này được gọi là SNMPv2c, được định nghĩa trong RFC 1905, 1906,
1907 và đây chỉ là bản thử nghiệm của IETF. Mặc dù chỉ là thử nghiệm nhưng
nhiều nhà sản xuất đã đưa nó vào thực nghiệm.

SNMP version 3: là phiên bản tiếp theo được IETF đưa ra bản đầy đủ
(phiên bản gần đây của SNMP), đóng vai trị an ninh cao trong quản trị mạng và
đóng vai trị mạnh trong vấn đề thẩm quyền, quản lý kênh truyền riêng giữa các
thực thể. Nó được khuyến nghị làm bản chuẩn, được định nghĩa trong RFC 1905,
RFC 1906, RFC 1907, RFC 2271 RFC 2571, RFC 2572, RFC 2573, RFC 2574
và RFC 2575. Nó hỗ trợ các loại truyền thơng riêng tư và có xác nhận giữa các
thực thể.
2.3.2 Các thành phần trong kiến trúc SNMP [1]
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
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 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 trạm quản lý mạng. Như vậy phẩn tử bao gồm thiết bị, máy
trạm và ứng dụng.
Một trạm quản lý có thể quản lý nhiều phần tử, một phần tử cũng có thể
được quản lý bởi nhiều trạm. Ngồi ra cịn có khái niệm SNMP agent. SNMP
agent là một tiến trình chạy trên phần từ mạng, có nhiệm vụ cung cấp thông tin
của phần tử cho trạm, nhờ đó trạm có thể quản lý được phần tử. Chính xác hơn là
6


ứng dụng chạy trên trạm và agent chạy trên phần tử mới 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ủ quản lý các máy con chạy HĐH Windows thông qua
SNMP thì phải: cài đặt một phần mềm quản lý SNMP trên máy chủ, bật dịch vụ
SNMP trên 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 SNMP trên router.

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 tiến trình đ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).
Từng chữ số trong OID sẽ được giải thích trong phần sau. Một object chỉ có
một OID, chẳng hạn tên của thiết bị là một object. Tuy nhiên nếu một thiết bị lại
có nhiều tên thì làm thế nào để phân biệt? Lúc này người ta dùng thêm 1 chỉ số
gọi là “scalar instance index” (cũng có thể gọi là “sub-id”) đặt ngay sau OID.
OID của các object phổ biến có thể được chuẩn hóa, OID của các object do bạn
tạo ra thì bạn phải tự mơ tả chúng. Để lấy một thơng tin có OID đã chuẩn hóa thì
SNMP application phải gửi một bản tin SNMP có chứa OID của object đó cho
SNMP agent, SNMP agent khi nhận được thì nó phải trả lời bằng thơng tin ứng
với OID đó.
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.
MIB (Management Information Base) 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.
Các OID của các hãng tự thiết kế nằm dưới iso.org.dod.internet.private.
enterprise. Các objectID trong MIB được sắp xếp thứ tự nhưng không phải là liên
7



tục, khi biết một OID thì khơng chắc chắn có thể xác định được OID tiếp theo
trong MIB. 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.
2.3.3 Các phương thức của SNMP [1]
Giao thức SNMPv1 có 5 phương thức hoạt động, tương ứng với 5 loại bản
tin như sau: GetRequest, GetNextRequest, SetRequest, GetResponse và Trap.
Bảng 2.1 Các phương thức của SNMP
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.

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 một

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.
Bản tin GetRequest được manager gửi đến agent để lấy một thông tin nào
đó. Trong GetRequest có chứa OID của object muốn lấy. VD: Muốn lấy thơng
tin tên của Device1 thì manager gửi bản tin GetRequest OID = 1.3.6.1.2.1.1.5
đến Device1, tiến trình SNMP agent trên Device1 sẽ nhận được bản tin và tạo
bản tin trả lời.Trong một bản tin GetRequest có thể chứa nhiều OID, nghĩa là
dùng một GetRequest có thể lấy về cùng lúc nhiều thông tin.
Bản tin GetNextRequest cũng dùng để lấy thơng tin và cũng có chứa OID,
tuy nhiên nó dùng để lấy thơng tin của object nằm kế tiếp object được chỉ ra
8


trong bản tin. Một MIB bao gồm nhiều OID được sắp xếp thứ tự nhưng không
liên tục, nếu biết một OID thì khơng xác định được OID kế tiếp. Do đó ta cần
GetNextRequest để lấy về giá trị của OID kế tiếp. Nếu thực hiện GetNextRequest
liên tục thì ta sẽ lấy được tồn bộ thơng tin của agent.
Bản tin SetRequest được manager gửi cho agent để thiết lập giá trị cho
một object nào đó. Ví dụ:

• Có thể đặt lại tên của một máy tính hay router bằng phần mềm SNMP
manager, bằng cách gửi bản tin SetRequest có OID là 1.3.6.1.2.1.1.5.0
(sysName.0) và có giá trị là tên mới cần đặt.
• Có thể shutdown một port trên switch bằng phần mềm SNMP manager,
bằng cách gửi bản tin có OID là 1.3.6.1.2.1.2.2.1.7 (ifAdminStatus) và có giá trị
là 2 (ifAdminStatus có thể mang 3 giá trị là UP (1), DOWN (2) và TESTING
(3)). Chỉ những object có quyền READ_WRITE mới có thể thay đổi được giá trị
Mỗi khi SNMP agent nhận được các bản tin GetRequest, GetNextRequest
hay SetRequest thì nó sẽ gửi lại bản tin GetResponse để trả lời. Trong bản tin
GetResponse có chứa OID của object được request và giá trị của object đó.
Bản tin Trap được agent tự động gửi cho manager mỗi khi có sự kiện xảy
ra bên trong agent, các sự kiện này không phải là các hoạt động thường xuyên
của agent mà là các sự kiện mang tính biến cố. Ví dụ: Khi có một port down, khi
có một người dùng login không thành công, hoặc khi thiết bị khởi động lại, agent
sẽ gửi trap cho manager.
Tuy nhiên không phải mọi biến cố đều được agent gửi trap, cũng không
phải mọi agent đều gửi trap khi xảy ra cùng một biến cố. Việc agent gửi hay
không gửi trap cho biến cố nào là do hãng sản xuất device/agent quy định.
Phương thức trap là độc lập với các phương thức request/response. SNMP
request/response dùng để quản lý còn SNMP trap dùng để cảnh báo. Nguồn gửi
trap gọi là Trap Sender và nơi nhận trap gọi là Trap Receiver. Một trap sender có
thể được cấu hình để gửi trap đến nhiều trap receiver cùng lúc.
Có 2 loại trap: trap phổ biến (generic trap) và trap đặc thù (specific trap).
Generic trap được quy định trong các chuẩn SNMP, còn specific trap do người
dùng tự định nghĩa (người dùng ở đây là hãng sản xuất SNMP device). Loại trap
là một số nguyên chứa trong bản tin trap, dựa vào đó mà phía nhận trap biết bản
tin trap có nghĩa gì

9



2.3.4 Các cơ chế bảo mật cho SNMP
Một Trạm Quản lý SNMP có thể quản lý/giám sát nhiều thành phần SNMP,
thông qua hoạt động gửi request và nhận trap. Tuy nhiên một thành phần SNMP
có thể được cấu hình để chỉ cho phép các Trạm Quản lý SNMP nào đó được
phép quản lý/giám sát mình. Các cơ chế bảo mật 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, WriteCommunity và Trap-Community.
Khi manager gửi GetRequest, GetNextRequest đến agent thì trong bản tin
gửi đi có chứa Read- Community. Khi agent nhận được bản tin request thì nó sẽ
so sánh Read-community do manager gửi và Read-community mà nó được cài
đặt. Nếu 2 chuỗi này giống nhau, agent sẽ trả lời; nếu 2 chuỗi này khác nhau,
agent sẽ không trả lời. Write-Community được dùng trong bản tin SetRequest.
Agent chỉ chấp nhận thay đổi dữ liệu khi write- community 2 bên giống nhau.
Trap-community nằm trong bản tin trap của trap sender gửi cho trap
receiver. Trap receiver chỉ nhận và lưu trữ bản tin trap chỉ khi trap-community 2
bên giống nhau, tuy nhiên cũng có nhiều trap receiver được cấu hình nhận tất cả
bản tin trap mà khơng quan tâm đến trap-community.
Community string có 3 loại như trên nhưng cùng một loại có thể có nhiều
string khác nhau. Nghĩa là một agent có thể khai báo nhiều read-community,
nhiều write-community.
Trên hầu hết hệ thống, read-community mặc định là “public”, writecommunity mặc định là “private” và trap-community mặc định là “public”.
Community string chỉ là chuỗi ký tự dạng cleartext, do đó hồn tồn có thể bị
nghe lén khi truyền trên mạng. Hơn nữa, các community mặc định thường là
“public” và “private” nên nếu người quản trị khơng thay đổi thì chúng có thể dễ
dàng bị dị ra. Khi community string trong mạng bị lộ, một người dùng bình
thường tại một máy tính nào đó trong mạng có thể quản lý/giám sát tồn bộ các
device có cùng community mà khơng được sự cho phép của người quản trị.

Khi manager có read-community thì nó có thể đọc tồn bộ OID của agent.
Tuy nhiên agent có thể quy định chỉ cho phép đọc một số OID có liên quan nhau,
tức là chỉ đọc được một phần của MIB. Tập con của MIB này gọi là view, trên
agent có thể định nghĩa nhiều view. Ví dụ: agent có thể định nghĩa view
10


interfaceView bao gồm các OID liên quan đến interface, storageView bao gồm
các OID liên quan đến lưu trữ, hay AllView bao gồm tất cả các OID.
Một view phải gắn liền với một community string. Tùy vào community
string nhận được là gì mà agent xử lý trên view tương ứng. Ví dụ: agent định
nghĩa read-community “inf” trên view interfaceView, và “sto” trên storageView;
khi manager gửi request lấy OID ifNumber với community là “inf” thì sẽ được
đáp ứng do ifNumber nằm trong interfaceView; nếu manager request OID
hrStorageSize với community “inf” thì agent sẽ không trả lời do
hrStorageSize không nằm trong interfaceView; nhưng nếu manager request
hrStorageSize với community “sto” thì sẽ được trả lời do hrStorageSize nằm
trong 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 manager gửi không đúng community hoặc khi OID cần lấy lại khơng
nằm trong view cho phép thì agent sẽ khơng trả lời. Tuy nhiên khi community bị
lộ thì một manager nào đó vẫn request được thơng tin. Để ngăn chặn hồn tồn
các SNMP manager khơng được phép, người quản trị có thể dùng đến SNMP
access control list (ACL).
SNMP ACL là một danh sách các địa chỉ IP được phép quản lý/giám sát
agent, nó chỉ áp dụng riêng cho giao thức SNMP và được cài trên agent. Nếu một
manager có IP khơng được phép trong ACL gửi request thì agent sẽ khơng xử lý,
dù request có community string là đúng.
Đa số các thiết bị tương thích SNMP đều cho phép thiết lập SNMP ACL

2.3.5 Cấu trúc bản tin SNMP
SNMP chạy trên nền UDP. Cấu trúc của một bản tin SNMP bao gồm:
version, community và data. Phần Data trong bản tin SNMP gọi là PDU
(Protocol Data Unit).

Hình 2.1: Cấu trúc bản tin SNMP [1]
11


SNMPv1 có 5 phương thức hoạt động tương ứng 5 loại PDU. Tuy nhiên chỉ
có 2 loại định dạng bản tin là PDU và Trap–PDU; trong đó các bản tin Get,
GetNext, Set, GetResponse có cùng định dạng là PDU, cịn bản tin Trap có
định dạng là Trap–PDU.

12


CHƯƠNG 3. XÂY DỰNG GIẢI PHÁP GIÁM SÁT SỬ DỤNG ZABBIX
3.1 Mô tả hiện trạng hạ tầng CNTT của Công ty cổ phần Thương mại và
Dịch vụ Lotteshop Việt Nam
Công ty cổ phần Thương mại và Dịch vụ Lotteshop là công ty hoạt động
trong lĩnh vực thương mại điện tử, sở hữu nhiều website kinh doanh trực tuyến.
Công ty sử dụng giải pháp ảo hóa VMWare để ảo hóa từ server vật lý ra các máy
chủ ảo chạy các dịch vụ : webserver, databases server, email server, Firewall
server, Backup server

Hình 3.1 : Mơ hình hạ tầng CNTT Cơng ty cổ phần Thương mại và dịch vụ
Lotteshop Việt Nam
Hiện trạng hạ tầng CNTT của Công ty cổ phần Thương mại và dịch vụ
Lotteshop Việt Nam là một hạ tầng nhỏ.






Số lượng máy chủ vật lý : 1 máy chủ được đặt tại Datacenter của Trung
tâm Dữ liệu FPT Telecom.
1 đường mạng public 1Gbps để kết nối từ máy chủ vật lý ra bên ngoài
Internet và thuê 10 địa chị IP public để sử dụng gán cho các máy chủ trên
đường kết nối này.
Trên máy chủ vật lý sử dụng công nghệ ảo hóa VMWare VSphere 6.5 để
ảo hóa ra các máy chủ như :
13


o 4 Máy chủ Webserver chạy dịch vụ web Apache và Nginx kết hợp
cùng php
o 2 Máy chủ chạy dịch vụ cơ sở dữ liệu MySQL phục vụ cho các
webserver phía trên
o 1 Máy chủ đóng vài trị tường lửa mềm, là firewall cho mạng nội
bộ phía bên trong.
o 1 Máy chủ Email server phục vụ việc gửi nhận email
o 1 Máy chủ Backup server phục vụ backup code, backup cơ sở dữ
liệu của các webserver
• Webserver, database server hàng ngày xử lý lượng dữ liệu rất lớn và luôn
phải đảm bảo online liên tục 24/7 để phục vụ khách hàng.
Do đặc thù về việc kinh doanh online nên hệ thống website của cơng ty
ln địi hỏi phải độ sẵn sàng cao nhất để phục vụ khách hàng. Các máy chủ ảo
hóa chỉ dùng 1 virtual network duy nhất, khơng chia thành các VLAN nhỏ. Cơng
ty hiện chưa có hệ thống giám sát toàn bộ hạ tầng máy chủ, việc giám sát hiện tại

chủ yếu là thủ công. Người quản trị truy cập từng server kiểm tra định kỳ, hoặc
khi có hiện tượng quá tải ở các website. Việc này có rất nhiều nhược điểm khi
người quản trị khơng có cái nhìn tồn cảnh hệ thống, thụ động trong việc quản lý
các server, tốn nhiều thời gian để quản trị.
Xuất phát từ những nhược điểm này việc cần có hệ thống giám sát tồn bộ
các hạ tầng CNTT của cơng ty sử dụng mã nguồn mở để tiết kiệm chi phí là rất
cần thiết. Hệ thống giám sát tự động giám sát 24/7 đưa ra các cảnh báo, giúp
người quản trị nắm được tình hình tồn bộ hệ thống. Người quản trị tiết kiệm
được thời gian quản trị khi có được hệ thống monitor hỗ trợ nghiệp vụ.
3.2 Lựa chọn giải pháp Zabbix
Hiện nay có rất nhiều cơng cụ giám sát hỗ trợ cho cơng việc của người quản
trị. Có những cơng cụ thương mại trả phí như SolarWinds, Datadog, PRTG,
Atera, Site24x7…Trong đó :
SolarWinds Network Performance Monitor là một cơng cụ giám sát hiệu
suất mạng tồn diện, có thể theo dõi trạng thái của các thiết bị có hố trợ
SNMP.Nó có thể tự động khám phá các thiết bị mạng mới được kết nối với mạng
hiện tạị. Sử dụng bảng điều khiển để theo dõi tính khả dụng và hiệu suất của các
thiết bị mạng được kết nối đến hệ thống giám sát. Bất kỳ thiết bị, ứng dụng hoặc
dịch vụ nào đã được cấu hình giám sát cũng có thể được xem trên bản đồ cấu trúc
mạng nơi người quản trị có thể thấy cơ sở hạ tầng của mình liên kết với nhau như
thế nào. Tính năng NetPath cho phép người quản trị theo dõi chuyển gói tin hop14


by-hop, có thể giúp chẩn đốn nguồn gốc của các sự cố mạng giúp hiệu suất đạt
hiệu quả tốt hơn. Hệ thống cảnh báo tùy chỉnh cho phép đặt điều kiện kích hoạt
cho cảnh báo. Khi các điều kiện cảnh báo thỏa mãn, phần mềm sẽ gửi thông báo
qua email hoặc SMS để cho người quản trị biết rằng một sự kiện đã diễn ra.
Datadog Network Performance Monitoring là dịch vụ giám sát cơ sở hạ
tầng SaaS dựa trên cloud. Vì phần mềm cho dịch vụ này dựa trên cloud, nên
khơng phải lo lắng về việc duy trì máy chủ để chạy hệ thống. Giống như hầu hết

các công cụ giám sát mạng khác, Datadog cũng dựa trên SNMP để monitor các
thiết bị. Datadog cũng có chức năng tự động phát hiện ra thiết bị mới khi thiết bị
kết nối vào hệ thống mạng hiện tại. Một tính năng học máy dựa trên AI cho phép
Datadog dự báo lưu lượng truy cập trong tương lai từ tỷ lệ phần trăm thay đổi lưu
lượng được phát hiện theo thời gian thực. Đây là tính năng rất tốt giúp người
quản trị đưa ra được những số liệu trong tương về việc nâng cấp hệ thống phù
hợp nhất với ngân sách của doanh nghiệp.
PRTG Network Monitor. Cũng sử dụng giao thức SNMP. Người quản trị
có thể chọn một loạt các sensor để theo dõi các vùng khác nhau của hệ thống.
Mỗi sensor giám sát một giá trị riêng trong mạng. Ví dụ, có sensor giám sát băng
thông, sensor thông số phần cứng, sensor SNMP… Để trực quan hóa tốt hơn,
PRTG có bảng điều khiển có thể tùy chỉnh cho phép tạo bản đồ mạng thời gian
thực về cơ sở hạ tầng. Người quản trị có thể tạo bản đồ bằng cách kéo và thả và
sử dụng hơn 300 đối tượng để tạo bản đồ. Hệ thống cảnh báo dựa trên ngưỡng vi
phạm của các thông tin thu thập từ các thiết bị. Cảnh báo có sẵn ở nhiều dạng bao
gồm email, SMS, phần mềm Slack…
Atera là một dịch vụ được phân phối trên cloud. Atera cịn có một ứng
dụng di động cho phép quản trị viên hệ thống kiểm tra trạng thái các thiết bị
mạng, hệ thống được giám sát từ bất cứ đâu. Atera cũng sử dụng giao thức
SNMP để giám sát các thiết bị. Nó cũng cung cấp một cơ chế để khám phá mạng
và khả năng tự động thêm thiết bị mới khi kết nối vào mạng.
Tuy nhiên những phần mềm thương mại này giá thành thường khá cao.
Trong khi đó có những cơng cụ giám sát mã nguồn mở cho phép giám sát rất
hiệu quả như Zabbix, icinga, Nagios, Cacti,…Các cơng cụ này có thể tùy biến
linh hoạt để phục vụ nhu cầu giám sát hệ thống một cách hiệu quả nhất. Để đáp
ứng bài toán giám sát được hạ tầng CNTT với chi phi nhỏ nhất, nhưng vẫn đẩy
đủ các tính năng thì việc chọn giải pháp dùng phần mễm mã nguồn mở là khả thi
và hợp lý.

15



Trong các phần mềm mã nguồn mở thì Zabbix có cộng đồng hỗ trợ rất tốt,
các plugin, template được hỗ trợ miễn phí phục vụ được nhiều mục đích giám sát
các hệ thống, thiết bị, ứng dụng khác nhau. Ngoài những tính năng cảnh báo qua
email, sms, Zabbix cịn hỗ trợ cảnh báo qua các ứng dụng nhắn tin miễn phí OTT
như Telegram thơng qua các API.

Hình 3.2 : Zabbix Monitor [2]
Các tính năng Zabbix hỗ trợ rất đầy đủ so với các đối thủ mạnh khác như
Nagios, Cacti.
Bảng 3.1: So sánh Zabbix, Nagios, Cacti

Name

Zabbix

Nagios

Cacti

Trending Prediction

Yes

No

Yes

Auti Discovvery


Yes

Yes

Yes

Agentless

Yes

Yes

Yes

SNMP

Yes

Yes

Yes

Syslog

Yes

Yes

Yes


Plugins

Yes

Yes

Yes

Triggers/Alers

Yes

Yes

Yes

Webapp

Yes

Yes

Yes

Map

Yes

Yes


Via Plugin

16


3.2.1

Kiến trúc của Zabbix

Kiến trúc Zabbix gồm 4 thành phần cơ bản : Zabbix server, Zabbix agent, Zabbix
proxy, Zabbix web frontend

Hình 3.3 : Kiến trúc Zabbix [3]

Trong đó :
Zabbix server : là thành phần trung tâm của Zabbix. Zabbix Server kết
nối với tất cả các agent nằm trên các thiết bị máy chủ, thiết bị mạng. Agent sẽ gửi
toàn bộ thông tin cho Zabbix server theo thời gian định kỳ. Zabbix Server sẽ lưu
trữ tất cả cấu hình và dữ liệu thống kê.
Zabbix agent : Agent là thành phần được cài đặt trên các server client cần
giám sát, các thiết bị mạng cần giám sát. Agent sẽ thu thập thông tin hoạt động từ
hệ thống mà nó đang chạy và gửi báo cáo dữ liệu này đến Zabbix server để xử lý.
Trong trường hợp có lỗi xảy ra (ổ cứng gần hết dung lượng hoặc một tiến trình
webservices bị treo…),Zabbix agent gửi thông tin lên Zabbix server và Zabbix
server sẽ gửi cảnh báo cho người quản trị về các sự cố này.
Zabbix proxy : Proxy là một tính năng nâng cao của Zabbix. Proxy sẽ thu
nhận dữ liệu, lưu trong bộ nhớ đệm và được chuyển đến Zabbix server. Zabbix
Proxy là một giải pháp lý tưởng cho một giám sát tập trung của địa điểm từ xa,
chi nhánh, mạng lưới khơng có người quản lý mạng, máy chủ. Zabbix proxy

cũng có thể được sử dụng để phân phối tải của một Zabbix Server. Zabbix proxy
sẽ giúp giảm tải cho Zabbix Server nhờ vào việc thu thập dữ liệu và chuyển về
cho zabbix server.
Zabbix Proxy có thể được dùng để:
-

Giám sát các host từ những nơi khác.
17


×