Date: Desember 11, 2020
Menggunakan Datadog untuk Amazon EC2 Monitoring? Sandingkan dengan SIOS AppKeeper untuk Remediasi Otomatis
Pernahkah Anda berpikir, “Alangkah baiknya jika Datadog dapat memantau layanan Amazon EC2 kami dan secara otomatis memulai ulang ketika mendeteksi kegagalan?” Saya memikirkan hal yang sama, dan memutuskan untuk mencobanya sendiri.
SIOS AppKeeper secara otomatis memantau instans Amazon EC2 untuk kegagalan dan secara otomatis memulai ulang instans atau bahkan melakukan boot ulang layanan ketika kegagalan terdeteksi.Saya berpikir, "Bagaimana jika kita menggabungkan kemampuan pemantauan Datadog dengan kemampuan remediasi otomatis AppKeeper?"
Itu berhasil, dan inilah cara saya melakukannya.
Jika Anda sudah menggunakan Datadog dan tertarik untuk mencobanya sendiri, silakan daftar di bagian akhir artikel ini untuk mengakses API kami.
Berikut adalah langkah-langkah yang saya ambil untuk menyiapkan AppKeeper agar menerima peringatan dari Datadog dan memulai ulang server web di Amazon EC2 saat waktu henti terdeteksi.
Untuk menjalankan eksperimen ini dengan sukses, kami sudah memiliki akun Datadog, akun AppKeeper, dan server web NGINX yang berjalan di Amazon EC2 (menggunakan Linux 2).
Bagaimana mengintegrasikan Datadog dengan AppKeeper untuk menyediakan remediasi otomatis
Langkah Satu: Dapatkan Restart API Token dari AppKeeper
Minta Token API untuk integrasi Datadog dari formulir ini:
https://mk.sios.jp/BC_AppKeeper_Datadog_api_application
Jika Anda memintanya dari formulir, token akan dikirim ke alamat email yang Anda berikan.
Langkah Kedua: Buat penyewa di AppKeeper
Langkah selanjutnya adalah mendaftarkan akun AWS tempat instans yang dipantau berada di AppKeeper. (AppKeeper menyebut akun AWS terdaftar sebagai "penyewa".)
Langkah Tiga: Buat Peran IAM di AWS
Saya kemudian membuat Peran IAM di AWS (Anda memerlukan ini untuk menyiapkan akun AppKeeper Anda).Berikut adalah petunjuk jika Anda tidak terbiasa dengan proses ini.
Langkah Empat: Tambahkan penyewa di AppKeeper
Langkah selanjutnya adalah menambahkan "penyewa" di AppKeeper (AppKeeper menganggap akun AWS sebagai "penyewa").Berikut ini tautan ke petunjuk mendetail untuk melakukan ini.
Langkah Lima: Siapkan Pengujian Sintetis di Datadog
Saya kemudian perlu mengonfigurasi pemantauan garis besar Datadog untuk server Nginx (contoh EC2) yang ingin kami pantau.Berikut cara melakukannya:
Buka dasbor Datadog dan pilih UX Monitoring> Synthetic Tests dari menu.
Klik tomb[New Test]ol di sudut kanan atas dan pilih untuk me[New API Test]mbuat kasus pemantauan garis besar.
Masukkan informasi berikut dalam formulir untuk membuat kasus pemantauan garis besar.
- Pilih Jenis Permintaan
Pilih "HTTP". - Tentukan Permintaan:
Atur nilai-nilai berikut.
URL: DAPATKAN http: // {{{EC2 IP address}}
Nama: AppKeeper Datadog Integration Test (nama apa saja)
Lokasi: Tokyo
3. Tentukan frekuensi pengujian
Tidak ada perubahan
4. Tentukan pernyataan
Klik "New Assertion" dan atur nilai berikut
Kapan[status code] [is]:[200]
5. Tentukan Kondisi Peringatan
Tidak ada perubahan
6.Beri tahu Tim Anda
Tidak ada perubahan
Langkah Enam: Jalankan uji Sintetis di Datadog
Setelah input di atas selesai, tekan "Buat Tes" untuk membuat kasus uji untuk pemantauan eksternal.
Hasilnya terlihat dan kita dapat melihat bahwa webserver bekerja dengan baik di bagian "Hasil Tes".
Hanya itu yang harus dilakukan untuk mengonfigurasi pemantauan Synthetics menggunakan Datadog.
Langkah Tujuh: Atur AppKeeper untuk menerima peringatan Synthetics
Selanjutnya saya harus mengatur AppKeeper sebagai tujuan notifikasi.Dari menu Datadog, buka Integrasi dan pilih tab Integrasi.
Di kotak telusur, masukkan "Webhook" untuk menemukan integrasi Webhooks.
Klik "Tersedia" untuk mengaktifkan integrasi Webhooks di akun Datadog Anda. (Setelah diaktifkan, ini akan muncul di kolom "Terpasang".)
Klik "Configure" untuk membuka halaman konfigurasi integrasi Webhooks.
Di kolom "Webhook" di bagian bawah halaman, klik "Baru +" untuk membuat tujuan notifikasi Webhooks baru. Untuk parameternya, masukkan berikut ini
Nama: Nama integrasi (nama apa saja)
URL: https://api.appkeeper.sios.com/v2/integration/ {{AWS account ID}} / actions / recover
Muatan:
{
“InstanceId”: “{{EC2 Instance ID}}”, “Nama”: “nginx” } |
Header Khusus: Centang kotak dan masukkan yang berikut ini
{ “Jenis konten”: “application / json”, “Accept”: “application / json”, "Appkeeper-integration-token": "{{Dapatkan AppKeeper token integrasi eksternal Token yang diperoleh di}}" } |
Setelah selesai, tekan "Simpan".
Langkah Delapan: Menghubungkan AppKeeper ke tes Synthetics
Selanjutnya, saya harus mengonfigurasi AppKeeper (integrasi Webhooks terdaftar) untuk dipanggil ketika peringatan pemantauan Synthetics terjadi.
Buka kasus pengujian yang Anda siapkan di "Mengonfigurasi Pemantauan Sintetis dengan Datadog" dari Pemantauan UX> Pengujian Sintetis di menu.
Pilih "Edit detail pengujian" dari kotak roda gigi kanan atas dan masukkan nilai berikut di "5. Beri tahu Tim Anda ”untuk menyimpan perubahan.
@webhook – {{Nama integrasi Webhook di Datadog}} |
※ Anda dapat mengatur "renotify jika monitor belum diselesaikan".Anda dapat mencoba lagi jika AppKeeper gagal memulihkan untuk pertama kalinya.Ini tidak diperlukan untuk tujuan pengujian, tetapi kami menyarankan Anda untuk mengaturny[10 minutes]a ke (interval minimum).
Penyiapan sekarang selesai.
Langkah Sembilan: Konfirmasikan integrasi dengan menjalankan tes lagi
Saya kemudian mengonfirmasi bahwa AppKeeper akan memulihkan server web jika Datadog mendeteksinya tidak aktif.
Buka kasus uji pemantauan Synthetics yang baru saja Anda siapkan dari UX Monitoring> Synthetic Tests di Datadog.
Klik "Lanjutkan Tes" di pojok kanan atas dan aktifkan pemantauan Synthetics.
Sekarang Datadog akan melakukan pemantauan Synthetics secara berkala.
Hasil Tes menunjukkan bahwa server berhasil diakses.
Selanjutnya, saya membuat server web pseudo-failure untuk menguji remediasi otomatis AppKeeper.
Karena sulit untuk menyebabkan kegagalan yang nyata, saya menghentikan layanan dan membuat situasi di mana Anda tidak dapat melihat halaman web.Untuk melakukan ini, saya terhubung ke instance EC2 di mana server Nginx diinstal menggunakan SSH dan menghentikan Nginx.
sudo systemctl menghentikan nginx |
Setelah menunggu sebentar, Datadog mendeteksi bahwa server web tidak dapat diakses lagi.
Halaman Tes Sintetis di Datadog juga menunjukkan bahwa kasus pengujian telah gagal.
Jika kasus uji gagal, Datadog akan memberi tahu AppKeeper bahwa pemantauan Synthetics telah gagal.
Ketika AppKeeper menerima notifikasi, secara otomatis akan mencoba untuk memulai ulang Nginx.
Jadi, jika Anda menunggu sebentar, Anda akan melihat bahwa pemeriksaan pemantauan Sintetik Datadog akan lulus lagi.
Selain itu, jika Anda masuk ke dasbor AppKeeper, Anda akan melihat bahwa pemulihan telah dilakukan.
–
Dalam latihan ini saya menggunakan server web (Nginx) sebagai contoh untuk mengotomatiskan proses mendeteksi kegagalan dengan Datadog dan memulihkan layanan dengan AppKeeper.
Otomatisasi serupa dapat dicapai dengan mengintegrasikan Datadog dengan EventBridge dan Lambda atau dengan membuat skrip khusus.
Namun, jika Anda sering menambahkan instans target atau memulai ulang berbagai layanan, biaya dan kerumitan pemeliharaan EventBridge dan Lambda atau skrip akan meningkat.
Integrasi AppKeeper yang telah terbukti dengan Datadog dan kemudahan untuk menambahkan instance target ke aplikasi Anda membuatnya mudah untuk menambahkan otomatisasi ke lingkungan DevOps Anda untuk mengurangi waktu henti.
Jika saat ini Anda menggunakan Datadog dan ingin mencoba AppKeeper's Restart API, harap daftar dulu untuk uji coba gratis 14 hari kami di sini (Anda dapat membeli langganan setelah menginstal uji coba gratis).Kemudian klik di sini untuk meminta uji coba gratis. Kami akan memandu Anda melalui proses dan memberi Anda token evaluasi gratis untuk membantu Anda memulai.
Ajukan permohonan token evaluasi
Terima kasih.Saya harap Anda akan mengambil kesempatan ini untuk mempelajari lebih lanjut tentang SIOS AppKeeper, yang menyediakan pemantauan otomatis dan pemulihan aplikasi yang berjalan di EC2.
– Tatsuya Hirao di tim teknis Teknologi SIOS.
Direproduksi dengan izin dari SIOS