sql >> Databáze >  >> RDS >> Mysql

Jak monitorovat nasazení MySQL pomocí Prometheus &Grafana na ScaleGrid

Monitorování výkonu databáze MySQL v reálném čase vám pomůže okamžitě identifikovat problémy a další faktory, které by mohly způsobovat problémy nyní nebo v budoucnu. Je to také dobrý způsob, jak určit, které součásti databáze lze vylepšit nebo optimalizovat, abyste zvýšili efektivitu a výkon. To se obvykle provádí pomocí monitorovacího softwaru a nástrojů buď zabudovaných do softwaru pro správu databází, nebo nainstalovaných od poskytovatelů třetích stran.

Prometheus je softwarová aplikace s otevřeným zdrojovým kódem, která se používá pro monitorování událostí a upozornění. Lze jej použít spolu s vizualizačním nástrojem, jako je Grafana, ke snadnému vytváření a úpravě řídicích panelů, dotazování, vizualizaci, upozornění a pochopení vašich metrik. ScaleGrid poskytuje úplný administrátorský přístup k vašim nasazením MySQL – to usnadňuje integraci stávajícího ekosystému nástrojů MySQL s vašimi nasazeními ScaleGrid MySQL na AWS nebo Azure. Prometheus funguje dobře pro záznam jakýchkoli čistě číselných časových řad a nabízí také podporu pro multidimenzionální sběr dat a dotazování. Grafana lze s ním použít k vytvoření řídicích panelů, které pomáhají vizualizovat tato data způsobem, který lze snadno interpretovat a používat. Tyto nástroje vám poskytnou další informace o vašich metrikách, vzorcích používání a datových sadách spolu s monitorováním ScaleGrid MySQL, analýzou dotazů a upozorněními. V tomto příspěvku na blogu diskutujeme o tom, jak můžete nastavit a používat Prometheus a Grafana s nasazením ScaleGrid MySQL pro pokročilé monitorování databáze a upozornění.

Jak nastavit monitorování MySQL

Pojďme si projít kroky spojené s instalací a konfigurací serveru Prometheus pro ukládání a zobrazování metrik, což je exportér (v tomto případě MySQL Exporter), který shromažďuje metriky a přenáší je do server Prometheus a Grafana k vytváření řídicích panelů. Nástroj MySQL Exporter lze nainstalovat lokálně na server MySQL nebo centrálně na server Prometheus. V níže uvedeném příkladu použití vysvětlíme, jak nastavit a začít používat Prometheus, MySQL Exporter a Grafana z centrálního hostitele běžícího na Ubuntu k monitorování více serverů MySQL. Můžete si také prostudovat podrobné pokyny v dokumentu nápovědy Prometheus and Grafana for MySQL.

Blokový diagram níže ukazuje nastavení nasazení MySQL master-slave-quorum, které zahrnuje dva uzly nesoucí data (master a slave) a jednoho hlasujícího člena (kvórum) pomocí Exportér MySQL, hostitel Prometheus a Grafana:

Instalace a konfigurace serveru Prometheus

Prometheus je nástroj, který budeme používat k centralizaci a ukládání vašich metrik MySQL. V pravidelných intervalech stahuje metriky od jednoho nebo několika exportérů a zobrazuje je ve svém uživatelském rozhraní. Níže jsou uvedeny kroky k instalaci a konfiguraci Prometheus na centrálním hostiteli Ubuntu. Další podrobnosti naleznete v tomto článku.

1. Vytvořte skupinu a uživatele systému Prometheus

$sudo groupadd --system prometheus$sudo useradd -s /sbin/nologin --system -g prometheus prometheus

2. Vytvořte datový adresář pro Prometheus

$sudo mkdir /var/lib/prometheus

3. Vytvořte konfigurační adresáře pro Prometheus

$for i v pravidlech rules.d files_sd; udělat sudo mkdir -p /etc/prometheus/${i}; hotovo

4. Stáhněte si archiv Prometheus a rozbalte soubor

Stažení nejnovějšího binárního archivu pro Prometheus:

$mkdir -p /tmp/prometheus &&cd /tmp/prometheus$curl -s https://api.github.com/repos/prometheus/prometheus/releases/latest \| grep browser_download_url \| grep linux-amd64 \| cut -d '"' -f 4 \| wget -qi -

Rozbalení souboru:

$tar xvf prometheus*.tar.gz$cd prometheus*/

