Menyiapkan Amazon Cloudwatch untuk mendapatkan peringatan ketika server Anda sedang down

13

Saya memiliki contoh berjalan di Amazon EC2 yang saya berubah menjadi server web.

Sekarang saya telah melihat cloudwatch, tetapi saya tidak tahu apakah itu alat yang tepat untuk pekerjaan itu. Pada dasarnya saya ingin mendapat informasi ketika server sedang down, untuk alasan apa pun.

Mungkin server diretas, atau server dimatikan karena alasan apa pun, saya ingin mendapat pemberitahuan tentang itu.

Saya telah mengaktifkanwatchwatch, dan mencoba mengatur peringatan, tetapi saya hanya melihat hal-hal seperti jaringan keluar atau penggunaan cpu, dan metrix. Sekarang saya tidak tahu apakah ini akan berhasil.

Saif Bechan
sumber
1
checkout cloudkick. Saya tahu kami tidak seharusnya menyebarkan opini, tetapi cloudkick adalah solusi pemantauan favorit saya. pingdom sangat tidak berguna karena situs Anda bisa pingable (apache / nginx) tetapi proksi Anda juga proses php / java / ruby ​​mungkin tidak berfungsi. Memukul URL aktual dengan cloudkick setiap 3 menit dan memeriksa keberadaan teks yang Anda tentukan, atau untuk keberhasilan 2xx, jauh lebih berguna dan memastikan seluruh tumpukan berfungsi. saya punya monitor setup untuk loadaverage, penggunaan mem, koneksi agen (server offline atau koneksi turun), http 2xx sukses di halaman, dll.
iainlbc
Anda membuat poin yang bagus di sini. Jika hanya php yang turun, Anda masih akan mendapatkan 200 tanggapan. Tautan yang Anda berikan adalah alternatif yang baik. Saya akan melihatnya ketika saya membuat keputusan akhir saya.
Saif Bechan
@ iainlbc Anda dapat mengatur Pingdom untuk menekan URL aktual dan memeriksa teks tertentu.
ceejayoz

Jawaban:

11

Satu rekomendasi adalah memantau metrik yang harus selalu memiliki nilai numerik - seperti penggunaan CPU, dan memicu alarm ketika status metrik adalah 'data tidak mencukupi' Anda dapat menggunakan SNS Amazon untuk memberi tahu Anda mengenai hal ini.

Atau, Anda dapat menyiapkan metrik khusus yang mengembalikan status biner untuk layanan tertentu (httpd, mysql, dll) dan menghasilkan lansiran setiap kali salah satu dari ini berbunyi 0. Pendekatan ini menawarkan kemungkinan detail yang jauh lebih halus - gabungkan dengan 'data tidak mencukupi. 'untuk menutupi semua kasus.

Anda mungkin lebih berhasil menggunakan sesuatu yang benar-benar memonitor situs Anda (misalnya Pingdom, UptimeRobot, dll).

cyberx86
sumber
Saya telah melihat layanan seperti pingdom, dan saya pasti akan mengaktifkannya. Selanjutnya, saya juga berpikir untuk melihat cpu, tetapi saya pikir apa yang akan terjadi ketika server web diretas. Memiliki tes untuk httpd, mysql dll pasti akan membantu. Bisakah Anda memberi saya petunjuk tentang cara mengaktifkan metrik status biner ini .
Saif Bechan
Secara singkat: tentukan cara untuk mendapatkan status layanan yang menarik (mis. Ps | grep untuk pid / nama; periksa port yang digunakan , dll) - yaitu skrip pengawas. Ubah skrip semacam itu untuk memanggil Cloudwatch API (PutMetricData) dengan meneruskannya 0 (untuk turun) atau 1 (untuk naik) - akan lebih baik menggunakan salah satu SDK yang ada untuk tujuan ini (misalnya Ruby, PHP, dll); versi baris perintah mon-put-data lebih lambat. Jalankan semuanya dengan cron.
cyberx86
1
Ok itu kedengarannya agak rumit. Saya pikir layanan seperti uptimerobot akan menjadi pilihan yang lebih baik bagi saya pribadi. Terima kasih atas semua bantuannya.
Saif Bechan
3

Anda dapat menggunakan OpsGenie ( http://www.opsgenie.com ) untuk mengirim lansiran kaya untuk CloudWatch. Currenly CloudWatch memiliki seperangkat mekanisme peringatan termasuk Email dan SMS melalui mekanisme SNS-nya.

Anda dapat mengonfigurasi CloudWatch untuk memanggil API layanan web OpsGenie, membuat orang yang tepat diberi tahu dengan cepat melalui pemberitahuan push ke aplikasi iPhone / Android, SMS, panggilan suara, dll. Sesuai dengan preferensi penerima.

Silakan lihat di posting blog berikut untuk informasi rinci:

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

enguzekli
sumber
2

Anda dapat membuat Alarm di Cloudwatch dan mengatur alarm untuk memberi tahu Anda ketika masuk ke kondisi "Data Tidak Cukup". Sebagian besar metrik yang sudah tersedia berasal dari Host VM, yang tidak memiliki ide nyata tentang apa yang terjadi di dalam mesin Anda.

Pada awalnya, saya akan merekomendasikan menginstal alat Amazon dalam contoh Anda dan mengatur skrip untuk melaporkan sesuatu, (Apa pun: penggunaan CPU, apa pun) dan alarm jika metrik itu berhenti mengirim data (Jadi metrik masuk ke status Data Tidak Cukup) ).

Ini hanya minimum, tetapi harus menjadi tempat yang baik untuk memulai.

Lihat bagian skrip pemantauan panduan pengembang Cloudwatch: http://docs.amazonwebservices.com/AmazonCloudWatch/latest/DeveloperGuide/mon-scripts.html

Matt Connolly
sumber
Luar biasa, hanya apa yang saya cari.
GivP
2

Anda dapat menggunakan Rute 53 dan "Pemeriksaan kesehatan" -nya. Dengan ini, Anda dapat mengirim peringatan SNS dan juga mengarahkan pengguna Anda ke situs web sekunder lain atau layar kesalahan. Saya pikir ini solusi yang lebih baik untuk masalah Anda daripada Cloudwatch.

Petr
sumber
2

Anda dapat menerapkan pemeriksaan status EC2 . Itu dilakukan dari dashboard EC2. Pergi ke instance, pilih instance Anda, pilih tab pemeriksaan status (di sebelah deskripsi contoh) Klik pada buat pemeriksaan status alarm Default "Pemeriksaan Status Gagal (ada)" harus baik. Saya selalu mengatur interval ke lebih dari satu sehingga saya tidak terganggu untuk masalah sementara.

EC2 juga dapat diatur untuk secara otomatis memulihkan instance Anda jika turun karena suatu alasan.

Saya juga merekomendasikan sistem pemantauan sekunder. Bodoh itu bagus untuk yang ini. Saya mengatur utilitas linux yang menunjuk ke server web saya dari host lain. Jika gagal mendapatkan 200 kode respons dua kali berturut-turut, saya mendapat email.

jorfus
sumber
1

Jika Anda ingin memantau titik akhir HTTP, seperti API atau situs Web Anda, lihat posting blog saya tentang cara mencapainya dengan Route 53 Health Checks (bahkan jika Anda tidak menggunakan Route 53 untuk DNS):

http://eladnava.com/monitoring-http-health-email-alerts-aws/

Elad Nava
sumber