Thiết lập Amazon Cloudwatch để nhận thông báo khi máy chủ của bạn không hoạt động


13

Tôi có một phiên bản đang chạy trên Amazon EC2 mà tôi đã biến thành một máy chủ web.

Bây giờ tôi đã nhìn vào cloudwatch, nhưng tôi không biết liệu đó có phải là công cụ chính xác cho công việc không. Về cơ bản tôi muốn nhận được thông báo khi máy chủ ngừng hoạt động, vì bất kỳ lý do gì.

Có thể máy chủ đã bị hack hoặc máy chủ ngừng hoạt động vì bất kỳ lý do gì, tôi muốn nhận được thông báo về điều đó.

Tôi đã kích hoạt clouwatch và cố gắng thiết lập cảnh báo, nhưng tôi chỉ thấy những thứ như sử dụng mạng ngoài hoặc sử dụng cpu, một metrix d. Bây giờ tôi không biết nếu những điều này sẽ thực hiện các mẹo.


1
thanh toán trên đám mây. tôi biết chúng tôi không có ý định truyền bá ý kiến, nhưng cloudkick là giải pháp giám sát yêu thích của tôi. pingdom khá vô dụng vì trang web của bạn có thể ping được (apache / nginx) nhưng các bộ xử lý php / java / ruby ​​của bạn có thể không hoạt động. nhấn một URL thực tế bằng cloudkick cứ sau 3 phút và kiểm tra sự hiện diện của văn bản bạn chỉ định hoặc để thành công 2xx, sẽ hữu ích hơn nhiều và đảm bảo toàn bộ ngăn xếp hoạt động. Tôi có thiết lập màn hình để bảo vệ, sử dụng mem, kết nối đại lý (máy chủ ngoại tuyến hoặc kết nối bị rớt), http 2xx thành công trên các trang, v.v.
iainlbc

Bạn đã làm một điểm tốt ở đây. Nếu chỉ có php thì bạn vẫn nhận được phản hồi 200. Các liên kết bạn cung cấp là một thay thế tốt. Tôi sẽ có một cái nhìn về nó khi tôi đưa ra quyết định cuối cùng của mình.
Saif Bechan

@iainlbc Bạn có thể đặt Pingdom để truy cập một URL thực tế và kiểm tra văn bản cụ thể.
ceejayoz

Câu trả lời:


11

Một khuyến nghị là theo dõi một số liệu phải luôn có giá trị số - chẳng hạn như mức sử dụng CPU và kích hoạt báo động khi trạng thái số liệu là 'không đủ dữ liệu', bạn có thể sử dụng SNS của Amazon để thông báo cho bạn về điều này.

Ngoài ra, bạn có thể thiết lập các số liệu tùy chỉnh trả về trạng thái nhị phân cho các dịch vụ cụ thể (httpd, mysql, v.v.) và tạo cảnh báo bất cứ khi nào trong số này đọc 0. Cách tiếp cận này cung cấp khả năng chi tiết tốt hơn - kết hợp nó với 'dữ liệu không đủ 'để bao gồm tất cả các trường hợp.

Bạn có thể thành công hơn khi sử dụng thứ gì đó thực sự giám sát trang web của bạn (ví dụ: Pingdom, UptimeRobot, v.v.).


Tôi đã xem xét các dịch vụ như pingdom, và tôi chắc chắn sẽ kích hoạt chúng. Hơn nữa, tôi cũng đã nghĩ đến việc nhìn vào cpu, nhưng tôi nghĩ điều gì sẽ xảy ra khi máy chủ web bị hack. Có một bài kiểm tra cho httpd, mysql vv chắc chắn sẽ giúp. Bạn có thể cho tôi một gợi ý về cách kích hoạt số liệu trạng thái nhị phân này .
Saif Bechan

