Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Monitorowanie i zarządzanie operacjami MySQL 8.0 z ClusterControl

Użytkownicy baz danych o otwartym kodzie źródłowym często muszą używać kombinacji narzędzi i własnych skryptów, aby zarządzać swoimi środowiskami produkcyjnymi baz danych. Jednak nawet mając w rozwiązaniu własne skrypty, trudno jest je utrzymać i nadążyć za nowymi funkcjami bazy danych, wymaganiami bezpieczeństwa lub aktualizacjami. Dzięki nowym głównym wersjom bazy danych, w tym MySQL 8.0, zadanie to może stać się jeszcze trudniejsze.

Sercem ClusterControl jest jego funkcja automatyzacji, która pozwala zautomatyzować zadania bazy danych, które musisz wykonywać regularnie, takie jak wdrażanie nowych baz danych, dodawanie i skalowanie nowych węzłów, zarządzanie kopiami zapasowymi, wysoka dostępność i przełączanie awaryjne, zmiany topologii, aktualizacje i inne. Zautomatyzowane procedury są dokładne, spójne i powtarzalne, dzięki czemu można zminimalizować ryzyko zmian w środowiskach produkcyjnych.

Co więcej, dzięki ClusterControl użytkownicy MySQL nie są już uzależnieni od dostawcy; coś, co ostatnio było kwestionowane przez wielu. Możesz wdrażać i importować różne wersje i dostawców MySQL z jednej konsoli za darmo.

W tym artykule pokażemy, jak wdrożyć MySQL 8.0 z konfiguracją przetestowaną w bitwach i zarządzać nią w sposób zautomatyzowany. Tutaj dowiesz się, jak to zrobić:

  • Instalacja ClusterControl
  • Proces wdrażania MySQL
    • Wdróż nowy klaster
    • Importuj istniejący klaster
  • Skalowanie MySQL
  • Zabezpieczenie MySQL
  • Monitorowanie i trendy
  • Tworzenie kopii zapasowych i odzyskiwanie
  • Autoodzyskiwanie węzłów i klastrów (automatyczne przełączanie awaryjne)

Instalacja ClusterControl

Aby rozpocząć korzystanie z ClusterControl, potrzebujesz dedykowanej maszyny wirtualnej lub hosta. W tym miejscu opisano wymagania dotyczące maszyny wirtualnej i obsługiwanych systemów. Podstawowa maszyna wirtualna może zaczynać się od 2 GB, 2 rdzeni i przestrzeni dyskowej 20 GB przestrzeni dyskowej, lokalnie lub w chmurze.

Instalacja jest dobrze opisana w dokumentacji, ale w zasadzie pobierasz skrypt instalacyjny, który przeprowadzi Cię przez kolejne kroki. Skrypt kreatora konfiguruje wewnętrzną bazę danych, instaluje niezbędne pakiety, repozytoria i inne niezbędne poprawki. W środowiskach bez dostępu do Internetu możesz skorzystać z procesu instalacji offline.

ClusterControl wymaga dostępu SSH do hostów bazy danych, a monitorowanie może być oparte na agentach lub bez agentów. Zarządzanie jest bez agentów.

Aby skonfigurować bezhasłowe SSH do wszystkich węzłów docelowych (ClusterControl i wszystkich hostów bazy danych), uruchom następujące polecenia na serwerze ClusterControl:

$ ssh-keygen -t rsa # press enter on all prompts
$ ssh-copy-id -i ~/.ssh/id_rsa [ClusterControl IP address]
$ ssh-copy-id -i ~/.ssh/id_rsa [Database nodes IP address] # repeat this to all target database nodes

Jednym z najwygodniejszych sposobów wypróbowania kontroli klastra może być opcja uruchomienia go w kontenerze dockera.

docker run -d --name clustercontrol \
--network db-cluster \
--ip 192.168.10.10 \
-h clustercontrol \
-p 5000:80 \
-p 5001:443 \
-v /storage/clustercontrol/cmon.d:/etc/cmon.d \
-v /storage/clustercontrol/datadir:/var/lib/mysql \
-v /storage/clustercontrol/sshkey:/root/.ssh \
-v /storage/clustercontrol/cmonlib:/var/lib/cmon \
-v /storage/clustercontrol/backups:/root/backups \
severalnines/clustercontrol

Po pomyślnym wdrożeniu powinieneś mieć dostęp do interfejsu internetowego ClusterControl pod adresem {adres IP hosta}:{port hosta}, na przykład:

HTTP: http://192.168.10.100:5000/clustercontrol
HTTPS: https://192.168.10.100:5001/clustercontrol

Wdrażanie i skalowanie

Wdróż MySQL 8.0

