Thứ sáu, 13/06/2014 | 00:00 GMT+7

Cách sử dụng Icinga để giám sát server và dịch vụ của bạn trên Ubuntu 14.04

Trong hướng dẫn này, ta sẽ xem xét cài đặt Icinga, một hệ thống giám sát open-souce , trên Ubuntu 14.04. Ta sẽ đề cập đến một số cấu hình cơ bản, vì vậy bạn có thể giám sát các dịch vụ mạng và tài nguyên lưu trữ thông qua giao diện web. Ta cũng sẽ sử dụng Nagios Remote Plugin Executor (NRPE), sẽ được cài đặt như một tác nhân trên các hệ thống từ xa để giám sát tài nguyên local của chúng (sử dụng đĩa, số lượng user đã đăng nhập, v.v.).

Icinga là một hệ thống giám sát open-souce phổ biến để kiểm tra server và dịch vụ, đồng thời thông báo cho bạn về trạng thái của chúng. Icinga là một nhánh của Nagios, vì vậy chúng tương thích và có nhiều điểm tương đồng, và nó đã trở nên phổ biến do chu kỳ phát triển nhanh nhẹn hơn khi so sánh với Nagios.

Yêu cầu

Để hoàn thành hướng dẫn này, bạn sẽ yêu cầu quyền truy cập root vào VPS Ubuntu 14.04. Hướng dẫn cài đặt có thể tìm thấy ở đây (bước 3 và 4): Cài đặt server ban đầu với Ubuntu 14.04 .

Ngoài ra, nếu bạn muốn cài đặt tính năng thông báo thư, bạn cần phải cấu hình đúng Postfix. Bạn có thể tìm thấy hướng dẫn để làm điều đó tại đây: Cách cài đặt và cài đặt Postfix trên Ubuntu 14.04 . Postfix được cài đặt cùng với các gói Icinga, nhưng nó có thể được cấu hình sau khi Icinga được cài đặt .

Cài đặt Icinga

Ta sẽ cài đặt Icinga bằng cách sử dụng các gói. Ngoài ra, ta sẽ sử dụng MySQL làm DBMS – PostgreSQL, SQLite và Oracle là các tùy chọn được hỗ trợ khác.

Chạy lệnh sau để thêm Icinga PPA vào trình quản lý gói của bạn:

sudo add-apt-repository ppa:formorer/icinga 

Sau đó cập nhật database gói apt của bạn:

sudo apt update 

Bây giờ cài đặt Icinga và MySQL với apt:

sudo apt install icinga icinga-doc icinga-idoutils mysql-server libdbd-mysql mysql-client 

Bây giờ, bạn sẽ thấy một loạt dấu nhắc liên quan đến việc cài đặt Icinga của bạn. Dưới đây là danh sách các dấu nhắc và cách bạn nên trả lời chúng:

  • Cấu hình MySQL: Nhập password user root MySQL mới
  • Cấu hình PostFix: Chọn “Trang web Internet”
  • Cấu hình PostFix: Nhập Tên domain Đủ điều kiện của bạn (ví dụ: example.com)
  • Cấu hình icinga-cgi: Nhập password của user “icingaadmin” (đăng nhập để truy cập Icinga).
  • Cấu hình icinga-common: Nhập “Không” để bật các lệnh bên ngoài
  • Cấu hình icinga-idoutils: Nhập "Có" để cấu hình database cho icinga-idoutils với dbconfig-common
  • Cấu hình icinga-idoutils: Chọn “mysql” làm loại database
  • Cấu hình icinga-idoutils: Nhập password root MySQL (bạn vừa gán ở trên)
  • Cấu hình icinga-idoutils: Nhập password user database icinga-idoutils mới

Icinga hiện đã được cài đặt, nhưng ta vẫn cần cấu hình một số thứ trước khi có thể khởi động nó. Lưu ý server Apache HTTP và Postfix đã được cài đặt như một phần của quá trình đó.

Thêm user Apache (www-data) vào group nagios:

sudo usermod -a -G nagios www-data 