5. Přesuňte soubory Prometheus do standardních umístění

Přesuňte binární soubory Prometheus do /usr/local/bin:

$sudo mv prometheus promtool /usr/local/bin/

Přesuňte konfigurační šablonu Prometheus do adresáře /etc:

$sudo mv prometheus.yml  /etc/prometheus/prometheus.yml

Přesuňte také konzoly a knihovny console_libraries do adresáře /etc/prometheus:

$sudo mv consoles/ console_libraries/ /etc/prometheus/

6. Vytvořte/upravte konfigurační soubor Prometheus

Konfigurace šablony by měly vypadat podobně jako níže:

$cat /etc/prometheus/prometheus.yml #my global config global:scrape_interval:15s # Nastavte interval škrábání na každých 15 sekund. Výchozí nastavení je každou 1 minutu. assessment_interval:15s # Vyhodnoťte pravidla každých 15 sekund. Výchozí nastavení je každou 1 minutu. #scrape_timeout je nastaveno na globální výchozí hodnotu (10s). #Upozornění na konfiguraci správce výstrah:alertmanagers:- static_configs:- cíle:#- alertmanager:9093 #Načtěte pravidla jednou a pravidelně je vyhodnocujte podle globálního 'intervalu_hodnocení'. rule_files:#- "first_rules.yml" #- "second_rules.yml" #Konfigurace scrape obsahující přesně jeden koncový bod pro scrape:#Tady je to samotný Prometheus. scrape_configs:#Název úlohy se přidá jako štítek `job=` ke všem časovým řadám seškrabaným z této konfigurace. - job_name:'prometheus' #metrics_path výchozí hodnota '/metrics' #scheme výchozí hodnota 'http'. static_configs:- cíle:['localhost:9090']

7. Vytvořte soubor servisní jednotky Prometheus systemd

$sudo vim /etc/systemd/system/prometheus.service

Přidejte následující obsah:

 [Jednotka] Popis=Dokumentace Prometheus=https://prometheus.io/docs/introduction/overview/ Wants=network-online.target After=network-online.target [Služba] Typ=simple Environment="GOMAXPROCS=1" User=prometheus Group=prometheus ExecReload=/bin/kill -HUP $MAINPID ExecStart=/usr/local/bin/prometheus \ --config.file=/etc/prometheus/prometheus.yml \ --storage.tsdb. cesta=/var/lib/prometheus \ --web.console.templates=/etc/prometheus/consoles \ --web.console.libraries=/etc/prometheus/console_libraries \ --web.listen-address=0.0.0.0 :9090 \ --web.external-url=SyslogIdentifier=prometheus Restart=vždy [Instalovat] WantedBy=multi-user.target

Nezapomeňte upravit řádek:Environment=”GOMAXPROCS=1 nahrazením 1 číslem  vcpus na vašem serveru.

8. Změnit oprávnění adresáře

Změňte vlastnictví těchto adresářů na uživatele a skupinu Prometheus:

$for i v pravidlech rules.d files_sd; do sudo chown -R prometheus:prometheus /etc/prometheus/${i}; hotovo $pro i v pravidlech rules.d files_sd; do sudo chmod -R 775 /etc/prometheus/${i}; done$sudo chown -R prometheus:prometheus /var/lib/prometheus/

9. Znovu načtěte démona systemd a spusťte službu

$sudo systemctl daemon-reload$sudo systemctl spustit prometheus$sudo systemctl povolit prometheus

Zkontrolujte stav pomocí systemctl status prometheus příkaz:

10. Nakonfigurujte bránu firewall na otevřený port 9090

$sudo firewall-cmd --add-port=9090/tcp --permanent$sudo firewall-cmd --reload

Po dokončení nastavení získáte přístup k uživatelskému rozhraní Prometheus po přihlášení na adrese http://:9090

Jak monitorovat nasazení #MySQL pomocí Prometheus &Grafana na ScaleGridClick To Tweet."

Instalace a konfigurace nástroje MySQL Prometheus Exporter

Prometheus vyžaduje exportér pro shromažďování metrik serveru MySQL. Tento exportér lze spustit centrálně na serveru Prometheus nebo na databázovém serveru. Další informace naleznete v dokumentaci Prometheus.

Při instalaci a nastavení nástroje MySQL Prometheus Exporter na centrálním hostiteli Prometheus postupujte podle níže uvedených kroků. Další podrobnosti naleznete v tomto článku.