Po wejściu do interfejsu ClusterControl pierwszą rzeczą do zrobienia jest wdrożenie nowej bazy danych lub zaimportowanie istniejącej. Nowa wersja 1.7.2 wprowadza obsługę wersji 8.0 Oracle Community Edition i Percona Server. W chwili pisania tego bloga aktualne wersje to Oracle MySQL Server 8.0.15 i Percona Server for MySQL 8.0-15. Wybierz opcję „Wdróż klaster bazy danych ” i postępuj zgodnie z wyświetlanymi instrukcjami.

ClusterControl:wdrażanie klastra bazy danych

Wybierając MySQL, musimy określić Użytkownika, Klucz lub Hasło i port, aby połączyć się przez SSH z naszymi serwerami. Potrzebujemy również nazwy dla naszego nowego klastra i jeśli chcemy, aby ClusterControl zainstalował dla nas odpowiednie oprogramowanie i konfiguracje.

Po skonfigurowaniu informacji dostępowych SSH, musimy wprowadzić dane, aby uzyskać dostęp do naszej bazy danych. Możemy również określić, którego repozytorium użyć. Konfiguracja repozytorium jest ważnym aspektem dla serwerów baz danych i klastrów. Podczas wdrażania serwera/klastra bazy danych za pomocą ClusterControl możesz mieć trzy typy repozytoriów:

  • Użyj repozytorium dostawców
    Aprowizuj oprogramowanie, konfigurując i korzystając z repozytorium oprogramowania preferowanego przez dostawcę bazy danych. ClusterControl zainstaluje najnowszą wersję tego, co jest dostarczane przez repozytorium dostawcy bazy danych.
  • Nie konfiguruj repozytoriów dostawców
    Udostępnianie oprogramowania przy użyciu istniejącego repozytorium oprogramowania, które zostało już skonfigurowane w węzłach. Użytkownik musi ręcznie skonfigurować repozytorium oprogramowania w każdym węźle bazy danych, a ClusterControl użyje tego repozytorium do wdrożenia. Jest to dobre, jeśli węzły bazy danych działają bez połączenia z Internetem.
  • Użyj repozytoriów lustrzanych (Utwórz nowe repozytorium)
    Utwórz i zdubluj repozytorium obecnego dostawcy bazy danych, a następnie wdróż przy użyciu lokalnego zdublowanego repozytorium. Pozwala to na „zamrożenie” aktualnych wersji pakietów oprogramowania.

W kolejnym kroku musimy dodać nasze serwery do klastra, który zamierzamy utworzyć. Dodając nasze serwery możemy wpisać IP lub nazwę hosta, a następnie wybrać interfejs sieciowy. W tym drugim przypadku musimy mieć serwer DNS lub dodać nasze serwery MySQL do lokalnego pliku rozpoznawania (/etc/hosts) naszego ClusterControl, aby mógł on rozwiązać odpowiednią nazwę, którą chcesz dodać.

Na ekranie widzimy przykładowe wdrożenie z jednym serwerem głównym i dwoma serwerami podrzędnymi. Lista serwerów jest dynamiczna i umożliwia tworzenie wyrafinowanych topologii, które można rozszerzyć po początkowej instalacji.

ClusterControl:Zdefiniuj topologię

Kiedy wszystko jest ustawione, naciśnij przycisk wdrażania. Możesz monitorować stan tworzenia naszej nowej konfiguracji replikacji z monitora aktywności ClusterControl. Proces wdrażania zajmie się również instalacją popularnych narzędzi mysql, takich jak percona toolkit i percona-xtradb-backup.

ClusterControl:wdrażanie szczegółów klastra

Po zakończeniu zadania możemy zobaczyć nasz klaster na głównym ekranie ClusterControl oraz w widoku topologii. Zwróć uwagę, że dodaliśmy również system równoważenia obciążenia (ProxySQL) przed instancjami bazy danych.

ClusterControl:topologia

Jak widać na obrazku, po utworzeniu naszego klastra możemy wykonać na nim kilka zadań, bezpośrednio z sekcji topologii.

ClusterControl:zarządzanie topologią

Importuj nowy klaster

Mamy również możliwość zarządzania istniejącą konfiguracją poprzez importowanie jej do ClusterControl. Takie środowisko można stworzyć za pomocą ClusterControl lub innych metod (puppet, chef, ansible, docker…). Proces jest prosty i nie wymaga specjalistycznej wiedzy.

ClusterControl:importowanie istniejącego klastra

Najpierw musimy wprowadzić poświadczenia dostępu SSH do naszych serwerów. Następnie wprowadzamy poświadczenia dostępu do naszej bazy danych, katalogu danych serwera i wersji. Dodajemy węzły według adresu IP lub nazwy hosta w taki sam sposób, jak podczas wdrażania, i naciskamy Importuj. Po zakończeniu zadania jesteśmy gotowi do zarządzania naszym klastrem z ClusterControl. W tym momencie możemy również zdefiniować opcje automatycznego odzyskiwania węzła lub klastra.

