LUẬN VĂN TỐT NGHIỆP CÀI ĐẶT VÀ CẤU HÌNH GIÁM SÁT MẠNG NAGIOS
Trang 1Đồ án tốt nghiệp: Giám sát hạ tầng mạng NAGIOS GVHD: Đỗ Ngọc Thúy Quỳnh
CÀI ĐẶT VÀ CẤU HÌNH GIÁM SÁT MẠNG VỚI NAGIOS
Yêu cầu hệ thống:
Yêu cầu để chạy được Nagios là một máy tính chạy trên nền Linux (hoặc các phiênbản được phát triển từ nhân UNIX) và một trình biên dịch C Tuy nhiên chúng ta cũngcần cấu hình TCP/IP vì hầu hết các dịch vụ kiểm tra sẽ được hiện qua mạng
Ngoài ra, nếu chúng ta sử dụng kèm với CGIs thì chúng ta cần thêm một số phầnmềm sau:
Máy chủ chạy webserver
Thomas Boutell của thư viện gd với phiên bản 1.6.3 hoặc cao hơn
Một số thông tin cần thiết:
Thư mục sẽ được cài đặt mặc định: /usr/local/nagios
Nagios sẽ tự động theo dõi một số dịch vụ trên máy tính cục bộ của bạn (CPU, Đĩacứng, v.v…)
Giao diện web sẽ truy cập http://localhost/nagios
I Cài đặt và cấu hình NAGIOS:
Trước tiên ta sẽ download phiên bản mới nhất của nagios theo địa chỉ sau Sau đógiải nén vào thư mục nào đó bất kỳ Đối với nagios core nếu bạn đăng ký làm thành viên
ở forum thì sẽ được sự hỗ trợ của nhà sản xuất Nagios là phiên bản dành cho hệ điều hệđiều hành mã nguồn mỡ vì thế nên Nagios free hoàn toàn
Website Download : http://www.nagios.org/download
Trang 2Bước 1 Chuyển về quyền Root trong khi thực hành các thao tác cài đặt:
Bạn sẽ cần phải có quyền root để cài đặt Nagios bởi vì trong lúc cấu hình ta cần quyền ROOT để được tạo user và group, sửa đổi các máy chủ web, cấu hình tập tin, khởi động các dịch vụ service… Chúng ta có thể đăng nhập lúc khởi động hệ điều hành hoặc
sử dụng lệnh
Su root để thay đổi để đăng nhập vào Root.
Bước 2 Update các gói ứng dụng:
Hãy kiễm tra xem hệ điều hành bạn dang sử dụng đã có các gói
•Apache : Hổ trợ dịch vụ httpd
•GCC compiler : Hổ trợ Java
•GD development libraries : Hổ trợ giao diện đồ họa
Nếu version của các ứng dụng trên đã cũ bạn có thể update bẳng các câu lệnh:
[root@localhost~]# yum install httpd
[root@localhost~]# yum install gcc
[root@localhost~]# yum install glibc glibc-common
[root@localhost~]# yum install gd gd-devel
Và sau khi update xong ta khởi động dich vụ Httpd
[root@localhost~]# service httpd start
Bước 3.0 Chúng ta tạo user nagios, set password
Trang 3Đồ án tốt nghiệp: Giám sát hạ tầng mạng NAGIOS GVHD: Đỗ Ngọc Thúy Quỳnh
Bước 3.1 Tạo thư mục cài đặt cho nagios
[root@localhost~]# mkdir /usr/local/nagios
Thay đổi homdirecstory của nagios
[root@localhost~]# chown nagios.nagios /usr/local/nagios
Bước 3.2 Tiếp theo chúng ta sẽ tạo một group mới mà các member của nó gồm
những người sử dụng webserver và Nagios Và các group khác như Apache
[root@localhost~]# groupadd nagioup
[root@localhost ~]# usermod -G nagioup nagios
[root@localhost ~]# usermod -G nagioup apache
Bước 4.0 Tiếp theo sau khi download bản nagios 3.2.0 ta tiến hành giải nén và cài
đặt
[root@localhost nagios-3.2.0]#./configure - -prefix=/usr/local/nagios
Với - -prefix=/usr/local/nagios là chỉ ra thư mục mà bạn sẽ cài đặt nagios đã được tạo ở bước trên
Trang 4Bước 4.1 Sau khi chương trình cài đặt xong sẽ xuất ra các thông báo chỉ dẫn bước
cài đặt kế tiếp Chúng ta để ý dòng cuối cùng “nếu nhìn các vấn đề trên không có gì trụctrặc, bước tiếp theo hãy gỏ make all” Những chỉ dẫn khá là chi tiết, thông thường các lỗihay xuất hiện ở đây là chúng ta không thể thêm vào các tiền tố prefix do thiếu các bảnGCC++ chưa được cài đặt hoặc update
Trang 5Đồ án tốt nghiệp: Giám sát hạ tầng mạng NAGIOS GVHD: Đỗ Ngọc Thúy Quỳnh
Bước 4.2 Tiếp theo ta sẽ biên dịch và cài dặt CGIs (CGIs được tích hợp trong file
cài dặt của nagios 3.2.0) Và ta thực hiện việc cài đặt với lệnh sau đây
[root@localhost nagios-3.2.0]# make all
Trang 6Các ứng dụng GCC++ sẽ được giải nén Các ứng dụng này sẽ được sử dụng khi ta
mở chương trình duyệt nagios Quá trình cài đặt các ứng dụng phụ này của nagios rất đơn giản và ít xảy ra lỗi ở gian đoạn cài đặt này
Việc cài đặt các gói ứng dụng này khá đơn giản Nếu không có gì trục trặc thì kết thúc việc cài đặt sẽ là việc xuất hiện các bước cài đặt
Nếu có trục trặc bạn nên xem lại việc đã cài đặt ứng dụng GCC++ chưa hoặc là xemlại việc giải nén file Cũng có thể là do file bị mất mát trong lúc download
Trang 7Đồ án tốt nghiệp: Giám sát hạ tầng mạng NAGIOS GVHD: Đỗ Ngọc Thúy Quỳnh
Bước 4.3 Tiếp theo ta tiến hành cài đặt những chương trình và các file HTML (giao
diện trang web của nagios) với lệnh sau đây:
[root@localhost nagios-3.2.0]# make install
Bước 4.4 Tiếp theo ta sẽ cài đặt các mẫu init script vào / etc/ rc.d / init.d / nagios
và cài đặt file config và commandmod với lệnh sau đây:
[root@localhost nagios-3.2.0]#make install-init
[root@localhost nagios-3.2.0]#make install-config
[root@localhost nagios-3.2.0]#make install-commandmod
Trang 8Tiếp theo ta cài đặt nagios vào Httpd Việc cài đặt Webcof vào Httpd nhằm chép
các file thư mục của web nagios vào service httpd để sau này sử dụng giao diện web.[root@localhost nagios-3.2.0]# make install-webconf
Sau khi cài đặt xong trong thư mục gốc của NAGIOS gồm có các thư mục sau:
Trang 9Đồ án tốt nghiệp: Giám sát hạ tầng mạng NAGIOS GVHD: Đỗ Ngọc Thúy Quỳnh
Các
thư mục Nội dung
bin/ Lõi chương trình của nagios
etc/ CGI được đặt ở đây Các thư mục chính như Main , resource , object và tập tin cấu hình
share/ Các file HTML cho giao diện và tài liệu web trực tuyến
var/ Các thư mục rỗng log file , status file , retention file , etc
Libexec Các thư mục chứa các file lưu trữ của nagios plugin
var/rw Các thư mục rỗng chứa tập lệnh bên ngoài
Bước 5 Tiếp theo ta thiết lập password cho user nagiosadmin nhằm đăng nhập
website của nagios Việc thiết lập password giúp việc bảo mật dữ liệu của các cấu hình nagios
[root@localhost nagios-3.2.0]# htpasswd -c /opt/nagios/etc/htpasswd.users
nagiosadmin
Trang 10Bước 6 Chúng ta sẽ cài đặt nagios plugin-1.4.13 Plugin dùng để thể hiện các báo
cáo của nagios Nó có sẵn các trường được thiết lập sẵn Chúng ta sẽ để đường dẫn mặc
định là /usr/local/nagios/libexec trong lúc cài đặt nếu các file của nagios plugin không
được đặt đúng thư mục trên thì chúng ta có thể tìm đến nơi mà bạn lỡ cài đặt nhầm hãy copy các file trong thư mục đó và để vào thư mục đúng như trên
Các bước cài đặt của nagios plugin khá đơn giản Thông thường các lỗi thường gặp
ở lúc cài đặt nagios core Lưu ý hãy chắc là bạn đã cài đặt nagios core trước lúc cài đặt nagios plugin này Nếu không thì sau này bạn không thể sử dụng được các chức năng của nagios plugin
[root@localhost nagios-plugins-1.4.13# /configure – prefix=/opt/nagios/libexec[root@localhost nagios-plugins-1.4.13]# make
[root@localhost nagios-plugins-1.4.13]# make install
Website Download : http://www.nagios.org/download
Trang 11Đồ án tốt nghiệp: Giám sát hạ tầng mạng NAGIOS GVHD: Đỗ Ngọc Thúy Quỳnh
Bước 7 Trước khi khởi động dich vụ nagios chúng ta phải edit lại file contacts.cfg
Bởi vì ở file contact.cfg này lưu trử thong tin account login của nagios Và quantrọng hơn nữa đây là phần dùng để edit lại địa chỉ mail của người quản lý
Nếu nagios phát hiện ra lỗi nào đó trên hệ điều hành thì nó sẽ lập tức gửi mail thôngbáo đến cho chúng ta Đây là một đặc điểm cần thiết cho người quản trị mang
Và chúng ta sẽ edit file contacts.cfg qua lệnh sau:
[root@localhost nagios-3.2.0]# vi /opt/nagios/etc/objects/contacts.cfg
Bạn có thể thay thế Contact_name và email address.
Trang 12Bước 8 Thiết lập chế độ khởi động cùng khi hệ điều hành khởi động và xem lại quá
trình khởi động ban đầu bằng file config Nagios sẽ đọc tất cả các file config được gọi trong file cấu hình nagios.cfg
[root@localhost nagios-plugins-1.4.11]# chkconfig nagios
[root@localhost nagios-plugins-1.4.11]# chkconfig nagios on
[root@localhost nagios-plugins-1.4.11]# /opt/nagios/bin/nagios -v
/opt/nagios/etc/nagios.cfg
Trang 13Đồ án tốt nghiệp: Giám sát hạ tầng mạng NAGIOS GVHD: Đỗ Ngọc Thúy Quỳnh
Nagios sẽ load file nagios.cfg và xem kiểm tra tổng quát tất cả việc cài đặt nagios.Nếu có lỗi sảy ra nagios sẽ đưa ra massager thông báo rất rõ ràng
Quá trình kiểm tra này sẽ lần lượt load tất cả các file được thiết lập trong filenagios.cfg Nếu thấy xuất hiện lỗi bạn hãy theo các thông báo trên và chỉnh sửa lại theođúng chương trình
Việc chỉnh sửa các file config khá dễ dàng Nếu bạn ko có thời gian hãy lên forumcủa nagios để download các file config được thiết lập sẵn của các thành viên khác, nhưthế sẽ rất dễ dàng Lưu ý bạn nên tự config các file này vì lúc config thì bạn sẽ hiểu rõ vấn
đề hơn nếu nagios sảy ra lỗi
Trang 14Và các file được thiết lập này bao gồm các file commands.cfg, contacts.cfg,
Và nếu việc kiểm tra ko có lổi giống như bảng thông báo sau Bây giờ chúng ta có thể bắtdầu khởi động dich vụ nagios
Trang 15Đồ án tốt nghiệp: Giám sát hạ tầng mạng NAGIOS GVHD: Đỗ Ngọc Thúy Quỳnh
Bước 9.0 Sau khi tiến hành xong các việc kiểm tra nếu ko có lỗi sảy ra chúng ta có
thể khởi động service của nagios qua câu lệnh
[root@localhost~]#service nagios start
Bước 9.1 Để khởi đông giao diện web của nagios chúng ta có thể sử dụng 2 cách để
đăng nhập
Cách 1 : Http://localhost/nagios
Cách 2 : Http://ip_máylocal/nagios (Ví dụ: http://127.0.0.1/nagios)
Trang 16Đến đây chúng ta đã có thể chạy nagios với giao diện web thông qua địa chỉhttp://localhost/nagios khi truy cập vào địa chỉ trên hệ thống sẽ yêu cầu quyền hạn vàchúng ta có thể truy cập với tài khoản mà chúng ta đã tạo ở trên.
Khi đăng nhập thành công Chúng ta chọn vào Services Detail để xem chi tiết cácdịch vụ được theo dõi trên máy tính của cúng ta Tuy nhiên chúng ta cần có thời gian đểnagios thu thập thông tin và đua ra kết quả cho chúng ta
Giám sát một số dịch vụ:
Mỗi một dịch vụ, một ứng dụng hay một giao thức cụ thể, khi giám sát cần có mộtplugin để hổ trợ Các plugin này chúng ta có thể tìm thấy trong thư mục đã cài đặt nagios,thường thì các plugin này là cơ bản để hỗ trợ một số dịch vụ cơ bản
Để tìm các plugin hỗ trợ cho các dịch vụ cao hơn, chúng ta có thể truy cập websitehttp://www.nagiosExchange.org để tìm và tải về Ngoài ra, chúng ta cũng có thể tự mìnhviếc một plugin để hổ trợ cho một dịch vụ nào đó
Sau khi khởi động xong sẽ xuất hiện bảng đăng nhập(Authentication required) Sau
đó chúng ta sẽ đang nhập vào nagios với user admin mặc định là : nagiosadmin và password là lúc ta set ở bước 5 Đối với user thì chúng ta có thể thay đổi được trong
file /usr/local/nagios/contacts.cfg
Giao diện chính của nagios rất đơn giản với các tab rõ ràng dể sử dụng Nếu có gì thắc mắc bạn sẽ tham khảo them ở phần Documentation Ở đó bạn sẽ được hướng dẫn một cách cụ thể
Trang 17Đồ án tốt nghiệp: Giám sát hạ tầng mạng NAGIOS GVHD: Đỗ Ngọc Thúy Quỳnh
Nhưng các tab ứng dụng phía dưới như tactical overview, map Service….được thựcthi thì chúng ta phải chỉnh sửa lại phai cấu hình hoặc có thể tạo ra 1 File cấu hình khácvới những thông số lọc tùy chọn
Bước 10.0 Cách cấu hình 1 file với các thông số
Chúng ta có thể copy file cấu hình chuẩn của nagios là Localhost.cfg sau đó chúng
ta sẽ Edit lại thành file cấu hình mới của chúng ta
Và câu lệnh copy sẽ như sau:
[root@localhost ~]# cp /opt/nagios/etc/objects/localhost.cfg
/opt/nagios/etc/objects/ File_name_moi cfg
Sau khi copy xong ta edit file vừa copy
[root@localhost ~]# vi /opt/nagios/etc/objects/ File_name_moi cfg
Bước 10.1 Định nghĩa một host
Đầu tiên để giám sát một dịch vụ nào đó Chúng ta cần định nghĩa một host gắn kếtvới dịch vụ đó Chúng ta có thể đặt định nghĩa host bất kỳ tập tin cấu hình đối tượng nàođược qui định bởi tập tin cfg hoặc đặt trong thư mục được chỉ định bởi thư mục cfg Nếu bạn muốn theo dõi một nhiều dịch vụ cùng lúc trên một máy tính từ xa (ta gọi máy đó là quoctuan-vanhien) Việc định nghĩa host có thể đặt một tập tin riêng hoặc đặt trong tập tin cấu hình điều được
define host{
Trang 18use generic-hosthost_name quoctuan-vanhienalias Some Remote Host
hostgroups allhosts}
Định nghĩa một số dịch vụ
Đối với mỗi dịch vụ mà chúng ta muốn theo dõi thì chúng ta cần tao một định nghĩa cho dịch vụ đó trong nagios để nó kết hợp với định nghĩa host mà ta vừa tạo ở trên Sau đây là việc theo dõi một số dịch vụ cơ bản
• Giám sát HTTP
Nếu chúng ta muốn theo dõi server web tại một số thời điểm Thì chúng ta có thể sửdụng plugin check_http Plugin này có thể hiểu được giao thức http và có thể giám sáttrong các lần hồi đáp yêu cầu từ server, lỗi codes, những chuỗi định dạng html, chứngthực server, v.v…
Tập tin commands.cfg chức một số lệnh đã được định nghĩa để sử dụng cho các plugin check_http Xem đoạn mã sau
define command{
name check_httpcommand_name check_httpcommand_line $USER1$/check_http -I $HOSTADDRESS$ $ARG1$}
Và đây là một định nghĩa đơn giản để giám sát giao thức http trên máy vanhien Xem đoạn mã sau
quoctuan-define service{
host_name quoctuan-vanhienservice_description HTTP
check_command check_http}
Chú thích: dịch vụ sẽ giám sát giao thức http trên máy quoctuan-vanhien Nó sẽ đưa
ra cảnh báo nếu serverweb không hồi đáp trong vòng 10 giây (mặc định) hoặc nếu html trả về mã lỗi (403,404, v.v…)
Và đây là một định nghĩa tối ưu hơn Định nghĩa dịch vụ này sẽ kiểm tra xem đườngdẫn URL /download/index.php có chứa chuỗi “latest-version.tar.gz”, nếu chuỗi không tìmthấy thì nó sẽ đưa ra thông báo lỗi hoặc serverweb không trả lời sau 5 giây
define service{
host_name quoctuan-vanhienservice_description Product Download Linkcheck_command check_http!-u /download/index.php -t 5 -s
"latest-version.tar.gz"
}
Trang 19Đồ án tốt nghiệp: Giám sát hạ tầng mạng NAGIOS GVHD: Đỗ Ngọc Thúy Quỳnh
• Giám sát FTP
Khi chúng ta muốn giám sát FTP server, chúng ta có thể sử dụng plugin check_ftp Các lệnh dùng để định nghĩa cho check_ftp được nằm trong tập tin commands.cfg Xem đoạn code sau
check_command check_ftp}
Định nghĩa dịch vụ trên sẽ giám sát hoạt động của FTP server và sẽ đưa ra thông báolỗi nếu FTP server không hồi đáp sau 10 giây
Và sau đây là một định nghĩa tốt hơn cho việc giám sát FTP server chạy trên port
1023 của máy quoctuan-vanhien Nó sẽ đưa ra thông báo nếu server không hồi đáp sau 5 giây hoặc nếu máy chủ hồi đáp không tìm thấy chuỗi “Pure-FTPd [TLS]”
define service{
host_name quoctuan-vanhienservice_description Special FTP check_command check_ftp!-p 1023 -t 5 -e "Pure-FTPd [TLS]"}
Tương ứng như thế trên quoctuan-vanhien sẽ có một định nghĩa về dịch vụ giám sát SSH server như sau:
define service{
host_name quoctuan-vanhienservice_description SSH
check_command check_ssh}
Định nghĩa này sẽ giám sát SSH server và đưa ra thông báo khi SSH server không hồi đáp trong vòng 10 giây
Trang 20Và dưới đây là một định nghĩa đầy đủ hơn cho việc giám sát SSH server Định nghĩadịch vụ này sẽ giám sát SSH server và đưa ra thông báo cho chúng ta khi SSH server hồiđáp trong vòng 5 giây hoặc phiên bản của server không đúng với chuỗi “OpenSSH_4.2”define service{
host_name quoctuan-vanhienservice_description SSH Version Check check_command check_ssh!-t 5 -r "OpenSSH_4.2"
Định nghĩa dịch vụ này sẽ giám sát tôt hơn Nó sẽ đưa ra thông báo sau 5 giây nếu SMTP server không hồi đáp hoặc nếu server hồi đáp không có chuỗi
Trang 21Đồ án tốt nghiệp: Giám sát hạ tầng mạng NAGIOS GVHD: Đỗ Ngọc Thúy Quỳnh
Và tương ứng thì cũng có một định nghĩa dịch vụ được chạy trên quoctuan-vanhiendùng để giám sát dịch vụ này Xem định nghĩa đơn giản sau
define service{
host_name quoctuan-vanhienservice_description POP3
}
Định nghĩa này sẽ giám sát dịch vụ pop3 và đưa ra cảnh báo khi server mail khôngtrả lời sau 10 giây Để có được sự giám sát tốt hơn, chúng ta hãy sử dụng đoạn mã sau.define service{
host_name quoctuan-vanhienservice_description POP3 Response Check check_command check_pop!-t 5 -e "mygreatmailserver.com"}
Đoạn mã sẽ giám sát POP3 và chi thông báo khi server không hồi đáp sau 5 giâyhoặc server hồi đáp không tìm thấy chuỗi “mygreatmailserver.com”
Đoạn code này cho ta việc giám sát IMAP treen quoctuan-vanhien nếu server IMAPhồi đáp trong vòng 5 giây hoặc hồi đáp không tìm thấy chuỗi “mygreatmailserver.com”
Trang 22Ta sẽ thay đổi một số các biến số của các service cần được nagios ghi lại nhưPING, HTTP, CURREN USER, TATOL PROSSCER…của file moi copy Các thông sốnhư host_name, ip address, alias…
Và Ở đây chúng ta cần lưu ý tới các thông số notifications_enabled nếu nó =1 nghĩa
là nó được kích hoạt và =0 nghĩa là chưa được kich hoạt
Bước 10.2 Sau khi hoàn tất việc Edit file tiếp theo ta sẽ tiến tới thiết lập việc file mà
chúng ta vừa tạo sẽ được load lên hệ thống nagios File mà chúng ta cần Edit đó là
Trang 23Đồ án tốt nghiệp: Giám sát hạ tầng mạng NAGIOS GVHD: Đỗ Ngọc Thúy Quỳnh
Bước 10.3 Tiếp theo chúng ta cài đặt hệ thống giám sát nagios trên hệ điều hành windows server.
Tuy đây là phần mềm hỗ trợ cho các hệ thống linux nhưng nó cung có khả năng giám sát một máy tính với hệ thống windows Nó có khả năng giám sát một số dịch vụ và thuộc tính của một máy tính windowns như:
Giám sát bộ nhớGiám sát cpuGiám sát đĩa cứngGiám sát các tiến trìnhCác dịch vụ (HTTP, FTP, SSH, v.v…)v.v…
Khi giám sát một máy tính windows chúng ta cần cài đặt một phần mềm hỗ trợ từ phía máy tính windows để phần mềm quản lý của chúng ta có thể thu thập được thông tin trả về từ phần mềm nằm trên máy tính windows Phần mềm client này hoạt động như một proxy giữa các plugin của nagios và các dịch vụ trên máy tính windows
Ở đây chúng ta có thể sử dụng phần mềm client là NSClient++ và sử dụng plugin check_nt trên nagios
CPU
Bộ nhớ Đĩa cứng Tiến trình
Trang 24Các bước cần thực hiện để giám sát một máy chủ windows như sau:
- Cài đặt phần mềm client (NSClient++)
- Tạo một host mới và các định nghĩa dịch vụ để giám sát máy tính windows
- Khởi động lại nagios
Chú ý:
Một plugin check_nt được định nghĩa trong tập tin commands.cfg
Một host mới được tạo trong tập tin templates.cfg
Tập tin cấu hình có thể tìm thấy trong thư mục: /usr/local/nagios/etc/objects/
Để giám sát một máy tính windows chúng ta cần sửa lại tập tin cấu hình của nagios như sau
vi /usr/local/nagios/etc/nagios.cfgTìm và bỏ đi dấu “#” tại dòng sau:
#cfg_file=/usr/local/nagios/etc/objects/windows.cfg
Sau đó lưu và thoát trình soạn thảo vi
windows.cfg là tập tin cấu hình để giám sát máy tính windows Chúng ta có thể chỉnh sửa lại tập tin cấu hình này cho phù hợp với như cầu của chúng ta hoặc chúng ta có thể tạo mới một tập tin khác
• Cài đặt phần mềm client NSClient++
- Chúng ta có thể tải phần mềm tại địa chỉ: http://sourceforge.net/projects/nscplus
- Tạo một thư mục trên máy tính windows (C:\NSClient++) và giải nén tập tinchúng ta vừa tải được
Trang 25Đồ án tốt nghiệp: Giám sát hạ tầng mạng NAGIOS GVHD: Đỗ Ngọc Thúy Quỳnh