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.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.cfg
và lb1.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 đó):
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:
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):
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, app1 và app2 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:
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):
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:
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):
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:
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 .
Các tin liên quan
Xây dựng cho Sản xuất: Ứng dụng Web - Tổng quan2015-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