Kích hoạt daemon ido2db để bắt đầu khởi động, nó lưu trữ các sự kiện và cấu hình Icinga trong database . Chỉnh sửa cấu hình mặc định của Icinga:

sudo vi /etc/default/icinga 

Thay đổi giá trị của IDO2DB thành , vì vậy nó trông giống như sau:

IDO2DB=yes 

Lưu và thoát. Bây giờ bắt đầu dịch vụ ido2db :

sudo service ido2db start 

Bật module idomod bằng cách sao chép file idoutils.cfg mẫu vào cấu hình đang hoạt động của Icinga:

sudo cp /usr/share/doc/icinga-idoutils/examples/idoutils.cfg-sample /etc/icinga/modules/idoutils.cfg 

Bây giờ Icinga đã được cấu hình và sẵn sàng để bắt đầu:

sudo service icinga restart 

Hãy thử giao diện user Icinga.

Truy cập giao diện user Icinga

Truy cập http: // yourhost / icinga và đăng nhập bằng thông tin đăng nhập icingaadmin mà bạn đã cài đặt trong quá trình cài đặt Icinga.

Bạn sẽ thấy rằng Icinga đang giám sát một server lưu trữ, localhost ( server Icinga của bạn) và bảy dịch vụ, như sau:

Tổng quan ban đầu về Icinga

Hàng trên cùng cho thấy một server được giám sát là “Lên” và hàng dưới cùng cho thấy có bảy dịch vụ được giám sát “OK”.

Nếu trạng thái của localhost là "Không hoạt động", bạn có thể cần phải thay đổi quyền của lệnh ping của bạn . Chạy lệnh sau để cho phép user nagios sử dụng lệnh ping:

sudo chmod u+s `which ping` 

Hãy thêm nhiều server và dịch vụ được theo dõi!

Các cách giám sát bằng Icinga

Có hai cách chính để giám sát server và dịch vụ với Icinga:

  1. Giám sát "các dịch vụ có sẵn công khai"
  2. Giám sát thông qua một tác nhân được cài đặt trên server từ xa để thu thập và gửi dữ liệu đến Icinga

Phương pháp giám sát Icinga

Với phương pháp đầu tiên, các dịch vụ công khai đề cập đến các dịch vụ có thể truy cập qua mạng local hoặc Internet. Các ví dụ phổ biến bao gồm ping HTTP, mail, SSH và ICMP. Phương pháp này hữu ích cho việc giám sát các hệ thống mà bạn không thể (hoặc không muốn) cài đặt một tác nhân và cũng để giám sát các network interface đối mặt với user .

Để thực hiện phương pháp thứ hai, ta sẽ cài đặt NRPE làm tác nhân trên các server từ xa để giám sát tài nguyên local của chúng. Điều này sẽ cho phép Icinga giám sát những thứ như sử dụng đĩa, các quy trình đang chạy và các thống kê hệ thống khác mà phương pháp đầu tiên không thể đạt được.

Phương pháp 1: Giám sát các dịch vụ có sẵn công khai

Bởi vì phương pháp đầu tiên chỉ đơn giản là giám sát các dịch vụ lắng nghe, cấu hình cho phương pháp này được thực hiện tất cả trên server Icinga. Một số thứ có thể được giám sát bằng phương pháp này, vì vậy ta sẽ trình bày cách giám sát giao diện công cộng của web server .

Tạo một file với tên của server của bạn, với lệnh này (thay thế yourhost với hostname của bạn):

sudo vi /etc/icinga/objects/yourhost.cfg 

Bây giờ, hãy thêm phần sau, thay thế các giá trị của host_name bằng tên server của bạn (ở cả hai nơi), alias bằng mô tả về server và address bằng giá trị địa chỉ IP công cộng của server của bạn:

define host {         use                     generic-host         host_name               web-1         alias                   A Web Server         address                 107.170.xxx.xxx }  define service {         use                     generic-service         host_name               web-1         service_description     HTTP         check_command           check_http } 

Bây giờ lưu và thoát. Reload cấu hình Icinga của bạn để thực hiện mọi thay đổi:

sudo service icinga reload 

