Nagios - Hướng dẫn nhanh

Vòng đời DevOps là một vòng lặp liên tục gồm nhiều giai đoạn, giám sát liên tục là giai đoạn cuối của vòng lặp này. Giám sát liên tục là một trong những giai đoạn của vòng đời này. Trong chương này, chúng ta hãy tìm hiểu chi tiết về giám sát liên tục là gì và Nagios hữu ích như thế nào cho mục đích này.

Giám sát liên tục là gì

Giám sát liên tục bắt đầu khi việc triển khai được thực hiện trên các máy chủ sản xuất. Từ đó, giai đoạn này có nhiệm vụ giám sát mọi thứ diễn ra. Giai đoạn này rất quan trọng đối với năng suất của doanh nghiệp.

Có một số lợi ích của việc sử dụng Giám sát liên tục -

  • Nó phát hiện tất cả các sự cố máy chủ và mạng.
  • Nó tìm ra nguyên nhân gốc rễ của sự thất bại.
  • Nó giúp giảm chi phí bảo trì.
  • Nó giúp khắc phục sự cố hiệu suất.
  • Nó giúp cập nhật cơ sở hạ tầng trước khi nó bị lỗi thời.
  • Nó có thể tự động khắc phục sự cố khi được phát hiện.
  • Nó đảm bảo các máy chủ, dịch vụ, ứng dụng, mạng luôn hoạt động.
  • Nó giám sát cơ sở hạ tầng hoàn chỉnh mỗi giây.

Nagios là gì

Nagios là một công cụ giám sát liên tục mã nguồn mở giám sát mạng, ứng dụng và máy chủ. Nó có thể tìm và sửa chữa các vấn đề được phát hiện trong cơ sở hạ tầng và ngăn chặn các vấn đề trong tương lai trước khi chúng ảnh hưởng đến người dùng cuối. Nó cung cấp trạng thái hoàn chỉnh của cơ sở hạ tầng CNTT của bạn và hiệu suất của nó.

Tại sao Nagios

Nagios cung cấp các tính năng sau để một nhóm lớn cộng đồng người dùng có thể sử dụng được -

  • Nó có thể giám sát các máy chủ Cơ sở dữ liệu như SQL Server, Oracle, Mysql, Postgres
  • Nó cung cấp thông tin cấp ứng dụng (Apache, Postfix, LDAP, Citrix, v.v.).
  • Cung cấp sự phát triển tích cực.
  • Có hỗ trợ tuyệt vời hình thành cộng đồng tích cực lớn.
  • Nagios chạy trên mọi hệ điều hành.
  • Nó có thể ping để xem nếu máy chủ có thể truy cập được.

Lợi ích của Nagios

Nagios cung cấp các lợi ích sau cho người dùng:

  • Nó giúp loại bỏ kiểm tra định kỳ.
  • Nó phát hiện lỗi trong tích tắc khi dây đeo cổ tay vẫn ở trong giai đoạn "gián đoạn".
  • Nó làm giảm chi phí bảo trì mà không làm giảm hiệu suất.
  • Nó cung cấp thông báo kịp thời cho quản lý kiểm soát và sự cố.

Chương này nói chi tiết về kiến ​​trúc Nagios.

Kiến trúc Nagios

Những điểm đáng chú ý sau đây về kiến ​​trúc Nagios:

  • Nagios có kiến ​​trúc máy chủ-tác nhân.

  • Máy chủ Nagios được cài đặt trên máy chủ lưu trữ và các plugin được cài đặt trên máy chủ / máy chủ từ xa sẽ được theo dõi.

  • Nagios gửi tín hiệu thông qua bộ lập lịch trình để chạy các plugin trên các máy chủ / máy chủ cục bộ / từ xa.

  • Các plugin thu thập dữ liệu (sử dụng CPU, sử dụng bộ nhớ, v.v.) và gửi lại cho bộ lập lịch.

  • Sau đó, quá trình lên lịch gửi thông báo đến / s quản trị viên và cập nhật Nagios GUI.

Hình dưới đây mô tả chi tiết Kiến trúc tác nhân máy chủ Nagios:

Nagios chứa các sản phẩm khác nhau như được thảo luận chi tiết bên dưới -

Nagios XI

Nó cung cấp giám sát cho các thành phần cơ sở hạ tầng CNTT hoàn chỉnh như ứng dụng, dịch vụ, mạng, hệ điều hành, v.v. Nó cung cấp một cái nhìn đầy đủ về cơ sở hạ tầng và quy trình kinh doanh của bạn. GUI có thể dễ dàng tùy chỉnh mang lại sự linh hoạt khi sử dụng. Phiên bản tiêu chuẩn của công cụ này có giá $ 1995 và phiên bản dành cho doanh nghiệp có giá $ 3495.

Nagios Core

Nó là cốt lõi về giám sát cơ sở hạ tầng CNTT. Sản phẩm Nagios XI về cơ bản cũng dựa trên cốt lõi của Nagios. Bất cứ khi nào có bất kỳ sự cố nào xảy ra trong cơ sở hạ tầng, nó sẽ gửi một cảnh báo / thông báo cho quản trị viên, người có thể nhanh chóng thực hiện hành động để giải quyết vấn đề. Công cụ này hoàn toàn miễn phí.

Máy chủ nhật ký Nagios