1. Stáhněte a nainstalujte Prometheus MySQL Exporter

$curl -s https://api.github.com/repos/prometheus/mysqld_exporter/releases/latest   | grep browser_download_url   | grep linux-amd64 | cut -d '"' -f 4   | wget -qi -$tar xvf mysqld_exporter*.tar.gz$sudo mv  mysqld_exporter-*.linux-amd64/mysqld_exporter /usr/local/bin/$sudo chmod +x /usr/ local/bin/mysqld_exporter

2. Vytvořte uživatele databáze exportérů Prometheus pro přístup k databázi, seškrábání metrik a poskytování grantů

VYTVOŘTE UŽIVATELE 'mysqld_exporter'@'' IDENTIFIKOVANÉ PODLE 'StrongPassword' S MAX_USER_CONNECTIONS 2;PROCES UDĚLENÍ, REPLIKAČNÍ KLIENT, VYBERTE NA *.* TO 'mysqld_exporter'usGLUES>'EXPro /před> 

S MAX_USER_CONNECTIONS 2 se používá k nastavení maximálního limitu připojení pro uživatele, aby se zabránilo přetížení serveru sledováním scrapes při velkém zatížení.

3. Nakonfigurujte přihlašovací údaje databáze

Upravte konfigurační soubor exportéru na centrálním hostiteli:

$sudo vim /etc/.mysqld_exporter.cnf

Přidejte uživatelské jméno a heslo vytvořeného uživatele a server ScaleGrid MySQL, který chcete monitorovat:

$sudo vim /etc/.mysqld_exporter.cnf[client]user=mysqld_exporterpassword=StrongPasswordhost=SG-mysqltestcluster-123456.servers.mongodirector.com

Nastavit oprávnění k vlastnictví:

$sudo chown root:prometheus /etc/.mysqld_exporter.cnf

4. Vytvořte soubor systemd Unit

Vytvořte nový soubor služby na centrálním hostiteli:

$sudo vim /etc/systemd/system/mysql_exporter.service

Přidejte následující obsah:

 [Jednotka] Popis=Prometheus MySQL Exporter After=network.target User=prometheus Group=prometheus [Service] Type=simple Restart=vždy ExecStart=/usr/local/bin/mysqld_exporter \ --config.my-cnf / etc/.mysqld_exporter.cnf \ --collect.global_status \ --collect.info_schema.innodb_metrics \ --collect.auto_increment.columns \ --collect.info_schema.processlist \ --collect.binlog_size \ --collect.info_schema.tablestats \ --collect.global_variables \ --collect.info_schema.query_response_time \ --collect.info_schema.userstats \ --collect.info_schema.tables \ --collect.perf_schema.tablelocks \ --collect.perf_schema.file_events \ --collect .perf_schema.eventswaits \ --collect.perf_schema.indexiowaits \ --collect.perf_schema.tableiowaits \ --collect.slave_status \ --web.listen-address=0.0.0.0:9104 [Install] WantedBy=multi-user.target 

web.listen-address=0.0.0.0:9104 určuje, že server naslouchá na portu 9104. Pokud má váš server veřejnou a privátní síť, možná budete muset nahradit 0.0.0.0:9104 privátní IP, například – 192.168.4.5:9104.

Po dokončení znovu načtěte systemd a spusťte službu mysql_exporter:

$sudo systemctl daemon-reload$sudo systemctl povolit mysql_exporter$sudo systemctl spustit mysql_exporter

5. Nakonfigurujte koncový bod MySQL tak, aby byl smazán společností Prometheus

Proveďte v souboru prometheus.yml níže uvedené změny:

scrape_configs:- job_name:mysql_server1static_configs:- targets:['localhost:9104']labels:alias:db1

Poznámka:Pokud exportér neběží na stejném hostiteli jako Prometheus, zadejte IP adresu serveru místo localhost. 9104 odkazuje na port, na kterém Prometheus naslouchá, jak je uvedeno v předchozím kroku.

Monitorování více hostitelů MySQL z centrálního hostitele Prometheus

Více serverů MySQL lze monitorovat z centrálního serveru. Toho lze dosáhnout tím, že pro každý server bude existovat samostatná služba exportéru. Ujistěte se, že jste pro každou službu vytvořili soubory .mysqld_exporter.cnf a mysql_exporter.service (s jedinečnými čísly portů přiřazenými k příznaku –web.listen-address), jak je uvedeno v krocích 3 a 4 výše. Přidejte cíle do souboru prometheus.yml, jak je uvedeno v kroku 5 výše. Názvy pracovních míst by měly být jedinečné pro každý cíl. Například:

