Hướng dẫn này bao gồm quá trình cài đặt Nagios trên hệ điều hành Ubuntu và cũng là hướng dẫn sử dụng, cách cấu hình Nagios. Cần phải đặt lệnh sudo trước các lệnh nếu nó không làm việc.Yêu cầu các gói tinCác gói cần được cài đặt+ Apache2+ Biên dịch gói GCC và phát triển thư viện+ Thư viện phát triển GD
Trang 1HƯỚNG DẪN SỬ DỤNG NAGIOS
Hướng dẫn này bao gồm quá trình cài đặt Nagios trên hệ điều hành Ubuntu và cũng là hướng dẫn
sử dụng, cách cấu hình Nagios Cần phải đặt lệnh sudo trước các lệnh nếu nó không làm việc
Yêu cầu các gói tin
Các gói cần được cài đặt
+ Apache2
+ Biên dịch gói GCC và phát triển thư viện
+ Thư viện phát triển GD
Bạn có thể sử dụng apt-get để cài đặt gói tin bằng việc chạy các lệnh sau:
sudo apt-get install apache2
sudo apt-get install build-essential
sudo apt-get install libgd2-dev
Nếu các lệnh không làm việc thì cần cài đặt bằng tay từ đĩa CD Ubuntu
Cài đặt
Bước 1 Tạo thông tin tài khoản
Trước tiên đăng nhập với quyền root
Sudo –s
Tạo tài khoản người dùng mới Nagios và đặt mật khẩu
/usr/sbin/useradd nagios
passwd nagios
Trên máy chủ ubuntu, bạn cần thêm một nhóm nagios ( nó không được tạo ra theo mặc đinh) Bạn có thể bỏ qua các bước này trên phiên bản dành cho desktop
/usr/sbin/groupadd nagios
/usr/sbin/usermod -G nagios nagios
Tạo một nhóm nagcmd mới cho phép các lệnh mở rộng để được gửi thông qua giao diện web Thêm cả người dùng Nagios và người sử dụng apache vào một nhóm
/usr/sbin/groupadd nagcmd
/usr/sbin/usermod -G nagcmd nagios
/usr/sbin/usermod -G nagcmd www-data
Bước 2 Tải phần mềm Nagios và các Plugins của nó
Tạo một vùng lưu trữ tệp tin được tải về
Trang 2mkdir ~/downloads
cd ~/downloads
Tải về mã nguồn tarballs của cả Nagios và Nagios plugins Các plugin và mã nguồn có thể tìm thấy trên trang web www.nagios.org
Bước 3 Biên dịch và cài đặt Nagios
Giải nén mã nguồn Nagios
cd ~/downloads
tar xzf nagios-3.xx.tar.gz (3.xx là phiên bản của nagios)
cd nagios-3.xx
Chạy tệp tin Nagios configure, thông qua tên của nhóm được tạo ra giống như sau:
./configure with-command-group=nagcmd
Biên dịch mã nguồn
Make all
Cài đặt những chương trinh, những tập tin cấu hình mẫu và cho phép thiết lập các lệnh mở rộng
make install
make install-init
make install-config
make install-commandmode
Bước 4 Lựa chọn cấu hình
Tập tin cấu hình mẫu được cài đặt trong thư mục /usr/local/nagios/etc Những tập tin mẫu sẽ làm việc tốt cho việc bắt đầu với Nagios.Bạn cần phải thực hiện chỉ một thay đổi trước khi tiến hành chỉnh sửa tệp tin cấu hình /usr/local/nagios/etc/objects/contacts.cfg với trình soạn thảo thông dụng và thay đổi địa chỉ hòm thư liên kết với các định nghĩa liên hệ với nagiosadmin địa chỉ mà bạn muốn sử dụng để nhận được cảnh báo
gedit /usr/local/nagios/etc/objects/contacts.cfg
Bước 5 Cấu hình giao diện web
Cái đặt tệp tin cấu hình Nagios web trong thư mục Apache conf.d
make install-webconf
Tạo tài khoản nagiosadmin để đăng nhâp vào giao diện web nagios Nhớ mật khẩu dùng cho tài khoản này, sau này sẽ cần tới
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Khởi động lại Apache để thực hiện các thiết lập mới có hiệu lực
Trang 3/etc/init.d/apache2 reload
Bước 6 Biên dịch và cài đặt Nagios Plugin
Giải nén mã nguồn Nagios plugins
cd ~/downloads
tar xzf nagios-plugins-xxx.tar.gz (xxx là tên file plugin đã tải về)
cd nagios-plugins-xxx
Biên dịch và cài đặt plugins
./configure with-nagios-user=nagios with-nagios-group=nagios
make
make install
Bước 7 Bắt đầu Nagios
Cấu hình Nagios để tự động khởi động khi khởi động hệ thống
ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
Xác minh các tập tin mẫu cấu hình Nagios
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Nếu không có lỗi, bắt đầu Nagios
/etc/init.d/nagios start
Bước 8 Đăng nhập giao diện web
Bây giờ bạn có thể truy cập vào giao diện web nagios tại link sau:
http://localhost/nagios/
kích lên “service detail”, thanh điều hướng để xem chi tiết về những gì đang được theo dõi trên máy cục bộ Nó sẽ mất vài phút cho Nagios để kiểm tra tất cả các dịch vụ liên quan với máy của bạn
Cấu hình Nagios
Bước 1 Đầu tiên bạn cấu hình Nagios để giám sát máy , bạn cần chỉnh sửa một tệp tin.
Chỉnh sửa tệp tin cấu hình Nagios chính
gedit /usr/local/nagios/etc/nagios.cfg
loại bỏ dấu (#) được gắn vào dòng sau:
#cfg_file=/usr/local/nagios/etc/objects/servers
Trang 4Lưu tệp tin và thoát
Bước 2 Xác định một số định nghĩa đối tượng trong các tập tin cấu hình Nagios để theo dõi các
dịch vụ đã được thiết lập
Tạo tệp tin riêng bằng cách sử dụng lệnh sau:
gedit /usr/local/nagios/etc/objects/servers/xx.cfg
Bước 3 Tạo một định nghĩa máy chủ
Bạn có thể giám sát dịch vụ, đầu tiên cần định nghĩa một máy chủ có liên hệ với dịch vụ Xác định vị trí trong tệp tin cfg được tạo ra
Ví dụ, cho phép nói rằng bạn muốn theo dõi một loạt các dịch vụ trên một máy chủ từ xa Gọi đó
là truy nhập máy chủ từ xa Định nghĩa máy chủ có thể được đặt trong tập tin riêng hoặc bổ sung tập tin cấu hình Dưới đây là định nghĩa máy chủ truy nhập từ xa:
define host{
use generic-host ; thừa kế giá trị từ khuôn mẫu
host_name remotehost ; Tên máy chủ
alias Some Remote Host ; Tên liên kết với máy chủ
address 192.168.1.50 ; Địa chỉ IP của máy chủ
hostgroups allhosts ; Nhóm máy chủ
}
Trang 5Bước 4 Định nghĩa dịch vụ
Mỗi dịch vụ bạn muốn giám sát, bạn cần định nghĩa dịch vụ trong Nagios, cái mà liên kết với định nghĩa máy chủ bạn vừa mới tạo ra Bạn có thể đặt định nghĩa dịch vụ trong tệp tin cấu hình bởi một chỉ thị cfg_file hoặc đặt trong thư mục được quy định bởi cfg_dir
Một vài ví dụ dịch vụ định nghĩa cho giám sát dịch vụ phổ biến ( HTTP, FTP, vv…)
Giám sát HTTP
Có thể bạn sẽ muốn theo dõi các máy chủ web tại một số điểm Các plugin check_http được thiết
kế để làm điều đó Hiểu được giao thức HTTP và có thể giám sát thời gian đáp ứng, mã lỗi, chuỗi trả lời HTML, chứng thực máy chủ và nhiều hơn nữa
Commands.cfg chứa định nghĩa lệnh sử dụng plugin check_http
define command{
name check_http
command_name check_http
command_line $USER1$/check_http -I $HOSTADDRESS$ $ARG1$
}
Định nghĩa một dịch vụ đơn giản để giám sát dịch vụ HTTP trên máy chủ truy cập từ xa:
define service{
use generic-service
host_name remotehost
service_description HTTP
check_command check_http
}
Định nghĩa dịch vụ đơn giản sẽ giám sát dịch vụ HTTP chạy trên máy chủ từ xa Nó sẽ tạo ra cảnh báo nếu các máy chủ web không trả lời trong 10 giây hoặc nếu nó trả về mã lỗi HTTP( 403,
404, vv)
Định nghĩa tiên tiến hơn cho giám sát các dịch vụ HTTP được hiển thị dưới đây Định nghĩa dịch
vụ sẽ kiểm tra xem nếu /dowmload/index.php chứa chuỗi “latest-version.tar.gz” Nó sẽ sinh ra lỗi nếu chuỗi không được tìm thấy, url không hợp lệ hoặc các máy chủ web mất nhiều thời gian hơn 5 giây để trả lời
define service{
use generic-service
host_name remotehost
service_description Product Download Link
check_command check_http!-u /download/index.php -t 5 -s
"latest-version.tar.gz"
}
Giám sát FTP
Trang 6Khi bạn cần giám sát máy chủ FTP, bạn có thể sử dụng các plugin check_ftp Các commands.cfg tập tin chứa một định nghĩa sử dụng các plugin check_ftp:
define command{
command_name check_ftp
command_line $USER1$/check_ftp -H $HOSTADDRESS$ $ARG1$
}
Định nghĩa dịch vụ đơn giản để giám sát máy chủ FTP trên remotehost :
define service{
use generic-service ; thưa kế mặc định giá trị từ một mẫu
host_name remotehost
service_description FTP
check_command check_ftp
}
Định nghĩa dịch vụ sẽ giám sát máy chủ FTP và cảnh báo chung nếu máy chủ FTP không phúc đáp trong 10 giây
Một định nghĩa dịch vụ tiên tiến hơn được hiển thị dưới đây Dịch vụ này sẽ kiểm tra máy chủ FTP đang chạy trên cổng 1023 trên remotehost Nó sẽ tạo ra một cảnh báo nếu máy chủ không trả lời trong vòng 5 giây hoặc nếu các yêu cầu không chứa chuỗi “Pure-ftpd TLS”
define service{
use generic-service
host_name remotehost
service_description Special FTP
check_command check_ftp!-p 1023 -t 5 -e "Pure-FTPd [TLS]"
}
Giám sát SSH
Khi bạn cần phai theo dõi các máy chủ SSH, bạn có thể sử dụng các plugin check_ssh Các tập tin commands.cfg có chứa định nghĩa lệnh cho việc sử dụng các plugin check_ssh:
define command{
command_name check_ssh command_line $USER1$/check_ssh $ARG1$ $HOSTADDRESS$
}
Định nghĩa dịch vụ đơn giản cho việc giám sát máy chủ SSH trên remotehost:
define service{
use generic-service
host_name remotehost
service_description SSH
check_command check_ssh
}
Trang 7Định nghĩa dịch vụ sẽ giám sát dịch vụ ssh và cảnh báo chung nếu máy chủ SSH không phúc đáp trong vòng 10 giây
Giám sát SMTP
Plugin check_smtp có thể sử dụng cho việc giám sát máy chủ hòm thư của bạn Tệp tin commands.cfg chứa lệnh định nghĩa cho việc sử dụng check_smtp:
define command{
command_name check_smtp
command_line $USER1$/check_smtp -H $HOSTADDRESS$ $ARG1$
}
Định nghĩa dịch vụ đơn giản giám sát máy chủ SMTP trên remotehost:
define service{
use generic-service
host_name remotehost
service_description SMTP
check_command check_smtp
}
Định nghĩa dịch vụ sẽ giám sát dịch vụ SMTP và cảnh báo chung nếu máy chủ SMTP không phúc đáp trong vòng 10 giây
Dịch vụ này sẽ kiểm tra máy chủ SMTP và cảnh báo chung nếu máy chủ không phúc đáp trong vòng 5 giây hoặc nếu phúc đáp từ máy chủ không chứa”mygreatmailserver.com”
define service{
use generic-service ; Inherit default values from a
host_name remotehost
service_description SMTP Response Check
check_command check_smtp!-t 5 -e "mygreatmailserver.com"
}
Giám sát POP3
Plugin check_pop có thể sử dụng giám sát dịch vụ POP3 trên máy chủ thư điện tử Tệp tin commands.cfg chứa định nghĩa lệnh cho việc sử dụng plugin check_pop:
define command{
command_name check_pop
command_line $USER1$/check_pop -H $HOSTADDRESS$ $ARG1$
}
Định nghĩa dịch vụ đơn giản cho việc giám sát dịch vụ POP3 trên remotehost:
define service{
use generic-service
host_name remotehost
Trang 8service_description POP3
check_command check_pop
}
Định nghĩa dịch vụ sẽ giám sát dịch vụ POP3 và sinh ra cảnh báo nếu máy chủ POP3 không đáp ứng trong vòng 10 giây
Dịch vụ sẽ kiểm tra dịch vụ POP3 và sinh cảnh báo nếu máy chủ không phúc đáp trong vòng 5 giây hoặc nếu phúc đáp từ máy chủ không chứa”mygreatmailserver.com”
define service{
use generic-service
host_name remotehost
service_description POP3 Response Check
check_command check_pop!-t 5 -e "mygreatmailserver.com"
}
Giám sát IMAP
Plugin check_imap có thể sử dụng dịch vụ giám sát IMAP4 trên máy chủ hòm thư điện tử Tệp tin commands.cfg chứa định nghĩa lệnh cho việc sử dụng plugin check_imap:
define command{
command_name check_imap command_line $USER1$/check_imap -H $HOSTADDRESS$ $ARG1$
}
Định nghĩa dịch vụ đơn giản cho việc giám sát dịch vụ IMAP4 trên remotehost:
define service{
use generic-service
host_name remotehost
service_description IMAP
check_command check_imap
}
Định nghĩa dịch vụ sẽ giám sát dịch vụ IMAP4 và sinh cảnh báo nếu máy chủ IMAP không phúc đáp trong vòng 10 giây
Dịch vụ sẽ kiểm tra dịch vụ IMAP4 và sinh cảnh báo nếu máy chủ không phúc đáp trong vòng 5 giây hoặc nếu phúc đáp từ máy chủ không chứa “mygreatmailserver.com”
define service{
use generic-service
host_name remotehost
service_description IMAP4 Response Check
check_command check_imap!-t 5 -e "mygreatmailserver.com"
}
Khởi động Nagios
Trang 9Một khi bạn đã thêm vào các máy chủ mới và định nghĩa dịch vụ các tệp tin cấu hình đối tượng, bạn đã sẵn sàng bắt đầu giám sát chúng Để làm điều này bạn sẽ phải xác minh cấu hình và khởi động lại Nagios
Nếu quá trình xác minh thông báo lỗi, sửa chữa lại tệp tin cấu hình trước khi tiếp tục Hãy chắc chắn rằng bạn không bắt đầu Nagios cho đến khi quá trình xác minh hoàn thành mà không có bất
kỳ lỗi nào