Saya seorang pengembang web tunggal dengan Centos VPS saya sendiri yang meng-hosting beberapa situs web kecil untuk klien saya. Hari ini saya menemukan layanan httpd saya telah berhenti (tanpa alasan yang jelas - tapi itu utas lainnya). Saya memulainya kembali tetapi sekarang saya harus menemukan cara agar saya dapat diberi tahu melalui email dan / atau SMS jika itu terjadi lagi - saya tidak suka ketika klien saya menelepon saya untuk memberi tahu saya bahwa situs web mereka tidak berfungsi!
Saya tahu mungkin ada banyak kemungkinan yang berbeda, termasuk perangkat lunak pemantauan server. Saya pikir semua yang saya butuhkan adalah skrip yang dapat saya jalankan sebagai cron job dari host dev saya (yang berjalan secara permanen di kantor saya) yang mencoba memuat halaman dari server produksi saya dan jika tidak dimuat dalam katakana 30 detik kemudian mengirimi saya email atau SMS. Saya cukup sampah di skrip shell, maka pertanyaan ini.
Setiap saran akan sangat dihargai.
Jawaban:
Yah ... Script paling sederhana, saya bisa menulis:
Tambahkan ke cron sebagai:
Tetapi terlalu sederhana untuk memberi tahu Anda apa masalahnya jika ada.
UPD: Sekarang one-liner ini memeriksa string tertentu pada halaman ("string operasi normal"), yang seharusnya muncul hanya pada operasi normal.
UPD2: Cara sederhana untuk mengirim halaman kesalahan dalam email:
Yang minus adalah bahwa halaman diminta kembali jika terjadi kegagalan tes pertama. Kali ini permintaan mungkin berhasil dan Anda tidak akan melihat kesalahan. Tentu saja, dimungkinkan untuk menyimpan output dan mengirimkannya sebagai lampiran, tetapi itu akan membuat skrip lebih kompleks.
sumber
Lihatlah skrip ini:
curl
adalah utilitas baris perintah untuk mengambil URL. Skrip memeriksa kode keluar ($? Mengacu pada kode keluar dari perintah terbaru dalam skrip shell) dan jika itu selain 0, melaporkan kesalahan (kode keluar 0 biasanya merujuk pada keberhasilan). Seperti disebutkan dalam jawaban HUB, Anda juga bisa hanya||
pada baris perintah untuk menjalankan perintah kedua ketika yang pertama gagal.Setelah status Anda diketahui, Anda hanya perlu mengirim sendiri beberapa surat. Berikut adalah contoh yang menggunakan
mail
perintah untuk mengirim email dari skrip shell, dengan asumsi kotak yang Anda uji memiliki penyiapan SMTP:BTW: jika Anda tidak mahir dalam skrip shell, jangan membatasi diri Anda pada skrip shell. Anda dapat menggunakan skrip ruby, skrip php, skrip apa pun yang dapat dijalankan oleh server Anda! Cukup tambahkan
#!/path/to/executable
baris di awal skrip - misalnya:#!/usr/bin/php
sumber
Periksa skrip ini . itu memeriksa daftar situs web dan mengirim email (ke daftar email) setiap kali ada yang salah (respon http berbeda dari 200). Skrip membuat file .temp untuk "mengingat" situs web mana yang gagal pada pemeriksaan terakhir sehingga Anda tidak akan mendapatkan banyak email. file .temp dihapus ketika situs web berfungsi kembali.
Tambahkan baris berikut ke config crontab ($ crontab -e)
Tersedia di Github
sumber
Saya tahu bahwa semua skrip di atas adalah persis apa yang Anda minta, tetapi saya akan menyarankan melihat monit karena itu akan mengirimi Anda email jika apache turun tetapi juga akan me-restart itu (jika turun).
sumber
Saya akan merekomendasikan pingdom untuk ini. Layanan gratis mereka memungkinkan Anda memeriksa 1 situs, tetapi hanya itu yang Anda perlukan untuk memeriksa 1 server. Jika Anda memiliki iPhone, mereka mengirim pesan push kepada Anda secara gratis, jadi tidak perlu membeli kredit SMS dari mereka, dan mereka memiliki beberapa pengaturan yang dapat Anda gunakan. Milik saya diatur untuk memberi tahu saya setelah 2 mencoba lagi (10 menit) dan setiap 10 menit setelahnya. Ini luar biasa, karena ia juga memeriksa pesan-pesan HTTP 500 yang mengindikasikan sebuah situs sedang down. Jika gagal, segera memeriksa situs Anda lagi dari server yang berbeda di lokasi yang berbeda. Jika itu gagal, yah, itu memicu preferensi Anda tentang bagaimana / kapan Anda ingin mendapat pemberitahuan.
sumber
Sedikit variasi di atas.
Sebuah skrip untuk memeriksa apakah suatu situs web tersedia setiap 10 detik. Log gagal mencoba menjadi
siteuptime.txt
file sehingga dapat dilihat (atau digambarkan dalam excel) nanti.sumber
sumber
Karena Anda memiliki banyak situs di VPS Anda, saya akan merekomendasikan Anda dapat membuka akun dengan situs pemantauan situs web seperti host-tracker.com. Selain memberi tahu Anda jika situs sedang down atau tidak mereka juga memberi Anda uptime mingguan, bulanan, dan tahunan dari situs Anda. Whish sangat membantu untuk manajemen dan kinerja.
sumber
Bagaimana dengan ini:
sumber