Do nhu cầu đặt ra của các hệ thống mạng, các nhà quản trị mạng phải giám sát được hệ thống mạng của các doanh nghiệp, tổ chức… nên em dưới sự hướng dẫn của thầy giáo Nguyễn Quang Ninh đã
Trang 1TRƯỜNG ĐẠI HỌC VINH
KHOA CÔNG NGHỆ THÔNG TIN 004.6 -
Trang 2TRƯỜNG ĐẠI HỌC VINH
KHOA CÔNG NGHỆ THÔNG TIN
Trang 31 LỜI CẢM ƠN
Lời đầu tiên, em xin gửi lời cảm ơn tới thầy ThS Nguyễn Quang Ninh –
Giảng viên khoa CNTT – Đại học Vinh là người trực tiếp hướng dẫn em làm đồ án tốt nghiệp này Em cũng xin gửi lời cảm ơn đến toàn thể các thầy, cô trong khoa CNTT – Đại học Vinh – Những người đã tham gia vào công tác giảng dạy và trang bị cho em những kiến thức trong quá trình học tập nói chung và áp dụng cho em trong việc hoàn thiện đồ án này
Tiếp đến là lời cảm ơn đến những người thân, bạn bè đã động viên và giúp đỡ
em trong suốt thời gian học tập cũng như làm đồ án này Họ là những người luôn cho
em những góp ý về nội dung cũng như giúp em tìm kiếm tài liệu cần thiết để phục vụ cho đồ án tốt nghiệp
Với sự hướng dẫn tận tình của thầy ThS Nguyễn Quang Ninh em đã hoàn
thành báo cáo đồ án tốt nghiệp này Do thời gian và trình độ có hạn nên chắc không tránh khỏi những sai lầm và thiếu sót.Vì vậy em rất mong nhận được những ý kiến đóng góp bổ sung của thầy cô giáo và các bạn để bài đồ án tốt nghiệp của em được hoàn thiện hơn
Em xin chân thành cảm ơn!
Sinh viên
Đặng Ngọc Long
Trang 4MỤC LỤC
LỜI MỞ ĐẦU 2
Chương 1 GIỚI THIỆU CHUNG 3
1.1 Lý do chọn đề tài 3
1.2 Mục đích nghiên cứu 3
1.3 Kết quả đạt được 3
Chương 2 TỔNG QUAN VỀ NAGIOS 4
2.1 Giới thiệu 4
2.2 Chức năng của Nagios 4
2.3 Lợi ích của việc giám sát hệ thống mạng bằng Nagios 4
Chương 3 CÀI ĐẶT NAGIOS TRÊN CENTOS 6.4 6
3.1 Tạo User và group cho hệ thống Nagios 6
3.2 Cài đặt Nagios Core 7
3.3 Biên dịch và cài đặt Nagios Plugins 9
3.4 Khởi chạy Nagios 9
3.5 Chỉnh lại thiết lập của SELinux 9
3.6 Đăng nhập vào Nagios web interface 10
Chương 4 CẤU HÌNH NAGIOS GIÁM SÁT HỆ THỐNG SERVER WINDOWS 11
4.1 Giới thiệu 11
4.2 Các bước tiến hành 11
4.3 Cài đặt NSClien++ trên Windows 12
4.4 Cấu hình Nagios 13
4.5 Mật khẩu 15
4.6 Khởi động lại dịch vụ Nagios 15
4.7 Kết quả giám sát trên Server 2008 16
Chương 5 NAGIOS GIÁM SÁT CÁC DỊCH VỤ MẠNG 18
5.1 Yêu cầu 18
5.2 Giám sát dịch vụ HTTP 19
5.3 Giám sát dịch vụ FTP 19
5.4 Giám sát dịch vụ SMTP 20
5.5 Giám sát dịch vụ DNS 21
5.6 Kết quả giám sát Server Windows 22
Chương 6 GIÁM SÁT SERVER LINUX 28
6.1 Giới thiệu 28
Trang 56.2 Chuẩn bị 29
6.3 Cài đặt trên máy Linux cần giám sát 29
6.4 Cài đặt trên máy Nagios giám sát server Linux 31
KẾT LUẬN 34
TÀI LIỆU THAM KHẢO 36
Trang 6DANH MỤC CÁC HÌNH VẼ
Hình 4.1 Giao tiếp giữa Nagios và Windows 11
Hình 4.2: Phần mềm NSClient++ 12
Hình 4.3: Thông tin các dịch vụ trên winserver 16
Hình 4.4: Thông tin về Winserver 17
Hình 5.1: Danh sách các dịch vụ được cấu hình(DNS, FTP,HTTP,SMTP…) 22
Hình 5.2: Thông tin trạng thái server 23
Hình 5.3: Thông tin dịch vụ DNS 24
Hình 5.4: Thông tin các Hostname được giám sát 25
Hình 5.5: Báo cáo về máy chủ winserver 25
Hình 5.6: Các cảnh báo các dịch vụ và thiết bị 26
Hình 5.7: Các vấn đề của thiết bị giám sát 26
Hình 5.8 Phân loại thiết bị theo nhóm 27
Trang 7LỜI MỞ ĐẦU
Ngày nay hệ thống giám sát mạng đóng một vai trò quan trọng trong lĩnh vực CNTT, và nó không xa lạ với bất kỳ sinh viên nào đang theo học CNTT Nó đã trở thành một lĩnh vực nghiên cứu quan trọng và không thể thiếu trong các hệ thống mạng của các cơ quan, tổ chức, doanh nghiệp… Nó giúp chúng ta theo dõi, kiểm tra và đưa ra cảnh báo khi có vấn đề xảy ra đối với một hệ thống Do nhu cầu đặt ra của các hệ thống mạng, các nhà quản trị mạng phải giám sát được hệ thống mạng của các doanh nghiệp,
tổ chức… nên em dưới sự hướng dẫn của thầy giáo Nguyễn Quang Ninh đã tập trung tìm hiểu một phần mềm được xây dựng trên hệ thống mã nguồn mở có tên là Nagios Nagios là công cụ giám sát hệ thống mạng mạnh và có chi phí đầu tư thấp Nó có thể giám sát hệ thống các máy chủ, các thiết bị mạng và các giao thức mạng đang triển khai trong hệ thống Vì vậy Nagios đang dần được sử dụng rất rộng rãi trên toàn thế giới
Em xin chân thành cảm ơn tới thầy Nguyễn Quang Ninh và các thầy cô giáo trong bộ môn giúp đỡ chúng em hoàn thành đề tài Xin chúc các thầy cô dồi dào sức khỏe
Trang 8Chương 1 GIỚI THIỆU CHUNG
1.1 Lý do chọn đề tài
Hiện nay hầu hết các doanh nghiệp, cơ quan, tổ chức… đều có các hệ thống mạng của riêng mình Và với mỗi hệ thống mạng thì có rất nhiều các máy chủ, máy khách, các thiết bị mạng và các dịch vụ mạng đi kèm Từ thực tế không có hệ thống nào
là hoàn hảo và bất kỳ hệ thống mạng nào cũng có thể xảy ra lỗi Và việc tìm ra lỗi trong
hệ thống để khắc phục là điều khó khăn và vô cùng quan trọng Vì vậy em đã tập trung nghiên cứu 1 phần mềm được xây dựng trên hệ thống mã nguồn mỡ có tên là Nagios- phần mềm chạy trên HDH CentOS có thể giám sát các máy server, các thiết bị mạng và các dịch vụ mạng đi kèm
1.2 Mục đích nghiên cứu
Nắm được cách cài đặt, cấu hình và sử dụng phần mềm Nagios trên HDH CentOS Tìm hiểu giám sát hoạt động, dịch vụ trong môi trường mạng và tài nguyên của hệ thống Nắm bắt được các lỗi của hệ thống và xử lý kịp thời tránh lãng phí tài nguyên và tạo ra hiệu quả cho hệ thống
1.3 Kết quả đạt được
- Hiểu được chức năng và đặc điểm của phần mềm Nagios
- Cài đặt và cấu hình thành công phần mềm để giám sát các máy server Windows, server Linux
- Thực hiên việc giám sát các dịch vụ mạng: HTTP, SMTP, DNS, FTP… chạy trên máy window server
- Thực hiên việc cảnh báo thông qua giao diện web
Trang 9Chương 2 TỔNG QUAN VỀ NAGIOS
Nagios hoạt động bằng cách kiểm tra xem một máy chủ hay dịch vụ có hoạt động tốt không và lưu trữ trạng thái của nó 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 (hoạt động bình thường), WARNING (có thể hoạt động nhưng chưa chính xác hoặc không hoạt động), CRITICAL (ko hoạt động) và UNKNOW (không xác định được) 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
2.2 Chức năng của Nagios
Giám sát trạng thái hoạt động của các dịch vụ mạng (HTTP, FTP, SMTP, DNS, DHCP…)
Giám sát 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, số tiến trình đang chạy… trong hệ thống mạng
Giám sát các thiết bị mạng như Router, Switch, máy in
Cảnh báo nhanh chóng cho người quản trị thông qua giao diện web khi hệ thống mạng có sự cố xảy ra
2.3 Lợi ích của việc giám sát hệ thống mạng bằng Nagios
Hạn chế tối đa thời gian kiểm tra các tham số trong từng máy chủ Linux,
Windows, các thiết bị mạng…
Xác định vấn đề, sự cố trong hệ thống chính xác, nhanh chóng, không tốn
Trang 10 Thông báo linh hoạt cho người quản trị về tình trạng sự cố,tình trạng hoạt
động để khắc phục chính xác
Giám sát nguồn tài nguyên không chỉ hữu ích để xác định vấn đề, nó cũng có
thể giúp ta tiết kiệm thời gian để tìm hiểu chúng
Trang 11Chương 3 CÀI ĐẶT NAGIOS TRÊN CENTOS 6.4
gd, gd-devel, png, png-devel, jpeg, jpeg-devel, zlib, zlib-devel
# yum –y install httpd php perl gcc glibc glibc- common gd gd- devel
3.1 Tạo User và group cho hệ thống Nagios
# usermod - a - G nagcmd nagios
# usermod - a - G nagcmd apache
Trang 123.2 Cài đặt Nagios Core
- Tạo 1 thư mục để chứa Nagios Core và Plugin có tên là phanmem nằm trên /
- Download Nagios Core và Nagios Plugin vào thư mục /phanmem
- Có thể dùng SSH Secure upload bộ cài Nagios Core và Nagios Plugin vào thư mục /phanmem
- Tiến hành giải nén Nagios Core
#cd /phanmem
#tar xzf nagios- 3.4.1.tar.gz
#cd nagios
- Chạy configure script với tham số truyền vào là group nagcmd
# /configure - - with- command- group=nagcmd
Trang 13- Biên dịch mã nguồn của nagios
#make all
- Cài đặt chương trình, tập lệnh init, tập tin cấu hình mẫu và thiết lập quyền cho các thư mục cần thiết
#make install
#make install- init
#make install- config
#make install- commandmode
- Cài đặt giao diện Web Nagios
#make installl- webconf
- Tạo tài khoản nagiosadmin và đặt mật khẩu để truy cập vào web interface của Nagios
# htpasswd - c /usr/local/nagios/etc/htpasswd.users nagiosadmin
- Khởi động lại dịch vụ httpd
# service httpd restart
Trang 143.3 Biên dịch và cài đặt Nagios P ugins
- Vào thư mục /phanmem để giải nén Nagios Plugins: cd /phanmem
- Giải nén gói mã nguồn của Nagios Plugins và chuyển vào thư mục mới được tạo ra
#tarxzfnagios- plugins- 1.4.15.tar.gz
# cd nagios- plugins- 1.4.15
- Chạy configure script với tham số user và group truyền vào đều là nagios
# /configure - - with- nagios- user=nagios - - with- nagios- group=nagios
- Biên dịch Nagios Plugins
# make
- Cài đặt Nagios Plugins
# make install
3.4 Khởi chạy Nagios
- Thêm Nagios vào danh sách các system service và tự động khởi động cùng
- Nếu không có lỗi gì thì kích hoạt Nagios
# service nagios start
3.5 Chỉnh ại thiết ập của SELinux
Mặc định SELinux trên CentOS hoạt động ở chế độ Enforcing Điều này có thể dẫn tới thông báo “Internal Server Error” khi thử truy cập vào Nagios CGI Thực hiện các bước sau để kiểm tra và khắc phục vấn đề này
- Kiểm tra nếu SELinux đang ở Enforcing mode
# getenforce
- Đặt SELinux ở chế độ Permissive
# setenforce 0
Trang 15- Để thay đổi này cố định, ta phải thay đổi cấu hình của SELinux tại vi/etc/selinux/config và khởi động lại
3.6 Đăng nhập vào Nagios web interface
Vào địa chỉ http://localhost/nagios
Sử dụng tài khoản admin của nagios,đăng nhập vào giao diện web
2
Trang 16Chương 4 CẤU HÌNH NAGIOS GIÁM SÁT HỆ THỐNG
SERVER WINDOWS
4.1 Giới thiệu
Cấu hình Nagios để giám sát các thông tin cơ bản của hệ thống Windows Ở đây
ta giám sát các tài nguyên hệ thống như:
- Memory sử dụng
- Tải CPU
- Dung lượng ổ đĩa C
- Phiên bản NSClient++ đang sử dụng
- Tiến trình Explorer
- Thời gian hoạt động của máy window
Khái quát cách hoạt động của Nagios với Windows
H nh 4.1 Giao tiếp giữa Nagios và Windows
Nagios không trực tiếp giám sát các dịch vụ và các tài nguyên hệ thống trên máy Window mà nó giám sát thông qua plugin check_nt (check_nt được cài đặt trên máy chủ nagios) và modun NSClien++ (cài đặt trên máy Window) Nó sử dụng plugin check_nt giao tiếp với NSClien++ và sử dụng các plugin thích hợp để tiến hành kiểm tra các dịch vụ và tài nguyên được yêu cầu trên máy Window server Sau khi kiểm tra mọi kết quả sẽ được trả về cho nagios và hiển thị trên giao diện web
4.2 Các bước tiến hành
Để tiến hành giám sát tài nguyên hệ thống của một máy Server Window ta cần thực hiên như sau:
Trang 17- Cấu hình cho nagios biết để đọc các thông tin trong tập tin /usr/local/nagios/etc/obijects/window.cfg (đây là nơi thêm các thông tin về máy win dow và các dịch vụ mà chúng ta cần giám sát trên máy window) Nếu ta không cấu hình thì nagios không thể đọc được các thông tin và nó sẽ không hiển thị lên giao diện web
- Cài đặt phần mềm NSClien++ trên máy Windows
- Tạo một host và một định nghĩa service để giám sát máy Windows
- Khởi động lại tiến trình nagios để cập nhật thay đổi
4.3 Cài đặt NSClien++ trên Windows
Trước khi tiến hành giám sát ta cần cài đặt NSClien++ trên máy Windows NSClien++ có thể tìm thấy tại: http://nsclient.org/nscp/downloads
Download NSClient++ về và Setup chương trình
Setup xong ta chỉnh service NSClientt++
Tích dấu vào mục Alow service to interfac with desktop
H nh 4.2: Phần mềm NSClient++
Chỉnh sửa tập tin NSC.INI (trong thư mục C:\NSClient++):
Trang 18Nếu cài đặt đúng thì một biểu tượng mới sẽ xuất hiện trong khay hệ thống
Đến đây ta có thể thêm máy Windows vào tập tin cấu hình của Nagios để bắt đầu giám sát
Trang 20Lưu lại tập tin commands.cfg
4.6 Khởi động ại dịch vụ Nagios
Kiểm tra xem các thông tin cấu hình có lỗi gì không với lệnh
Trang 214.7 Kết quả giám sát trên Server 2008
H nh 4.3: Thông tin các dịch vụ trên winserver
Theo hình ta có thể thấy các thông tin vê tài nguyên hệ thống trên máy Window server như:
- Dung lượng ổ đĩa C: 39,99Gb, đã sử dụng 2,64Gb (7%), còn trống 37,35Gb (93%) Nếu dung lượng ổ đĩa sử dụng trên 80% sẽ bật cảnh báo WARNING, và CRITICAL nếu sử dụng trên 90% Tương tự với Memmory Usage
- Tải CPU, Explore đang ở trạng thái OK tức là hoạt động bình thường
- Phiên bản của NSClient++ đang sử dụng là phiên bản 3.1.14
- Thời gian hoạt động của máy là 13h43 phút
Trang 22H nh 4.4: Thông tin về Winserver
Theo hình ta có thể thấy thông tin về máy window với địa chỉ IP Address là 192.168.1.10, trạng thái host: Up (hoạt động bình thường), thời gian cập nhật cuối cùng (22/12/2014)…
Trang 23Chương 5 NAGIOS GIÁM SÁT CÁC DỊCH VỤ MẠNG
5.1 Yêu cầu
Để giam sát các dịch vụ trên máy server trước tiên ta phải cài đặt các dịch vụ đó trên máy window Ở đây ta giám sát các dịch vụ mạng trên máy Window Server như: HTTP, DNS, FTP, SMTP nên ta phải cài đặt các dịch vụ đó trên máy Window server
Và ta cũng phải cài NSClient++ trên Windows Server để giao tiếp với máy Centos cài Nagios Cài đặt NSClient++ và tùy chỉnh như ở chương 4
- Trên máy Centos ta cũng phải tùy chỉnh file nagios.cfg để cho phép giám sát máy Windows
Trang 245.2 Giám sát dịch vụ HTTP
Plugin check_http được dùng để giám sát giao thức HTTP, dùng plugin này ta có
thể giám sát được thời gian hồi báo, mã lỗi, chuỗi trả về của HTML, chứng chỉ chứng thực của máy chủ…
Trong tập tin commands.cfg ta định nghĩa lệnh check_http như sau:
Trang 265.5 Giám sát dịch vụ DNS
Dùng plugin check_dns có sẵn trong thư viện của Nagios để giám sát dịch
vụ này Do chưa có định nghĩa trong commands.cfg nên ta tiến hành định nghĩa cho
plugin này
define command{
command_namecheck_dns
command_line$USER1$/check_dns - s $HOSTADDRESS$ - H $ARG1$ - a
$ARG2$ - w $ARG3$ - c $ARG4$
Với định nghĩa dịch vụ trên Nagios sẽ kiểm tra máy chủ DNS Server với Host
Name ngoclong.com có phải ở địa chỉ 192.168.1.10 không Nếu không sẽ sinh cảnh báo
CRITICAL hoặc nếu DNS Server không hồi báo trong 15s sẽ sinh cảnh báo
WARNING và CRITICAL nếu không hồi báo trong 25s
Tương tự với các dịch vụ khác thì ta cần định nghĩa các dịch vụ,khai báo trong commands.cfg va windows.cfg
Sau đó tiến hành kiểm tra thông tin cấu hình có lỗi gì không bằng lệnh:
Trang 275.6 Kết quả giám sát Server Windows
Hình 5.1: Danh sách các dịch vụ được cấu h nh(DNS, FTP,HTTP,SMTP…)
Theo hình ta có thể thấy các thông tin về các dich vụ mà ta tiến hành giám sát đó
là DNS, FTP, HTTP, SMTP
Ở đây các dịch vụ HTTP, DNS và SMTP đang ở chế độ OK tức là hoạt động bình thường Dịch vụ FTP, SSH đang ở chế độ CRITICAL là do ta chưa khởi động trên máy server Các dịch vụ khác như DHCP, IMAP… không xuất hiện trên giao diện wed
là do ta chưa định nghĩa và cấu hình chúng trên Window server