Nó làm cho việc tìm kiếm dữ liệu nhật ký rất đơn giản và dễ dàng. Nó giữ tất cả dữ liệu nhật ký ở một vị trí với thiết lập tính sẵn sàng cao. Nó có thể dễ dàng gửi cảnh báo nếu tìm thấy bất kỳ vấn đề nào trong dữ liệu nhật ký. Nó có thể mở rộng đến 1000 máy chủ để cung cấp thêm sức mạnh, tốc độ, khả năng lưu trữ và độ tin cậy cho nền tảng phân tích nhật ký của bạn. Giá của công cụ này phụ thuộc vào số lượng phiên bản - 1 Phiên bản $ 3995, 2 Phiên bản $ 4995, 3 Phiên bản $ 5995, 4 Phiên bản $ 6995, 10 Phiên bản $ 14995.

Nagios Fusion

Sản phẩm này cung cấp một cái nhìn tập trung về hệ thống giám sát hoàn chỉnh. Với Nagios Fusion, bạn quét thiết lập các máy chủ giám sát riêng biệt cho các khu vực địa lý riêng biệt. Nó có thể được tích hợp dễ dàng với Nagios XI và Nagios core để cung cấp khả năng hiển thị đầy đủ của cơ sở hạ tầng. Công cụ này có giá 2495 đô la.

Nagios Network Analyzer

Nó cung cấp thông tin đầy đủ của cơ sở hạ tầng mạng cho quản trị viên với các mối đe dọa tiềm ẩn trên mạng để quản trị viên có thể thực hiện các hành động nhanh chóng. Nó chia sẻ dữ liệu rất chi tiết về mạng sau khi phân tích sâu về mạng. Công cụ này có giá 1995 đô la.

Trong chương này, các bước thiết lập Nagios trên Ubuntu được thảo luận chi tiết.

Trước khi bạn cài đặt Nagios, một số gói như Apache, PHP, gói xây dựng, v.v., bắt buộc phải có trên hệ thống Ubuntu của bạn. Do đó, hãy để chúng tôi cài đặt chúng trước.

Step 1 - Chạy lệnh sau để cài đặt các gói yêu cầu trước -

sudo apt-get install wget build-essential apache2 php apache2-mod-php7.0 php-gd
libgd-dev sendmail unzip

Step 2 - Tiếp theo, tạo người dùng và nhóm cho Nagios và thêm họ vào người dùng Apache www-data.

sudo useradd nagios
sudo groupadd nagcmd
sudo usermod -a -G nagcmd nagios
sudo usermod -a -G nagios,nagcmd www-data

Step 3 - Tải xuống gói Nagios mới nhất.

wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-
4.4.3.tar.gz

Step 4 - Giải nén tệp tarball.

tar -xzf nagios-4.4.3.tar.gz
cd nagios-4.4.3/

Step 5 - Chạy lệnh sau để biên dịch Nagios từ nguồn.

./configure --with-nagios-group=nagios --with-command-group=nagcmd

Step 6 - Chạy lệnh sau để xây dựng tệp Nagios.

make all

Step 7 - Chạy lệnh hiển thị bên dưới để cài đặt tất cả các tệp Nagios.

sudo make install

Step 8 - Chạy các lệnh sau để cài đặt init và các tệp cấu hình lệnh bên ngoài.

sudo make install-commandmode
sudo make install-init
sudo make install-config
sudo /usr/bin/install -c -m 644 sample-config/httpd.conf /etc/apache2/sitesavailable/
nagios.conf

Step 9 - Bây giờ sao chép thư mục xử lý sự kiện vào thư mục Nagios.

sudo cp -R contrib/eventhandlers/ /usr/local/nagios/libexec/
sudo chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers

Step 10 - Tải xuống và giải nén các plugin Nagios.

cd
wget https://nagios-plugins.org/download/nagiosplugins-
2.2.1.tar.gz
tar -xzf nagios-plugins*.tar.gz
cd nagios-plugins-2.2.1/

Step 11 - Cài đặt các plugin Nagios bằng lệnh dưới đây.

./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl
make
sudo make install

Step 12 - Bây giờ chỉnh sửa tệp cấu hình Nagios và bỏ ghi chú số 51 → cfg_dir = / usr / local / nagios / etc / server

sudo gedit /usr/local/nagios/etc/nagios.cfg

Step 13 - Bây giờ, tạo một thư mục máy chủ.

sudo mkdir -p /usr/local/nagios/etc/servers

Step 14 - Chỉnh sửa tệp cấu hình danh bạ.

sudo gedit /usr/local/nagios/etc/objects/contacts.cfg

Step 15 - Bây giờ kích hoạt các mô-đun Apache và cấu hình nagiosadmin người dùng.

sudo a2enmod rewrite
sudo a2enmod cgi
sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
sudo ln -s /etc/apache2/sites-available/nagios.conf /etc/apache2/sites-enabled/

Step 16 - Bây giờ, khởi động lại Apache và Nagios.

service apache2 restart
service nagios start
cd /etc/init.d/
sudo cp /etc/init.d/skeleton /etc/init.d/Nagios

Step 17 - Chỉnh sửa tệp Nagios.

sudo gedit /etc/init.d/Nagios
DESC = "Nagios"
NAME = nagios
DAEMON = /usr/local/nagios/bin/$NAME
DAEMON_ARGS = "-d /usr/local/nagios/etc/nagios.cfg"
PIDFILE = /usr/local/nagios/var/$NAME.lock

Step 18 - Làm cho tệp Nagios thực thi được và khởi động Nagios.

sudo chmod +x /etc/init.d/nagios
service apache2 restart
service nagios start

