Đây là chức năng thu thập dữ liệu từ các hệ thống, máy chủ; tính toán vàtổnghợpcácthôngsố;giámsátwebsitengườidùngcuối,trêncácphươngpháp:Multi-platformZabbixAgent;SNMPvàIPMIAgent Effortl
Trang 1BÁO CÁO BÀI TẬP LỚN MÔNMẠNGSỐVÀTRUYỀNDỮLIỆU
Đề tài
TìmhiểucôngcụZabbix,SNMPvàmôphỏngquảntrịhệthốngm
ạng Giảngviênhướngdẫn:TS.TrầnHoàngHải
Trang 2Mụclục
Trang
II Địnhnghĩa
A Zabbix
B SNMP
3 3 3
B.H o ạ t độngcủaZabbix 6
B.B ả o mậtchothiếtbịSNMP 13
B.C ấ u hìnhRoutervàRIPC.
Th iế t lậpchoCloud
D.CàiđặtSNMP
15 18 19
Trang 3I Giớithiệu
Đểgiúpcácdoanhnghiệpquảnlýthôngtinmạngvàbảomậtdữliệumộtcách dễ dàng, hiệu quả, rất nhiều phần mềm đã được phát triển Tuy nhiên, đểtối ưu web, bạn chỉ nên sử dụng một giải pháp
toàn diện nhất thay vì sử dụngnhiều công cụ.Zabbixchínhlà phần mềm hoànhảo
được các doanh nghiệptrênthếgiớisửdụng
II Địnhnghĩa
A Zabbix
Zabbix là một phần mềm mã nguồn mở được công bố lần đầu 2001, cóchức năng giám sát các dịch vụ mạng vàtài nguyên công nghệ khác như máychủ, phần cứng, một cách nhanh chóng, hiệu quả Kết quả phân tích, thống
kêsốliệuđượcthểhiệnmộtcáchtrựcquan;cácthôngbáovềvấnđềtiềmẩnđượccậpnhậtchínhx ácvàkịpthời
Tính đến nay, Zabbix là nền tảng được nhiều công ty có quy mô lớn
sửdụngkhinócóthểtheodõivàthuthậpchỉsốthựctừhàngtriệuservertrêntoànthếgiới
Zabbix cung cấp cho người dùng cả phiên bản tính phí và trả phí, đây
làmộtchiếnlượcgiúphệthốngtrởlênthânthiệnvớimọiphânkhúckháchhàng.Zabbix thực hiện giám sát các vấn đề như nhiệt độ máy chủ, công tắc bộ địnhtuyến, thôngquaSNMP
B SNMP
SNMPlàviếttắtcủatừSimpleNetworkMonitoringProtocol(tiếngViệtgọi là Giao thức giám sát mạng đơn giản) Nó là một giao thức để truyền thôngtin quản lý trong mạng, đặc biệt là sử dụng trong mạng LAN, tùy thuộc vàophiênbảnđãchọn
Trang 4Tínhhữuíchcủanótrongquảntrịmạngđếntừthựctếlànóchophépthuthập thông tin về các thiết
bị kết nối mạng theo cách chuẩn hóa trên nhiều loạiphầncứngvàphầnmềm
HầunhưkhôngcóquảntrịviênmạngnàotừbỏSNMP.Thayvàođó,hầuhết họ đều tin tưởng vào
nó vì gần như tất cả các loại thiết bị từ nhiều nhà sảnxuất khác nhau đều hỗ trợ SNMP, giúp họ giám sát toàn diện nhờ công nghệSNMP
CácphiênbảncủagiaothứcSNMP:
● Hiệntại,cóba(03)phiênbảnchínhcủaSNMP.Phiênbảnđầutiênđượcphát triển khá nhanh vào cuối những năm 80 khi quản trị mạng thiếu cáccông cụ quản trị mạng phù hợp không phụ thuộc vào các nhà sản xuấtphầncứng
● SNMPv1đượcđịnhnghĩavàonăm1988vàdựatrênSGMP(RFC1028).Sau đó, nó đã được chấp nhận và sử dụng rộng rãi Nó vẫn được sử dụngcho đến ngày nay, gần 30 năm sau, đây được coi như gần là vĩnh cửutrong CNTT SNMP v1 cung cấp các chức năng cơ bản để thăm dò dữliệu và tương đối dễ sử dụng Nó không tạo ra nhiều chi phí vì nó khôngbao gồm bất kỳ thuật toán mã hóa nào
Vì vậy, vì lý do bảo mật, chỉ
sửdụngSNMPv1trongmạngLAN.Hạnchếlớnnhấtcủanólàkiếntrúcbộđếm 32 bit (32-bit Counter Architecture), không đủ cho các mạnggigabytengàynayhoặclớnhơn
● NếungườidùngmuốnquảnlýmạngtrongmạngWAN,giaothứcCMISE
/CMIPlàgiaothứcphùhợpđểsửdụng
Trang 5● SNMP v2 hỗ trợ bộ đếm 64 bit nhưng vẫn gửi dữ liệu quan trọng
dướidạng văn bản (Text), vì vậy nó không thực sự tăng cường bảo mật VànếungườidùngbắtgặpSNMPv2,đóhầuhếtlà"SNMPv2c"màcácnhàsản xuất hoặc nhà mạng đang nói đến, với chữ "c" là viết tắt của từ "cộngđồng - Community" Hai phiên bản SNMP v2 khác tồn tại, SNMP v2p vàSNMP v2u, nhưng chúng chỉ được triển khai trong một số trường hợphiếmhoi
III Zabbix
A CácthànhphầncơbảncủaZabbix
● ServerZabbix:Chịutráchnghiệmkiểmtrahoạtđộngdịchvụtừxa,thuthập thông tin,
lưu trữ dữ liệu, làm nguồn để cài đặt và phát triển cácthaotácgiámsáthệthống,đưarabáocáo
● ZabbixProxy:làmộtservercóvaitròquảnlýcáclớpmạngvàhệthốngtừ xa Bằng cách
thu thập các thông tin thiết bị mạng rồi chuyển tiếp chomáychủchínhcủaZabbix
● Giao diện Web:được phát triển trên nền tảng mã nguồn PHP, giao
diệnmetro.Theonhưnhậnđịnhcủangườisửdụng,giaodiệncủaZabbixtinhtế,dễs ửdụng,bắtmắt,cácsốliệuđượcsắpxếpmộtcáchtrậttự,dễchịuvớingườixem
● Zabbix Agent:chương trình để cài đặt lêncác máy chủ hoặc thiết bị
phíaclient Qua đó, hệ thống sẽ lấy các thông tin cần thiết từ máy chủ kháchhàng qua kết nối của máy chủ chính Zabbix, nhằm kiểm tra các tình
trạnghệthốnghoặctheonhucầuquảntrịviên
Trang 6B HoạtđộngcủaZabbix
Thựchiệnchứcnănggiámsáttoàndiện
● Giám sát hệ thống:Là việc theo dõi các số liệu về dung lượng, tốc độcủa
hạ tầng như CPU, Ram, ổ cứng, nhằm đảm bảo tài nguyên của bạnluôn
đủ để sử dụng Tránh trường hợp gây mất ổn định, hoặc khởi độnglại hệ thống Như hosting chạy trên hệ điều hành windows chỉ nên
sửdụngđếngiớihạntàinguyên80%đểđảmbảomọihoạtđộngdiễnrabìnhthường
● Giámsátmạng:thườngsửdụngvớicáccôngtysửdụnggiảiphápmạngđiệntoánđ
ámmây
● Giám sát bảo mật:Bao gồm tường lửa, phần mềm chống DDOS,
mậtkhẩu, sao lưu, phục hồi và các hệ thống bảo mật được các nhà cung cấpcàiđặtsẵntrêncácgiảiphápmạng.Báocáoquátrìnhhoạtđộngcủacáccông cụ này, sự ghé thăm của mã độc, những đường link chứa nhiều mãđộctruycậpvàotrang,
● Giámsátweb:chứcnăngnàycóthểđượcpháttriểncaohơnvớinhucầukiểmsoátcủ
angườidùng.Nóđưaracácsốliệuvềthờigiantảitrang,tốcđộload,thờigianphảnh ồi,
Trang 7● Theo dõi nhật ký:là quá trình thu thập, lưu trữ, truy vấn dữ liệu Bạn
cóthể theo dõi Nginx thông qua nhật ký 500x, lỗi PHP, Ngoài ra, bạn
cóthểpháttriểnchứcnăngnàybằngcáchsửdụngmãnguồnmởELKstackđể đạt được logstash, ,elasticsearch (lưu trữ + tìm kiếm), kibana (hiểnthị)
Phântíchlưulượng
Là công việc đếm ip, pv và uv Bạn có thể sử dụng các công cụ như
awksedxxx,cáccôngcụcủaGoogleđểpháttriểnmãnhúng,hoặcpiwwikiđểphântíchlưulượn gtruycậpliênquan
Côngviệcnàygiúpngườisửdụngtheodõiđượchoạtđộngcủatrangweb, số lượng traffic, chất lượng của những lượt ghé thăm, qua đó đánh giáđượchiệuquảcủachiếnlượcmarketingvànhữngvấnđềcầnthayđổi
C Chứcnăng
Visualization
Đâylàgiaodiệncungcấpchobạncáccáchtrìnhbàywebtổngquandựtrênmôitrườngint ernetvàsảnphẩmcủabạn,baogồm:
● W i d g e t - b a s e d dashboards
● G r a p h s
● N e t w o r k maps
● S l i d e s h o w s
● D r i l l - d o w n reports
Trang 8Pháthiệnvấnđềtrêncácchỉsố,vớicácưuđiểmnhư:
● Xácđịnhlỗinhanhvàlinhhoạt
● chiadanhmụccácvấnđềđãvàchưagiảiquyết
● Tìmkiếmnguyênnhân
● Dựđoánxuhướng
NotificationandRemediation
Chức năng thông báo, khởi động khi phát hiện vấn đề và gửi thông báođếncácthiếtbịđãđượccàiđặttừtrước.Ngườisửdụngcóthểcàiđặtmứcđộthôngbáo,thờig ianlặplại
SecurityandAuthentication
Bảovệdữliệucủabạnởnhiềucấpđộ,đảmbảoanninhdữliệutốiđa,baogồm:
● MãhóamạnhmẽtấtcảcácthôngtincótrênZ a b b i x
● Sử dụng các phươngpháp xác thực người dùng : Mở LDAP,
ActiveDirector
● MãZabbixđượcmởđểkiểmtrabảomật
Trang 9Đây là chức năng thu thập dữ liệu từ các hệ thống, máy chủ; tính toán
vàtổnghợpcácthôngsố;giámsátwebsitengườidùngcuối,trêncácphươngpháp:Multi-platformZabbixAgent;SNMPvàIPMIAgent
EffortlessDeployment
Cung cấp các mẫu out of the box, cho phép bạn tạo mẫu, sử dụng hàngtrăm mẫu templates được phát triển bằng cộng đồng mở, giám sát hàng
nghìnthiếtbịbằngcáchsửdụngcácmẫucấuhìnhtươngtự;tiếtkiệmthờigianthiếtlậpchongười dùngmộtcáchlinhđộng,hiệuquả
Auto-Discovery
Đượcbiếtđếnlàmộtchứcnăngtựđộngthêmcácthaotáccơbảnnhưthayđổi/thêm/ xóa.Vớicácchứcnăngphâncấp:
Trang 10● Networkdiscovery:quétcácthôngsốtrêninternetnhưtrạngtháiIP,thờigian hoạt động
hoặc không hoạt động, một cách định kỳ theo lập trìnhcủangườisửdụng
●
Low-leveldiscovery:tựđộngtạomục,trườngvàbiểuđồchocácphầnkhácnhautrênh
ệthống
●
Auto-registrationoftheactiveagents:thựchiệnchứcnăngghinhậnvàtheodõicácage
ntđanghoạtđộngtrênphươngthứctựđộng
APiZabbix
Đâylàchứcnăngquantrọngnhất,chophépZabbixcóthểthuthậpthôngtin từ nhiều thiết bịbằng cách tích hợp hệ thống với bất kỳ phần nào trong môitrường công nghệ thông tin Với ưu điểm là có sẵn hơn 200 phương pháp
khácnhauđểtựđộngquảnlýZabbixquaAPI
Ngoàira,chứcnăngnàycòngiúpZabbixtíchhợpvớiphầnmềmcủabênthứ ba, thực hiện chức năng Configuration Management và ticketing
Systemsmộtcáchdễdàng;truyxuấtvàquảnlýcấuhìnhvàdữliệulịchsử
D Ưuvànhượcđiểm
Ưuđiểm
● Đâylàmộtcôngcụmãnguồnmở,dễpháttriểnvàmởrộngtheoýngườidùng.Chiphí đầutưbanđầuthấp
● Thựchiệnchứcnănggiámsáttoàndiệntrêncácthiếtbịphầncứngvàdịchvụmạn g
● HỗtrợtốtcácmáychủđặttrênhệđiềuhànhLinux
● Giaodiệnthânthiệnvàđẹpmắt
● Phânquyềnuserlinhđộngvàdễthựchiện
● Thôngbáocácsựcốnhanhchóngquaemailhoặcapp
● Cácchứcnăngtheodõithốngkêđượcthựchiệnchủđộng,dễthiếtlậpvàsửađổi
● Sởhữutàinguyêncôngcụlớnvớinhiềupluginhỗtrợchocácdịchvụhệthốngkhácnh au
● Cótínhnăngchứngthựcngườidùng
● Kếtquảđượctrảvềdướidạngbiểuđồtrựcquan,dễphântíchvàđánhgiá
Nhượcđiểm
● Zabbixkhônghỗtrợgiaodiệnwebmobile
● Thiếtkếtemplate/alertingrulecủahệthốngđượcngườidùngđánhgiálàkhông mấy thân thiện vì đôi khi nó yêu cầu cao về kiến thức code củangườidùng
Trang 11● SẽgặptìnhtrạngmấtổnđịnhvàcácvấnđềhiệusuấtvềPHPvàDatabasekhis
ửdụnghệthốngmạnglớnhơn1000+node
IV SNMP
A HoạtđộngcủaSNMP
Một mạng thường có ít nhất một máy tính hoặc máy chủ chạy phần
mềmgiámsát.Nólàchủthểquảnlý“ManagingEntity”.Mộtmạngcũngcóthểsẽcómột vài, hoặc nhiều, hoặc thậm chí thực sự nhiều, các thiết bị khác: thiết bịchuyển mạch (Switch), bộ định tuyến (Router), máy trạm (Client), giá đỡ máychủ (Server rack), máy in (Printer), máy pha cà phê (Coffee machine) hoặc bấtcứ thứ gì khác cần được giám sát Chúng là các thiết bị được quản lý “Manageddevices”
TinnhắnSNMPđượcgửivànhậngiữanhữngTrìnhquảnlý“Managers”và các tác nhân “Agents” Thông thường, trình quản lý SNMP Manager
trongmạngđượccàiđặttrênthựcthểquảnlývàcáctácnhânSNMPđượccàiđặttrênthiếtbịđược quảnlý
Về cơ bản, việc truyền các tin nhắn SNMP có thể được so sánh với giaotiếp thông thường giữa máy khách và máy chủ, cung cấp cả công nghệ kéo vàđẩy (Pull and Push
Technologies).Công nghệ kéo (tiếng Anh có thể viết là“Pull” hoặc “Poll”
Technologies) là loại giao tiếp phổ biến nhất trong đó
ứngdụngkhách,chẳnghạnnhưphầnmềmquảnlýmạngtrênthựcthểquảnlý,gửiyêucầuthuthậ pphảnhồitừmáychủhoặcthiếtbịđượcquảnlý.Đốitáccủa
Trang 12nó,côngnghệđẩy“PushTechnology”,chophépthiếtbịđượcquảnlý“nói”vàgửitinnhắnSNM Pkhicósựkiện
Vídụ,tronggiaothứcSNMP,yêucầuGETtừtrìnhquảnlýSNMP(máykhách) tuân theo môhình kéo, trong khi bẫy SNMP Trap được "đẩy" bởi tácnhân SNMPAgent (máy chủ) mà không có bất kỳ yêucầunàotrướcđó
CácloạitinnhắnSNMP:CónhiềuloạithôngbáoSNMPkhácnhaucóthểđượcsửdụng đểthiếtlậpgiámsátmạngquaSNMP:
● GetRequest-ĐâylàloạitinnhắnSNMPphổbiếnnhấtmàtrìnhquảnlýSNMP gửi đi
để yêu cầu dữ liệu Thiết bị mục tiêu sẽ trả về giá trị
đượcyêucầucùngvớitinnhắnphảnhồi“Response”
● GetNextRequest- Trình quản lý SNMP có thể gửi loại tin nhắn này
đểkhám phá thông tin nào có sẵn từ thiết bị Bằng cách bắt đầu từ OID 0,trình quản lý có thể tiếp tục gửi yêu cầu cho dữ liệu có sẵn tiếp theo chođếnkhikhôngcòndữliệu“tiếptheo”.Bằngcáchnày,ngườidùngcóthểkhám phá tất cả dữ liệu có sẵn trên một thiết bị nhất định ngay cả khi
họcóthểkhôngcóbấtkỳkiếnthứcnàovềhệthốnghoặcthiếtbịphảnhồi
● GetBulkRequest- Được thêm vào SNMP Phiên bản 2, đây là phiên
bảnmới hơn, được tối ưu hóa của yêu cầu GetNextRequest Phản hồi
đượctrưngcầusẽchứanhiềudữliệutheoyêucầuchophép.Vềcơbản,đâylàmột cách
để thực hiện một số GetNextRequests cùng một lúc, cho
phépngườidùngtạodanhsáchtấtcảdữliệuvàthôngsốcósẵn
● SetRequest - Đây là lệnh do trình quản lý khởi xướng để đặt “Set”
hoặcthayđổi“Change”giátrịcủamộtthamsốthôngquaSNMPtrêntácnhânthiết bị hoặc hệ thống Loại tin nhắn này có thể được sử dụng để quản lýhoặc cập nhật cài đặt cấu hình hoặc các thông số khác Nhưng hãy cẩnthận! Một SetRequest không chính xác có thể làm hỏng hệ thống và thiếtlậpmạngnghiêmtrọng
● Response- Phản hồi là tin nhắn mà tác nhân thiết bị gửi khi có Yêu
cầu“Request” từ Trình quản lý Khi gửi phản hồi đối với yêu cầu
loạiGetRequest,góitinchứadữliệuhoặcgiátrịđượcyêucầusẽđượcgửiđi.Trong trường hợp SetRequest, gói tin sẽ phản hồi với giá trị mới đượcthiết lập như một xác nhận rằng SetRequest đã được hoàn thành thànhcông
● Trap(v2)-Mộtbẫy“trap”đượcgửi(“pushout”)bởitácnhânSNMPmàkhông cần
trình quản lý yêu cầu Thay vào đó, bẫy “trap” được gửi theocác điều kiện xác định, chẳng hạn như trong trường hợp có lỗi hoặc
khivượtquangưỡngđặttrước.Nếungườidùngmuốnhưởnglợitừcácbẫy
Trang 13“trap” để giám sát, đây là một ý tưởng tuyệt vời về giám sát chủ
động,trướctiênhọcóthểphảiđịnhcấuhìnhcácbẫy“trap”vớisựtrợgiúpcủatrìnhqu ảnlýSNMP
● InformRequest-LoạitinnhắnnàyđãđượcthêmvàoSNMPv2đểcungcấp cho trình
quản lý khả năng xác nhận rằng nó đã nhận được tin nhắnbẫy “trap” của tác nhân Một số tác nhân “Agents” được cấu hình để
tiếptụcgửibẫy“trap”chođếnkhinhậnđượcthôngbáo
● Report- SNMP v3 là cần thiết để sử dụng chức năng tin nhắn Báo
cáo“Report” Chúng cho phép Trình quản lý SNMP xác định loại sự cố đãđược phát hiện bởi tác nhân SNMP Agent từ xa Dựa trênlỗi được pháthiện, SNMP engine có thể cố gắng gửi một tin nhắn SNMP đã được sửa“Corrected SNMP Message” Nếu không thể, nó có thể chuyển một dấuhiệuchỉbáolỗichoứngdụngmàyêucầuSNMPkhôngthànhcôngđượcgửiđi [RFC3412]
CáchthứctruyềntảitinnhắnSNMP:
● GiaothứcQuảnlýMạngĐơngiảnSNMPlàmộtphầncủabộgiaothứcInternet
Protocol Suit như một giao thức lớp ứng dụng “ApplicationLayer”(lớp7)củamôhìnhOSI
● SNMP sử dụng Giao thức dữ liệu người dùng UDP (UDP -
UserDatagramProtocol)đểtruyềncáctinnhắnthôngđiệpcủamình.Điềucầnthiết là các gói tin UDP packet có thể chuyển từ tác nhân “Agent” đếntrình quản lý “Manager” để giám sát thành công Điều này thường hoạtđộng theo mặc định trên mạng cục
bộ nhưng cần có cấu hình bộ địnhtuyến bổ sung để cho phép các gói tin như vậy truyền qua các mạng rộnghơn
● Các tác nhân SNMP Agent nhận các yêu cầu UDP Requesttrên cổng port161 Các yêu cầu được gửi từ trình quản lý SNMP có thể được gửi từ
bấtkỳcổngnào.Thôngthường,nólà161.CáctácnhânAgentgửibẫy“trap”qua cổng
162 Trình quản lý SNMP cũng nhận được bẫy “trap” trên cổng162
B BảomậtchothiếtbịSNMP
Được định nghĩa vào năm 2002, SNMP v3 bao gồm các ưu điểm củaSNMP v2c và bổ sung các giải pháp bảo mật như tài khoản người dùng (UserAccounts), xác thực (Authentication) và mã hóa (Encryption) tùy chọn các
góidữliệu.ĐiềunàytăngcườngbảomậtvàlàmchoSNMPv3trởthànhphiênbảnSNMP được đề xuất khi nói đến bảo mật Tuy nhiên, nó cũng khiến việc
cấuhìnhtrởnênkhókhănhơn,cụthểlàquảnlýngườidùng.Dođó,cầnnhiềusức
Trang 14mạnhxửlýhơn,đặcbiệtlàvớicáckhoảngthờigiangiámsátngắntạoramộtsốlượnglớncácbả ntinSNMP
SNMPv3cóbacấpđộbảomậtkhácnhau:
● NoAuthNoPriv- Viết tắt của từ “No Authentication, No Privacy”,
nghĩalà “Không xác thực, Không bảo mật” Không cần xác thực và tin nhắnkhông được mã hóa Vì những lý do rõ ràng, cấp độ bảo mật này chỉ
nênđượcsửdụngtrongcácmạngđóng,bảomật
● AuthNoPriv- Viết tắt của từ “Authentication, No Privacy”, nghĩa
là“Xácthực,Khôngbảomật”.Tinnhắngửiđiphảiđượcxácthựcđểđượcthực hiện; tuy nhiên, chúng không được mã hóa trong quá trình truyền.Về mặt lý thuyết, một tác nhân độc hại vẫn có thể chặn dữ liệu được gửigiữa tác nhân và người quản lý trong quá trình truyền được
ủy quyềnnhưng không thể đưa ra các yêu cầu Nhận (GET request) hoặc Đặt (SETrequest)bổsung
● AuthPriv- Viết tắt của từ “Authentication and Privacy”, nghĩa là
“XácthựcvàBảomật”.ĐâylàcáchtriểnkhaiSNMPv3antoànnhất.TinnhắnSNM
P phải được xác thực và tất cả dữ liệu được mã hóa trong quá trìnhtruyền Bằng cách này, tác nhân độc hại bị ngăn không cho gửi yêu cầuNhận (GET request) hoặc Đặt (SET request) của riêng họ và không
choxemdữliệuđượctạobởicácyêucầuhợppháp
V MôphỏngSNMPtrênGNS3
A Sơđồmạng