Thứ hai, 01/06/2015 | 00:00 GMT+7

Xây dựng cho Sản xuất: Ứng dụng Web - Giám sát

Bây giờ ta đã cài đặt server ứng dụng production , kế hoạch khôi phục và bản backup , hãy xem xét thêm tính năng giám sát để nâng cao nhận thức của ta về trạng thái của server và dịch vụ của ta . Phần mềm giám sát, chẳng hạn như Nagios, Icinga và Zabbix, cho phép bạn tạo console và cảnh báo sẽ cho bạn biết những thành phần nào trong cài đặt ứng dụng của bạn cần chú ý. Mục tiêu của việc này là giúp bạn phát hiện các vấn đề với cài đặt của bạn và bắt đầu khắc phục chúng trước khi user của bạn gặp phải chúng.

Sơ đồ giám sát

Trong hướng dẫn này, ta sẽ cài đặt Nagios 4 làm phần mềm giám sát và cài đặt tác nhân NRPE trên các server bao gồm ứng dụng của ta .

Đối với mỗi server trong cài đặt của ta , ta sẽ cài đặt giám sát để kiểm tra xem server có hoạt động hay không và quá trình chính của nó (tức là apache, mysql hoặc haproxy) có đang chạy hay không. Mặc dù hướng dẫn giám sát này không đầy đủ — bạn có thể sẽ muốn cài đặt các kiểm tra bổ sung mà ta sẽ không đề cập ở đây — đó là một nơi tuyệt vời để bắt đầu.

Yêu cầu

Nếu bạn muốn truy cập trang tổng quan ghi log của bạn qua một domain , hãy tạo Bản ghi A trong domain của bạn, chẳng hạn như “monitor.example.com”, trỏ đến địa chỉ IP công cộng của server giám sát của bạn. Ngoài ra, bạn có thể truy cập trang tổng quan giám sát qua địa chỉ IP công cộng. Bạn nên cài đặt web server giám sát để sử dụng HTTPS và hạn chế quyền truy cập vào nó bằng cách đặt nó sau VPN.

Cài đặt Nagios trên Server Giám sát

Cài đặt Nagios trên server giám sát của bạn theo hướng dẫn này: Cách cài đặt Nagios 4 và Giám sát server của bạn trên Ubuntu 14.04 . Nếu muốn, bạn cũng có thể sử dụng Icinga , một nhánh của Nagios.

Dừng lại khi bạn đến phần Giám sát Server Ubuntu với NRPE .

Thêm server vào Nagios

Trên mỗi server trong cài đặt của bạn (db1, app1, app2 và lb1), đi qua phần Giám sát server Ubuntu với NRPE của hướng dẫn Nagios.

Hãy chắc chắn để thêm hostname tin hoặc địa chỉ IP của server giám sát của bạn vào allowed_hosts cài đặt trong file cấu hình NRPE.

Khi bạn hoàn tất việc thêm từng server , bạn sẽ có một file riêng cho từng server mà bạn muốn theo dõi: db1.cfg , app1.cfg , app2.cfglb1.cfg . Mỗi file phải chứa định nghĩa server đề cập đến tên server và địa chỉ tương ứng (có thể là tên server hoặc địa chỉ IP của server ).

Cài đặt server lưu trữ và giám sát dịch vụ

Hãy lập danh sách những thứ phổ biến mà ta muốn theo dõi trên mọi server . Đối với mỗi server , hãy theo dõi các dịch vụ sau:

  • Ping
  • SSH
  • Tải trọng hiện tại
  • Những user hiện tại
  • Sử dụng đĩa

Hãy cài đặt điều đó ngay bây giờ.

Xác định các dịch vụ chung

Trong hướng dẫn cài đặt Nagios, ta đã cấu hình Nagios để tìm kiếm các file .cfg trong /usr/local/nagios/etc/servers (hoặc /etc/icinga/objects/ for Icinga). Để giữ mọi thứ có tổ chức, ta sẽ tạo một file cấu hình Nagios mới cho các dịch vụ phổ biến mà ta muốn giám sát có tên là “common.cfg”.

Đầu tiên, hãy mở file cấu hình server để chỉnh sửa

  • sudo vi /usr/local/nagios/etc/servers/common.cfg

Thêm các định nghĩa dịch vụ sau, với host_name của từng server của bạn (được định nghĩa trong định nghĩa server , trước đó):

Cấu hình Nagios - Dịch vụ thông thường
define service {         use                             generic-service         host_name                       db1,app1,app2,lb1         service_description             PING         check_command                   check_ping!100.0,20%!500.0,60% }  define service {         use                             generic-service         host_name                       db1,app1,app2,lb1         service_description             SSH         check_command                   check_ssh         notifications_enabled           0 }  define service {         use                             generic-service         host_name                       db1,app1,app2,lb1         service_description             Current Load         check_command                   check_nrpe!check_load }  define service {         use                             generic-service         host_name                       db1,app1,app2,lb1         service_description             Current Users         check_command                   check_nrpe!check_users }  define service{         use                             generic-service         host_name                       db1,app1,app2,lb1         service_description             Disk Utilization         check_command                   check_nrpe!check_hda1 } 