Phương pháp 2: Giám sát Thông qua Đại lý

Như đã đề cập trước đó, ta sẽ sử dụng NRPE làm đại lý của bạn để thu thập dữ liệu server từ xa cho Icinga. Điều này nghĩa là NRPE phải được cài đặt trên tất cả các server sẽ được giám sát bằng phương pháp này và server Icinga cũng cần được cấu hình để nhận dữ liệu cho từng server .

Hãy bắt đầu cài đặt NRPE.

Cài đặt NRPE trên Server Từ xa

Trên server mà bạn muốn theo dõi, hãy cập nhật apt:

sudo apt update 

Bây giờ hãy cài đặt các Plugin NRPE và Nagios:

sudo apt install nagios-plugins nagios-nrpe-server 

Tra cứu tên của hệ thống file root của bạn (vì nó là một trong những mục ta muốn theo dõi):

df -h / 

Ta sẽ sử dụng tên hệ thống file trong cấu hình NRPE để theo dõi việc sử dụng đĩa của bạn (có thể là /dev/vda ). Bây giờ hãy mở nrpe.cfg để chỉnh sửa:

sudo vi /etc/nagios/nrpe.cfg 

Tệp cấu hình NRPE rất dài và đầy đủ các comment . Có một vài dòng mà bạn cần tìm và sửa đổi:

  • server_address : Đặt thành địa chỉ IP riêng của server này
  • allow_hosts : Đặt thành địa chỉ IP riêng của server Icinga của bạn
  • command [check_hda1] : Thay đổi /dev/hda1 thành bất kỳ hệ thống file root nào của bạn được gọi

Ba dòng nói trên sẽ giống như sau (thay thế các giá trị thích hợp):

server_address=client_private_IP allowed_hosts=nagios_server_private_IP command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/vda 

Lưu ý có một số “lệnh” khác được xác định trong file này sẽ chạy nếu server Icinga được cấu hình để sử dụng chúng. Cũng lưu ý NRPE sẽ lắng nghe trên cổng 5666 vì server_port=5666 được đặt. Nếu bạn có firewall nào chặn cổng đó, hãy đảm bảo mở nó tới server Icinga của bạn.

Lưu và thoát. Sau đó khởi động lại NRPE để các thay đổi có hiệu lực:

sudo service nagios-nrpe-server restart 

Sau khi hoàn tất cài đặt và cấu hình NRPE trên các server mà bạn muốn theo dõi, bạn sẽ phải thêm các server này vào cấu hình server Icinga của bạn trước khi nó bắt đầu giám sát chúng.

Thêm server từ xa vào cấu hình server Icinga

Trên server Icinga của bạn, hãy tạo file cấu hình mới cho từng server từ xa mà bạn muốn giám sát trong /etc/icinga/objects . Thay yourhost với tên của server của bạn:

sudo vi /etc/icinga/objects/yourhost.cfg 

Thêm vào định nghĩa server sau, thay thế giá trị host_name bằng tên server từ xa của bạn (tôi đã sử dụng “wordpress-1” trong ví dụ của bạn ), giá trị alias với mô tả về server và giá trị address bằng địa chỉ IP riêng của điều khiển từ xa tổ chức:

define host {         use                     generic-host         host_name               wordpress-1         alias                   My first wordpress server         address                 10.128.xxx.xxx         } 

Sau đó, thêm bất kỳ khối dịch vụ nào trong số các khối dịch vụ này cho các dịch vụ bạn muốn theo dõi. Lưu ý giá trị của check_command xác định những gì sẽ được giám sát, bao gồm cả các giá trị ngưỡng trạng thái. Dưới đây là một số ví dụ mà bạn có thể thêm vào file cấu hình server của bạn :

Ping:

define service {         use                             generic-service         host_name                       wordpress-1         service_description             PING         check_command                   check_ping!100.0,20%!500.0,60%         } 

SSH (notification_enabled được đặt thành 0 vô hiệu hóa thông báo cho một dịch vụ):

define service {         use                             generic-service         host_name                       wordpress-1         service_description             SSH         check_command                   check_ssh         notifications_enabled           0         } 