Skalowanie MySQL

Dzięki ClusterControl dodanie większej liczby serwerów do serwera jest łatwym krokiem. Możesz to zrobić z GUI lub CLI. Dla bardziej zaawansowanych użytkowników możesz użyć ClusterControl Developer Studio i napisać warunek bazowy zasobów, aby automatycznie rozszerzyć klaster.

Podczas dodawania nowego węzła do konfiguracji masz możliwość użycia istniejącej kopii zapasowej, dzięki czemu nie ma potrzeby przytłaczania produkcyjnego węzła głównego dodatkową pracą.

ClusterControl Skalowanie MySQL

Dzięki wbudowanej obsłudze systemów równoważenia obciążenia (ProxySQL, Maxscale, HAProxy) możesz dynamicznie dodawać i usuwać węzły MySQL. Jeśli chcesz dowiedzieć się więcej o tym, jak najlepiej zarządzać replikacją i klastrowaniem MySQL, zapoznaj się z oficjalnym dokumentem dotyczącym replikacji MySQL dla replikacji wysokiej dostępności.

Zabezpieczanie MySQL

MySQL jest dostarczany z bardzo małym zabezpieczeniem po wyjęciu z pudełka. Zostało to ulepszone w najnowszej wersji, jednak systemy klasy produkcyjnej nadal wymagają poprawek w domyślnej konfiguracji my.cnf.

ClusterControl usuwa błędy ludzkie i zapewnia dostęp do zestawu funkcji bezpieczeństwa, aby automatycznie chronić Twoje bazy danych przed włamaniami i innymi zagrożeniami.

ClusterControl umożliwia obsługę SSL dla połączeń MySQL. Włączenie SSL dodaje kolejny poziom bezpieczeństwa komunikacji między aplikacjami (w tym ClusterControl) a bazą danych. Klienci MySQL otwierają zaszyfrowane połączenia z serwerami baz danych i weryfikują tożsamość tych serwerów przed przesłaniem jakichkolwiek poufnych informacji.

ClusterControl wykona wszystkie niezbędne kroki, w tym utworzenie certyfikatów na wszystkich węzłach bazy danych. Takie certyfikaty można przechowywać później w zakładce Zarządzanie kluczami.

ClusterControl:klucze SSL menedżera

Instalacje serwerowe Percona posiadają dodatkowe wsparcie dla wtyczki audytu. Ciągły audyt jest niezbędnym zadaniem monitorowania środowiska bazy danych. Dzięki audytowi bazy danych możesz uzyskać odpowiedzialność za podjęte działania lub dostęp do treści. Co więcej, audyt może obejmować pewne krytyczne elementy systemu, takie jak te związane z danymi finansowymi w celu wsparcia precyzyjnego zestawu regulacji, takich jak SOX, czy unijne rozporządzenie RODO. Proces z przewodnikiem pozwala wybrać, co powinno być kontrolowane i jak utrzymywać pliki dziennika kontroli.

ClusterControl:Włącz dziennik kontroli dla Percona Server 8.0

Monitorowanie

Podczas pracy z systemami baz danych powinieneś mieć możliwość ich monitorowania. Umożliwi to identyfikowanie trendów, planowanie aktualizacji lub ulepszeń lub skuteczne reagowanie na wszelkie problemy lub błędy, które mogą się pojawić.

Nowy ClusterControl 1.7.2 jest wyposażony w zaktualizowany monitoring w wysokiej rozdzielczości dla MySQL 8.0. Używa Prometheusa jako magazynu danych z językiem zapytań PromQL. Lista pulpitów nawigacyjnych obejmuje MySQL Server General, MySQL Server Cache, MySQL InnoDB Metrics, MySQL Replication Master, MySQL Replication Slave, Przegląd systemu i Panele kontrolne klastra.

ClusterControl instaluje agentów Prometheus, konfiguruje metryki i utrzymuje dostęp do konfiguracji eksporterów Prometheus za pośrednictwem swojego GUI, dzięki czemu można lepiej zarządzać konfiguracją parametrów, takich jak flagi zbierające dla eksporterów (Prometheus). Szczegółowo opisaliśmy, co można ostatnio monitorować w artykule Jak monitorować MySQL za pomocą Prometheusa i ClusterControl.

ClusterControl:pulpit nawigacyjny

Alarmy

Jako operator bazy danych musimy być informowani o każdej krytycznej sytuacji w naszej bazie danych. Trzy główne metody uzyskiwania alertu w ClusterControl obejmują:

  • powiadomienia e-mail
  • integracje
  • doradcy

Możesz ustawić powiadomienia e-mail na poziomie użytkownika. Przejdź do Ustawienia> Powiadomienia e-mail . Gdzie możesz wybrać między krytycznością a rodzajem wysyłanego alertu.