Tóm lại: xác định một cách để có được trạng thái của dịch vụ quan tâm (ví dụ: ps | grep cho pid / name; kiểm tra một cổng đang sử dụng , v.v.) - tức là một kịch bản theo dõi. Sửa đổi tập lệnh như vậy để gọi API Cloudwatch (PutMetricData) chuyển nó thành 0 (cho xuống) hoặc 1 (để tăng) - tốt nhất là sử dụng một trong các SDK tồn tại cho mục đích này (ví dụ: Ruby, PHP, Vân vân); phiên bản dòng lệnh mon-put-data chậm hơn. Chạy tất cả với cron.
cyberx86

1
Ok nghe có vẻ hơi phức tạp. Tôi nghĩ rằng một dịch vụ như gainimerobot sẽ là lựa chọn tốt hơn cho cá nhân tôi. Cảm ơn vì sự giúp đỡ.
Saif Bechan

3

Bạn có thể sử dụng OpsGenie ( http://www.opsgenie.com ) để gửi cảnh báo phong phú cho CloudWatch. Currenly CloudWatch có một bộ cơ chế cảnh báo giới hạn bao gồm Email và SMS thông qua cơ chế SNS của nó.

Bạn có thể định cấu hình CloudWatch để gọi API dịch vụ web OpsGenie, nhận đúng người được thông báo nhanh chóng thông qua các thông báo đẩy tới ứng dụng iPhone / Android, SMS, cuộc gọi thoại, v.v. theo sở thích của người nhận.

Xin hãy xem bài viết trên blog sau đây để biết thông tin chi tiết:

http://www.opsgenie.com/blog/2012/09/04/aws-cloudwatch-alarms-on-your-mobile-with-opsgenie.html


2

Bạn có thể tạo Báo thức trong Cloudwatch và đặt báo thức để thông báo cho bạn khi nó chuyển sang trạng thái "Dữ liệu không đủ". Hầu hết các số liệu đã có sẵn là từ Máy chủ VM, không có ý tưởng thực sự nào về những gì đang xảy ra trong máy của bạn.

Khi bắt đầu, tôi khuyên bạn nên cài đặt các công cụ Amazon trong ví dụ của mình và thiết lập một tập lệnh để báo cáo điều gì đó, (Bất cứ điều gì: Sử dụng CPU, bất cứ điều gì) và báo động nếu số liệu đó dừng gửi dữ liệu (Vì vậy, số liệu chuyển sang trạng thái Dữ liệu không đủ ).

Đây chỉ là một mức tối thiểu, nhưng nên là một nơi tốt để bắt đầu.

Xem phần tập lệnh giám sát của hướng dẫn dành cho nhà phát triển Cloudwatch: http://docs.amazonwebservice.com/AmazonCloudWatch/latest/DeveloperGuide/mon-scripts.html


Tuyệt vời, chỉ là những gì tôi đang tìm kiếm.
GivP

2

Bạn có thể sử dụng Tuyến 53 và "Kiểm tra sức khỏe". Với điều này, bạn có thể gửi thông báo SNS và cũng chuyển hướng người dùng của bạn đến một trang web thứ cấp khác hoặc màn hình lỗi. Tôi nghĩ rằng đây là giải pháp tốt hơn cho vấn đề của bạn sau đó là Cloudwatch.


2

Bạn có thể thực hiện kiểm tra trạng thái EC2 . Nó được thực hiện từ bảng điều khiển EC2. Đi đến các phiên bản, chọn phiên bản của bạn, chọn tab kiểm tra trạng thái (bên cạnh mô tả phiên bản) Nhấp vào tạo cảnh báo kiểm tra trạng thái Mặc định "Kiểm tra trạng thái không thành công (bất kỳ)" sẽ tốt. Tôi luôn đặt khoảng thời gian lớn hơn một để tôi không bị làm phiền vì các vấn đề nhất thời.

Cũng có thể đặt EC2 để tự động khôi phục phiên bản của bạn nếu nó bị hỏng vì một số lý do.

Tôi cũng đề nghị một hệ thống giám sát thứ cấp. Dumb là tốt cho cái này. Tôi thiết lập tiện ích linux mon trỏ vào máy chủ web của tôi từ một máy chủ khác. Nếu không nhận được 200 mã phản hồi hai lần liên tiếp, tôi nhận được email.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.