Tải:

define service {         use                             generic-service         host_name                       wordpress-1         service_description             Current Load         check_command                   check_load!5.0!4.0!3.0!10.0!6.0!4.0         } 

Những user hiện tại:

define service {         use                             generic-service         host_name                       wordpress-1         service_description             Current Users         check_command                   check_users!20!50         } 

Dung lượng đĩa:

define service {         use                             generic-service         host_name                       wordpress-1         service_description             Disk Space         check_command                   check_all_disks!20%!10%         } 

Nếu bạn đang tự hỏi việc use generic-service nghĩa là gì, nó chỉ đơn giản là kế thừa các giá trị của mẫu dịch vụ được gọi là "dịch vụ chung" được xác định theo mặc định.

Bây giờ lưu và thoát. Reload cấu hình Icinga của bạn để thực hiện mọi thay đổi:

sudo service icinga reload 

Khi bạn đã hoàn tất việc cấu hình Icinga để giám sát tất cả các server từ xa của bạn , hãy kiểm tra giao diện user .

Ví dụ về giao diện user

Sau khi cài đặt giám sát trên một số server bằng một trong hai phương pháp giám sát, hãy truy cập giao diện user Icinga của bạn ( http://youricingaserver.com/icinga , đăng nhập acingaadmin), sau đó nhấp vào liên kết Chi tiết dịch vụ. Bạn sẽ thấy danh sách tất cả các dịch vụ mà bạn cài đặt giám sát.

Ví dụ: đây là hai server đang được theo dõi bằng cách sử dụng các file cấu hình được mô tả ở trên. Dịch vụ HTTP web-1 đang được giám sát thông qua cổng HTTP thông thường của nó, cho biết rằng web server của nó đang phản hồi với trạng thái OKwordpress-1 đang hiển thị rằng tất cả các dịch vụ được giám sát của nó đều OK .

Ví dụ về giao diện  user  Icinga

Icinga có rất nhiều tính năng, vì vậy hãy duyệt qua giao diện để xem những gì bạn có thể khám phá về server và dịch vụ của bạn .

Kết luận

Đến đây bạn đang theo dõi server của bạn và một số dịch vụ của họ, bạn có thể cần dành một chút thời gian để tìm ra dịch vụ nào là quan trọng đối với bạn, vì vậy bạn có thể bắt đầu theo dõi những dịch vụ đó. Bạn cũng có thể cần cài đặt thông báo, chẳng hạn như bạn nhận được email khi việc sử dụng đĩa của bạn đạt đến ngưỡng cảnh báo hoặc ngưỡng quan trọng hoặc trang web chính của bạn không hoạt động, vì vậy bạn có thể giải quyết tình huống này ngay lập tức hoặc trước khi sự cố xảy ra.

Chúc may mắn!


Tags:

Các tin liên quan

Cách sử dụng Logstash và Kibana để tập trung log trên Ubuntu 14.04
2014-06-11
Cách cài đặt Graylog2 và tập trung log trên Ubuntu 14.04
2014-06-06
Cách cài đặt và cấu hình OpenLDAP và phpLDAPadmin trên server Ubuntu 14.04
2014-06-05
Cách cấu hình Collectd để thu thập số liệu hệ thống cho Graphite trên Ubuntu 14.04
2014-06-03
Cách cấu hình StatsD để thu thập số liệu thống kê tùy ý cho Graphite trên Ubuntu 14.04
2014-06-03
Cách cài đặt OctoberCMS trên VPS chạy Ubuntu 14.04
2014-05-28
Cách cài đặt và sử dụng Graphite trên server Ubuntu 14.04
2014-05-27
Cách cài đặt và sử dụng Ack, một sự thay thế Grep cho các nhà phát triển, trên Ubuntu 14.04
2014-05-27
Cách sử dụng BitTorrent Sync để đồng bộ hóa các thư mục trong Ubuntu 14.04
2014-05-19
Cách sử dụng HAProxy làm bộ cân bằng tải lớp 4 cho server ứng dụng WordPress trên Ubuntu 14.04
2014-05-16