470 likes | 651 Views
Monitoring aplikacji PHP Zaawansowany, aktywny monitoring aplikacji PHP / Zend Framework. Bartłomiej Rozkrut Empathy – Internet Software House. Kilka słów o mnie…. www.empathy.pl. Wstęp. Po co monitorować aplikacje PHP?. … aby uniknąć niezdrowej frustracji użytkowników? ;-).
E N D
Monitoring aplikacji PHP Zaawansowany, aktywny monitoring aplikacji PHP / Zend Framework Bartłomiej Rozkrut Empathy – Internet Software House
Kilka słów o mnie… www.empathy.pl
Wstęp Po co monitorować aplikacje PHP? … aby uniknąć niezdrowej frustracji użytkowników? ;-) www.empathy.pl
Wstęp www.empathy.pl
Monitoring infrastruktury www.empathy.pl
Monitoring infrastruktury Popularne narzędzia do monitoringu www.empathy.pl
Monitoring infrastruktury Nagios - dashboard www.empathy.pl
Monitoring infrastruktury Nagios – mapa sieci www.empathy.pl
Monitoring infrastruktury Cacti www.empathy.pl
Monitoring infrastruktury Munin www.empathy.pl
Monitoring infrastruktury Zabbix www.empathy.pl
Monitoring aplikacji PHP Prosty monitoring aplikacji www.empathy.pl
Monitoring aplikacji PHP gdy pojawia się … • Nie możemy się dostać na przeciążony serwer (opóźnienie konsoli) • Problem z dostępem do logów na serwerze • Dostajemy tysiące powiadomień mailowych – pada nam poczta ;-) • Nie mamy informacji o stanie serwera i aplikacji z przed awarii! • Pozostaje nam zablokowanie ruchu na firewallu lub twardy reset… www.empathy.pl
Monitoring aplikacji PHP Czego potrzebujemy? • Niezależnego systemu monitoringu • Korelacji pomiędzy monitoringiem infrastruktury, a aplikacji • Historii danych oraz wystąpień problemów • Wizualizacji danych • Elastycznego powiadamiania względem skali problemów • Powiadamiania o ustąpieniu problemu • Możliwości monitorowania typowych ścieżek nawigacji/akcji • Możliwości wykorzystania obecnych mechanizmów logowania www.empathy.pl
Monitoring aplikacji PHP Komercyjne rozwiązania www.empathy.pl
Monitoring aplikacji PHP www.empathy.pl
Monitoring aplikacji PHP www.empathy.pl
Monitoring aplikacji PHP Rozwiązania Open Source • Brak kompleksowego, dedykowanego rozwiązania • Projekty: • Monitorix for Zend Framework • Alternative PHP Monitor – peclapm • Pinba • XH GUI www.empathy.pl
Monitoring aplikacji PHP Możliwe rozwiązania? • Wykorzystanie oprogramowania do monitoringu infrastruktury • Duży wybór narzędzi Open Source • Konieczność kompleksowej konfiguracji • Konieczność wyszukania wtyczek monitorujących • Część narzędzi jest przygotowana do monitoringu aplikacji www.empathy.pl
Monitoring aplikacji PHP Co możemy monitorować? www.empathy.pl
Monitoring aplikacji PHP Co możemy monitorować? www.empathy.pl
Monitoring aplikacji PHP • Platforma Zabbix • Zaawansowany system monitoringu Open Source • Aktualnie mniej popularny od Nagiosa • Szybki – Server oraz Agent napisany w C, GUI w PHP • Wieloplatformowy – Server/Agent na Linux / BSD / Unix / Mac OS X + Agent na Windows / Novell • Prosta instalacja, dostępne Live CD oraz maszyny wirtualne • Dostępne GUI na smartphone – iPhone (Mozaby), Android (Mobbix) + wersja WWW dla urządzeń mobilnych (MoZBX) www.empathy.pl
Monitoring aplikacji PHP • Możliwości Zabbix • Połączenie możliwości Nagiosa i Cacti – domyślnie wizualizacja danych • Możliwość pracy w konfiguracji rozproszonej – master-slave • Monitoring WWW poprzez specjalny moduł • Moduł monitorowania logów • Możliwość uruchamiania własnych skryptów monitorujących • Zaawansowane uprawnienia użytkowników, dostęp przez API • Zaawansowane możliwości powiadamiania oraz eskalacji • Szablony, mapy, zaawansowane panele „dashboard” • Możliwość kalkulacji SLA www.empathy.pl
Monitoring aplikacji PHP Rozproszona konfiguracja Zabbix www.empathy.pl
Monitoring aplikacji PHP Konfiguracja monitoringu prostych ścieżek nawigacji www.empathy.pl
Monitoring aplikacji PHP www.empathy.pl
Monitoring aplikacji PHP Selenium Remote Control + Zabbix_Sender www.empathy.pl
Monitoring aplikacji PHP Konfiguracja kontraktu SLA www.empathy.pl
Monitoring aplikacji PHP Podgląd realizacji SLA www.empathy.pl
Case Study – kontri.pl www.empathy.pl
Case Study – kontri.pl www.empathy.pl
Case Study – kontri.pl Powiązania pomiędzy systemami www.empathy.pl
Case Study – kontri.pl Serwer multimediów www.empathy.pl
Case Study – kontri.pl • Wyzwania • Bardzo duże skomplikowanie aplikacji, wielosklepowość, B2C+B2B • Konieczność inteligentnego cachowania • każdy użytkownik może widzieć inną cenę • pełen on-line na stanach magazynowych • rezerwacje koszykowe • zaawansowana wieloatrybutowość • Mnogość integracji • system ERP • serwer stanów magazynowych • serwer multimediów • integracje z systemami internetowymi, kurierami www.empathy.pl
Case Study – kontri.pl • Co monitorować? • Serwery i łącza • Obciążenie systemu, uptime • Użycie dysków twardych (w tym także ramdrive) • Użycie pamięci operacyjnej / użycie swap • Ilość połączeń do SQL, ilość locków na bazie • Dostępność i wolne zasoby MemCached • Dostępność i czas odpowiedzi serwera WWW, SMTP, PostgreSQL • Status macierzy dyskowej • Wykorzystanie dostępnego pasma • Czasy odpowiedzi serwerów, routerów oraz kluczowych sieci www.empathy.pl
Case Study – kontri.pl • Co monitorować? • Aplikacja • Status połączenia WebService z systemem ERP • Czas trwania importu danych XML • Możliwość zapisu danych Zend_Cache • Ilość jednocześnie przetwarzanych dynamicznych requestów • Długość kolejek (mailowych, synchronizacyjnych) • Wersje oprogramowania – PHP, PostgreSQL • Zmiana pliku konfiguracyjnego aplikacji (md5) www.empathy.pl
Case Study – kontri.pl • Co monitorować? • Biznes • Ilość jednoczesnych użytkowników • Ilość rezerwacji koszykowych – czy próba nadużycia? • Czy w ostatniej godzinie było złożone X zamówień? • Poprawność rezerwacji towaru w serwerze stanów magazynowych • Czas realizacji zamówienia – zmiana statusów • Selenium • Rejestracja, logowanie użytkownika • Złożenie próbnego zamówienia • Rezerwacja koszykowa towaru www.empathy.pl
Case Study – kontri.pl Architektura monitoringu www.empathy.pl
Case Study – kontri.pl • Podstawowe pojęcia Zabbix • Host– monitorowane urządzenie • Item– parametr z danymi, przechowuje dane • Application – grupa parametrów • Trigger– test parametru względem zadanych warunków • Action – podjęcie akcji na podstawie triggera(ów) • Graph – wykres (line, stacked, pie) – dostępny konfigurator www.empathy.pl
Case Study – kontri.pl • Zabbix_Server – przetwarza i przechowuje dane • Zabbix_Agent – instalowany na monitorowanym systemie • Zabbix_Proxy – instalowany poza LAN • Zabbix_Agent • Parametry użytkownika • UserParameter=users.active,phpusers_active.php • Zabbix_Sender • Wysyłanie wyników do serwera centralnego • zabbix_sender -z ZABBIX_SERVER • -s MONITOROWANY_HOST -k nazwa_parametru -o 0 www.empathy.pl
Case Study – kontri.pl Monitoring logów • Przyrostowy monitoring logów • Działa poprawnie z rotacją logów • Zend_Log • Monitorujemy wystąpienia błędów PHP – WARN, ERROR • Monitorujemy błędy logiczne www.empathy.pl
Case Study – kontri.pl Powiadamianie • Elastyczna konfiguracja • Zdefiniowanie osób odpowiedzialnych • Zdefiniowanie czasu pracy osób oraz metod komunikacji • Pełna historia problemu – kto podjął, komentarz, rozwiązanie • Zmiana trendów - bez powiadomienia, ew. Jabber • Problemy mogące poczekać – powiadomienie e-mail • Problemy krytyczne – SMS 24x7 www.empathy.pl
Pytania? www.empathy.pl
Dziękuję bartek@empathy.plwww.empathy.pl/facebook