Step 19 - Bây giờ vào trình duyệt của bạn và mở url → http://localhost/nagios. Bây giờ đăng nhập vào Nagios với tên người dùng nagiosadmin và sử dụng mật khẩu mà bạn đã đặt trước đó. Màn hình đăng nhập của Nagios như được hiển thị trong ảnh chụp màn hình dưới đây -

Nếu bạn đã thực hiện đúng tất cả các bước, giao diện web Nagios của bạn sẽ hiển thị. Bạn có thể tìm thấy bảng điều khiển Nagios như hình dưới đây:

Trong chương trước, chúng ta đã thấy việc cài đặt Nagios. Trong chương này, chúng ta hãy hiểu chi tiết cấu hình của nó.

Các tệp cấu hình của Nagios được đặt trong / usr / local / nagios / etc. Các tệp này được hiển thị trong ảnh chụp màn hình dưới đây -

Hãy để chúng tôi hiểu tầm quan trọng của mỗi tệp ngay bây giờ -

nagios.cfg

Đây là tệp cấu hình chính của lõi Nagios. Tệp này chứa vị trí của tệp nhật ký của Nagios, khoảng thời gian cập nhật trạng thái máy chủ và dịch vụ, tệp khóa và tệp status.dat. Người dùng Nagios và nhóm mà các phiên bản đang chạy được xác định trong tệp này. Nó có đường dẫn của tất cả các tệp cấu hình đối tượng riêng lẻ như lệnh, danh bạ, mẫu, v.v.

cgi.cfg

Theo mặc định, tệp cấu hình CGI của Nagios được đặt tên là cgi.cfg. Nó cho các CGI biết nơi tìm tệp cấu hình chính. CGI sẽ đọc các tệp cấu hình chính và máy chủ cho bất kỳ dữ liệu nào khác mà chúng có thể cần. Nó chứa tất cả thông tin người dùng và nhóm cũng như các quyền và điều khoản của họ. Nó cũng có đường dẫn cho tất cả các tệp frontend của Nagios.

resource.cfg

Bạn có thể xác định các macro $ USERx $ trong tệp này, lần lượt có thể được sử dụng trong các định nghĩa lệnh trong (các) tệp cấu hình máy chủ của bạn. Macro $ USERx $ hữu ích để lưu trữ thông tin nhạy cảm như tên người dùng, mật khẩu, v.v.

Chúng cũng rất tiện lợi để chỉ định đường dẫn đến plugin và trình xử lý sự kiện - nếu bạn quyết định di chuyển plugin hoặc trình xử lý sự kiện sang một thư mục khác trong tương lai, bạn chỉ có thể cập nhật một hoặc hai macro $ USERx $, thay vì sửa đổi nhiều các định nghĩa lệnh. Các tệp tài nguyên cũng có thể được sử dụng để lưu trữ các chỉ thị cấu hình cho các nguồn dữ liệu bên ngoài như MySQL.

Các tệp cấu hình bên trong thư mục đối tượng được sử dụng để xác định lệnh, danh bạ, máy chủ, dịch vụ, v.v.

lệnh.cfg

Tệp cấu hình này cung cấp cho bạn một số định nghĩa lệnh mẫu mà bạn có thể tham khảo trong định nghĩa máy chủ, dịch vụ và liên hệ. Các lệnh này được sử dụng để kiểm tra và giám sát các máy chủ và dịch vụ. Bạn có thể chạy cục bộ các lệnh này trên bảng điều khiển Linux, nơi bạn cũng sẽ nhận được kết quả của lệnh bạn chạy.

Thí dụ

define command {
   command_name check_local_disk
   command_line $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
}

define command {
   command_name check_local_load
   command_line $USER1$/check_load -w $ARG1$ -c $ARG2$
}

define command {
   command_name check_local_procs
   command_line $USER1$/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$
}

contact.cfg

Tệp này chứa thông tin liên hệ và nhóm của Nagios. Theo mặc định, một liên hệ đã có mặt là quản trị viên Nagios.

Thí dụ

define contact {
   contact_name nagiosadmin
   use generic-contact
   alias Nagios Admin
   email [email protected]
}

define contactgroup {
   contactgroup_name admins
   alias Nagios Administrators
   members nagiosadmin
}

Template.cfg

Tệp cấu hình này cung cấp cho bạn một số mẫu định nghĩa đối tượng mẫu được các định nghĩa máy chủ, dịch vụ, địa chỉ liên hệ, v.v. khác giới thiệu trong các tệp cấu hình khác.

timeperiods.cfg

Tệp cấu hình này cung cấp cho bạn một số định nghĩa thời gian mẫu mà bạn có thể tham khảo trong định nghĩa máy chủ lưu trữ, dịch vụ, liên hệ và phụ thuộc.