scrape_configs:- job_name:mysql_server1static_configs:- targets:['localhost:9104']labels:alias:db1- job_name:mysql_server2static_configs:- targets:['localhost:9105']labels2-alias_název_úlohy:_dbserver - cíle:['localhost:9106']labels:alias:db3

Poznámka:Server Prometheus by měl být schopen dosáhnout cílů přes síť. Ujistěte se, že vaše konfigurace sítě/firewallu byla odpovídajícím způsobem upravena.

Instalace Grafana a vytváření řídicích panelů

Grafana používá Prometheus jako zdroj dat, což vám umožňuje vytvářet řídicí panely pro lepší vizualizaci a pochopení vašich metrik. Poskytuje skvělý způsob, jak získat přehled o datech časových řad.

Při instalaci Grafany do centrálního hostitele Prometheus postupujte podle níže uvedených kroků.

1. Stáhněte si nejnovější verzi Grafana

Přejděte na stránku Stáhnout Grafana a stáhněte si nejnovější verzi.

$wget $sudo apt-get install -y adduser libfontconfig1$sudo dpkg -i grafana__amd64.deb

2. Stáhněte si úložiště APT a nainstalujte Grafana

Příkaz add-apt-repository není výchozí aplikací v Debianu 9 a vyžaduje:

$apt-get install -y software-properties-common

Nainstalujte úložiště pro stabilní verze:

$sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"

Pokud chcete beta verze, existuje samostatný repozitář:

$sudo add-apt-repository "deb https://packages.grafana.com/oss/deb beta main"

Použijte výše uvedený řádek, i když používáte Ubuntu nebo jinou verzi Debianu. Poté přidejte náš gpg klíč. To vám umožní nainstalovat podepsané balíčky:

$wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -

Aktualizujte své repozitáře Apt a nainstalujte Grafana:

$sudo apt-get update$sudo apt-get install grafana

3. Spusťte službu

$systemctl daemon-reload$systemctl start grafana-server$systemctl status grafana-server

Povolte službu systemd, aby se Grafana spustila při startu:

$sudo systemctl povolit grafana-server.service

Chcete-li spustit Grafana, otevřete prohlížeč a přejděte na http://:3000/ . 3000 je http port, kterému Grafana ve výchozím nastavení naslouchá.

4. Přidání zdroje dat

Po instalaci se přihlaste do administračního panelu a přejděte na Konfigurace> Zdroje dat. Klikněte na Přidat zdroj dat, vyberte Prometheus v části Databáze časových řad a vyplňte pole Název a URL.

Název:Prometheus-1 URL:http://localhost:9090

Poznámka:Pokud server Prometheus neběží na stejném hostiteli jako Grafana, zadejte IP adresu serveru namísto localhost.

Nyní jste připraveni vytvořit a přizpůsobit řídicí panely pro monitorování MySQL. Nový řídicí panel můžete vytvořit kliknutím na odkaz na pravé straně výběru řídicího panelu. Jakmile je řídicí panel vytvořen, můžete přidat panely s výběrem metrik, které se mají zobrazit, označit řídicí panel hvězdičkou, uložit a sdílet. Podrobné pokyny najdete v dokumentaci Začínáme společnosti Grafana.

Zde je příklad řídicího panelu Grafana vytvořeného pro nasazení MySQL ve ScaleGrid:

Výše uvedený řídicí panel Grafany zobrazuje metriky Vybrané typy MySQL, Aktivita vláken klienta MySQL, Hodinová využití sítě MySQL a Zámky tabulky MySQL vizualizované v grafech a níže uvedený řídicí panel Grafany zobrazuje MySQL Top Počítadla příkazů a počítadla nejvyšších příkazů MySQL každou hodinu.

Vždy se snažíme našim uživatelům usnadnit život, takže nám dejte vědět o jakýchkoli dalších nástrojích, které byste chtěli propojit s nasazením ScaleGrid prostřednictvím našeho komentáře nebo prostřednictvím Twitteru na @scalegridio.


  1. Jak nastavit proměnnou z SQL dotazu?

  2. potřeba vrátit dvě sady dat se dvěma různými klauzulemi where

  3. Jak odstranit databázi v MySQL/MariaDB

  4. Trailing Zero