Lưu và thoát.

Bây giờ ta đã sẵn sàng để xác định các dịch vụ cụ thể cho từng server . Ta sẽ bắt đầu với server database của ta .

Xác định quy trình MySQL

Tạo lệnh NRPE (trên client )

Trên server database của bạn, db1 , ta sẽ cấu hình lệnh NRPE mới. Mở file cấu hình NRPE mới, “command.cfg”:

  • sudo vi /etc/nagios/nrpe.d/commands.cfg

Thêm định nghĩa lệnh sau:

Cấu hình NRPE (command.cfg) - check_mysqld
command[check_mysqld]=/usr/lib/nagios/plugins/check_procs -c 1: -C mysqld 

Lưu và thoát. Điều này cho phép NRPE kiểm tra quá trình có tên “mysqld” và báo cáo trạng thái quan trọng nếu có ít hơn 1 quá trình có tên đó đang chạy.

Reload cấu hình NRPE:

  • sudo service nagios-nrpe-server reload

Tạo Định nghĩa Dịch vụ (trên Server )

Trên server Nagios của bạn, theo dõi , ta cần xác định một dịch vụ mới sử dụng NRPE để chạy lệnh check_mysqld .

Mở file xác định xác định server database của bạn. Trong ví dụ của ta , nó được gọi là “db1.cfg”:

  • sudo vi /usr/local/nagios/etc/servers/db1.cfg

Vào cuối của file , thêm định nghĩa dịch vụ này (đảm bảo host_name giá trị phù hợp với tên của định nghĩa host):

db1.cfg - check_mysql
define service {         use                             generic-service         host_name                       db1         service_description             Check MySQL Process         check_command                   check_nrpe!check_mysqld } 

Lưu và thoát. Điều này cấu hình Nagios sử dụng NRPE để chạy lệnh check_mysqld trên server database .

Để thay đổi này có hiệu lực, ta phải reload Nagios. Tuy nhiên, ta sẽ chuyển sang theo dõi tiến trình Apache trước.

Xác định tiến trình Apache

Tạo lệnh NRPE (trên client )

Trên các server ứng dụng, app1app2 của bạn , ta sẽ cấu hình lệnh NRPE mới. Mở file cấu hình NRPE mới, “command.cfg”:

  • sudo vi /etc/nagios/nrpe.d/commands.cfg

Thêm định nghĩa lệnh sau:

Cấu hình NRPE (Lệnh.cfg) - check_apache2
command[check_apache2]=/usr/lib/nagios/plugins/check_procs -c 1: -w 3: -C apache2 

Lưu và thoát. Điều này cho phép NRPE kiểm tra quy trình có tên “apache2” và báo cáo trạng thái quan trọng nếu không có quy trình phù hợp nào đang chạy hoặc báo cáo trạng thái cảnh báo nếu có ít hơn ba quy trình phù hợp.

Reload cấu hình NRPE:

  • sudo service nagios-nrpe-server reload

Đảm bảo lặp lại điều này trên bất kỳ server ứng dụng bổ sung nào.

Tạo Định nghĩa Dịch vụ (trên Server )

Trên server Nagios của bạn, theo dõi , ta cần xác định một dịch vụ mới sử dụng NRPE để chạy lệnh check_apache2 .

Mở file xác định xác định server ứng dụng của bạn. Trong ví dụ của ta , chúng được gọi là “app1.cfg” và “app2.cfg”:

  • sudo vi /usr/local/nagios/etc/servers/app1.cfg

Vào cuối của file , thêm định nghĩa dịch vụ này (đảm bảo host_name giá trị phù hợp với tên của định nghĩa host):

app1.cfg và app2.cfg - check_apache2
define service {         use                             generic-service         host_name                       app1         service_description             Check Apache2 Process         check_command                   check_nrpe!check_apache2 } 

Lưu và thoát. Điều này cấu hình Nagios sử dụng NRPE để chạy lệnh check_apache2 trên các server ứng dụng. Đảm bảo lặp lại điều này cho từng server ứng dụng của bạn.

Để thay đổi này có hiệu lực, ta phải reload Nagios. Tuy nhiên, ta sẽ chuyển sang theo dõi quá trình HAProxy trước đó.

Xác định quy trình HAProxy

Tạo lệnh NRPE (trên client )

Trên server cân bằng tải của bạn, lb1 , ta sẽ cấu hình lệnh NRPE mới. Mở file cấu hình NRPE mới, “command.cfg”:

  • sudo vi /etc/nagios/nrpe.d/commands.cfg

Thêm định nghĩa lệnh sau:

Cấu hình NRPE (command.cfg) - check_haproxy
command[check_haproxy]=/usr/lib/nagios/plugins/check_procs -c 1: -C haproxy 