Nagios là công cụ giám sát với vô số tính năng như dưới đây:

  • Nagios Core là mã nguồn mở, do đó có thể sử dụng miễn phí.

  • Công cụ giám sát mạnh mẽ có thể mở rộng quy mô và quản lý hàng nghìn máy chủ và máy chủ.

  • Bảng điều khiển web toàn diện cung cấp khả năng hiển thị của các thành phần mạng hoàn chỉnh và dữ liệu giám sát.

  • Nó có khả năng đa người thuê nơi nhiều người dùng có quyền truy cập vào trang tổng quan Nagios.

  • Nó có kiến ​​trúc có thể mở rộng, có thể dễ dàng tích hợp với các ứng dụng của bên thứ ba với nhiều API.

  • Nagios có một cộng đồng rất năng động và lớn với hơn 1 triệu + người dùng trên toàn cầu.

  • Hệ thống cảnh báo nhanh, gửi cảnh báo đến quản trị viên ngay lập tức sau khi xác định được bất kỳ vấn đề nào.

  • Nhiều plugin có sẵn để hỗ trợ Nagios, các plugin được mã hóa tùy chỉnh cũng có thể được sử dụng với Nagios.

  • Nó có nhật ký tốt và hệ thống cơ sở dữ liệu lưu trữ mọi thứ diễn ra trên mạng một cách dễ dàng.

  • Tính năng Lập kế hoạch chủ động giúp biết khi nào cần nâng cấp cơ sở hạ tầng.

Nagios có thể được áp dụng cho một loạt các ứng dụng. Chúng được đưa ra ở đây -

  • Giám sát tài nguyên máy chủ như dung lượng ổ đĩa, nhật ký hệ thống, v.v.

  • Giám sát tài nguyên mạng - http, ftp, smtp, ssh, v.v.

  • Theo dõi các tệp nhật ký liên tục để xác định sự cố hạ tầng.

  • Giám sát các ứng dụng windows / linux / unix / web và trạng thái của nó.

  • Nagios Remote Plugin Executer (NRPE) có thể giám sát các dịch vụ từ xa.

  • Chạy kiểm tra dịch vụ song song.

  • Đường hầm SSH hoặc SSL cũng có thể được sử dụng để giám sát từ xa.

  • Gửi cảnh báo / thông báo

  • qua email, sms, máy nhắn tin về bất kỳ vấn đề nào về cơ sở hạ tầng

  • Đề xuất thời điểm nâng cấp cơ sở hạ tầng CNTT.

Nagios là công cụ phổ biến nhất được sử dụng để giám sát các máy chủ và dịch vụ đang chạy trong cơ sở hạ tầng CNTT của bạn. Máy chủ và cấu hình dịch vụ là các khối xây dựng của Nagios Core.

  • Máy chủ lưu trữ giống như một máy tính; nó có thể là một thiết bị vật lý hoặc ảo.

  • Dịch vụ là những dịch vụ được Nagios sử dụng để kiểm tra thông tin gì đó về máy chủ.

Bạn có thể tạo một tệp máy chủ lưu trữ bên trong thư mục máy chủ của Nagios và đề cập đến máy chủ lưu trữ và định nghĩa dịch vụ. Ví dụ -

sudo gedit /usr/local/nagios/etc/servers/ubuntu_host.cfg

# Tệp cấu hình Máy chủ Ubuntu

