Huong Dan Nagi Os

41
Hướng dẫn cài đặt và cấu hình Nagios bằng hình ảnh 15:33 | 09/08/2010 Nagios 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

Transcript of Huong Dan Nagi Os

Page 1: Huong Dan Nagi Os

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 

Page 2: Huong Dan Nagi Os

   Bạn chọn Yes nhấn Y để đồng ý việc cài đặt các phần mền trên 

 

Page 3: Huong Dan Nagi Os

   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

Page 4: Huong Dan Nagi Os

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

Page 5: Huong Dan Nagi Os

make install

make install-init

Page 6: Huong Dan Nagi Os

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

Page 7: Huong Dan Nagi Os

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

Page 8: Huong Dan Nagi Os

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

Page 9: Huong Dan Nagi Os

Đế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

Page 10: Huong Dan Nagi Os

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/

Page 11: Huong Dan Nagi Os

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

Page 12: Huong Dan Nagi Os

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.

Page 13: Huong Dan Nagi Os

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

Page 14: Huong Dan Nagi Os

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

Page 15: Huong Dan Nagi Os

        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

Page 16: Huong Dan Nagi Os

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{

Page 17: Huong Dan Nagi Os

   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

Page 18: Huong Dan Nagi Os

   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…

Page 19: Huong Dan Nagi Os

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.

Page 20: Huong Dan Nagi Os

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                                           

   }

Page 21: Huong Dan Nagi Os

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

Page 22: Huong Dan Nagi Os

   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

Page 23: Huong Dan Nagi Os

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

Page 24: Huong Dan Nagi Os

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{

Page 25: Huong Dan Nagi Os

            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…

Page 26: Huong Dan Nagi Os

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…

Page 27: Huong Dan Nagi Os

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:

Page 28: Huong Dan Nagi Os

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$

   }

Page 29: Huong Dan Nagi Os

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.

Page 30: Huong Dan Nagi Os

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

Page 31: Huong Dan Nagi Os

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.

Page 32: Huong Dan Nagi Os

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.

Page 33: Huong Dan Nagi Os

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....

Page 34: Huong Dan Nagi Os

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…

Page 35: Huong Dan Nagi Os

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ụ.

Page 36: Huong Dan Nagi Os

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…

Page 37: Huong Dan Nagi Os

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…

Page 38: Huong Dan Nagi Os

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).

Page 39: Huong Dan Nagi Os

Hình 5-21: Các cảnh báo được sinh ra