Lưu và thoát. Điều này cho phép NRPE kiểm tra quy trình có tên “haproxy” và báo cáo trạng thái quan trọng nếu có ít hơn 1 quy trình có tên đó đang chạy.

Reload cấu hình NRPE:

  • sudo service nagios-nrpe-server reload

Đảm bảo lặp lại điều này trên bất kỳ server ứng dụng bổ sung nào.

Tạo Định nghĩa Dịch vụ (trên Server )

Trên server Nagios của bạn, theo dõi , ta cần xác định một dịch vụ mới sử dụng NRPE để chạy lệnh check_haproxy .

Mở file xác định xác định server database của bạn. Trong ví dụ của ta , nó được gọi là “lb1.cfg”:

  • sudo vi /usr/local/nagios/etc/servers/lb1.cfg

Vào cuối của file , thêm định nghĩa dịch vụ này (đảm bảo host_name giá trị phù hợp với tên của định nghĩa host):

lb1.cfg - check_haproxy
define service {         use                             generic-service         host_name                       lb1         service_description             Check HAProxy Process         check_command                   check_nrpe!check_haproxy } 

Điều này cấu hình Nagios sử dụng NRPE để chạy lệnh check_haproxy trên server cân bằng tải của bạn.

Để thay đổi này có hiệu lực, ta phải reload Nagios.

Reload cấu hình Nagios

Để reload Nagios và đặt tất cả các thay đổi của ta có hiệu lực, hãy nhập lệnh sau:

sudo service nagios reload 

Nếu không có lỗi cú pháp nào trong cấu hình, bạn nên được cài đặt .

Kiểm tra dịch vụ Nagios

Trước khi tiếp tục, bạn cần xác minh Nagios đang giám sát tất cả các server và dịch vụ mà bạn đã xác định. Truy cập server Nagios của bạn thông qua tên server công cộng hoặc địa chỉ IP của nó, ví dụ: http://monitoring. example.com /nagios/ . Nhập thông tin đăng nhập bạn đã cài đặt trong quá trình cài đặt server Nagios.

Trong menu bên, nhấp vào liên kết Dịch vụ . Bạn sẽ được đưa đến một trang giống như sau:

Dịch vụ Nagios

Lý tưởng nhất là bạn sẽ thấy từng server lưu trữ và tất cả các dịch vụ sẽ ở trạng thái “OK”. Trong ảnh chụp màn hình, ta có thể thấy rằng có sự cố với server app2 vì nó đã bị tắt trong hầu hết các lần kiểm tra trạng thái gần đây. Nếu bất kỳ dịch vụ nào của bạn không “OK”, hãy sửa chúng hoặc nếu dịch vụ tốt, hãy xem lại cấu hình Nagios của bạn để biết lỗi.

Những ý kiến khác

Rất có thể bạn cần tạo một kế hoạch khôi phục cho server giám sát của bạn và backup các file cấu hình Nagios của bạn ( /usr/local/nagios/etc ). Sau khi backup được cài đặt , bạn có thể sẽ muốn cấu hình giám sát, cho các dịch vụ bổ sung và thông báo qua email.

Kết luận

Như vậy, bạn có thể xem trạng thái của các server và dịch vụ của bạn bằng cách chỉ cần nhìn vào console giám sát của bạn. Trong trường hợp ngừng hoạt động, hệ thống giám sát của bạn sẽ giúp bạn xác định (các) server và (các) dịch vụ nào đang chạy không đúng cách, điều này sẽ giúp giảm thời gian ngừng hoạt động của ứng dụng của bạn.

Tiếp tục đến hướng dẫn tiếp theo để bắt đầu cài đặt ghi log tập trung cho cài đặt server production của bạn: Xây dựng cho Sản xuất: Ứng dụng web - Ghi log tập trung .


Tags:

Các tin liên quan

Xây dựng cho Sản xuất: Ứng dụng Web - Tổng quan
2015-06-01
Xây dựng cho Sản xuất: Ứng dụng Web - backup
2015-06-01
Xây dựng cho Sản xuất: Ứng dụng Web - Triển khai
2015-06-01
Xây dựng cho sản xuất: Ứng dụng web - Ghi log tập trung
2015-06-01
Xây dựng cho Sản xuất: Ứng dụng Web - Lập kế hoạch khôi phục
2015-06-01
Cách cài đặt control panel lưu trữ web Sentora trên Ubuntu 14.04
2015-04-27
Cách cài đặt web server OpenLiteSpeed trên CentOS 7
2015-04-16
Cách cài đặt web server OpenLiteSpeed trên Ubuntu 14.04
2015-04-15
Cách cài đặt Bacula-Web trên Ubuntu 14.04
2015-04-03
Khái niệm cơ bản về bộ nhớ đệm trên web: Thuật ngữ, Tiêu đề HTTP và Chiến lược lưu vào bộ đệm
2015-04-01