ClusterControl:Powiadomienie

Kolejną metodą jest skorzystanie z usług integracyjnych. Ma to na celu przekazanie określonej kategorii wydarzeń do innych usług, takich jak bilety ServiceNow, Slack, PagerDuty itp., dzięki czemu możesz tworzyć zaawansowane metody powiadamiania i integracje w swojej organizacji.

ClusterControl:integracja

Ostatnim z nich jest włączenie wyrafinowanej analizy metryk w sekcji Advisor, gdzie można tworzyć inteligentne kontrole i wyzwalacze.

ClusterControl:doradcy automatyczna

Kopia zapasowa i odzyskiwanie

Teraz, gdy masz już uruchomiony MySQL i monitoring, nadszedł czas na kolejny krok:upewnij się, że masz kopię zapasową swoich danych.

ClusterControl:tworzenie kopii zapasowej

ClusterControl zapewnia interfejs do zarządzania kopiami zapasowymi MySQL z obsługą harmonogramów i kreatywnych raportów. Daje dwie opcje metod tworzenia kopii zapasowych.

  • Logiczne:mysqldump
  • Binary:xtrabackup/mariabackup
ClusterControl:opcje tworzenia kopii zapasowych

Dobra strategia tworzenia kopii zapasowych jest krytyczną częścią każdego systemu zarządzania bazą danych. ClusterControl oferuje wiele opcji tworzenia kopii zapasowych i odzyskiwania/przywracania.

ClusterControl:Harmonogram tworzenia kopii zapasowych i repozytorium kopii zapasowych

Możliwość konfiguracji przechowywania kopii zapasowych ClusterControl; możesz zachować kopię zapasową przez dowolny okres czasu lub nigdy nie usuwać kopii zapasowych. Szyfrowanie AES256 służy do zabezpieczenia kopii zapasowych przed nieuczciwymi elementami. W celu szybkiego przywrócenia kopii zapasowych można przywrócić bezpośrednio do nowego klastra - ClusterControl obsługuje pełny proces przywracania od uruchomienia nowej konfiguracji bazy danych do odzyskiwania danych, usuwając z tego procesu podatne na błędy ręczne kroki.

Kopie zapasowe mogą być automatycznie weryfikowane po zakończeniu, a następnie przesyłane do usług przechowywania w chmurze (AWS, Azure i Google). Można zdefiniować różne zasady przechowywania dla lokalnych kopii zapasowych w centrum danych, a także kopii zapasowych przesyłanych do chmury.

Autoodzyskiwanie węzłów i klastrów

ClusterControl zapewnia zaawansowaną obsługę wykrywania i obsługi awarii. Pozwala także na wdrożenie różnych serwerów proxy w celu zintegrowania ich ze stosem HA, dzięki czemu nie ma potrzeby dostosowywania parametrów połączenia aplikacji lub wpisu dns, aby przekierować aplikację do nowego węzła głównego.

Gdy serwer główny nie działa, ClusterControl utworzy zadanie, aby wykonać automatyczne przełączanie awaryjne. ClusterControl wykonuje całą pracę w tle, aby wybrać nowego mastera, wdrożyć awaryjne serwery slave i skonfigurować systemy równoważenia obciążenia.

ClusterControl:automatyczne odzyskiwanie węzłów

Automatyczne przełączanie awaryjne ClusterControl zostało zaprojektowane zgodnie z następującymi zasadami:

  • Upewnij się, że master naprawdę nie żyje, zanim przełączysz się w tryb awaryjny
  • Przełączanie awaryjne tylko raz
  • Nie przełączaj awaryjnie na niespójne urządzenie podrzędne
  • Tylko pisz do mistrza
  • Nie przywracaj automatycznie uszkodzonego wzorca

Dzięki wbudowanym algorytmom przełączanie awaryjne można często wykonać dość szybko, dzięki czemu można zapewnić najwyższe SLA dla środowiska bazy danych.

Proces jest wysoce konfigurowalny. Zawiera wiele parametrów, które można wykorzystać do dostosowania odzyskiwania do specyfiki środowiska. Wśród różnych opcji można znaleźć replication_stop_on_error, replication_auto_rebuild_slave, replication_failover_blacklist, replication_failover_whitelist, replication_skip_apply_missing_txs, replication_onfail_failover_script i wiele innych.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. System zarządzania relacyjnymi bazami danych (RDBMS):MSSQL vs MySQL

  2. Optymalizacja wydajności zapytań w MySQL

  3. Grupuj według daty tylko w kolumnie Datetime

  4. Zarządzanie kontami użytkowników, role, uprawnienia, uwierzytelnianie PHP i MySQL -- Część 5

  5. warunkowe sprzężenie w mysql