define host {
   use linux-server
   host_name ubuntu_host
   alias Ubuntu Host
   address 192.168.1.10
   register 1
}
define service {
   host_name ubuntu_host
   service_description PING
   check_command check_ping!100.0,20%!500.0,60%
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   contact_groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

Các định nghĩa trên thêm một máy chủ có tên ubuntu_host và xác định các dịch vụ sẽ chạy trên máy chủ này. Khi bạn khởi động lại Nagios, máy chủ này sẽ bắt đầu được Nagios giám sát và các dịch vụ được chỉ định sẽ chạy.

Có nhiều dịch vụ khác trong Nagios có thể được sử dụng để giám sát mọi thứ trên máy chủ đang chạy.

Một định nghĩa lệnh xác định một lệnh. Các lệnh bao gồm kiểm tra dịch vụ, thông báo dịch vụ, trình xử lý sự kiện dịch vụ, kiểm tra máy chủ, thông báo máy chủ và trình xử lý sự kiện máy chủ. Định nghĩa lệnh cho Nagios được xác định trong tệp lệnh.cfg.

Sau đây là định dạng để xác định một Lệnh:

define command {
   command_name command_name
   command_line command_line
}

Command name- Chỉ thị này được sử dụng để xác định lệnh. Các định nghĩa về contact, host và service được tham chiếu bằng tên lệnh.

Command line - Chỉ thị này được sử dụng để xác định những gì được thực thi bởi Nagios khi lệnh được sử dụng để kiểm tra dịch vụ hoặc máy chủ lưu trữ, thông báo hoặc trình xử lý sự kiện.

Thí dụ

define command{
   command_name check_ssh
   command_line /usr/lib/nagios/plugins/check_ssh ‘$HOSTADDRESS$’
}

Lệnh này sẽ thực thi plugin - / usr / libl / nagios / plugins / check_ssh với 1 tham số: '$ HOSTADDRESS $'

Định nghĩa máy chủ lưu trữ rất ngắn sử dụng lệnh kiểm tra này có thể tương tự như định nghĩa được hiển thị ở đây -

define host{
   host_name host_tutorial
   address 10.0.0.1
   check_command check_ssh
}

Các định nghĩa lệnh cho biết cách thực hiện kiểm tra máy chủ / dịch vụ. Nó cũng xác định cách tạo thông báo nếu bất kỳ vấn đề nào được xác định và để xử lý bất kỳ sự kiện nào. Có một số lệnh để thực hiện kiểm tra, chẳng hạn như lệnh để kiểm tra xem SSH có hoạt động bình thường hay không, lệnh để kiểm tra cơ sở dữ liệu đó có đang hoạt động hay không, lệnh để kiểm tra xem máy chủ có còn sống hay không và nhiều lệnh khác.

Có các lệnh thông báo cho người dùng biết những vấn đề nào đang có trong cơ sở hạ tầng. Bạn có thể tạo các lệnh tùy chỉnh của riêng mình hoặc sử dụng bất kỳ lệnh nào của bên thứ ba trong Nagios và chúng được xử lý tương tự như dự án plugin Nagios, không có sự phân biệt giữa chúng.

Bạn cũng có thể chuyển các đối số trong lệnh, điều này giúp linh hoạt hơn trong việc thực hiện kiểm tra. Đây là cách bạn cần xác định một lệnh với tham số -

define command {
   command_name check-host-alive-limits
   command_line $USER5$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5
}

Định nghĩa máy chủ cho lệnh trên -

define host {
   host_name system2
   address 10.0.15.1
   check_command check-host-alive-limits!1000.0,70%!5000.0,100%
}

Bạn có thể chạy các lệnh bên ngoài trong Nagios bằng cách thêm chúng vào tệp lệnh được xử lý bởi trình nền Nagios theo định kỳ.

Với các lệnh bên ngoài, bạn có thể đạt được nhiều lần kiểm tra trong khi Nagios đang chạy. Bạn có thể tạm thời vô hiệu hóa một số kiểm tra hoặc buộc một số kiểm tra chạy ngay lập tức, tạm thời tắt thông báo, v.v. Sau đây là cú pháp của các lệnh bên ngoài trong Nagios phải được viết trong tệp lệnh:

[time] command_id;command_arguments

Bạn cũng có thể xem danh sách tất cả các lệnh bên ngoài có thể được sử dụng trong Nagios tại đây -https://assets.nagios.com/downloads/nagioscore/docs/externalcmds/

Sau khi máy chủ và dịch vụ được định cấu hình trên Nagios, việc kiểm tra sẽ được sử dụng để xem máy chủ và dịch vụ có hoạt động như mong muốn hay không. Hãy để chúng tôi xem một ví dụ để thực hiện kiểm tra trên máy chủ lưu trữ -

Hãy xem xét rằng bạn đã đặt các định nghĩa máy chủ của mình bên trong tệp host1.cfg trong thư mục / usr / local / nagios / etc / objects.

cd /usr/local/nagios/etc/objects
gedit host1.cfg

Đây là cách định nghĩa máy chủ lưu trữ của bạn hiện tại -

define host {
   host_name host1
   address 10.0.0.1
}

Bây giờ chúng ta hãy thêm chỉ thị check_interval. Chỉ thị này được sử dụng để thực hiện kiểm tra theo lịch trình của các máy chủ cho số lượng bạn đã đặt; theo mặc định, nó là trong vài phút. Sử dụng định nghĩa bên dưới, kiểm tra máy chủ sẽ được thực hiện sau mỗi 3 phút.

define host {
   host_name host1
   address 10.0.0.1
   check_interval 3
}

Trong Nagios, 2 loại kiểm tra được thực hiện trên máy chủ và dịch vụ -

  • Kiểm tra hoạt động
  • Kiểm tra bị động

Kiểm tra hoạt động

Kiểm tra hoạt động được bắt đầu bởi quy trình Nagios và sau đó chạy trên cơ sở định kỳ. Logic kiểm tra bên trong quy trình Nagios bắt đầu kiểm tra Hoạt động. Để giám sát các máy chủ và dịch vụ đang chạy trên các máy từ xa, Nagios thực thi các plugin và cho biết thông tin nào cần thu thập. Sau đó, plugin sẽ được thực thi trên máy từ xa, nơi được thu thập thông tin cần thiết và gửi trở lại daemon Nagios. Tùy thuộc vào trạng thái nhận được trên máy chủ và dịch vụ, hành động thích hợp được thực hiện.

Hình dưới đây cho thấy một séc đang hoạt động -

Chúng được thực thi theo các khoảng thời gian đều đặn, như được định nghĩa bởi check_interval và retry_interval.

Kiểm tra thụ động được thực hiện bởi các quy trình bên ngoài và kết quả được trả lại cho Nagios để xử lý.

Kiểm tra thụ động hoạt động như được giải thích ở đây -

Một ứng dụng bên ngoài kiểm tra trạng thái trên máy chủ / dịch vụ và ghi kết quả vào Tệp lệnh bên ngoài. Khi Nagios daemon đọc tệp lệnh bên ngoài, nó sẽ đọc và gửi tất cả các kiểm tra thụ động trong hàng đợi để xử lý chúng sau này. Định kỳ khi các kiểm tra này được xử lý, thông báo hoặc cảnh báo được gửi tùy thuộc vào thông tin trong kết quả kiểm tra.

Hình dưới đây cho thấy một kiểm tra thụ động -

Do đó, sự khác biệt giữa kiểm tra chủ động và bị động là kiểm tra chủ động được chạy bởi Nagios và kiểm tra thụ động được chạy bởi các ứng dụng bên ngoài.

Những kiểm tra này rất hữu ích khi bạn không thể giám sát máy chủ / dịch vụ một cách thường xuyên.

Nagios lưu trữ trạng thái của các máy chủ và dịch vụ mà nó đang theo dõi để xác định xem chúng có hoạt động bình thường hay không. Sẽ có nhiều trường hợp các lỗi sẽ xảy ra ngẫu nhiên và chúng chỉ là tạm thời; do đó Nagios sử dụng các trạng thái để kiểm tra trạng thái hiện tại của máy chủ hoặc dịch vụ.

Có hai loại trạng thái -

  • Trạng thái mềm
  • Trạng thái cứng

Trạng thái mềm

Khi một máy chủ hoặc dịch vụ ngừng hoạt động trong một khoảng thời gian rất ngắn và trạng thái của nó không được xác định hoặc khác với trạng thái trước đó, thì trạng thái mềm sẽ được sử dụng. Máy chủ hoặc các dịch vụ sẽ được kiểm tra lại nhiều lần cho đến khi trạng thái là vĩnh viễn.

Trạng thái cứng

Khi max_check_attempts được thực thi và trạng thái của máy chủ hoặc dịch vụ vẫn không ổn, thì trạng thái cứng được sử dụng. Nagios thực thi các trình xử lý sự kiện để xử lý các trạng thái cứng.

Hình sau thể hiện trạng thái mềm và trạng thái cứng.

Chương này đưa ra ý tưởng về các cổng và giao thức mà Nagios bao gồm.

Giao thức

Các giao thức mặc định được Nagios sử dụng như được đưa ra dưới:

  • http (s), cổng 80 và 443 - Giao diện sản phẩm dựa trên web của Nagios. Các tác nhân Nagios có thể sử dụng http để di chuyển dữ liệu.

  • snmp, cổng 161 và 162 - snmp là một phần quan trọng của việc giám sát mạng. Cổng 161 được sử dụng để gửi yêu cầu đến các nút và cổng 162 được sử dụng để nhận kết quả.

  • ssh, cổng 22 - Nagios được xây dựng để chạy nguyên bản trên CentOS hoặc RHEL Linux. Quản trị viên có thể đăng nhập vào Nagios thông qua SSH bất cứ khi nào họ muốn và thực hiện kiểm tra.

Các cổng

Các cổng mặc định được sử dụng bởi các Plugin Nagios phổ biến như được cung cấp trong:

  • Butcheck_nt (nsclient ++) 12489
  • NRPE 5666
  • NSCA 5667
  • NCPA 5693
  • MSSQL 1433
  • MySQL 3306
  • PostgreSQL 5432
  • MongoDB 27017, 27018
  • OracleDB 1521
  • Email (SMTP) 25, 465, 587
  • WMI 135, 445 / các cổng được gán theo kiểu động trong phạm vi 1024-1034

Plugin giúp giám sát cơ sở dữ liệu, hệ điều hành, ứng dụng, thiết bị mạng, giao thức với Nagios. Plugin là các tệp thực thi hoặc tập lệnh được biên dịch (Perl hoặc không phải Perl) mở rộng chức năng của Nagios để giám sát máy chủ và máy chủ. Nagios sẽ thực thi một Plugin để kiểm tra trạng thái của dịch vụ hoặc máy chủ. Nagios có thể được biên dịch với sự hỗ trợ cho trình thông dịch Perl được nhúng để thực thi các plugin Perl. Nếu không có nó, Nagios thực thi các plugin Perl và không phải Perl bằng cách fork và thực thi các plugin như một lệnh bên ngoài.

Các loại plugin Nagios

Nagios có sẵn các plugin sau:

Official Nagios Plugins- Có 50 Plugin Nagios chính thức. Các plugin chính thức của Nagios được phát triển và duy trì bởi Nhóm các plugin Nagios chính thức.

Community Plugins - Có hơn 3.000 plugin Nagios của bên thứ ba đã được phát triển bởi hàng trăm thành viên cộng đồng Nagios.

Custom Plugins- Bạn cũng có thể viết các Plugin tùy chỉnh của riêng mình. Có một số nguyên tắc nhất định phải tuân theo để viết Plugin tùy chỉnh.

Hướng dẫn Viết Plugin Nagios Tùy chỉnh

Trong khi viết plugin tùy chỉnh trong Nagios, bạn cần tuân theo các nguyên tắc được cung cấp bên dưới:

  • Các plugin phải cung cấp tùy chọn dòng lệnh "-V" (xác minh các thay đổi cấu hình)
  • Chỉ in một dòng văn bản
  • In chẩn đoán và chỉ một phần của thông báo trợ giúp
  • Các plugin mạng sử dụng DEFAULT_SOCKET_TIMEOUT để hết giờ
  • "-v" hoặc "--verbose" liên quan đến mức độ chi tiết
  • "-t" hoặc "--timeout" (thời gian chờ của plugin);
  • "-w" hoặc "--warning" (ngưỡng cảnh báo);
  • "-c" hoặc "- tới hạn" (ngưỡng tới hạn);
  • "-H" hoặc "--hostname" (tên máy chủ để kiểm tra)

Nhiều plugin Nagios chạy và thực hiện kiểm tra cùng một lúc, để tất cả chúng hoạt động trơn tru cùng nhau, plugin Nagios tuân theo một mã trạng thái. Bảng dưới đây cho biết trạng thái mã thoát và mô tả của nó -

Mã thoát Trạng thái Sự miêu tả
0 đồng ý Làm việc tốt
1 CẢNH BÁO Hoạt động tốt, nhưng cần chú ý
2 BẠO KÍCH Không hoạt động chính xác
3 KHÔNG XÁC ĐỊNH Khi plugin không thể xác định trạng thái của máy chủ / dịch vụ

Các plugin Nagios sử dụng các tùy chọn cho cấu hình của chúng. Sau đây là một vài tham số quan trọng được plugin Nagios chấp nhận:

Sr.No Tùy chọn & Mô tả
1

-h, --help

Điều này cung cấp trợ giúp

2

-V, --version

Điều này in ra phiên bản chính xác của plugin

3

-v, --verbose

Điều này làm cho plugin cung cấp thông tin chi tiết hơn về những gì nó đang làm

4

-t, --timeout

Điều này cung cấp thời gian chờ (tính bằng giây); sau thời gian này, plugin sẽ báo cáo trạng thái CRITICAL

5

-w, --warning

Điều này cung cấp các giới hạn dành riêng cho plugin cho trạng thái CẢNH BÁO

6

-c, --critical

Điều này cung cấp các giới hạn dành riêng cho plugin cho trạng thái CRITICAL

7

-H, --hostname

Điều này cung cấp tên máy chủ, địa chỉ IP hoặc ổ cắm Unix để giao tiếp với

số 8

-4, --use-ipv4

Điều này cho phép bạn sử dụng IPv4 để kết nối mạng

9

-6, --use-ipv6

Điều này cho phép bạn sử dụng IPv6 để kết nối mạng

10

-p, --port

Điều này được sử dụng để kết nối với cổng TCP hoặc UDP

11

-s, -- send

Điều này cung cấp chuỗi sẽ được gửi đến máy chủ

12

-e, --expect

Điều này cung cấp chuỗi sẽ được gửi lại từ máy chủ

13

-q, --quit

Điều này cung cấp chuỗi để gửi đến máy chủ để đóng kết nối

Gói plugin Nagios có sẵn rất nhiều kiểm tra cho máy chủ và dịch vụ để giám sát cơ sở hạ tầng. Hãy để chúng tôi thử các plugin Nagios để thực hiện một số kiểm tra.

SMTP là một giao thức được sử dụng để gửi email. Các plugin chuẩn của Nagios có các lệnh để thực hiện kiểm tra SMTP. Định nghĩa lệnh cho SMTP -

define command {
   command_name check_smtp
   command_line $USER2$/check_smtp -H $HOSTADDRESS$
}

Hãy để chúng tôi sử dụng plugin Nagios để giám sát MySQL. Nagios cung cấp 2 plugin để theo dõi MySQL. Plugin đầu tiên kiểm tra xem kết nối mysql có hoạt động hay không và plugin thứ hai được sử dụng để tính thời gian thực hiện để chạy truy vấn SQL.

Định nghĩa lệnh cho cả hai như sau:

define command {
   command_name check_mysql
   command_line $USER1$/check_mysql –H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -d
   $ARG3$ -S –w 10 –c 30
}

define command {
   command_name check_mysql_query
   command_line $USER1$/check_mysql_query –H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -d
   $ARG3$ -q $ARG4$ –w $ARG5$ -c $ARG6$
}

Note - Tên người dùng, mật khẩu và tên cơ sở dữ liệu được yêu cầu làm đối số trong cả hai lệnh.

Nagios cung cấp plugin để kiểm tra dung lượng ổ đĩa được gắn trên tất cả các phân vùng. Định nghĩa lệnh như sau

define command {
   command_name check_partition
   command_line $USER1$/check_disk –p $ARG1$ –w $ARG2$ -c $ARG3$
}

Phần lớn các kiểm tra có thể được thực hiện thông qua các plugin Nagios tiêu chuẩn. Nhưng có những ứng dụng yêu cầu kiểm tra đặc biệt để giám sát chúng, trong trường hợp đó, bạn có thể sử dụng plugin Nagios của bên thứ 3, plugin này sẽ cung cấp các kiểm tra phức tạp hơn trên ứng dụng. Điều quan trọng là phải biết về các vấn đề bảo mật và cấp phép khi bạn đang sử dụng plugin của bên thứ 3, trao đổi hình thức Nagios hoặc tải xuống plugin từ một trang web khác.

Daemon Nagios chạy kiểm tra các máy từ xa trong NRPE (Nagios Remote Plugin Executor). Nó cho phép bạn chạy các plugin Nagios trên các máy khác từ xa. Bạn có thể theo dõi số liệu của máy từ xa như sử dụng đĩa, tải CPU, v.v. Nó cũng có thể kiểm tra số liệu của máy windows từ xa thông qua một số addon của windows agent.

Hãy để chúng tôi xem cách cài đặt và cấu hình NRPE từng bước trên máy khách cần được theo dõi.

Step 1 - Chạy lệnh dưới đây để cài đặt NRPE trên máy linux từ xa cần theo dõi.

sudo apt-get install nagios-nrpe-server nagios-plugins

Step 2 - Bây giờ, tạo một tệp máy chủ lưu trữ bên trong thư mục máy chủ và đặt tất cả các định nghĩa cần thiết cho máy chủ lưu trữ.

sudo gedit /usr/local/nagios/etc/servers/ubuntu_host.cfg
# Ubuntu Host configuration file

define host {
   use linux-server
   host_name ubuntu_host
   alias Ubuntu Host
   address 192.168.1.10
   register 1
}

define service {
   host_name ubuntu_host
   service_description PING
   check_command check_ping!100.0,20%!500.0,60%
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   contact_groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

define service {
   host_name ubuntu_host
   service_description Check Users
   check_command check_local_users!20!50
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   contact_groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

define service {
   host_name ubuntu_host
   service_description Local Disk
   check_command check_local_disk!20%!10%!/
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

define service {
   host_name ubuntu_host
   service_description Check SSH
   check_command check_ssh
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   contact_groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

define service {
   host_name ubuntu_host
   service_description Total Process
   check_command check_local_procs!250!400!RSZDT
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   contact_groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

Step 3 - Chạy lệnh hiển thị bên dưới để xác minh tệp cấu hình.

sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Step 4 - Khởi động lại NRPE, Apache và Nagios nếu không có lỗi.

service nagios-nrpe-server restart
service apache2 restart
service nagios restart

Step 5- Mở trình duyệt của bạn và chuyển đến giao diện web Nagios. Bạn có thể thấy máy chủ cần được theo dõi đã được thêm vào dịch vụ cốt lõi của Nagios. Tương tự, bạn có thể thêm nhiều máy chủ khác để được Nagios giám sát.

V-Shell là một giao diện web nhẹ cho Nagios Core được viết bằng PHP. Nó rất dễ cài đặt và sử dụng và nó là một giải pháp thay thế cho đầu ra Nagios. Giao diện người dùng của VShell nằm trên AngularJs, do đó thiết kế đáp ứng và hiện đại. Nó cung cấp chức năng Quicksearch và API RESTful do CodeIgniter cung cấp.

Nagios VShell tương thích với Nagios XI và Nagios Core 3.x. Nó yêu cầu php 5.3 trở lên, php-cli và apache được cài đặt trong hệ thống. Hãy để chúng tôi xem cách cài đặt Nagios VShell.

Step 1 - Vào thư mục tmp và tải xuống tệp tar vshell.

cd /tmp
wget http://assets.nagios.com/downloads/exchange/nagiosvshell/vshell.tar.gz

Step 2 - Giải nén tập tin tar.

tar zxf vshell.tar.gz

Step 3- Vào thư mục vshell và cấp quyền thực thi cho tập tin install.php. Cuối cùng, chạy tập lệnh cài đặt.

cd vshell
chmod +x install.php
./install.php

Step 4 - Bây giờ đi đếnhttps://192.168.56.101/vshell trong trình duyệt của bạn, đăng nhập bằng nagiosadmin và Vshell của bạn sẽ xuất hiện.

Trong chương này, chúng ta hãy xem xét các nghiên cứu điển hình của hai tổ chức đã triển khai Nagios thành công.

Bitnetix với Nagios

Bitnetix trong một tổ chức tư vấn CNTT chuyên về mạng, trung tâm dữ liệu, giám sát và Thoại qua IP. Thông qua các dịch vụ của họ, họ làm cho các doanh nghiệp nhỏ trông lớn. Các giải pháp của họ giúp bạn quản lý các mối quan hệ với khách hàng theo cách tốt hơn bằng cách tăng cường sự tham gia nhiều hơn và cải thiện sự hài lòng của họ. Họ nói rằng họ đang kinh doanh trong lĩnh vực giao tiếp, do đó việc truyền đạt thông điệp phù hợp đến khách hàng vào đúng thời điểm là rất quan trọng đối với họ.

Bitnetix đã làm việc với một khách hàng tham gia Tiếp thị qua email. Họ từng giám sát các máy chủ AWS được phân bổ động và chịu trách nhiệm gửi hàng nghìn email cho khách hàng. Họ đã sử dụng lõi Nagios trước đó nhưng muốn chuyển sang Nagios XI mới và tích hợp với đầu bếp mà không mất thời gian chết. Có những thách thức trong việc di chuyển cấu hình trạng thái trực tiếp trên lõi Nagios sang các kiểm tra thích hợp trong Nagios XI. Nhưng với Nagios, họ có thể thiết lập tệp cấu hình Nagios XI với đầu bếp tích hợp. Họ có thể di chuyển tất cả khách hàng từ Nagios core sang Nagios XI mà không mất thời gian chết. Nagios XI cũng có thể tích hợp với PagerDuty để gửi thông báo tức thì.

EverWatch.gobal với Nagios

EverWatch.global là một tổ chức tư vấn và quản lý CNTT giúp các tổ chức phi lợi nhuận và vừa / nhỏ. Trụ sở chính của nó đặt tại Rochester, New York. Họ đã giành được nhiều giải thưởng cho công việc của họ với Nagios.

EverWatch.global đã làm việc với một khách hàng bán lẻ thương mại điện tử có doanh thu hàng tỷ đô la hàng năm. Họ có trách nhiệm giữ cho trang web luôn hoạt động và luôn hoạt động, giám sát giỏ hàng và chức năng thanh toán, gửi thông báo cho nhân viên cần thiết trong trường hợp có nội dung phỉ báng. Thách thức là máy chủ khách hàng của họ đều nằm 500 dặm từ trụ sở chính tại New York. Để giám sát quá trình sản xuất, dàn dựng, đảm bảo chất lượng và phát triển trên cùng một nền tảng, các cấu hình được cho là duy nhất và giống nhau cho cả hai lĩnh vực.

Với sự giúp đỡ của Nagios, họ đã có thể tạo ra các quy tắc tường lửa ssh cho thiết bị và Trung tâm điều hành mạng. Họ cũng có thể thực hiện kiểm tra các lần xuất hiện nội dung phỉ báng và giảm các trường hợp dương tính giả. Bằng cách định cấu hình trình xử lý sự kiện trong Nagios, số lượng thông báo giảm đáng kể. Nagios đã giúp họ bằng cách duy trì thời gian hoạt động trang web của khách hàng của họ lên 98% hàng năm từ 85% hàng năm, đây là một thành công lớn.

“Tính theo đồng đô la thực, kết quả là công ty đã có thể đạt được gần 125.000.000 đô la doanh số bán hàng bổ sung.” Eric Loyd, CEOEverWatch toàn cầu.