huong dan nagi os
Post on 30-Dec-2015
69 Views
Preview:
TRANSCRIPT
Hướng dẫn cài đặt và cấu hình Nagios bằng hình ảnh15:33 | 09/08/2010Nagios là một phần mềm nguồn mở hỗ trợ cho người quản trị mạng trong việc giám sát các Host, Services (DHCP, HTTP, ...) và 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,.. trong hệ thống mạng.
Hệ thống phát cảnh báo linh động có thể báo động bằng âm thanh, qua e-mail hay phát SMS.
Bài viết sau Kênh Giải Pháp VN sẻ hướng dẫn các cài đặt và cấu hình NagiosĐầu tiên bạn cần cài đặt những dịch vụ cần thiết để có thể cài đặt thành công Nagios , bạn cứ gõ lệnh sau đây vào để hệ thống tự động cài đặt
yum install httpd gcc glibc glibc-common gd gd-devel php
Đến đây bạn chọn Yes nhấn Y để tiếp tục download các gói phần mền cần thiết
Bạn chọn Yes nhấn Y để đồng ý việc cài đặt các phần mền trên
Quá trình cài đặt các dịch vụ cần thiết đã xong bước tiếp theo Bạn tạo các user và group cần thiết như sau
useradd -m nagios
groupadd nagcmd
Add các User vào các Group
usermod -a -G nagcmd nagiosusermod -a -G nagcmd apache
Bạn tạo thư mục để download các gói tin cài đặt của Nagios
mkdir /download
Tiến hành download
Bạn download theo link sau để có phiên bản mới nhất :
http://www.nagios.org/download/download.php
cd /download và dùng lệnh wget để down
Bạn tiến hành giải nén tar xzf nagios-3.2.1.tar.gz
cd nagios-3.2.1
Đến bước này các bạn cài đặt và cấu hình Nagios
./configure --with-command-group=nagcmd
make all
make install
make install-init
make install-config
make install-commandmode
** Bạn để ý không Start Nagios ở giai đoạn này **
Nagios đã được cài vào thư mục /usr/local/nagios/
Cài đặt Nagios Web Interface:
make install-webconf
Nagios Web Interface được cài vào /usr/local/nagios/share ( http conf file added to /etc/httpd/conf.d/nagios.conf )
Tạo Web Interface Login User:
Ở đây chúng tôi tạo User “nagiosadmin” ( trong giai đoạn này bạn đặt password user nên các bạn để ý nhớ password)
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Khởi động lại Apache:
service httpd restart
Cài đặt và cấu hình Plugins Nagios
Bạn vào thưc mục download để tiến hành download gói Plugins của Nagios
cd /downloadwget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz
Bạn tiến hành giải néntar xzf nagios-plugins-1.4.15.tar.gz
cd nagios-plugins1.4.15
Tiến hành cài đặt và cấu hình Plugins Nagios
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install
Cấu hình địa chỉ email của nagiosadmin để gửi cảnh báo
vi /usr/local/nagios/etc/objects/contacts.cfg
email nagios@localhost ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
Xác thực các thông tin cấu hình /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Total Warnings: 0Total Errors: 0
Đến đây bạn khỏi động Nagios
Nagios sẻ tự động bật khi Server startup / boot
chkconfig --add nagios
chkconfig nagios on
chkconfig httpd on
Khởi động Nagios
Quá trình cài đặt đã thành công bạn còn chờ gì nữa hãy Login vào và tận hưởng thành quả của mình
http://ip-address/nagios/
Khi bạn truy cập sẻ xuất hiện màn hình loginBạn điền Username và Password bạn tạo lúc nãyVà đây là thành quả của bạn
Chú ý :
Khi các bạn truy cập vào mà không hiển thị màn hình đăng nhập và báo không truy cập được bạn vào tắt Firewall đi nhé
#service iptables stop
Và một lỗi các bạn hay gặp là khi đăng nhập vào rồi nhưng nhấn các Menu lại thấy báo lỗi cách fix như sau :
#su -l
#passwd nagios (reset the nagios password)
#getenforce
#setenforce 0
#chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/
#chcon -R -t httpd_sys_content_t /usr/local/nagios/share/
Cài đặt Nagios
Yêu cầu
Để cài đặt phần mềm trước tiên ta phải có quyền truy cập tài khoản root.
Đảm bảo rằng các gói cài đặt sau được cài trên hệ điều hành CentOS trước khi tiếp tục:
Apache
PHP
Phần biên dịch GCC
Thư viện GD
Chúng ta có thể sử dụng lệnh yum để cài đặt các gói ứng dụng bằng các lệnh sau:
yum install httpd php
yum install gcc glibc glibc-common
yum install gd gd-devel
Tạo thông tin tài khoản người dùng
Trước tiên ta phải có quyền truy cập như là root
su -l
Tạo tài khoản nagios và mật khẩu
/usr/sbin/useradd -m nagios
passwd nagios
Tạo một nhóm người dùng mới là nagcmd, để cho phép tài khoản nagios có thể truy cập vào
giao diện web ta thêm tài khoản nagios và apache vào nhóm nagcmd
/usr/sbin/groupadd nagcmd
/usr/sbin/usermod -a -G nagcmd nagios
/usr/sbin/usermod -a -G nagcmd apache
Tải phần mềm nagios và các plug-in
Tạo một thư mục lưu trữ phần mềm tải về
mkdir ~/downloads
cd ~/downloads
Tải phần mềm nagios và plug-in tại 2 địa chỉ sau:
http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.3.tar.gz
http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.11.tar.gz
Biên dịch và cài đặt Nagios
Giải nén mã nguồn của nagios được tải về
cd ~/downloads
tar xzf nagios-3.2.3.tar.gz
cd nagios-3.2.3
Chạy tập tin kịch bản cấu hình của nagios bằng tên nhóm người dùng nagcmd đã được tạo ở
phần trên
./configure --with-command-group=nagcmd
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
Tùy chỉnh cấu hình
Những tập tin cấu hình của nagios nằm tại thư mục /usr/local/Nagios/etc.
Chỉnh sửa tập tin contacts.cfg tại/usr/local/Nagios/etc/objects/contacts.cfg để thay đổi thông tin
địa chỉ email cần dùng cho việc nhận các cảnh báo.
vi /usr/local/nagios/etc/objects/contacts.cfg
Cấu hình giao diện Web
Cài đặt tập tin cấu hình web Nagios trong thư mục conf.d của Apache.
make install-webconf
Tạo tài khoản nagiosadmin để đăng nhập vào giao diện web của Nagios.
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Khởi động lại Apache để các cài đặt mới có hiệu lực.
service httpd restart
Biên dịch và cài đặt các Plugins của Nagios
Giải nén mã nguồn của Nagios Plugins
cd ~/downloads
tar xzf nagios-plugins-1.4.11.tar.gz
cd nagios-plugins-1.4.11
Biên dịch và cài đặt plugins
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install
Bắt đầu Nagios
Thêm Nagios vào danh sách các dịch vụ hệ thống tự bắt đầu khi hệ điều hành được khởi động.
chkconfig --add nagios
chkconfig nagios on
Xác định tập tin cấu hình của Nagios xem có lỗi gì không.
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Nếu kết quả trả về là không có lỗi thì ta bắt đầu dịch vụ Nagios.
service nagios start
Sửa đổi SELinux
Hệ điều hành CentOS có ứng dụng SELinux (Security Enhanced Linux) được cài đặt mặc định
và ở chế độ Enforcing. Điều này có thể làm chúng ta không truy cập được giao diện của Nagios.
Xem thử chế độ của SELinux có phải là Enforcing không.
getenforce
Đặt lại chế độ cho SELinux là Permissive.
setenforce 0
Để thay đổi này cố định, ta phải thay đổi cấu hình của SELinux tại /etc/selinux/configvà khởi
động lại.
Thay vì phải vô hiệu hóa SELinux hoặc chuyển nó sang chế độ Permissive, ta có thể dùng các
lệnh sau để chạy CGIs của Nagios dưới chế độ Enforcing:
chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/
chcon -R -t httpd_sys_content_t /usr/local/nagios/share/
Đăng nhập vào giao diện Web của Nagios
Bây giờ ta có thể đăng nhập vào giao diện web của Nagios với tài khoản nagiosadminvà mật
khẩu đã được thiết lập lúc đầu tại địa chỉ:
http://localhost/nagios/
Tới đây là đã thành công trong việc cài đặt phần mềm Nagios.
1.1.1. Cấu hìnhNagios1.1.1.1 Cấu hình để giám sát hệ thống chạy hệ điều hành Windows
Giới thiệu
Chúng ta sẽ tiến hành cấu hình Nagios để giám sát các thông tin cơ bản của hệ thống Windows
là một máy Client mẫu (Sample Client):
Memory sử dụng
Tải CPU
Dung lượng ổ đĩa sử dụng
Trạng thái các dịnh vụ
Các tiến trình đang chạy
Khái quát cách hoạt động của Nagios với Windows
Hình 5-2 Giao tiếp giữa Nagios và Windows
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ầu ta 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. Nếu Agent không được cài đặt trên hệ thống
Windows thì ta không thể giám sát được.
Ở đâ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++ (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++.
Các bước tiến hành
Có một vài quá trình cần thực hiện để tiến hành giám sát một máy Windows đó là:
Kiểm tra các yêu cầu.
Cài đặt agent 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.
Yêu cầu
Để cấu hình Nagios giám sát một máy tính Windows ta cần cấu hình các thông tin sau:
Chỉnh sửa tập tin cấu hình Nagios:
vi /usr/local/nagios/etc/nagios.cfg
Bỏ ký tự # ở dòng sau:
#cfg_file=/usr/local/nagios/etc/objects/windows.cfg
Lưu tập tin và thoát.
Công việc vừa làm đã cấu hình cho Nagios biết để đọc các thông tin trong tập tin
/usr/local/nagios/etc/objects – là nơi thêm các thông tin về máy windows và các dịch vụ cần giám
sát.
Cài đặt Agent trên Windows
Trước khi tiến hành giám sát ta cần cài đặt agent trên Windows. Ở đây ta sử dụng NSClient++
có thể tìm thấy tại: http://nsclient.org/nscp/downloads
Tải phiên bản NSClient++ mới nhất tại: http://nsclient.org/nscp/downloads
Giải nén tập tin tải về ở thư mục C:\NSClient++
Mở cửa sổ Command Prompt
Gõ lệnh sau để cài đặt NSClient++:
o nsclient++ /install
Bật biểu tượng NSClient++ trên thanh menu hệ thống
o nsclient++ SysTray
Bật trình quản lý dịch vụ của NSClient++ để đảm bảo cho phép truyền thông giữa Nagios
Server và máy Windows.
Hình 5-3: Phần mềm NSClient++
Chỉnh sửa tập tin NSC.INI (trong thư mục C:\NSClient++):
Bỏ dấu “ ; ” ở tất cả các modules được liệt kê trong [modules] trừ CheckWMI.dll và
RemoteConfiguration.dll
Tùy chọn mật khẩu có thể thay đổi tại phần [Settings]
Bỏ dấu “ ; ” của allowed_hosts trong phần [Settings]. Thêm địa chỉ IP của Nagios Server
hoặc để trống để cho phép bất kỳ host nào kết nối đến
Đảm bảo cổng trong phần [NSClient] là 12489
Gõ lệnh sau để bắt đầu dịch vụ NSClient++ trên windows
nsclient++ /start
Nế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.
Cấu hình Nagios
Bây giờ ta sẽ định nghĩa các object definitions trong tập tin cấu hình để giám sát một máy
Windows mới
Mở tập tin windows.cfg
vi /usr/local/nagios/etc/objects/windows.cfg
Thêm một định nghĩa mới cho máy Windows để tiến hành giám sát. Thay đổi các thông tin như
host_name, alias, address thích hợp:
define host{
use windows-server
host_name Sample Client
alias My Windows Server
address 10.0.4.11
}
Bây giờ ta sẽ định nghĩa các dịch vụ cần giám sát trên máy Windows
Theo dõi phiên bản của NSClient++. Điều này rất hữu ích cho việc cần để kiểm tra nâng cấp
phiên bản NSClient++ khi cần thiết:
define service{
use generic-service
host_name Sample Client
service_description NSClient++ Version
check_command check_nt!CLIENTVERSION
}
Giám sát thời gian hoạt động của máy Windows
define service{
use generic-service
host_name Sample Client
service_description Uptime
check_command check_nt!UPTIME
}
Giám sát tải của CPU và cấu hình để Nagios bật cảnh báo là WARNING nếu tải lớn hơn 80%
trong 5 phút và CRITICAL nếu tải lớn hơn 90% trong 5 phút.
define service{
use generic-service
host_name Sample Client
service_description CPU Load
check_command check_nt!CPULOAD!-l 5,80,90
}
Định nghĩa dịch vụ giám sát dung lượng sử dụng của bộ nhớ. WARNING nếu sử dụng trên 80%
và CRITICAL nếu sử dụng trên 90%
define service{
use generic-service
host_name Sample Client
service_description Memory Usage
check_command check_nt!MEMUSE!-w 80 -c 90
}
Giám sát dung lượng ổ đĩa C. Bật cảnh báo WARNING khi sử dụng trên 80% dung lượng đĩa
cứng và CRITICAL khi dùng trên 90%.
define service{
use generic-service
host_name Sample Client
service_description C:\ Drive Space
check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90
}
Định nghĩa dịch vụ giám sát tiến trình Explorer.exe và bật CRITICAL nếu tiến trình này không
chạy.
define service{
use generic-service
host_name Sample Client
service_description Explorer
check_command check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe
}
Hiển thị tất cả các tiến trình đang chạy
define service{
use generic-service
hostgroup_name windows-servers
service_description Process
check_command check_nt!INSTANCES!-d SHOWALL -l Process
}
Đó là một vài dịch vụ giám sát máy Windows cơ bản. Ta lưu lại tập tin cấu hình
Mật khẩu
Nếu có cấu hình mật khẩu trong NSClient++ ở Windows, cần sửa đổi lệnh check_nt để cho phép
mật khẩu. Mở tập tin commands.cfg để chỉnh sửa.
vi /usr/local/nagios/etc/objects/commands.cfg
Thay đổi định nghĩa của lệnh check_nt để cho phép mật khẩu với tùy chọn –s <mật khẩu>
define command{
command_name check_nt
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s PASSWORD -v
$ARG1$ $ARG2$
}
Lưu lại tập tin commands.cfg
Khởi động lạ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
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Nếu quá trình kiểm tra thông báo có lỗi, tiến hành sửa lỗi tại tập tin được thông báo rồi khởi
động lại dịch vụ nagios để cập nhật thay đổi
service nagios restart
Kết quả giám sát trên Sample Client:
Thông tin các dịch vụ đã cấu hình để kiểm tra trên Sample Client: dung lượng ổ C, tải CPU,
Explore, dung lượng memory sử dụng, phiên bản của NSClient++, các tiến trình đang chạy trên
máy, thời gian bật máy.
Hình 5-4: Thông tin các dịch vụ trên Sample Client
Theo hình 5-5 ta có thể thấy thông tin về Sample Client: IP Address, trạng thái host, trạng thái
thông tin, host có chập chờn hay không, thời gian cập nhật cuối cùng…
Hình 5-5: Thông tin về Sample Client
1.1.1.2 Giám sát Router và Switch
Giới thiệu
Phần mô tả triển khai dưới đây trình bày cách giám sát trạng thái của router hoặc switch. Chúng
ta không thể giám sát nếu các thiết bị này không có địa chỉ IP. Mặc khác nếu các thiết bị trên hỗ
trợ giao thức SNMP sẽ rất thuận tiện cho việc giám sát.
Các thông tin giám sát trên router hoặc switch
Lượng dữ liệu bị mất và thời gian truyền trung bình của lệnh ping
Thông tin trạng thái thiết bị
Khái quát
Giám sát các thiết bị router và swich có thể được đơn giản hóa tùy thuộc vào loại thiết bị và
thông tin cần giám sát.
Switch và router có thể được theo dõi dễ dàng bởi lệnh ping để xác định độ ổn định của đường
truyền. Nếu thiết bị hỗ trợ SNMP ta có thể giám sát nhiều thông tin hơn.
Lệnh check_snmp chỉ hoạt động khi hệ thống được cài đặt các gói ứng
dụngnet_snmp và net_snmp_utils. Nếu các ứng dụng này chưa được cài đặt thì hãy cài chúng
trước và cài lại các plugin của nagios.
Các bước tiến hành
Cần tiến hành các bước sau để giám sát thiết bị:
Kiểm tra các yêu cầu.
Tạo một host và một định nghĩa service để giám sát máy Router và Switch
Khởi động lại tiến trình nagios để cập nhật thay đổi.
Yêu cầu
Để cấu hình Nagios giám sát một router hay switch ta cần cấu hình các thông tin sau:
Chỉnh sửa tập tin cấu hình Nagios:
vi /usr/local/nagios/etc/nagios.cfg
Bỏ ký tự # ở dòng sau:
#cfg_file=/usr/local/nagios/etc/objects/switch.cfg
Lưu tập tin và thoát.
Công việc vừa làm đã cấu hình cho Nagios biết để đọc các thông tin trong tập
tin/usr/local/nagios/etc/objects – là nơi thêm các thông tin về router hoặc switch cùng các dịch vụ
cần giám sát.
Cấu hình Nagios
Ta cấu hình để Nagios giám sát switch Dalat-CoreSW-1 như sau:
Bây giờ ta sẽ định nghĩa các object definitions trong tập tin cấu hình để giám sát một máy router
hoặc switch mới
Mở tập tin switch.cfg
vi /usr/local/nagios/etc/objects/switch.cfg
Thêm một định nghĩa mới cho router hoặc switch để tiến hành giám sát. Thay đổi các thông tin
như host_name, alias, address thích hợp:
define host{
use generic-switch
host_name Dalat-CoreSW-1
alias Dalat Switch Core
address 10.0.255.1
hostgroups Dalat Switch Core
}
Giám sát các dịch vụ
Để giám sát các dịch vụ ta tiến hành định nghĩa các dịch vụ trong tập tin switch.cfg
Giám sát các gói dữ liệu bị mất và RTA
Thêm định nghĩa dịch vụ sau để theo dõi các gói dữ liệu bị mất và thời gian gửi trung bình giữa
Nagios server và host cần giám sát mỗi 5 phút trong điều kiện bình thường.
define service{
use generic-service
host_name Dalat-CoreSW-1
service_description PING
check_command check_ping!200.0,20%!600.0,60%
normal_check_interval 5
retry_check_interval 1
}
Ý nghĩa của dịch vụ:
OK nếu RTA bé hơn 200ms và dữ liệu bị mất bé hơn 20%
Bật cảnh báo WARNING nếu RTA lơn hơn 200 ms hoặc mất hơn 20% dữ liệu.
Nagios sẽ thông báo CRITICAL nếu RTA lớn hơn 600 milisecond hoặc mất hơn 60% gói dữ
liệu.
Giám sát thông tin trạng thái bằng SNMP
Nếu router hoặc switch hỗ trợ SNMP thì có thể theo dõi nhiều thông tin bằng giao thức này.
Giám sát thời gian hoạt động:
define service{
use generic-service
host_name Dalat-CoreSW-1
service_description Uptime
check_command check_snmp!-C public -o sysUpTime.0
}
Trong câu lệnh check_snmp thì tùy chọn –C public là chuỗi community vàsysUpTime.0 là chỉ ra
OID cần được kiểm tra.
Nếu muốn kiểm tra trạng thái của cổng trên router hoặc switch ta định nghĩa dịch vụ sau:
define service{
use generic-service
host_name Dalat-CoreSW-1
service_description Port 1 Link Status
check_command check_snmp!-C public -o ifOperStatus.1 -r 1 -m
RFC1213-MIB
}
Trong ví dụ trên thì tùy chọn –o ifOperStatus.1 chỉ ra kiểm tra trạng thái cổng 1. Giá trị-r 1 chỉ ra
kết quả trả về là OK nếu trạng thái là hoạt động và CRITICAL nếu không tìm thấy giá trị cổng 1.
Tùy chọn –m RFC1213-MIB chỉ cho check_snmp biết chỉ tải thông tin của RFC1213-MIB thay vì
tất cả các MIB trên hệ thống, điều này giúp tốc độ kiểm tra nhanh hơn.
Giám sát các interface trên router và switch
Dùng plugin check_interface_table để giám sát tất cả các inerface trên router hay switch. Ta khai
báo plugin trong commands.cfg như sau
define command{
command_name check_interface_table
command_line $USER1$/check_interface_table.pl -H $HOSTADDRESS$ -C $ARG1$ -w
$ARG2$ -c $ARG3$ -Exclude $ARG4$ -Include $ARG5$ -host $ARG6$
}
Định nghĩa dịch vụ để tiến hành giám sát
define service{
use generic-service
hostgroup_name Dalat-CoreSW-1
service_description Interface Table
check_command check_interface_table
max_check_attempts 3
normal_check_interval 2
retry_check_interval 2
}
Khai báo trên sẽ trả về giá trị là một bảng tất các các interface trên router hay switch
Hình 5-6: Bảng Interface của plugin check_interface
Giám sát nhiệt độ
Khai báo plugin của check_catalyst_temp trong commands.cfg như sau
define command{
command_name check_temp
command_line $USER1$/check_catalyst_temp.pl -s $HOSTADDRESS$ -C $ARG1$ -w
$ARG2$ -c $ARG3$
}
Để giám sát nhiệt độ của router hoặc switch ta định nghĩa dịch vụ sau
define service{
use generic-service
hostgroup_name Dalat-CoreSW-1
service_description Temp
check_command check_temp!70!80
max_check_attempts 3
normal_check_interval 2
retry_check_interval 2
}
Dịch vụ trên sẽ tiến hành kiểm tra nhiệt độ và sinh cảnh báo WARNING nếu nhiệt độ lớn hơn 70
độ và CRITICAL nếu nhiệt độ lớn hơn 80 độ
Giám sát tải
Dùng plugin check_snmp_cisco_loadavg với khai báo trong commands.cfg như sau
define command{
command_name check_load
command_line $USER1$/check_snmp_cisco_loadavg -H $HOSTADDRESS$ -C $ARG1$ -
w $ARG2$ -c $ARG3$
}
Định nghĩa dịch vụ để tiến hành giám sát
define service{
use generic-service
hostgroup_name Dalat-CoreSW-1
service_description CPU Load
check_command check_load!70!80
max_check_attempts 3
normal_check_interval 2
retry_check_interval 2
}
Dịch vụ trên sẽ tiến hành kiểm tra tải CPU và sinh cảnh báo WARNING nếu tải lớn hơn 70% và
CRITICAL nếu tải lớn hơn 80%
Giám sát tình trạng bộ nhớ
Sử dụng plugin check_catalyst_mem để giám sát dung lượng bộ nhớ đang được sự dụng với
khai báo trong commands.cfg như sau
define command{
command_name check_mem
command_line $USER1$/check_catalyst_mem.pl -s $HOSTADDRESS$ -C $ARG1$ -w
$ARG2$ -c $ARG3$
}
Dịch vụ trên sẽ tiến hành kiểm tra dung lượng bộ nhớ và sinh cảnh báo WARNING nếu dung
lương bộ nhớ chưa sử dụng còn ít hơn 20% và CRITICAL nếu ít hơn 10%
define service{
use generic-service
host_name Dalat-CoreSW-1
service_description Memory
check_command check_mem!20%!10%
max_check_attempts 3
normal_check_interval 2
retry_check_interval 2
}
Lưu lại tập tin switch.cfg
Khởi động lạ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
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Nếu quá trình kiểm tra thông báo có lỗi, tiến hành sửa lỗi tại tập tin được thông báo rồi khởi
động lại dịch vụ nagios để cập nhật thay đổi
service nagios restart
Thông tin kết quả giám sát trên Dalat-CoreSW-1
Theo hình 5-7 ta có thể thấy thông tin về Dalat-CoreSW-1: IP Address, trạng thái host, trạng thái
thông tin, host có chập chờn hay không, thời gian cập nhật cuối cùng…
Hình 5-7: Thông tin trạng thái Dalat-CoreSW-1
Thông tin các dịch vụ trên Dalat-CoreSW-1: tải CPU, bảng các Interface của host, dung lượng
bộ nhớ sử dụng, PING, nhiệt độ, thời gian hoạt động.
Hình 5-8: Thông tin các dịch vụ trên Dalat-CoreSW-1
1.1.1.3 Giám sát một số dịch vụ phổ biến
Giới thiệu
Các dịch vụ phổ biến được đề cập sau đây là các dịch vụ thường hay được sử dụng và triển
khai trên các hệ thống như HTTP, FTP, SSH…
Ngược lại với một số dịch vụ không phổ biến ta phải sử dụng các agent để có thể thu được
thông tin cần như là tải CPU, memory, dung lượng đĩa cứng…
Các plugin dùng để giám sát một số dịch vụ cơ bản
Khi chúng ta cần giám sát trạng thái của các ứng dụng, dịch vụ hoặc giao thức ta cần các plugin
để thực thi việc đó. Nagios cung cấp chính thức các plugin này để có thể sử dụng với mục đích
cá nhân.
Mặc khác nếu không tìm thấy plugin thích hợp, Nagios có thể hỗ trợ các plugin tự phát triển bởi
các cá nhân. Do vậy khả năng phát triển của Nagios hầu như không bị giới hạn.
Khai báo một host
Trước khi tiến hành giám sát các dịch vụ ta phải định nghĩa một host – nơi mà các dịch vụ hoặc
ứng dụng được cài đặt.
define host{
use generic-host
host_name DNS Server
alias Application Server
address 10.0.4.12
hostgroups allhosts
}
define host{
use generic-host
host_name Web Server
alias Application Server
address 10.0.3.11
hostgroups allhosts
}
Khai báo các dịch vụ cần giám sát
Với mỗi dịch vụ cần giám sát, ta phải định nghĩa dịch vụ đó trong Nagios với host được tạo.
Giám sát 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 có định nghĩa của lệnh check_http như sau:
define command{
name check_http
command_name check_http
command_line $USER1$/check_http -I $HOSTADDRESS$ $ARG1$
}
Một khai báo đơn giản để giám sát dịch vụ HTTP trên Web Server sẽ như sau:
define service{
use generic-service
host_name Web Server
service_description HTTP
check_command check_http
}
Đây là một định nghĩa đơn giản để giám sát dịch vụ HTTP trên Web Server. Nagios sẽ cảnh báo
nếu máy chủ web không hồi báo trong vòng 10s hoặc có thể trả về mã lỗi HTTP như 403, 404,..
Một khai báo khác của check_http cho việc giám sát dịch vụ HTTP như bên dưới. Dịch vụ này
được định nghĩa để kiểm tra xem đường dẫn /download/index.php có chứa chuỗi “latest-
version.tar.gz” hay không. Nagios sẽ bật cảnh báo nếu không chứa chuỗi trên hoặc máy chủ
không hồi báo trong 5s.
define service{
use generic-service
host_name Web Server
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
Khi cần giám sát các máy chủ FTP ta có thể sử dụng dịch vụ check_ftp. Tập
tincommands.cfg đã chứa định nghĩa cho lệnh check_ftp như sau:
define command{
command_name check_ftp
command_line $USER1$/check_ftp -H $HOSTADDRESS$ $ARG1$
}
Một định nghĩa đơn giản để theo dõi dịch vụ FTP trên máy remotehost như sau:
define service{
use generic-service
host_name Sample Server
service_description FTP
check_command check_ftp
}
Định nghĩa dịch vụ này sẽ giám sát dịch vụ FTP và tạo cảnh báo nếu máy chủ FTP không hồi
báo trong vòng 10s.
Một khai báo khác cho dịch vụ FTP như bên dưới. Ý nghĩa của khai báo này là Nagios sẽ kiểm
tra FTP trên cổng 1023 của máy remotehost. Nagios sẽ tạo cảnh báo nếu máy chủ FTP không
hồi báo trong vòng 5s hoặc máy chủ hồi báo không chứa chuỗi “Pure-FTPd [TLS]”
define service{
use generic-service
host_name Sample Server
service_description Special FTP
check_command check_ftp!-p 1023 -t 5 -e "Pure-FTPd [TLS]"
}
Giám sát SSH
Dùng plugin check_ssh để giám sát dịch vụ này. Lệnh check_ssh được định nghĩa
trong commands.cfg như sau:
define command{
command_name check_ssh
command_line $USER1$/check_ssh $ARG1$ $HOSTADDRESS$
}
Một khai báo kiểm tra dịch vụ SSH đơn giản:
define service{
use generic-service
host_name Sample Server
service_description SSH
check_command check_ssh
}
Nagios sẽ sinh cảnh báo nếu không được hồi đáp trong vòng 10s.
Khai báo dưới đây sẽ kiểm tra dịch vụ SSH và sinh cảnh báo nếu máy chủ không hồi báo trong
vỏng 5s hoặc trong phiên bản của SSH không chứa chuỗi OpenSSH_4.2
define service{
use generic-service
host_name Sample Server
service_description SSH Version Check
check_command check_ssh!-t 5 -r "OpenSSH_4.2"
}
Giám sát SMTP
Dùng plugin check_smtp để giám sát dịch vụ này. Lệnh check_smtp được định nghĩa
trong commands.cfg như sau:
define command{
command_name check_smtp
command_line $USER1$/check_smtp -H $HOSTADDRESS$ $ARG1$
}
Một khai báo dịch vụ đơn giản của smtp:
define service{
use generic-service
host_name Sample Server
service_description SMTP
check_command check_smtp
}
Nagios sẽ sinh cảnh báo nếu máy chủ SMTP không hồi báo trong vòng 10s.
Khai báo sau sẽ làm cho Nagios sinh cảnh báo nếu máy chủ SMTP không hồi báo trong 5s hoặc
hồi báo từ máy chủ không chứa chuỗi “mygreatmailserver.com”
define service{
use generic-service
host_name Sample Server
service_description SMTP Response Check
check_command check_smtp!-t 5 -e "mygreatmailserver.com"
}
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_name check_dns
command_line $USER1$/check_dns -s $HOSTADDRESS$ -H $ARG1$ -a
$ARG2$ -w $ARG3$ -c $ARG4$
}
Sau khi định nghĩa ta khai báo một dịch vụ để kiểm tra DNS Server có hoạt động đúng
hay không
define service{
use generic-service
host_name DNS Server
service_description DNS
check_command check_dns!www.dlu.edu.vn!10.0.3.11!15!25
}
Với định nghĩa dịch vụ trên Nagios sẽ kiểm tra máy chủ DNS Server với Host
Namewww.dlu.edu.vn có phải ở địa chỉ 10.0.3.11 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.
Khởi động lại Nagios
Kiểm tra xem các thông tin cấu hình có lỗi gì không với lệnh
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Nếu quá trình kiểm tra thông báo có lỗi, tiến hành sửa lỗi tại tập tin được thông báo rồi khởi
động lại dịch vụ nagios để cập nhật thay đổi
service nagios restart
Kết quả giám sát trên DNS Server
Thông tin các dịch vụ trên DNS Server: dung lượng ổ C, tải CPU, Explore, dung lượng memory
sử dụng, phiên bản của NSClient++, các tiến trình đang chạy trên máy, thời gian bật máy, dịch
vụ DNS của DNS Server.
Hình 5-9: Thông tin các dịch vụ trên DNS Server
Thông tin trạng thái của DNS Server: Theo hình 5-10 ta có thể thấy thông tin về DNS Server: IP
Address, trạng thái host, trạng thái thông tin, host có chập chờn hay không, thời gian cập nhật
cuối cùng…
Hình 5-10: Thông tin trạng thái DNS Server
Thông tin các dịnh vụ trên Web Server : dung lượng ổ C, tải CPU, Explore, dung lượng memory
sử dụng, phiên bản của NSClient++, các tiến trình đang chạy trên máy, thời gian bật máy, dịch
vụ HTTP của Web Server.
Hình 5-11: Thông tin các dịch vụ trên Web Server
Thông tin trạng thái trên Web Server: Theo hình 5-11 ta có thể thấy thông tin về Web Server: IP
Address, trạng thái host, trạng thái thông tin, host có chập chờn hay không, thời gian cập nhật
cuối cùng…
Hình 5-12: Thông tin trạng thái Web Server
1.1.2. Kết quả giám sát hệ thống của NagiosVới cách cấu hình để giám sát các thiết bị như máy tính, router, switch, server như trên. Ta triển
khai chương trình Nagios trên hệ thống mạng của trường đại học Đà Lạt để giám sát các hoạt
động trên hệ thống này và thu được kết quả như sau:
Thông tin tổng quát về tình trạng hệ thống: trạng thái chung của toàn hệ thống, thông tin các
host down-up, thông tin các dịch vụ kiểm tra, thông tin các cảnh báo....
Hình 5-13: Tình trạng hệ thống
Thông tin các thiết bị được giám sát: hiển thị tất cả các thiết bị được cấu hình giám sát trên
Nagios Server, trạng thái down-up, lần kiểm tra cuối cùng, thông tin trạng thái chung…
Hình 5-14: Danh sách các thiết bị giám sát
Thông tin các dịch vụ được giám sát trên các thiết bị: hiển thị tất cả các thiết bị, các dịch vụ cấu
hình trên từng thiết bị và trạng thái của chúng, lần kiểm tra cuối cùng, số lần kiểm tra…
Hình 5-15: Danh sách các dịch vụ giám sát
Báo cáo về tình trạng của một thiết bị: tạo báo cáo theo yêu cầu, hiển thị thông tin về 1 thiết bị
riêng biệt (ở đây là Dalat-CoreSW-1) theo thời gian tạo báo cáo.
Hình 5-16: Báo cáo về thiết bị Dalat-CoreSW-1
Phân loại các thiết bị theo nhóm: hiển thị thông tin các thiết bị theo từng nhóm, Linux, Network
Switch, Core and Distribution, Windows, hiển thị trạng thái của các thiết bị đó, tổng số các dịch
vụ.
Hình 5-17: Phân loại thiết bị theo nhóm
Các dịch vụ có vấn đề tại thời điểm hiện tại: thông tin các dịch vụ có vấn đề gồm, tên thiết bị,
dịch vụ có vấn đề, trạng thái dịch vụ, số lần kiểm tra…
Hình 5-18: Các vấn đề của thiết bị giám sát
Cảnh báo của tất cả các thiết bị và dịch vụ trên hệ thống: thông tin các cảnh báo được liệt kê
theo mỗi giờ của từng ngày. Thông tin cảnh báo bao gồm ngày giờ phát sinh cảnh báo, tên thiết
bị, dịch vụ cảnh báo…
Hình 5-19: Các cảnh báo của thiết bị
Các thông tin tổng quát về tình trạng hoạt động của Nagios: hiển thị thông tin chung của Nagios
Server, các dịch vụ kiểm tra chủ động, các dịch vụ kiểm tra bị động, các thiết bị kiểm tra chủ
động, các thiết bị kiểm tra bị động…
Hình 5-20: Tình trạng của Nagios Server
Các cảnh báo được sinh ra tại thời điểm hệ tại: hiển thị thông tin các dịch vụ bị cảnh báo
(chuyển từ up down hay ngược lại, critical hay warning).
Hình 5-21: Các cảnh báo được sinh ra
top related