W ramach systemu monitorowania przedsiębiorstwa organizacje polegają na alertach i powiadomieniach jako pierwszej linii obrony przed osiągnięciem wysokiej dostępności, a w konsekwencji obniżeniem kosztów przestojów.
Alerty i powiadomienia są czasami używane zamiennie, na przykład możemy powiedzieć „otrzymałem alert systemu o dużym obciążeniu”, a zastąpienie „alert” przez „powiadomienie” nie zmieni znaczenia wiadomości. Jednak w świecie systemów zarządzania należy zwrócić uwagę na różnicę:alerty to zdarzenia generowane w wyniku awarii systemu, a powiadomienia służą do przekazywania informacji o stanie systemu, w tym o awarii. Jako przykład na blogu Manynines Introducing the ClusterControl Alerting Integrations omówiono jedną z funkcji integracji ClusterControl, system powiadomień, który jest w stanie dostarczać alerty za pośrednictwem poczty e-mail, usług czatu i systemów zarządzania incydentami. Zobacz także Wiki PostgreSQL — Alerty i powiadomienia o statusie.
Aby dokładnie monitorować aktywność bazy danych PostgreSQL, system zarządzania opiera się na metrykach aktywności bazy danych, funkcjach niestandardowych lub doradcach monitorowania oraz plikach dziennika monitorowania.
W tym artykule opiszę narzędzia wymienione na Wiki PostgreSQL, w sekcjach Monitorowanie i GUI PostgreSQL, pomijając te, które nie są aktywnie utrzymywane lub nie zapewniają alertów i powiadomień ani w ramach produktu, ani na bezpłatnym koncie próbnym. Chociaż nie jest to wyczerpująca recenzja, każde narzędzie zostało zainstalowane i skonfigurowane do momentu, w którym mogłem zrozumieć jego możliwości ostrzegania i powiadamiania.
Nagios
Nagios to popularny lokalny system monitorowania ogólnego przeznaczenia, który oferuje szeroką gamę wtyczek. Chociaż Nagios Core jest oprogramowaniem typu open source, zalecanym rozwiązaniem do monitorowania PostgreSQL jest Nagios XI.
Ustawienia powiadomień dotyczą użytkownika i aby je zmienić, administrator musi „zalogować się jako” użytkownik — Nagios używa terminu masquerade as . Na stronie ustawień konta użytkownik może włączyć lub wyłączyć metody powiadamiania:
Preferencje powiadomień Nagios XIAby skonfigurować typy powiadomień, przejdź do strony „Metody powiadomień”:
Metody powiadamiania Nagios XIWięcej informacji znajdziesz w Podręczniku użytkownika Nagios XI.
Aby skonfigurować alerty, zaloguj się jako administrator i wybierz kreatora konfiguracji bazy danych:
Kreator konfiguracji bazy danych Nagios XIPo skonfigurowaniu alerty można przeglądać, wybierając dowolny z domyślnych widoków, pulpitów nawigacyjnych lub możemy skonfigurować niestandardowy. Po wyjęciu z pudełka, Nagios XI dostarcza następujące monitory PostgreSQL:
Monitory PostgreSQL Nagios XIZwróć uwagę, że po wyjęciu z pudełka Nagios XI nie dostarcza żadnych metryk opartych na PostgreSQL Statistics Collector, zamiast tego każda metryka musi być zdefiniowana za pomocą kreatora konfiguracji „Postgres Query”:
Zapytanie Postgres Nagios XIDatadog
Datadog to uniwersalne narzędzie do monitorowania SaaS, które oferuje bardzo duży zestaw integracji z różnymi usługami. Aby rozpocząć monitorowanie, wybierz integrację PostgreSQL, a następnie wybierz integracje powiadomień, takie jak e-mail, czat (np. Slack) lub systemy reagowania na incydenty, takie jak PagerDuty:
Integracje DatadogAby otrzymywać powiadomienia przez skonfigurowane wcześniej kanały integracyjne, musimy stworzyć przynajmniej jeden monitor Datadog, w przypadku monitorowania PostgreSQL typu monitora „integracyjnego”:
Integracja Datadog PostgreSQLPierwszym krokiem w konfiguracji monitora jest wybór typu alertu:
Metoda wykrywania DatadogNastępnie skonfiguruj co najmniej jedną metrykę:
Konfiguracja metryk DatadorSkonfiguruj warunki wyzwalania alertu:
Wyzwalacz alertu DatadogPowiadomienia można dostosować za pomocą zmiennych szablonu:
Integracja Datadog PostgresNa koniec podaj listę odbiorców, którzy będą otrzymywać powiadomienia:
Odbiorcy powiadomień DatadogZdarzenia, które Datadog może monitorować, są wymienione w sekcji „Metryki” integracji PostgreSQL i są oparte na predefiniowanych widokach PostgreSQL Statistics Collector:
Wskaźniki integracji Datadog PostgresAby monitorować zdarzenia, które nie są dostarczane z domyślną integracją, Datadog zapewnia klientom możliwość tworzenia niestandardowych metryk ograniczonych do planu Datadog.
Okometr
Okmeter jest również częścią rodziny monitorowania SaaS ogólnego przeznaczenia i podobnie jak inne narzędzia SaaS wymaga agenta na monitorowanym hoście. Po zainstalowaniu agenta włączany jest zestaw domyślnych wyzwalaczy zdarzeń, w tym sprawdzanie połączenia PostgreSQL:
Automatyczne wyzwalacze OkmeterAby uzyskać więcej metryk PostgreSQL, należy dodać „serwer” PostgreSQL:
Okmeter — dodawanie serweraAby monitorować statystyki PostgreSQL, podobnie jak w Nagios i Datadog, musimy skonfigurować niestandardowe metryki, jak wyjaśniono w dokumentacji Okmeter — Wysyłanie niestandardowych metryk. Lub edytuj metrykę „Serwer PostgreSQL” powyżej, aby uwzględnić widoki w funkcji „okmeter.pg_stats”.
Strona dokumentacji statystyk zapytań Okmeter wyjaśnia, jak włączyć śledzenie statystyk wykonania dla instrukcji SQL. Zwróć uwagę, że istnieje kilka ograniczeń w korzystaniu z widoków „pg_stat_statements”, m.in. maksymalna liczba odrębnych instrukcji, które mogą być rejestrowane przez moduł — szczegółowe informacje można znaleźć w dokumentacji PostgreSQL na pg_stat_statements.
Strona kontaktów powiadomień to miejsce, w którym powiadomienia są konfigurowane dla każdego użytkownika:
Powiadomienie kontaktowe OkmeterPowiadomienia można dodatkowo dostosować za pomocą szablonów:
Szablon powiadomienia OkmeterCyrk
Circonus, kolejny produkt do ogólnego monitorowania SaaS, zawiera funkcję „sprawdzania” PostgreSQL, którą można włączyć indywidualnie lub dodać w ramach jednoetapowej instalacji:
Konfiguracja Circonus CheckZgodnie z dokumentacją Circonus PostgreSQL, sprawdzenie odbywa się ze zdalnej lokalizacji za pomocą bezpośrednich instrukcji SQL. Po skonfigurowaniu hosta PostgreSQL do akceptowania połączeń od brokera Circonus, kreator przedstawi listę dostępnych metryk:
Sprawdzenie Circonus PostgreSQLAby skonfigurować alerty, każda metryka jest powiązana z zestawem reguł i listą kontaktów, które mają być powiadamiane.
Szczegóły metryki cyrkonuAlerty są kategoryzowane na podstawie poziomów ważności:
Zestawy reguł cyrkowych Poziomy ważnościKanały powiadomień obejmują SMS, OpsGenie, Slack, VictorOps i PagerDuty (bez poczty e-mail). Poniższy zrzut ekranu przedstawia integrację ze Slackiem:
Grupy kontaktów CirconusAby skonfigurować powiadomienia, do każdej metryki w sprawdzeniu należy przypisać reguły i kontakty. Pamiętaj, że kontakty należy utworzyć przed edycją danych:
Zestawy reguł cyrkowychNowa relikwia
New Relic to kolejny ogólny system monitorowania SaaS. Jeśli chodzi o PostgreSQL, dostępne są (w chwili pisania tego tekstu) trzy wtyczki. Najnowsza to wtyczka Blue Medora:
Nowa wtyczka Relic PostgreSQL od Blue MedoraGdy wtyczka działa, staje się widoczna na stronie wtyczek i jesteśmy gotowi do skonfigurowania alertów:
Konfiguracja alertów o nowych reliktachNew Relic wykorzystuje koncepcję zasad alertów do grupowania alertów w incydenty. Przed skonfigurowaniem polityki musimy ustawić kanały powiadomień. Po wyjęciu z pudełka New Relic integruje się ze wszystkimi popularnymi systemami reagowania na incydenty, a także z pocztą e-mail:
Nowe typy kanałów reliktówPamiętaj, że integracja musi być najpierw włączona w aplikacji do powiadamiania. Na przykład wybierając Slack z listy typów kanałów:
Integracja z New Relic SlackNastępnie utwórz „zasadę alertów”:
Zasady alertów o nowych reliktachPolityka ostrzegania wymaga „warunku alertu”. Kolejny zestaw zrzutów ekranu pokazuje, jak to osiągnąć:
Kategoria warunków PostgreSQL nowej reliktu Nowa encja warunku PostgreSQL w relikcie Próg warunku PostgreSQL nowego reliktuNa koniec wybierz kartę Kanały powiadomień, aby zmienić ustawienie domyślne:
Kanały powiadomień o nowych reliktach PostgreSQLOpcjonalnie dodaj warunek alertu do New Relic Insights (wymaga dodatkowej subskrypcji):
Nowe informacje o reliktachMenedżer przedsiębiorstwa Postgres
PEM lub Postgres Enterprise Manager to narzędzie do zarządzania, dostrajania i monitorowania PostgreSQL.
Zawiera bardzo bogaty zestaw predefiniowanych wskaźników:
Predefiniowane wskaźniki Postgres Enterprise ManagerAby zmodyfikować domyślne alerty lub utworzyć niestandardowe, użyj szablonów alertów:
Szablon alertu niestandardowego Postgres Enterprise ManagerPEM wykorzystuje pocztę e-mail i SNMP do powiadomień, dzięki czemu może łatwo zintegrować się z systemami monitorowania, takimi jak Nagios, ale nie ma integracji z popularnymi systemami zarządzania incydentami (PagerDuty, VictorOps, OpsGenie) lub usługami czatu (Slack) dostępnymi w inne produkty.
Postgres Enterprise Manager Email i alerty SNMPpgwatch2
pgwatch2 to kolejne narzędzie do monitorowania zorientowane na PostgreSQL, samoobsługowe rozwiązanie.
Aby zdefiniować alerty, musimy najpierw utworzyć niestandardowy pulpit nawigacyjny i zdefiniować metrykę:
Wskaźniki panelu kontrolnego pgwatch2Następnie skonfiguruj alert:
pgwatch2 Konfiguracja alertów w paneluPo skonfigurowaniu alerty pojawią się na stronie Lista alertów:
Pgwatch2 Lista alertów w panelupgwatch2 integruje się ze wszystkimi popularnymi systemami powiadomień. Oto przykład dodawania kanału Slack:
Integracja ze Slack pgwatch2Aby wyświetlić kanały powiadomień skonfigurowane w systemie, otwórz stronę „Kanały powiadomień”:
Kanały powiadomień pgwatch2Dodatkowe metryki można dodać zgodnie z dokumentacją w sekcji Funkcje pgwatch2.
ClusterControl
ClusterControl to lokalny system zarządzania zorientowany na bazę danych z obsługą PostgreSQL, MySQL, MariaDB i MongoDB.
Pierwszym krokiem jest dodanie integracji powiadomień. Więcej informacji o dostępnych integracjach można znaleźć na stronie Wprowadzenie do integracji alertów ClusterControl:
Integracje z ClusterControlNa potrzeby tego demo skonfigurowałem Slacka:
Integracja z ClusterControl SlackClusterControl oferuje również opcję powiadamiania przez e-mail:
Powiadomienia ClusterControl przez e-mailPo pojawieniu się powiadomień utwórz niestandardowych doradców, aby wyzwalać alerty na podstawie określonych kryteriów:
ClusterControl Custom AdvisorsPobierz oficjalny dokument na dziś zarządzaj i skaluj PostgreSQLPobierz raportWniosek
Artykuł nie miał na celu szczegółowego zapoznania się z funkcjonalnością każdego narzędzia, a raczej próbowałem opisać to, co uważałem za ważne funkcje związane z alertami i powiadomieniami w szczególności dla PostgreSQL.
Jedną z wyciągniętych wniosków jest to, że w procesie selekcji należy wziąć pod uwagę kilka czynników:
- lokalnie lub SaaS
- sprawdzanie przez agenta lub zdalne
- integracja z systemami zarządzania incydentami i usługami czatu
- dostępność monitorowanych wskaźników, po wyjęciu z pudełka i wtyczek
- możliwość dodawania niestandardowych wskaźników
- funkcje zarządzania alertami (np. grupowanie)
- złożoność a szczegółowość w interfejsie użytkownika
- dodatkowe funkcje (zarządzanie, tuning, API itp.)
Ponadto, jeśli jedno rozwiązanie nie spełnia wszystkich wymagań biznesowych i/lub technicznych, zawsze można skorzystać z kombinacji usług.