Jestem samotnym programistą sieci Web z własnym Centos VPS, hostującym kilka małych stron internetowych dla moich klientów. Dzisiaj odkryłem, że moja usługa httpd została zatrzymana (bez wyraźnego powodu - ale to kolejny wątek). Zrestartowałem go, ale teraz muszę znaleźć sposób, aby otrzymać powiadomienie e-mailem i / lub SMS-em, jeśli to się powtórzy - nie podoba mi się to, gdy mój klient dzwoni do mnie z informacją, że ich strona internetowa nie działa!
Wiem, że prawdopodobnie istnieje wiele różnych możliwości, w tym oprogramowanie do monitorowania serwerów. Myślę, że wszystko, czego naprawdę potrzebuję, to skrypt, który mogę uruchomić jako zadanie crona z mojego hosta programistów (który jest stale uruchomiony w moim biurze), który próbuje załadować stronę z mojego serwera produkcyjnego i jeśli nie ładuje się w ciągu powiedzmy 30 sekund, a następnie wysyła mi e-mail lub SMS. Jestem dość bzdurny w skryptach powłoki, stąd to pytanie.
Wszelkie sugestie będą mile widziane.
Odpowiedzi:
Cóż ... Najprostszy skrypt, piszę:
Dodaj go do crona jako:
Ale zbyt łatwo jest powiedzieć, na czym polega problem, jeśli istnieje.
UPD: Teraz ten linijka sprawdza określony ciąg na stronie („Ciąg normalnej pracy”), który powinien pojawić się tylko podczas normalnej pracy.
UPD2: Prosty sposób wysłania strony błędu w wiadomości e-mail:
Minusem jest to, że strona jest ponownie żądana w przypadku niepowodzenia pierwszego testu. Tym razem żądanie może się powieść i nie zobaczysz błędu. Oczywiście można zapisać dane wyjściowe i wysłać je jako załącznik, ale spowoduje to, że skrypt będzie bardziej złożony.
źródło
Spójrz na ten skrypt:
curl
to narzędzie wiersza polecenia do pobierania adresu URL. Skrypt sprawdza kod wyjścia ($? Odnosi się do kodu wyjścia najnowszego polecenia w skrypcie powłoki) i jeśli był inny niż 0, zgłasza błąd (kod wyjścia 0 ogólnie odnosi się do sukcesu). Jak wspomniano w odpowiedzi HUBA, możesz także po prostu||
w wierszu poleceń uruchomić drugie polecenie, gdy pierwsze zawiedzie.Po ustaleniu statusu musisz po prostu wysłać sobie pocztę. Oto przykład, który używa
mail
polecenia do wysyłania wiadomości e-mail ze skryptu powłoki, przy założeniu, że w polu, z którego testujesz, skonfigurowano SMTP:BTW: jeśli nie jesteś dobry w skryptowaniu powłoki, nie ograniczaj się do skryptu powłoki. Możesz użyć skryptu ruby, skryptu php, dowolnego skryptu, który Twój serwer może uruchomić! Po prostu dodaj
#!/path/to/executable
wiersz na początku skryptu - na przykład:#!/usr/bin/php
źródło
Sprawdź ten skrypt . sprawdza listę witryn i wysyła wiadomość e-mail (do listy wiadomości e-mail), gdy coś jest nie tak (odpowiedź HTTP inna niż 200). Skrypt tworzy plik .temp w celu „zapamiętania” stron internetowych, które uległy awarii podczas ostatniej kontroli, więc nie otrzymasz wielu wiadomości e-mail. plik .temp jest usuwany, gdy witryna ponownie działa.
Dodaj następujące wiersze do crontab config ($ crontab -e)
Dostępne na Github
źródło
Wiem, że wszystkie powyższe skrypty są dokładnie tym, o co prosiłeś, ale proponuję spojrzeć na monit, ponieważ wyśle ci e-mail, jeśli apache jest wyłączony, ale również go zrestartuje (jeśli nie działa).
źródło
Poleciłbym do tego pingdom. Ich bezpłatna usługa pozwala sprawdzić 1 stronę, ale to wszystko, czego potrzebujesz, aby sprawdzić 1 serwer. Jeśli masz iPhone'a, wysyłają Ci wiadomość za darmo, więc nie musisz kupować od nich kredytów SMS i mają wiele ustawień, których możesz użyć. Mój jest ustawiony, aby powiadamiać mnie po 2 próbach (10 minut), a następnie co 10 minut przestoju. To niesamowite, ponieważ sprawdza również wiadomości HTTP 500 wskazujące, że witryna nie działa. Jeśli się nie powiedzie, natychmiast ponownie sprawdza twoją witrynę z innego serwera w innej lokalizacji. Jeśli to się nie powiedzie, cóż, to wyzwala twoje preferencje, w jaki sposób / kiedy chcesz otrzymywać powiadomienia.
źródło
Niewielka odmiana powyższego.
Skrypt sprawdzający, czy witryna internetowa jest dostępna co 10 sekund. Rejestruj nieudane próby do
siteuptime.txt
pliku, aby później można go było przeglądać (lub wyświetlać w programie Excel).źródło
źródło
Ponieważ masz wiele witryn na swoim VPS, polecam Możesz otworzyć konto w witrynie monitorowania witryny, takiej jak host-tracker.com. Oprócz powiadamiania cię, jeśli strona jest nieczynna, czy nie, zapewniają one również tygodniowy, miesięczny i roczny czas pracy twoich witryn. Whish jest bardzo pomocny w zarządzaniu i wydajności.
źródło
Co powiesz na to:
źródło