Ngày nay, công nghệ thông tin của Việt Nam đang ngày càng phát triển mạnh mẽ. Ở các cơ quan nhà nước hay các tổ chức doanh nghiệp, công nghệ thông tin ngày càng được chú trọng và quan tâm nhiều hơn. Song song với phát triển hệ thống thông tin là phát triển và mở rộng hạ tầng công nghệ thông tin. Với việc quản trị một hệ thống hạ tầng công nghệ thông tin như vậy, yêu cầu phải có những hệ thống hỗ trợ việc giám sát, theo dõi mạng. Hệ thống này giúp hạn chế tối đa việc gián đoạn trong quá trình hoạt động và đảm bảo việc khai thác tài nguyên có hiệu quả, an toàn, tin cậy cho các dịch vụ cungcấp. Được xây dựngdựa trên “người tiền nhiệm” Nagios, Icinga giữ lại những tính năng hiện có và phát triển thêm những tính năng mới để phục vụ ngày càng tốt hơn, hỗ trợ giám sát các hệ thống mạng.Việc triển khai hệ thống dựa trên mô hình thực sự là điều rất khó vì lý do bảo mật của hệ thống. Thay vào đó, đề tài sẽ triển khai một mô hìnhthử nghiệmsử dụng môi trưởng ảo hóa. Nội dung báo cáo nhóm gồm các phần chính: Chương 1. Nghiên cứu tổng quan giám sát mạng Chương 2. Nghiên cứu phần mềm Icinga Chương 3. Triển khai thử nghiệm phần mềm Icinga
Trang 1TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO THỰC TẬP TỐT NGHIỆP
Tên đề tài:
Nghiên cứu, phát triển xây dựng hệ thống giám sát mạng
bằng phần mềm mã nguồn mở ICINGA
Đơn vị thực tập : Viện Công nghệ Thông tin
Sinh Viên Thực Hiện : Nguyễn Xuân Đức
Trang 2KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO THỰC TẬP TỐT NGHIỆP
Tên đề tài:
Nghiên cứu, phát triển xây dựng hệ thống giám sát mạng
bằng phần mềm mã nguồn mở ICINGA
Đơn vị thực tập : Viện Công nghệ Thông tin
Sinh Viên Thực Hiện : Nguyễn Xuân Đức
Trang 3Để hoàn thành chuyên đề báo cáo thực tập này trước hết em xin gửi đến quýthầy,cô giáo trong khoa Công nghệ thông tin trường Đại học Tài nguyên và Môitrường Hà Nội, lời cảm ơn chân thành.
Đặc biệt, em xin gởi đến TS Nguyễn Như Sơn người đã tận tình hướng dẫn,giúp đỡ em hoàn thành chuyên đề báo cáo thực tập này lời cảm ơn sâu sắc nhất
Em xin chân thành cảm ơn Ban Lãnh Đạo, các phòng ban của viện Côngnghệ thông tin ,đã tạo điều kiện thuận lợi cho em được tìm hiểu thực tiễn trong suốtquá trình thực tập tại Viện
Cuối cùng em xin cảm ơn các cán bộ phòng Phần mềm tích hợp của việnCông nghệ thông tin đã giúp đỡ, cung cấp những số liệu thực tế để em hoàn thànhtốt chuyên đề thực tập tốt nghiệp này
Đồng thời nhà trường đã tạo cho em có cơ hội được thưc tập nơi mà em yêuthích, cho em bước ra đời sống thực tế để áp dụng những kiến thức mà các thầy côgiáo đã giảng dạy.Qua công việc thực tập này em nhận ra nhiều điều mới mẻ và bổích trong việc kinh doanh để giúp ích cho công việc sau này của bản thân
Vì kiến thức bản thân còn hạn chế, trong quá trình thực tập, hoàn thiệnchuyên đề này em không tránh khỏi những sai sót, kính mong nhận được những ýkiến đóng góp từ thầy/cô
Em xin chân thành cảm ơn!
Hà Nội, ngày 1 tháng 3 năm 2017
Sinh viên thực hiện
Trang 4Giới thiệu chung về cơ sở thực tập
Trụ sở: Nhà A3 - Số 18 Hoàng Quốc Việt, Cầu Giấy, Hà Nội
Quá trình hình thành, phát triển, cơ cấu tổ chức của cơ quan, đơn vi
Viện Công nghệ thông tin (CNTT) là Viện nghiên cứu chuyên ngành củaViện Hàn lâm Khoa học và Công nghệ Việt Nam Viện được thành lập từ 1976 theoQuyết định số 246/CP ngày 27/12/1976 của Thủ tướng chính phủ với tên Viện Khoahọc Tính toán và Điều khiển
Năm 1993, Viện đổi tên thành Viện CNTT Hiện nay Viện có hơn 200 cán bộtrong biên chế và cán bộ hợp đồng dài hạn, trong đó có nhiều cán bộ khoa học trình
độ cao Viện CNTT là một trong những đơn vị đi đầu của cả Nước về công tácnghiên cứu, đào tạo sau đại học về lĩnh vực CNTT Từ 1978 Viện được giao nhiệm
vụ đào trình độ tiến sĩ theo Quyết định số 515-TTg ngày 03 tháng 11 năm 1978(Viện là cơ sở đào tạo trình độ tiến sĩ, không tham gia đào tạo trình độ thạc sĩ) Chođến nay Viện đã đào tạo được hàng chục tiến sĩ, trong đó phần lớn đang là cán bộchủ chốt, giảng viên của các trường đại học trong cả nước
Chức năng, nhiệm vụ
• Nghiên cứu các vấn đề cơ bản của tin học, cơ sở toán học và kỹ thuật của công nghệthông tin (CNTT), ứng dụng CNTT trong các hệ thống kinh tế - xã hội và trong tựđộng hóa sản xuất
• Thiết kế, chế tạo các sản phẩm của CNTT, đặc biệt là các sản phẩm phần mềm
• Triển khai ứng dụng CNTT trong sản xuất đời sống, chuyển giao công nghệ tronglĩnh vực CNTT, tư vấn kỹ thuật cho việc thực hiện một số dự án nhà nước về ứngdụng CNTT trong quản lý, phát triển kinh tế và sản xuất
Trang 5• Tư vấn kỹ thuật.
• Đào tạo cán bộ nghiên cứu khoa học - công nghệ về CNTT
• Tổ chức hợp tác quốc tế trong lĩnh vực CNTT
• Quy trình công nghệ của cơ quan, đơn vị
• Máy móc, trang thiết bị, dây chuyền công nghệ,… tại cơ quan đơn vị,
• Hiện nay Viện CNTT có 17 Phòng chuyên môn và Phòng thí nghiệm trọng điểmQuốc gia về Công nghệ mạng và Đa phương tiện
• Các công trình, dự án,… đã thực hiện tại cơ quan đơn vị
- VnDOCR – phần mềm nhận dạng chữ Việt in
- MarkRead – phần mềm nhập tự động phiếu điều tra
- VnOnline – phần mềm nhận dạng chữ viết tay trực tuyến cho Tablet PC
- VnVoice – hệ thống tổng hợp tiếng Việt
- Các hệ thống đo và điều khiển từ xa ứng dụng trong công nghiệp
- Dịch vụ tạo các chip đặc chủng cho các sản phẩm đo lường và điều khiển
- PopMap – Hệ thông tin địa lý trợ giúp quyết định trong các hoạt động dân số
- Ứng dụng dịch vụ hỗ trợ đối tượng nộp thuế trên mạng máy tính
Trang 6MỤC LỤC
Trang 7DANH MỤC HÌNH
Trang 8MỞ ĐẦU
Ngày nay, công nghệ thông tin của Việt Nam đang ngày càng phát triểnmạnh mẽ Ở các cơ quan nhà nước hay các tổ chức doanh nghiệp, công nghệ thôngtin ngày càng được chú trọng và quan tâm nhiều hơn Song song với phát triển hệthống thông tin là phát triển và mở rộng hạ tầng công nghệ thông tin Với việc quảntrị một hệ thống hạ tầng công nghệ thông tin như vậy, yêu cầu phải có những hệthống hỗ trợ việc giám sát, theo dõi mạng Hệ thống này giúp hạn chế tối đa việcgián đoạn trong quá trình hoạt động và đảm bảo việc khai thác tài nguyên có hiệuquả, an toàn, tin cậy cho các dịch vụ cungcấp
Được xây dựngdựa trên “người tiền nhiệm” Nagios, Icinga giữ lại những tínhnăng hiện có và phát triển thêm những tính năng mới để phục vụ ngày càng tốt hơn,
hỗ trợ giám sát các hệ thống mạng.Việc triển khai hệ thống dựa trên mô hình thực
sự là điều rất khó vì lý do bảo mật của hệ thống Thay vào đó, đề tài sẽ triển khaimột mô hìnhthử nghiệmsử dụng môi trưởng ảo hóa
Nội dung báo cáo nhóm gồm các phần chính:
Chương 1 Nghiên cứu tổng quan giám sát mạng
Chương 2 Nghiên cứu phần mềm Icinga
Chương 3 Triển khai thử nghiệm phần mềm Icinga
Trang 9CHƯƠNG 1: NGHIÊN CỨUTỔNG QUAN GIÁM SÁT MẠNG
1.1.1 Mô hình mạngWorkgroup
Mô hình mạng Workgroup là một nhóm máy tính mạng cùng chia sẻ tàinguyên như tệp dữ liệu, máy in.Nó là một nhóm lôgíc của các máy tính mà tất cảchúng có cùng tên nhóm Có thể có nhiều nhóm làm việc khác nhau cùng kết nốitrên một mạng cục bộ (LAN)
Ưu điểm
Không yêu cầu máy tính chạy trên hệ điều hành Windows Server để tậptrung hóa thông tin bảo mật; Workgroup thiết kếđơn giản và không yêu cầu lập kếhoạch có phạm vi rộng và quản trị như domain yêu cầu; Workgroup thuận tiện đốivới nhóm có số máy tính ít và gần nhau (≤ 10 máy)
Nhược điểm
Mỗi người dùng phải có một tài khoản người dùng trên mỗi máy tính mà họmuốn đăng nhập; bất kỳ sự thay đổi tài khoản người dùng, như là thay đổi mật khẩuhoặc thêm tài khoản người dùng mới, phải được làm trên tất cả các máy tính trongWorkgroup, nếu người quản trị quên bổ sung tài khoản người dùng mới tới một máytính trong nhóm thì người dùng mới sẽ không thể đăng nhập vào máy tính đó vàkhông thể truy xuất tới tài nguyên của máy tính đó; việc chia sẻ thiết bị và tệp được
xử lý bởi các máy tính riêng, và chỉ cho người dùng có tài khoản trên máy tính đóđược sửdụng
1.1.2Mô hình mạngDomain
Mô hình mạng Domain là một nhóm máy tính mạng cùng chia sẻ cơ sở dữliệu thư mục tập trung (Central Directory Database) Thư mục dữ liệu chứa tài
Trang 10khoản người dùng và thông tin bảo mật cho toàn bộ Domain Thư mục dữ liệu nàyđược biết như là thư mục hiện hành (Active Directory).
Ưu điểm
Cho phép quản trị tập trung Nếu người dùng thay đổi mật khẩu của họ, thì
sự thay đổi sẽ được cập nhật tự động trên toàn Domain; Domain cung cấp quy trìnhđăng nhập đơn giản để người dùng truy xuất các tài nguyên mạng mà họ được phéptruy cập; Domain cung cấp linh động để người quản trị có thể khởi tạo mạng rấtrộng lớn
Nhược điểm
Không giống như Workgroup, Domain phải tồn tại trước khi người dùngtham gia vào nó.Việc tham gia vào Domain luôn yêu cầu người quản trị Domaincung cấp tài khoản cho máy tính của người dùng tới domain đó.Tuy nhiên, nếungười quản trị cho người dùng đúng đặc quyền, người dùng có thể khởi tạo tàikhoản máy tính của mình trong quá trình cài đặt
1.2 Nghiên cứu về giám sátmạng
Giám sát mạng là sử dụng phần mềm quản lý chuyên dụng để quản lý tất cảcác tài nguyên trong mạng nhằm duy trì và đảm bảo hoạt động cho toàn bộ hệ thốngmạng, cho phép quản trị mạng chủ động phát hiện các sự cố về đường truyền vàdịch vụ mạng.Hệ thống giám sát mạng thường được xây dựng ở các công ty có quy
mô vừa và lớn khi có nhu cầu kiểm tra quản lý hệ thống của họ
Hiện nay, trên thị trường có rất nhiều phần mềm hỗ trợ tốt cho việc giám sátmạng, mỗi phần mềm đều có những ưu điểm riêng.Tùy vào nhu cầu giám sát và quy
mô của doanh nghiệp mà người quản trị có thể lựa chọn cho mình một công cụthích hợp nhất Hệ thống giám sát hiện nay bao gồm hai loại phần mềm chính sau:
+ Các phần mềm giám sát bản thương mại của các doanh nghiệp lớn, chuyênnghiệp và có độ tin cậy cao Gồm các phần mềm: HP Network Node Manager,SolarWinds, CiscoWorks…
+ Các phần mềm giám sát mã nguồn mở có các tính năng tương đương vớicác phiên bản thương mại và được cung cấp miễn phí Gồm các phần mềm: Nagios,Icinga,Cacti…
Dưới đây là bảng so sánh tính năng của một số phần mềm giám sát phổ biếnhiện nay:
Trang 11Hình 1.1 Bảng so sánh các tính năng của một số phần mềm giám sát
Tùy theo chính sách và trang thiết bị hạ tầng thực tế của từng doanh nghiệp
mà người người quản trị sẽ quyết định sử dụng phần mềm phù hợp với hệ thốnggiám sát của mình
Trang 12CHƯƠNG 2: NGHIÊN CỨU PHẦN MỀM ICINGA
2.1 Tổng quanvà lich sử hình thànhIcinga
2.1.1 Tổng quan vềIcinga
Phần mềm Icinga là một hệ thống mã nguồn mở có chức năng giám sát hệthống mạng, các máy chủ, các dịch vụ, thông báo tới người dùng khi hệ thống có sự
cố và đưa ra các báo cáo kịp thời Tháng 5 năm 2009, Phần mềm Icinga ra mắtphiên bản đầu tiên dựa trên mã nguồn được phát triển từ hệ thống giám sát Nagios.Thừa hưởng các tính năng quan trọng của “Người tiền nhiệm” Nagios, vì vậy nótương thích hoàn toàn với các phần mềm hỗ trợ của Nagios Đồng thời, phần mềmcũng cung cấp rất nhiều tính năng tùy biến mới, trong đó phải kể đến như giao diệnngười dùng Web 2.0, hỗ trợ các hệ quản trị cơ sở dữ liệu phổ biến như MySQL,Oracle và PorgreSQL.Phần mềm chạy trên nhiều phiên bản của Linux (Bao gồmFedora, Ubuntu và OpenSuSE) cũng như một số các nền tảng của Unix (SolarisvàHP)
2.1.2 Một số điểm nổi bật trong quá trình hình thành và phát triển của Icinga
- Tháng 5 năm 2009, ra mắt phiên bản đầu tiên của Icinga, cung cấp phần nhân, hàmAPI và giao diện web Phiên bản đầu tiên đạt mốc 10.000 lượt tải về trong năm đó
- Năm 2010, ra mắt phiên bản mới, hỗ trợ chuẩn IpV4 và IpV6, cung cấp các tùy biến
để truy cập cơ sở dữ liệu, cải thiện giao diện người dùng và một số phần mềm hỗtrợ khác Phiên bản mới đạt mốc 70.000 lượt tảivề
- Năm 2011, ra mắt phiên bản mới, cung cấp nhiều hàm API hơn để hỗ trợ ngườidùng Cũng trong năm này, Icinga kỷ niệm đạt mốc 100.000 lượt tảivề
Năm 2012, ra mắt phiên bản thử nghiệm Icinga 2, khắc phục những hạn chế
về cấu hình và khả năng mở rộng của Icinga khi triển khai hệ thốnglớn
Tháng 6 năm 2014, ra mắt phiên bản chính thức của Icinga 2 với rất nhiềucác tính năng mới và giao diện web theo thiết kế phẳng và tương thích với thiết bịdiđộng
Ưu điểm: Phần mềm được cung cấp miễn phí, hỗ trợ nhiều tùy chọn giao
diện quản trị Web Phần mềm cài đặt dễ dàng, hỗ trợ tốt hệ điều hành Linux.Giao
Trang 13diện quản trị Web thân thiện, dễ sử dụng cho người dùng lần đầu.Tương thích vớicác phần mềm hỗ trợ củaNagios.
Nhược điểm: Phần mềm không cung cấp nhiều tùy chọn hiển thị thông tin
giám sát bằng đồthị
2.1.3Các chức năng chính của phần mềmIcinga
- Giám sát hệ thống mạng (SMTP, POP3, HTTP, NNTP,PING,…)
- Giám sát tài nguyên của máy chủ (Tốc độ xử lý của CPU, khả năng sử dụng của ổđĩa…)
- Giám sát cảc thành phần của hệ thống mạng (Thiết bị chuyển mạch, thiết bị địnhtuyến, nhiệt độ, độẩm…)
- Các phần mềm hỗ trợ được thiết kế đơn giản và cho phép người dùng có thể dễdàng phát triển các dịch vụ để kiểm tra hệthống
- Cung cấp các hàm API để người quản trị có thể dễ dàng tùy biến phát triển màkhông cần tác động nhiều đến phần nhân củaIcinga;
- Khả năng kiểm tra, giám sát nhiều dịch vụ cùng mộtlúc
- Khả năng định nghĩa các máy chủ thành một mạng máy tính, phát hiện được máychủ đang gặp sự cố hay không thể truycập
- Thông báo đến danh sách quản trị viên khi máy chủ hay dịch vụ gặp sự cố thôngqua nhiều kênh thông tin như (Thư điện tử, tin nhắn điệnthoại…)
- Tự động lưu trữ thông tin vào tệp nhật ký (Filelog)
- Cung cấp tùy chọn Giao diện web cổ điển cho phép hiển thị các thông tin như tìnhtrạng của mạng, các thông báo, danh sách lịch sử các sự cố, tệp nhậtký…
- Cung cấp tùy chọn Giao diện web mới sử dụng giao diện hiện đại của Web 2.0 đểhiện thị trạng thái, thông tin lịch sử, sử dụng các bộ lọc thông tin mới, và hỗ trợ tạocác báo cáo, hỗ trợ đa ngônngữ
- Chức năng báo cáo của Icinga được xây dựng dựa trên phần mềm Jasper Reports hỗtrợ cả hai giao diện Icinga web cổ điển và Giao diện Icinga webmới
2.2 Kiến trúc Icinga
Hệ thống Icinga gồm ba phần chính: phần nhân Icinga, giao diệnIcinga web
và báo cáo Icinga
Trang 15Hình 2.3 Mô hình liên kết giữa các thành phần của Icinga
Phần nhân của Icinga có nhiệm vụ giám sát, tiếp nhận các kết quả từ phầnmềm hỗ trợ (Plugins) Sau đó, các kết quả này sẽ được gửi đến cơ sở dữ liệu ngoàicủa Icinga (IDODB – Icinga Data Out Database) thông qua giao diện mô-đun ngoàicủa Icinga (IDOMOD – Icinga Data Out Module) và Dịch vụ dữ liệu bên ngoài đến
Cơ sở dữ liệu của Icinga (IDO2DB – Icinga Data Out to Database bằng mã hóa SSL
và giao thức TCP) Cả IDOMOD và IDO2DB đều được đóng gói trong gói phầnmềm là IDOUtils.Các thành phần này sẽ làm việc hoàn toàn độc lập để giúp choviệc phân chia dữ liệu cũng như hoạt động giám sát nhiều máy chủ cùng một lúc
2.2.2 Phần Giao diệnIcinga
Phần mềm Icinga (Icinga Web) có hai giao diện Web chính để người sử dụng
có thể theo dõi được các kết quả giám sát và gửi các câu lệnh đến nhânIcinga
2.3.1 Giao diện Web cổ điển (Icinga Classic) là một phiên bản dựa trên giao diện của
phần mềm Nagios Phần mềm Icinga vẫn tiếp tục thêm các chức năng mới như đánh
số trang, chuẩn dữ liệu đầu ra JSON và kiểu xuất dữ liệu CSV Đây là giao diệnngười dùng được đóng gói sẵn với nhân của Icinga Giao diện người dùng cổ điểnIcinga này tiếp nhận dữ liệu thông qua bộ nhớ đệm (cache) và gửi tập lệnh đến tệptậplệnh
2.3.2 Giao diện Icinga web là được xây dựng trên mô hình web 03 lớp Agavi và sử dụng
ngôn ngữ PHP Phần giao diện người dùng lấy cảm hứng từ nền tảng web 2.0 vớigiao diện phẳng và sử dụng phương thức kéo thả để tùy biến bảng điều khiển Khácvới phiên bản Icinga Web cổ điển, phiên bản Icinga web được xây dựng mới hoàntoàn so với phiên bản tiền nhiệm Nó giao tiếp với phần nhân, dữ liệu và các ứng
Trang 16PHP cung cấp các hàm dịch vụ và hàm quan hệ), các hàm giao tiếp dịch vụ API(REST API) và giao diện điều khiển các tập lệnh (Command ControlInterface).
Cả hai giao diện này đều hiển thị các thông tin về trạng thái hoạt động củacác máy chủ, dịch vụ, thông tin lịch sử, các thông báo, sơ đồ trạng thái hiển thị tìnhtrạng của mạng theo thời gian thực Đồng thời cả hai đều hỗ trợ tốt các chuẩn Ipv4
và Ipv6
Cơ sở dữ liệu của Icinga là nơi lưu trữ các dữ liệu lịch sử giám sát của cácphần mềm hỗ trợ và các truy cập từ giao diện Icinga Web.Khác với người tiềnnhiệm Nagios, Icinga hỗ trợ nhiều hệ quản trị cơ sở dữ liệu phổ biến như MySQL,Oracle và PostgreSQL
Phần giao diện dành cho thiết bị di động của Icinga (Icinga Mobile) là giaodiện người dùng dành cho các trình duyệt trên điện thoại thông minh hay máy tínhbảng Ứng dụng này hoàn toàn tương thích với các hệ điều hành di động phổ biếnhiện nay như iOS, Android, BlackBerry OS và Web OS Người quản trị có thể cậpnhật trực tiếp các tính năng và hệ thống sẽ tự đồng bộ áp dụng cho tất cả ngườidùng thuộc mạng máy tínhđó
2.3 Phần Báo cáoIcinga
Phần mềm Icingacung cấp một tùy chọn chức năng báo cáo Icinga (IcingaReport).Chức năng báo cáo Icinga dựa trên phần mềm báo cáo mã nguồn mở Jesper.Chức năng này được tích hợp trong cả giao diện Icinga web cổ điển và giao diệnIcinga web và được hiển thị trên cả hai giao diệnnày
2.3.1 Phương thức giám sát của Icinga
Icinga có 02 phương thức giám sát chính để kiểm tra dịch vụ như sau:
-Giám sát trực tiếp các dịch vụ hoạt động trực tuyến côngkhai
-Giám sát gián tiếp các dịch vụ thông qua các phần mềm tích hợp được càiđặt trên máy chủ từ xa
Hình 2.4 Hai phương thức giám sát các máy chủ của Icinga