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:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444136.png)
Aby skonfigurować typy powiadomień, przejdź do strony „Metody powiadomień”:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444259.png)
Więcej informacji znajdziesz w Podręczniku użytkownika Nagios XI.
Aby skonfigurować alerty, zaloguj się jako administrator i wybierz kreatora konfiguracji bazy danych:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444255.png)
Po 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:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444382.png)
Zwróć 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”:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444341.jpg)
Datadog
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:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444449.png)
Aby otrzymywać powiadomienia przez skonfigurowane wcześniej kanały integracyjne, musimy stworzyć przynajmniej jeden monitor Datadog, w przypadku monitorowania PostgreSQL typu monitora „integracyjnego”:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444410.png)
Pierwszym krokiem w konfiguracji monitora jest wybór typu alertu:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444582.png)
Następnie skonfiguruj co najmniej jedną metrykę:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444517.png)
Skonfiguruj warunki wyzwalania alertu:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444654.png)
Powiadomienia można dostosować za pomocą zmiennych szablonu:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444724.jpg)
Na koniec podaj listę odbiorców, którzy będą otrzymywać powiadomienia:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444796.png)
Zdarzenia, które Datadog może monitorować, są wymienione w sekcji „Metryki” integracji PostgreSQL i są oparte na predefiniowanych widokach PostgreSQL Statistics Collector:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444836.png)
Aby 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:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444802.png)
Aby uzyskać więcej metryk PostgreSQL, należy dodać „serwer” PostgreSQL:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214444957.png)
Aby 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:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445068.jpg)
Powiadomienia można dodatkowo dostosować za pomocą szablonów:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445117.png)
Cyrk
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:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445175.jpg)
Zgodnie 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:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445287.png)
Aby skonfigurować alerty, każda metryka jest powiązana z zestawem reguł i listą kontaktów, które mają być powiadamiane.
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445297.png)
Alerty są kategoryzowane na podstawie poziomów ważności:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445349.png)
Kanały powiadomień obejmują SMS, OpsGenie, Slack, VictorOps i PagerDuty (bez poczty e-mail). Poniższy zrzut ekranu przedstawia integrację ze Slackiem:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445408.png)
Aby 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:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445434.png)
Nowa 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:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445595.png)
Gdy wtyczka działa, staje się widoczna na stronie wtyczek i jesteśmy gotowi do skonfigurowania alertów:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445536.png)
New 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:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445655.jpg)
Pamiętaj, że integracja musi być najpierw włączona w aplikacji do powiadamiania. Na przykład wybierając Slack z listy typów kanałów:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445770.png)
Następnie utwórz „zasadę alertów”:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445722.png)
Polityka ostrzegania wymaga „warunku alertu”. Kolejny zestaw zrzutów ekranu pokazuje, jak to osiągnąć:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445884.png)
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445882.png)
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445936.png)
Na koniec wybierz kartę Kanały powiadomień, aby zmienić ustawienie domyślne:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214445942.png)
Opcjonalnie dodaj warunek alertu do New Relic Insights (wymaga dodatkowej subskrypcji):
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450043.png)
Menedż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:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450062.jpg)
Aby zmodyfikować domyślne alerty lub utworzyć niestandardowe, użyj szablonów alertów:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450195.jpg)
PEM 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.
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450287.jpg)
pgwatch2
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ę:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450297.jpg)
Następnie skonfiguruj alert:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450320.png)
Po skonfigurowaniu alerty pojawią się na stronie Lista alertów:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450364.jpg)
pgwatch2 integruje się ze wszystkimi popularnymi systemami powiadomień. Oto przykład dodawania kanału Slack:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450484.jpg)
Aby wyświetlić kanały powiadomień skonfigurowane w systemie, otwórz stronę „Kanały powiadomień”:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450490.jpg)
Dodatkowe 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:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450579.png)
Na potrzeby tego demo skonfigurowałem Slacka:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450587.png)
ClusterControl oferuje również opcję powiadamiania przez e-mail:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450633.png)
Po pojawieniu się powiadomień utwórz niestandardowych doradców, aby wyzwalać alerty na podstawie określonych kryteriów:
![](http://www.sqldat.com/article/uploadfiles/202205/2022051214450737.png)
Wniosek
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.