6. Nội dung luận văn:
2.3. Thiết kê tổng thể hệ thống quản trị mạng
2.3.1. Sơ đồ chức năng và quy trình thực hiện của hệ thống
Quy trình sử dụng của thệ thống dƣới góc nhìn của ngƣời dùng bao gồm các công đoạn chính sau:
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
Hình 2.3.1 Sơ đồ quy trình thực hiện của hệ thống.
Quy trình thực hiện của hệ thống dƣới góc nhìn kỹ thuật đƣợc đặc tả thông qua sơ đồ
Hình 2.3.2 Sơ đồ quy trình thực hiện hệ thống.
Sơ đồ chức năng của hệ thống.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
Hình 2.3.4 Sơ đồ chức năng hệ thống.
Hệ thống đƣợc xây dựng dựa trên việc ứng dụng công nghệ truy xuất dữ liệu thông qua giao thức SNMP và công nghệ quản lý thông tin hệ thống WMI.
2.3.2. Giao diện web quản trị.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ Hình 2.3.5 Sơ đồ khối giao diện web quản trị
2.4 Giám sát máy tính dựa trên mã nguồn mở
Hiện nay, trên thị trƣờng có các sản phẩm quản trị mạng thƣơng mại (mã nguồn đóng) nhƣ SolarWinds, CiscoWorks, HPOpenView… tuy nhiên giá thành thƣờng khá cao và các khả năng tùy biến rất hạn chế. Trong khi đó, có nhiều giải pháp phần mềm mã nguồn mở cho phép triển khai giám sát mạng rất hiệu quả nhƣ Nagios, Cacti, Zabbix, Zenoss. Đối với phần mềm mã nguồn mở, ngƣời quản trị có thể can thiệp sửa chữa thay đổi hoặc bổ sung thêm để hoàn thiện và làm chủ đƣợc phần mềm đó trong quá trình vận hành. Để quản trị và theo dõi hoạt động của các máy tính, các phầm mềm quản trị mãnguồn mở đều đƣa ra nguyên lý chung xây dựng Modul phần mềm bổ sung vào máy chủ quản trị (Server) và Modul phần mềm (Agent) trên máy trạm. Luận văn tập trung vào việc nghiên cứu một hệ thống giám sát dựa trên Nagios, một sản phẩm nguồn mở đƣợc sử dụng rộng rãi. Từ khi ra đời 2002 đến nay Nagios đã liên tục phát triển và rất đƣợc quan tâm. Cộng đồng quan tâm và sử dụng Nagios cho đến nay theo thống kê của http://nagios.org là vào khoảng 250.000 ngƣời. Từ phiên bản 1.0 đầu tiên, đến nay Nagios đã phát triển nên phiên bản 3.x và vẫn liên tục cho ra
Lịch sử cảnh báo Tình trạng hệ thống Sơ đồ mạng vật lý Thông tin quản trị Thông báo Các chức năng quản trị hệ thống Quản trị
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ những phiên bản mới với tính năng mạnh mẽ hơn. Đặc biệt Nagios có khả năng phân tán. Vì vậy nó có thể giám sát các mạng khổng lồ, đạt cỡ 100.000 node.
Trong phần thử nghiệm, học viên chọn phần mềm quản trị mạng Nagios trên nguyên lý kiến trúc của hệ theo dõi máy tính sử dụng hệ điều hành Window và máy tính sử dụng hệ điều hành Linux đƣợc trình bày ở đây.
2.4.1.Giám sát máy tính cài hệ điều hành Windowns
Giám sát các dịch vụ hay các thuộc tính của một hệ thống Windows yêu cầuta phải cài một Agent trên đó. Agent này giống nhƣ là một trung gian giữa các Plugin của Nagios đƣợc dùng để giám sát các dịch vụ và thuộc tính của Windows. Ở đây ta sử dụng phần mềm NSClient++ để giám sát máy Windows và sử dụng plugin check_nt để giao tiếp với NSClient++ trong đó check_nt đƣợc cài đặt trên máy chủ Nagios nhƣ ở phần trên Ngoài NSClient++ ta có thể sử dụng NC_Net có chức năng tƣơng tự NSClient
Agent này nhƣ một proxy giữa các plugin Nagios mà không đƣợc giám sát và các dịch vụ thực tế hoặc thuộc tính của máy tính Windows. Không cài đặt một tác nhân trên các máy tính Windows, Nagios sẽ không thể theo dõi các dịch vụ tƣ nhân hoặc các thuộc tính của máy tính Windows.
Trong ví dụ này, chúng ta sẽ cài đặt các addon NSClient + + trên các máy tính Windows và sử dụngcheck_nt plugin để giao tiếp với các addon NSClient + +. Các plugin check_nt nên đã đƣợccài đặt trên máy chủ Nagios nếu bạn theo các hƣớng dẫn nhanh chóng bắt.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
2.4.2 Giám sát máy tính cài hệ điều hành Linux
NRPE là một addon cho Nagios giúp thực thi các plugin khác để monitor/check các resources (CPU load, memory usage, swap usage, disk usage, logged in users, running processes, v.v..) và services (http, ftp, v.v..) trên các máy Linux/Unix ở xa.
Dịch vụ đƣợc cung cấp bởi các máy chủ Linux (HTTP, FTP, SSH, SMTP, vv) có thể đƣợc giám sát dễ dàng bằng cách cài đặt theo hƣớng dẫn.
Các mục cấu hình mẫu dƣới đây đối tƣợng tham chiếu đƣợc xác định trong tập tin cấu hình mẫu (commands.cfg, templates.cfg, vv) đƣợc cài đặt
Hình 2.6 – Mô hình và cơ chế làm việc của RNPE
NRPE addon bao gồm 2 thành phần:
- Plugin check_nrpe: nằm trên máy Nagios (là monitoring server) - Daemon NRPE: chạy trên máy Linux/Unix (remote host) cần monitor
- Khi máy Nagios cần check các resources/services trên máy Linux/Unix ở xa: - Nagios sẽ thực thi plugin check_nrpe và cho biết resource/service nào cần check
- Plugin check_nrpe sẽ liên lạc với daemon NRPE trên remote host. Kênh liên lạc có thể đƣợc bảo vệ bằng SSL
- Daemon NRPE sẽ chạy các plugin thích hợp (nhƣ check_disk, check_load, check_http, v.v..) để check các resource/service đƣợc yêu cầu
- NRPE daemon truyền kết quả cho check_nrpe, sau đó plugin này trả kết quả lại cho Nagios process
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ * Lƣu ý là NRPE daemon yêu cầu các Nagios plugins cần đƣợc cài đặt trên các remote Linux/Unix host.
Có 2 cách checking khi sử dụng addon NRPE là:
- Direct Checks
Hình 2.7 Direct Checks
Giúp monitor các “local” / “private” resource trên remote Linux/Unix host nhƣ CPU load, memory usage, swap usage, disk usage, logged in users, running processes, v.v..
Indirect Checks
Hình 2.8 Indirect Checks
Nếu vì một lý do nào đó mà Nagios host không thể liên lạc đƣợc với các public services và resources của các remote server nhƣ HTTP, FTP nhƣng remote Linux/Unix host (đƣợc cài NRPE daemon và các plugin) lại có thể thì có thể sử dụng cách này để NRPE daemon đóng vai trò làm proxy.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
CHƢƠNG III: XÂY DỰNG HỆ THỐNG GIÁM SÁT MẠNG THỬ NGHIỆM DỰA TRÊN MÃ NGUỒN MỞ
3.1. Lựa chọn mô hình thử nghiệm bằng phần mềm giám sát Nagios core 3.1.1. Giới thiệu tổng quát hệ thống theo dõi mạng Nagios 3.1.1. Giới thiệu tổng quát hệ thống theo dõi mạng Nagios
Nagios là một công cụ để giám sát hệ thống. Điều này có nghĩa là nó liên tục kiểm tra trạng thái của máy và dịch vụ khác nhau trên các máy. Mục đích chính của hệ thống giám sát là để phát hiện và báo cáo về bất kỳ hệ thống không hoạt động, càng sớm càng tốt, do đó, ta nhận thức đƣợc vấn đề trƣớc khi ngƣời dùng sử dụng.
Nagios không thực hiện bất kỳ kiểm tra máy chủ hoặc các dịch vụ nào trên của máy chủ Nagios. Nó sử dụng plugin để thực hiện việc kiểm tra thực tế. Điều này làm cho nó có tính linh hoạt cao, và là giải pháp hiệu quả cho việc thực hiện và kiểm tra dịch vụ.
Đối tƣợng giám sát của Nagios đƣợc chia thành hai loại: host và dịch vụ. Host là các máy vật lý (máy chủ, bộ định tuyến, máy trạm, máy in và vv), trong khi dịch vụ là những chức năng cụ thể, ví dụ, một máy chủ web (một quá trình xử lý http) có thể đƣợc định nghĩa nhƣ là một dịch vụ đƣợc giám sát. Mỗi dịch vụ có liên quan đến một máy chủ là dịch vụ đang chạy trên đó. Ngoài ra, cả hai máy và dịch vụ có thể đƣợc nhóm lại thành các nhóm dịch cho phù hợp.
Nagios có hai ƣu điểm lớn khi nói đến quá trình giám sát, thay vì theo dõi các giá trị, nó chỉ sử dụng bốn mức độ để mô tả tình trạng: OK, WARNING, CRITICAL, và UNKNOW. Các mô tả tình trạng của các đối tƣợng đƣợc giám sát cho phép ngƣời quản trị quyết giải quyết hay bỏ qua các vấn đề trên hệ thống mà không tốn nhiều thời gian. Đây chính là điều Nagios làm. Nếu ta đang theo dõi một giá trị số nhƣ số lƣợng không gian đĩa và tải CPU, ta có thể định nghĩa ngƣỡng những giá trị để đƣợc cảnh báo khi cần thiết.
Một thuận tiện khác của Nagios là các báo cáo về trạng thái của các dịch vụ đang hoạt động. Báo cáo này cung cấp một cái nhìn tổng quan tốt về tình trạng cơ sở hạ tầng. Nagios cũng cung cấp các báo cáo tƣơng tự cho các nhóm máy
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ chủ và các nhóm dịch vụ, cảnh báo khi bất kỳ dịch vụ quan trọng hoặc cơ sở dữ liệu server ngƣng hoạt động. Báo cáo này cũng có thể giúp xác định độ ƣu tiên của các vấn đề nhƣ vấn đề nào cần đƣợc giải quyết trƣớc.
Nagios thực hiện tất cả các kiểm tra của mình bằng cách sử dụng plugins. Đây là những thành phần bên ngoài mà Nagios qua đó lấy đƣợc thông tin về những gì cần đƣợc kiểm tra và cung cấp các cảnh báo cho ngƣời quản trị. Plugins có trách nhiệm thực hiện các kiểm tra và phân tích kết quả. Các đầu ra từ một kiểm tra đó là một trạng thái (OK, WARNING, CRITICAL, hoặc UNKNOW) và các văn bản bổ sung cung cấp thông tin về các dịch vụ cụ thể. Văn bản này chủ yếu dành cho các quản trị viên hệ thống để có thể đọc một trạng thái chi tiết của một dịch vụ.
Nagios không chỉ cung cấp một hệ thống cốt lõi để theo dõi, mà còn cung cấp một tập các plugins tiêu chuẩn trong một gói riêng biệt (xem http://nagiosplugins.org/ để biết thêm chi tiết). Những plugin này cho phép kiểm tra các dịch vụ đang chạy trên hệ thống. Ngoài ra nếu ta muốn thực thi một kiểm tra đặc biệt, ta có thể tạo một plugin riêng cho mình.
3.1.2. Các chức năng cơ bản
Các chức năng của Nagios rất linh hoạt, nó có thể đƣợc cấu hình để theo dõi cơ sở hạ tầng CNTT theo cách ta muốn. Nó cũng có một cơ chế để tự động phản ứng với các vấn đề, và một hệ thống cảnh báo mạnh. Tất cả điều này đƣợc dựa trên một hệ thống định nghĩa các đối tƣợng rõ ràng:
Commands: đƣợc định nghĩa về cách Nagios cần thực hiện các loại kiểm
tra, chúng là một lớp trừu tƣợng cho phép ta nhóm các hoạt động tƣơng tự lại với nhau.
Time-periods: là ngày và thời gian kéo dài mà trong đó một hoạt động nên
hay không nên đƣợc thực hiện, ví dụ: Thứ hai đến thứ sáu 9:00-17:00.
Contacts và Contact groups: là những ngƣời cần đƣợc cảnh báo, cùng với
thông tin về cách thức và thời gian họ cần đƣợc cảnh báo. Contacts có thể đƣợc nhóm lại thành Contact groups.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
Host: là những máy vật lý, cùng với thông tin về việc ai sẽ đƣợc liên lạc, làm thế nào kiểm tra phải đƣợc thực hiện, và khi nào. Host có thể đƣợc nhóm lại thành các Host group, mỗi host có thể là một thành viên của nhiều Host group.
Services: là các chức năng khác nhau hoặc các tài nguyên cần đƣợc giám
sát, cùng với thông tin về những ngƣời cần đƣợc liên lạc, làm thế nào kiểm tra phải đƣợc thực hiện, và khi nào. Service có thể đƣợc nhóm lại thành các service group, mỗi service có thể là một thành viên của nhiều service group.
Host và service escalation: định nghĩa khoảng thời gian đƣợc chỉ ra mà sau
đó ngƣời phụ nên đƣợc cảnh báo của các sự kiện nào đó - ví dụ một máy chủ quan trọng là ngƣng hoạt hơn 4 giờ nên cảnh báo cho quản trị viên để họ bắt đầu theo dõi các vấn đề.
Một tiện ích quan trọng ta sẽ đạt đƣợc bằng cách sử dụng Nagios là một hệ thống phụ thuộc. Đối với các quản trị viên, rõ ràng là nếu router bị hỏng, tất cả các máy truy cập thông qua nó sẽ thất bại. Nagios cho phép ta định nghĩa phụ thuộc giữa các máy để hình thành cấu trúc liên kết mạng lƣới thực tế. Ví dụ, nếu một switch, cho kết nối ta với một bộ định tuyến ngƣng hoạt động, Nagios sẽ không thực hiện bất kỳ kiểm tra trên router hoặc trên các máy tính phụ thuộc vào router.
Điều này đƣợc minh họa trong ví dụ sau đây:
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ Ta cũng có thể định nghĩa rằng một dịch vụ phụ thuộc vào một dịch vụ khác, hoặc trên cùng một máy chủ hoặc trên các máy chủ khác nhau. Nếu một trong các dịch vụ là ngƣng hoạt động, một kiểm tra cho một dịch vụ mà phụ thuộc vào nó sẽ không đƣợc thực hiện. Ví dụ, đối với mạng nội bộ của ứng dụng công ty hoạt động tốt, cả hai máy chủ web cơ bản và cơ sở dữ liệu một máy chủ đều hoạt động. Vì vậy, nếu một dịch vụ cơ sở dữ liệu không hoạt động, Nagios sẽ không thực hiện kiểm tra các ứng dụng. Máy chủ cơ sở dữ liệu có thể là trên cùng một máy hoạt khác máy.Trong một trƣờng hợp nhƣ vậy, nếu máy bị hỏng hoặc không thể truy cập, cảnh báo cho tất cả các dịch vụ phụ thuộc vào các dịch vụ cơ sở dữ liệu sẽ không đƣợc gửi.
Nagios cũng cung cấp cơ chế để lên lịch cho kế hoạch ngƣng hoạt động vì một vài lý do nào đó nhƣ bảo trì hoặc nâng cấp hệ thống. Ta có thể lên lịch cho một máy chủ cụ thể hoặc dịch vụ dự kiến không có sẵn. Điều này sẽ ngăn chặn Nagios thông báo cho ngƣời đƣợc cấu hình cần gửi cảnh báo về các vấn đề liên quan đến đối tƣợng này. Nagios cũng có thể thông báo cho mọi ngƣời kế hoạch ngƣơng hoạt động một cách tự động. Điều này chủ yếu đƣợc sử dụng khi bảo trì cơ sở hạ tầng IT và hệ thống cũng nhƣ dịch vụ ngƣng hoạt động trong một thời gian dài.
* Tóm lại:
Nagios hoạt động bằng cách kiểm tra xem một máy chủ hoặc dịch vụ có hoạt động tốt không và lƣu trữ trạng thái của nó. Bởi vì trạng thái của một dịch vụ chỉ là một trong bốn giá trị OK, WARNING, CRITICAL, UNKNOW. Điều quan trọng là nó thực sự xác định đƣợc tình trạng hiện tại. Để tránh phát hiện tạm thời và ngẫu nhiên vấn đề, Nagios sử dụng trạng thái tạm thời và cố định mô tả tình trạng hiện tại của một máy chủ lƣu trữ hoặc dịch vụ.
Có nhiều lợi ích khi sử dụng hệ thống giám sát. Nó đảm bảo rằng các dịch vụ đang làm việc một cách chính xác. Nó giúp phát hiện các vấn đề trƣớc và đảm bảo rằng những ngƣời thích hợp sẽ đƣợc cảnh báo khi có sự cồ xảy ra. Đảm bảo rằng tất cả các dịch vụ hoạt động tốt là điều cần thiết. Trong trƣờng hợp xảy
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ các vấn đề, hệ thống sẽ giúp đỡ trong việc đƣa ra một bức tranh rõ ràng về những gì đang làm việc, và những gì không. Nagios là một ứng dụng rất mạnh cho việc giám sát tài nguyên. Nó phù hợp với cả các hệ thống lớn và nhỏ. Nó có thể giúp tổ chức duy trì chất lƣợng dịch vụ cao hơn. Nagios cũng giúp trong việc xác định nguyên nhân gốc rễ của vấn đề. Nó bao gồm cơ chế rất linh hoạt để theo dõi và thông báo về cơ sở hạ tầng. Nagios là một công cụ cực kỳ mạnh mẽ nhƣ nó có thể đƣợc cấu hình theo bất kỳ cách nào ta muốn. Hơn nữa nó cũng có thể đƣợc mở rộng để nếu có nhu cầu.