Mamy tam Postgresa, ale nie mam pojęcia, co z nim zrobić (c)

To jest cytat jednego z moich znajomych, który dawno temu zwrócił się do mnie z pytaniem o Postgresa. Wtedy w ciągu kilku dni rozwiązaliśmy jego problem, a po podziękowaniach dodał: „Dobrze, gdy ma się znajomego DBA”.

Ale co zrobić, jeśli nie ma się znajomego DBA? Odpowiedzi może być wiele, od poszukiwania wśród znajomych, po samodzielne zbadanie tematu. Bez względu na to, jaka odpowiedź przyjdzie Ci do głowy, mam dla Ciebie dobrą wiadomość. W trybie testowym uruchomiliśmy usługę rekomendacji dla Postgresa i wszystkiego, co się z nim wiąże. Czym to jest i jak do tego doszło?

Po co to wszystko?

Postgres to przynajmniej nie tylko złożoność, ale czasami i bardzo duża komplikacja. Zależy to od stopnia zaangażowania i odpowiedzialności.

Osoby zajmujące się operacjami muszą dbać o to, aby Postgres jako usługa działał poprawnie i stabilnie – monitorować wykorzystanie zasobów, dostępność, adekwatność konfiguracji, okresowo przeprowadzać aktualizacje oraz regularne kontrole stanu. Z kolei osoby zajmujące się rozwojem i piszące aplikacje, w ogólnych zarysach, powinny śledzić, jak aplikacja wchodzi w interakcje z bazą i upewnić się, że nie stwarza sytuacji awaryjnych, które mogą spowodować awarię bazy. Jeśli ktoś miał pecha być tech leadem/tech dyrektorem, ważne jest, aby Postgres ogólnie działał niezawodnie, przewidywalnie i nie sprawiał problemów, a jednocześnie nie ma potrzeby głęboko i na długo zagłębiać się w Postgresa.

W każdym z tych przypadków jesteś Ty i Postgres. Aby dobrze obsługiwać Postgresa, trzeba mieć spore pojęcie o tym, jak działa. Jeśli Postgres nie jest Twoją bezpośrednią specjalizacją, można poświęcić na jego naukę sporą ilość czasu. W idealnym przypadku, kiedy masz czas i chęć, nie zawsze wiadomo, od czego zacząć, jak i gdzie kierować swoje wysiłki.

Nawet jeśli otoczymy się monitoringiem, który teoretycznie powinien ułatwiać eksploatację, pytanie o wiedzę ekspercką pozostaje otwarte. Aby umieć czytać i rozumieć wykresy, trzeba mieć również dobre pojęcie o tym, jak działa Postgres. W przeciwnym razie każdy monitoring zamienia się w smutne grafiki i spam alertów w losowych porach dnia i nocy.

Weaponry został stworzony, aby ułatwić eksploatację Postgresa. Usługa zbiera i analizuje dane o Postgresie oraz daje rekomendacje dotyczące możliwych ulepszeń.

Głównym celem usługi jest dostarczanie jasnych zaleceń, które dają wyobrażenie o tym, co się dzieje i co należy dalej robić.

Dla specjalistów, którzy nie mają wiedzy eksperckiej, zalecenia stanowią punkt wyjścia do podnoszenia kwalifikacji. Dla zaawansowanych specjalistów zalecenia wskazują na te aspekty, na które warto zwrócić uwagę. W tym zakresie Weaponry pełni rolę pomocnika, który wykonuje rutynowe zadania związane z wykrywaniem problemów lub niedociągnięć, które wymagają osobnej uwagi. Weaponry można porównać do lintera, który sprawdza Postgresa i wskazuje na niedociągnięcia.

Jak wygląda sytuacja obecnie

Na tę chwilę Weaponry jest w fazie testowej i dostępny bezpłatnie, rejestracja jest na razie tymczasowo ograniczona. Wraz z kilkoma wolontariuszami udoskonalamy silnik rekomendacji na podstawach bliskich rzeczywistym, identyfikujemy fałszywe alarmy i pracujemy nad treścią zaleceń.

Należy dodać, że rekomendacje są na razie dość proste — po prostu mówią co i jak robić, bez dodatkowych szczegółów — dlatego w pierwszym czasie trzeba będzie korzystać z powiązanych linków lub szukać informacji w Google. Sprawdzanie i zalecenia obejmują ustawienia systemu i sprzętu, konfigurację samego Postgresa, schemat wewnętrzny oraz używane zasoby. Planujemy jeszcze wiele rzeczy do dodania.

Oczywiście, szukamy wolontariuszy, którzy są gotowi wypróbować usługę i podzielić się opinią. Mamy także demo, można wejść i zobaczyć. Jeśli zrozumiałeś, że to jest coś dla Ciebie i jesteś gotowy spróbować, napisz do nas na e-mail.

Zaktualizowano 2020-09-16. Rozpoczęcie.

Po rejestracji użytkownik jest proszony o utworzenie projektu — który pozwala na grupowanie instancji baz danych. Po utworzeniu projektu użytkownik jest kierowany do instrukcji dotyczącej konfiguracji i instalacji agenta. Mówiąc w skrócie, należy utworzyć użytkowników dla agenta, a następnie pobrać skrypt instalacyjny agenta i go uruchomić. W poleceniach shell wygląda to mniej więcej tak:

psql -c "CREATE ROLE pgscv WITH LOGIN SUPERUSER PASSWORD 'A7H8Wz6XFMh21pwA'"
export PGSCV_PG_PASSWORD=A7H8Wz6XFMh21pwA
curl -s https://dist.weaponry.io/pgscv/install.sh |sudo -E sh -s - 1 6ada7a04-a798-4415-9427-da23f72c14a5

Jeśli na hoście jest pgbouncer, należy również utworzyć użytkownika do połączenia agenta. Konkretna metoda konfiguracji użytkownika w pgbouncer może być bardzo zróżnicowana i silnie zależy od używanej konfiguracji. Ogólnie rzecz biorąc, konfiguracja sprowadza się do dodania użytkownika do stats_users pliku konfiguracyjnego (zazwyczaj jest to pgbouncer.ini) oraz zapisania hasła (lub jego hasha) w pliku wskazanym w parametrze auth_file. Po zmianie stats_users konieczny będzie restart pgbouncer.

Skrypt install.sh przyjmuje parę obowiązkowych argumentów, które są unikalne dla każdego projektu, a przez zmienne środowiskowe przyjmuje dane założonych użytkowników. Następnie skrypt uruchamia agenta w trybie bootstrap — agent kopiuje się do PATH, tworzy konfigurację z danymi, jednostkę systemd i uruchamia się jako usługa systemd.
Na tym instalacja się kończy. W ciągu kilku minut instancja bazy danych pojawi się na liście hostów w interfejsie i można już zobaczyć pierwsze rekomendacje. Ważny punkt, wiele rekomendacji wymaga dużej liczby zgromadzonych metryk (przynajmniej za dobę).

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster