MySQL vo vysielaní. Monitorovanie SQL dotazov

Domov / Nezapne sa

Keď pochopíte, ako konkrétny CMS funguje, musíte použiť rôzne nástroje, ktoré vám uľahčia prácu.
Najzaujímavejšou témou je práca s databázou (databázami). Prirodzene, na štúdium dopytov a výsledkov dopytov musíte použiť niečo univerzálne. Niečo, čo bude stabilne fungovať ako so známym motorom, tak aj s vlastným systémom.
Predpokladajme, že máte redakčný systém a potrebujete vidieť, ako sa implementuje pridávanie nových používateľov alebo zmena hesiel.

Väčšina nástrojov, ktoré umožňujú sledovať prácu s databázou, je platená [jedna, dve]. Chcel som niečo ľahšie a pohodlnejšie, tak som si vybral mysql-proxy. Aj keď sú možnosti pomôcky oveľa širšie, ako potrebujem, popíšem len základy. Funguje na systémoch Windows aj Unix.

Môžete si ho stiahnuť tu: dev.mysql.com/downloads/mysql-proxy
Prvým krokom je rozhodnutie o výbere distribúcie. Zapnuté momentálne najnovšiu verziu je “MySQL Proxy 0.8.3 alpha”, môj OS je Windows 7, takže všetky testy budú prebiehať na ňom.

Po kliknutí na tlačidlo „Stiahnuť“ budete vyzvaní na prihlásenie alebo registráciu, nižšie je však odkaz na stiahnutie bez zbytočných krokov. (Repozitáre Ubuntu a Debianu majú predpripravené balíčky, takže: sudo apt-get install mysql-proxy)

Dovolím si poznamenať, že s veľkosťou 7,9 MB je súčasťou distribúcie Lua s podporou základných modulov.

Po stiahnutí archívu ho musíte rozbaliť do adresára, ktorý vám vyhovuje, ako príklad si vezmime C:\mysql-proxy.
Na spustenie aplikácie je potrebné rozhodnúť o parametroch.

V tomto kontexte veľa závisí od toho, čo máte nainštalované. Ako LAMP používam Winginx, o tomto balíku si môžete prečítať tu: winginx.ru
MySQL štandardne beží na porte 3306, nedotkneme sa ho.
Potrebujeme zmeniť port na pripojenie php k databáze. Ak to chcete urobiť, musíte opraviť php.ini
Nájdite riadok „mysql.default_port“ a nastavte port (predvolené 4040). Pre univerzálnejšiu prevádzku zmeňte „mysqli.default_port“ na 4040

Prípravná časť je ukončená, poďme na vec.

Možnosť 1: Monitorujte požiadavky.
Pre jednoduché monitorovanie musíte použiť skript Lua. Ako som už povedal, Lua je súčasťou balenia, takže nemusíte inštalovať nič nové.
V adresári C:\mysql-proxy\ vytvoríme jednoduchý skript view.lua s obsahom:

Funkcia read_query(packet) if string.byte(packet) == proxy.COM_QUERY then print(string.sub(packet, 2)) end end

Teraz môžete skontrolovať výsledok.
Pre pohodlie si vytvorte súbor view.bat v adresári C:\mysql-proxy s obsahom:

C:\mysql-proxy\bin\mysql-proxy.exe --proxy-lua-script=C:\mysql-proxy\view.lua --log-file="C:\mysql-proxy\mysql-proxy- log.txt" --proxy-backend-addresses=localhost:3306

Proxy-backend-addresses – adresa MySQL servera, na ktorý budeme proxy server odosielať požiadavku.

Po spustení webového servera a vykonaní akýchkoľvek dotazov do databázy môžete vidieť toto:

Žiadosti sú zobrazené, dobre.

Možnosť 2: Monitorujte požiadavky a zapisovajte do súboru.
Na zapisovanie požiadaviek do súboru použijeme štandardné možnosti Lua.
Vytvorme súbor view-write.lua v adresári C:\mysql-proxy\ s obsahom:

Funkcia read_query(packet) if string.byte(packet) == proxy.COM_QUERY then local file = io.open("C:\\mysql-proxy\\sql-log.txt", "a") file:write( string.sub(packet, 2) .. "\n") file:close() print(string.sub(packet, 2)) end end
A bat súbor- "view-write.bat"
C:\mysql-proxy\bin\mysql-proxy.exe --proxy-lua-script="C:\mysql-proxy\view-write.lua" --log-file="C:\mysql-proxy\ mysql-proxy-log.txt" --proxy-backend-addresses=localhost:3306

Výsledok po vykonaní dotazov (na „C:\mysql-proxy\sql-log.txt“)

Okrem zobrazenia samotných dopytov možno budeme musieť zobraziť výsledky týchto dopytov.

Možnosť 3. Dotazy a výsledky
Pomocou rovnakej schémy vytvoríme skript „view-result.lua“:
funkcia read_query(packet) if packet:byte() == proxy.COM_QUERY then print("Query: " .. string.sub(packet, 2)) lokálny súbor = io.open("C:\\mysql-proxy\ \sql-log.txt", "a") file:write("Dopyt: " .. string.sub(paket, 2) .. "\n") file:close() proxy.queries:append(2, string.char(proxy.COM_QUERY) .. string.sub(packet, 2), (resultset_is_needed = true)) proxy.queries:append(1, packet, (resultset_is_needed = true)) return proxy.PROXY_SEND_QUERY end end function read_query_result( inj) ak inj.id == 1, potom pre riadok v inj.resultset.rows urob lokálne i = 1 lokálne polia = () kým riadok[i] sprav if row[i] == riadok, potom preruš koniec lokálny súbor = io. open("C:\\mysql-proxy\\sql-log.txt", "a") file:write("Pole odpovede: " .. inj.resultset.fields[i].name .. " => " .. riadok[i] .. "\n") file:close() print("Pole odpovede: " .. inj.resultset.fields[i].name .. " => " .. riadok[i]) i = i + 1 end end return proxy.PROXY_IGNORE_RESULT end end

A pohľad-výsledok.bat
C:\mysql-proxy\bin\mysql-proxy.exe --proxy-lua-script="C:\mysql-proxy\view-result.lua" --log-file="C:\mysql-proxy\ mysql-proxy-log.txt" --proxy-backend-addresses=localhost:3306

Výsledkom je úplné zaznamenávanie žiadostí a odpovedí v čitateľnej forme

MySQL je open source systém na správu databáz zdrojový kód , založený na štruktúrovanom jazyku SQL (Structured Query Language). Okrem toho, že systém je dostupný zadarmo, výhodou MySQL je, že funguje takmer na všetkých platformách. MySQL je jedným z najpoužívanejších databázových systémov na svete, na ktorom je postavených mnoho dynamických webových stránok. Spolu s verziou open source existuje aj komerčná verzia systému správy databáz. Ak chcete používať MySQL v komerčnom produkte, musíte si zakúpiť licenciu.

Výhody MySQL

MySQL má najväčší podiel na trhu zo všetkých open source databáz. V dôsledku toho nie je nedostatok kníh, článkov a podpory na MySQL.

V porovnaní s inými databázami sa MySQL ľahko nastavuje a spravuje. Na začiatok sú k dispozícii nástroje ako MySQL Administrator.

Jedna z najväčších výhod MySQL: blesková rýchlosť! MySQL je vďaka svojej jednoduchej štruktúre mimoriadne efektívny z hľadiska spotreby zdrojov a nepoužíva takmer žiadnu pamäť.

Výrobca-
MySQL: základ pre množstvo ďalších služieb

Ak je vaša databáza veľmi pomalá, vracia chyby pri niektorých dotazoch alebo je úplne nedostupná, utrpí to výkon a kvalita všetkých aplikácií, ktoré sú od tejto databázy závislé. Poskytovať stála a najrýchlejšia dostupnosť aplikácie, je potrebné vykonať monitorovanie základne údaje MySQL. Optimalizáciou výkonu vašej databázy teda vytvoríte základ pre dostupnosť a výkon všetkých vašich služieb na rôznych úrovniach.

Čo robí PRTG kompletným nástrojom na monitorovanie MySQL?

Ak váš web, internetový obchod alebo webová aplikácia používa databázu MySQL a databáza sa poškodí, utrpí to aj samotná lokalita: nemusí sa správne zobrazovať, jej časti môžu byť nedostupné alebo sa stránka vôbec nenačíta.

PRTG vám umožňuje neustále sledovať dostupnosť vašej databázy MySQL. Pomocou PRTG môžete znížiť prestoje databázy a byť schopní okamžite reagovať na výpadky databázy. Výsledkom bude zvýšená spokojnosť zákazníkov a zvýšená produktivita zamestnancov.

Komplexný monitorovací nástroj MySQL od PAESSLER monitoruje nielen dostupnosť databázy, ale aj ďalšie údaje o výkone MySQL. Za týmto účelom PRTG automaticky vyhľadáva databázy a meria čas, potrebný na vytvorenie pripojenia, vykonanie dotazu SQL, spracovanie transakcie a ukončenie pripojenia. Prístrojová doska PRTG zobrazuje prehľadné štatistiky celkový čas žiadosti.

PRTG vám tiež umožňuje sledovať špecifické súbory údajov z databázy MySQL. Niektoré informácie môžete získať napríklad z internetového obchodu alebo databázy aplikácií. Ak to chcete urobiť, jednoducho definujte svoje vlastné SQL dotazy v aplikácii PRTG a sledujte hodnoty, ktoré vracajú.

Okrem návratových hodnôt PRTG zobrazí čas vykonania dotazu a počet riadkov dotazovaných v dátových tabuľkách. Používanie prispôsobiteľné prahy, môžete spúšťať automatické upozornenia a dostávať upozornenia napríklad o bezprostrednom vyčerpaní zásob konkrétneho produktu v internetovom obchode.

Jeden z mnohých užitočné funkcie PRTG je tvorba vlastných reportov. Obsah správ je možné ľubovoľným spôsobom prispôsobiť a potom je možné správy vyvolať za letu alebo ich vytvorte automaticky(denne, týždenne alebo mesačne) s následným odoslaním, napríklad emailom.

PRTG vám umožňuje vytvárať zostavy so všetkými údajmi, ktoré sú dôležité pre vašu prácu. Funkcia hlásenia je tiež ideálnym spôsobom poskytovania aktuálne informácie kolegov a nadriadených. Stačí vybrať relevantné informácie a správy budú automaticky odoslané príslušným manažérom. Môžete napríklad preposlať najdôležitejšie štatistiky webových stránok marketingovému tímu alebo automaticky odoslať počet otvorených lístkov na help desk.

Monitorovací softvér PRTG MySQL má funkciu alarmu. Ak je databáza nedostupná alebo ak niektoré dotazy nevracajú požadované (alebo nesprávne) hodnoty, môžete PRTG nakonfigurovať na prijímanie automatických upozornení na túto situáciu.

Oznámenie môže byť vo forme správy e-mailom, SMS alebo push notifikácie do vášho smartfónu. Budete o tom včas informovaní, skôr ako problém eskaluje. Pomocou PRTG API môžete tiež vytvárať vlastné upozornenia a automaticky spúšťať skripty alebo akcie HTTP.

Užite si pocit úplnej kontroly s PRTG!

PRTG vám umožňuje neustále sledovať
MySQL databázy aj na cestách

PRTG sa nainštaluje za pár minút a je kompatibilný s väčšinou mobilných zariadení.

PRTG za vás monitoruje týchto a mnoho ďalších výrobcov a aplikácií

Prechod na PRTG je jednoduchý a bezpečný

Na trhu existuje veľa nástrojov na monitorovanie serverov MySQL. PRTG má nasledujúce výhody.

Žiadne skryté
dosky

Mnoho správcov používa v špeciálnych prípadoch rôzne monitorovacie nástroje. Správa tejto kombinácie nástrojov si vyžaduje čas a energiu. Výsledkom je nespočetné množstvo hodín práce, ktoré by sa dali stráviť efektívnejšie. Navyše týmto spôsobom zvyčajne nie je možné získať stručný prehľad.

  • Plná verzia PRTG na 30 dní
  • Po 30 dňoch – bezplatná verzia
  • Pre rozšírenú verziu – komerčnú licenciu

Ako monitorovať výkon databázy MySQL pomocou PRTG

Ak chcete začať monitorovať MySQL pomocou PRTG, stačí vykonať niekoľko jednoduchých krokov. Riešenie PRTG prichádza s hotovým monitorovacím senzorom MySQL. Vo všeobecnosti môžete tento senzor okamžite začať používať na sledovanie základných informácií o databáze, ako je dostupnosť a čas vykonania.

Ak chcete získať podrobnejšie metriky, pridajte svoje vlastné dotazy SQL ako samostatný súbor.

Nastavenie senzora MySQL je jednoduché a nevyžaduje veľa času.

1. Vytvorte dotaz SQL

Samostatne definované SQL dotazy vám umožňujú sledovať rôzne kľúčové ukazovatele výkonu, ako napríklad:

  • počet návštevníkov webovej stránky;
  • údaje o predaji v internetovom obchode;
  • otvorené požiadavky v zákazníckej podpore.

Možnosti sú takmer nekonečné. Jedinou požiadavkou je, že musí byť špecifikovaný príslušný príkaz SQL.

Tu je príklad, ako by to mohlo vyzerať:


SELECT počet(idorder), súčet(hodnota), priem(hodnota), GROUP_CONCAT(SEPARATOR zákazníka ", ") z test.order

2. Uloženie skriptu

Uložte SQL dotaz do samostatný súbor na vašom pevnom disku. Uistite sa, že prípona súboru je .sql a že je vybratá nasledujúca cesta:

C:\Program Files (x86)\PRTG Network Monitor\Custom Sensors\sql\mysql

3. Vytvorenie snímača v PRTG

Pred pridaním senzora do aplikácie PRTG sa uistite, že vaše prostredie spĺňa požiadavky (viac informácií nájdete v našej používateľskej príručke). Osobitnú pozornosť treba venovať zadávaniu správnych prístupových údajov v nastaveniach zariadenia, keďže toto zariadenie bude reprezentovať vašu databázu v aplikácii PRTG.

Kliknite "Pridať senzor" Na zariadení, ktoré dostane senzor, vyhľadajte MySQL a vyberte MySQL-v2-Sensor. V nasledujúcom dialógovom okne zadajte názov snímača a názov databázy, ktorá bude monitorovaná.

Ďalej vyberte súbor SQL obsahujúci váš dotaz SQL (z kroku 2) a nakonfigurujte senzor podľa potreby. Rozhodnite sa napríklad, či chcete len sledovať čas vykonania dotazu alebo tiež analyzovať a spracovávať hodnoty z tabuľky údajov. Ak zvolíte druhú možnosť, zadajte, ktoré hodnoty sa majú čítať z tabuľky.

Snímač PRTG sa pridá po zatvorení dialógového okna. Bude to vyzerať asi takto.

PRTG vám uľahčí život!

náš softvér monitorovanie funguje za vás
a poskytuje včasné upozornenie na potenciálne problémy.
Umožňuje vám sústrediť sa na dôležitejšie veci.

PRTG šetrí čas

Kúpou PRTG získate jediný centralizovaný nástroj na monitorovanie prevádzky serverov a celej siete. Získajte prehľad o celej svojej infraštruktúre pomocou našej aplikácie a ovládacieho panela.

PRTG šetrí vaše nervy

Inštalácia PRTG je veľmi jednoduchá. Začiatok s PRTG alebo prechod z iného monitorovacieho nástroja je bezproblémový vďaka automatickej detekcii a hotové šablóny pre množstvo zariadení.

PRTG šetrí peniaze

PRTG stojí za peniaze. 80 % našich zákazníkov tvrdí, že dosiahli úspory v správe siete. A náklady na licencie PRTG sa v priemere vyplatia už za niekoľko týždňov.

Spoločnosť Paessler AG vykonala rozsiahly prieskum medzi viac ako 600 IT oddeleniami po celom svete, ktoré používajú PRTG.
Účelom tohto prieskumu bolo optimalizovať a jemné ladenie náš softvér na monitorovanie siete
ktoré by lepšie vyhovovali potrebám správcov.
Podľa výsledkov nášho prieskumu viac ako 95 % účastníkov bolo ochotných odporučiť PRTG alebo tak už urobili.

Viacnásobne ocenený softvér

Snažíme sa každý deň poskytovať výkonné a
jednoduchý softvér pre našich klientov.
Samozrejme, sme hrdí, keď máme úspechy a vďačnosť za našu prácu.

PRTG je komplexný monitorovací nástroj
databázy

PRTG podporuje nielen MySQL, ale je vhodný aj na monitorovanie iného databázového softvéru. Program má pripravené senzory pre všetky hlavné databázové prostredia vrátane Microsoft SQL, Oracle SQL a PostgreSQL. Navyše, náš senzor ADO SQL je možné použiť s takmer akýmkoľvek iným systémom správy databáz. Tento senzor vám umožňuje monitorovať akýkoľvek dátový zdroj, ktorý je dostupný cez OLE DB alebo ODBC.

PRTG: Revolučný softvér na monitorovanie siete

Používanie API PRTG môžete prispôsobiť individuálne a dynamicky svojim špecifickým potrebám:
  • HTTP API: prístup k údajom o monitorovaní siete a správe zariadení pomocou HTTP požiadaviek
  • Jednotlivé senzory: môžete pridať vlastné senzory pre individuálne monitorovanie siete
  • Jednotlivé upozornenia: môžete pridať svoje vlastné upozornenia na odosielanie upozornení do externých systémov
  • Nový REST API senzor: Monitoruje takmer všetko, čo podporuje XML a JSON

Takmer žiadna moderná aplikácia klient-server sa nezaobíde bez DBMS a vo väčšine organizácií spočíva údržba databázových serverov výlučne na pleciach správcu systému. Štandardné nástroje umožňujú riešiť len základné problémy a ich funkcie nie sú vždy dostatočné. Nástroje tretích strán veľmi uľahčia správu MySQL a klonov.

Administračné rozhranie

MySQL a klony sú distribuované bez predvoleného nastavenia GUI. V najviac jednoduché prípady s viacerými základňami na správu je dosť príkazový riadok Keď počet serverov, databáz a správcov, ktorí ich obsluhujú, presiahne tucet, potreba GUI sa stáva zrejmejšou. Oracle ponúka svoj vývoj – jednotný nástroj pre vývojárov a správcov databáz, MySQL Workbench pre Windows, Linux, OS X. Ide o výkonné prostredie s veľkými schopnosťami, ktoré vám umožňuje vizuálne navrhovať, vytvárať a spravovať databázy. K dispozícii sú všetky nástroje na nastavenie serverov, správu účtov, zálohovanie a obnovu, auditovanie a jednoduché monitorovanie stavu. Dá sa použiť aj na jednoduchú migráciu z iných DBMS – MS SQL Server, Sybase ASE, PostreSQL a ďalšie. Možnosti je možné rozšíriť aj pomocou pluginov. Rozhranie nie je lokalizované. Funkcií je veľa, takže si budete musieť nejaký čas zvyknúť, aj keď vo všeobecnosti je prostredie pohodlné. Vydanie Community (OSS) je licencované pod GNU GPL. Inštalácia nespôsobuje žiadne problémy, balíčky sú dostupné pre rôzne distribúcie Linuxu, Windows a OS X. Pre Red Hat / CentOS je lepšie použiť EPEL, Ubuntu APT developer repository.

$ wget -c http://dev.mysql.com/get/mysql-apt-config_0.2.1-1ubuntu14.04_all.deb $ sudo dpkg -i mysql-apt-config_0.2.1-1ubuntu14.04_all.deb $ sudo apt -získajte inštaláciu mysql-workbench

PhpMyAdmin je medzi hostiteľmi veľmi obľúbený, umožňuje vykonávať väčšinu operácií pri správe databáz, práci s tabuľkami, indexmi, prístupovými právami, nastavovaním replikácie, exportovaním informácií, zálohovaním/obnovovaním, prezeraním štatistík a podobne v intuitívnom prostredí. Zároveň zostáva možnosť priamo zadávať akékoľvek SQL dotazy. Je podporovaná správa viacerých serverov. Všetko je celkom intuitívne a používateľ zvládne administráciu bez špeciálneho školenia z akéhokoľvek zariadenia s prehliadačom. Na internete je veľa návodov a príkladov pomocou phpMyAdmin. Inštalácia z úložiska balíkov nespôsobuje žiadne problémy, ako webový server môžete použiť nielen Apache, ale aj ľahší nginx alebo lighttpd. Niektoré ovládacie panely hostingu, ako napríklad cPanel a Plesk, podporujú phpMyAdmin.

Používatelia Windows určite ocenia HeidiSQL, ktorý podporuje správu MySQL, MS SQL a PostgreSQL (zatiaľ experimentálne) a je distribuovaný pod licenciou Open Source. Program má veľmi pohodlné rozhranie, podporuje pripojenie k viacerým serverom naraz, ktoré sú dostupné v jednom okne, čo zjednodušuje operácie exportu/importu dát. Môžete vytvárať a upravovať databázy, tabuľky, spravovať privilégiá, exportovať tabuľky (CSV, HTML, XML, SQL, ...), vyhľadávať, optimalizovať, monitorovať. Automatické dopĺňanie pomáha pri písaní dopytov. Príkazový riadok je podporovaný, pripojenie cez SSH tunel je možné. Existuje prenosná verzia využívajúca Wine, dá sa spustiť aj na *nix / OS X.

Pre tých, ktorí nie sú spokojní s popísanými produktmi, ich nájdete na internete. veľké množstvo analógy: SQLyog, dbForge Studio pre MySQL, TOra, SQL Buddy a ďalšie.

Monitorovacie nástroje

Ako každá aplikácia, aj DBMS vyžaduje neustále monitorovanie svojej činnosti, aby sa v prípade problémov dalo ľahko nájsť úzke miesto. Všeobecné informácie Informácie o tom, ako MySQL funguje, môžete získať pomocou štandardného klienta mysqladmin. Dotazy ako SHOW QUERY LOG, SHOW PROCCESSLIST, SHOW PREMENNÉ, SHOW GLOBAL STATUS a iné zriedka poskytujú jasný obraz, pretože vždy existujú pomalé dotazy, ktoré však nemusia nevyhnutne ovplyvniť fungovanie služby. Existuje aj utilita s názvom mysqldumpslow, ktorá analyzuje dáta slow.log a zobrazuje najčastejšie pomalé dopyty.

Verzia Enterprise ponúka špeciálny nástroj MySQL Enterprise Monitor, ktorý poskytuje informácie o výkone a dostupnosti v reálnom čase pre všetky databázy MySQL. Okrem toho sú k dispozícii špeciálne pluginy pre väčšinu monitorovacích systémov vrátane Open Source Nagios, Cacti, Zabbix, Ganglia. Napríklad Nagios. Každý z pluginov musí byť správne nakonfigurovaný, aby sa mohol prezentovať podrobné informácie o tom, čo sa deje v MySQL, a to si často vyžaduje skúsenosti. Nie je vždy racionálne nasadiť plnohodnotný monitorovací systém, keď úlohou je len monitorovať DBMS. V tomto prípade prídu na záchranu špecializované nástroje.

Žiaľ, veľmi obľúbený mytop sa už viac ako dva roky nevyvíja (aj keď to neznamená, že sa nedá použiť), ale má výbornú a funkčnejšiu náhradu. Počnúc MySQL verziou 3.23.41, InnoDB obsahuje InnoDB Monitor innotop, akýsi analóg unixového top pre tento DBMS. Innotop zobrazuje informácie o vnútornom stave InnoDB v pohodlnej forme, ktorá môže byť užitočná pri ladení výkonu. Existuje veľa možností na spustenie pomôcky. Najjednoduchšie je spustiť ako konkrétny používateľ bez parametrov

$ innotop -u root -p heslo

V predvolenom nastavení je pripojenie vytvorené na lokálny server, ale môžete zadať ľubovoľný uzol alebo monitorovať niekoľko serverov naraz. Zoznam všetkých príkazov (Shift + kláves) je možné získať stlačením klávesu s otázkou. napr. zobrazí zoznam všetkých aktuálnych požiadaviek. Parameter --write vám umožňuje uložiť údaje o pripojení do súboru .innotop/innotop.conf:

$innotop --napíšte

Jedinou nevýhodou týchto nástrojov je, že zobrazujú informácie v reálnom čase a o ukladanie a následnú analýzu štatistických údajov by ste sa mali postarať sami.

Projekt mycheckpoint, ktorý sa objavil v roku 2009, sa v priebehu niekoľkých rokov stal de facto štandardným nástrojom na monitorovanie MySQL. Dôvodom jeho popularity je jedinečný prístup. Na ukladanie a dopytovanie sa používa databáza, do ktorej sa (jedna operácia INSERT) zbierajú údaje o sledovaných metrikách, štatistikách a premenných MySQL, informácie o OS Linux (stav RAM a swapu, zaťaženie atď.). V databáze sú zahrnuté aj výsledky používateľských dopytov. Zozbierané informácie je možné jednoducho zobraziť pomocou jednoduchých SELECT dotazov. Administrátor zároveň dostáva vizuálne grafy (na základe Google Chart API), reporty a metriky, ktoré sa generujú za chodu. Na výstup HTML správ môžete použiť svoj vlastný webový server. Je možné nakonfigurovať aj upozornenia odosielané e-mailom. Monitorovanie vzdialeného systému a viacerých serverov je možné.

Je napísaný v Pythone, takže inštalácia nie je náročná. Vývojári ponúkajú balíčky a suroviny deb, rpm a tar.gz. Na Ubuntu by ste mali zadať nasledujúce príkazy:

$ sudo apt-get install python-mysqldb $ sudo dpkg -i mycheckpoint-231-1.deb

Potom budete musieť vytvoriť databázu na ukladanie informácií:

$ mysql -uroot -ppassword mysql> CREATE DATABASE mycheckpoint;

mysql> UDELTE VŠETKY PRIVILEGINÁTY NA mycheckpointe.* PRE "user"@"localhost" IDENTIFIKOVANÉ PODĽA "hesla";

Na zber a zobrazenie údajov slúži utilita mycheckpoint, ktorú je možné spustiť manuálne alebo cez cron. Parametre pre pripojenie k serveru MySQL a SMTP sú tiež špecifikované v príkazovom riadku:

$ mycheckpoint --user=user --password=password --host=server --port=3306

Alebo zapísané do konfiguračného súboru (štandardne /etc/mycheckpoint.cnf):

*/5 * * * * mycheckpoint --defaults-file=/root/mycheckpoint.cnf

Teraz môžeme prezerať zhromaždené informácie a vytvárať zostavy pomocou SQL dotazov.

$ mysql mycheckpoint -e "VYBERTE html ZO sv_report_html_brief" --silent --raw > ./checkpoint_report.html

Ďalší užitočný nástroj, ktorý vám umožňuje sledovať, analyzovať a v prípade potreby meniť výmenu dát medzi serverom MySQL a klientskou aplikáciou, sa nazýva MySQL Proxy. Program má veľmi veľké možnosti. Funguje pod systémami Windows aj *nix. Inštalácia nespôsobuje žiadne problémy v nastaveniach je potrebné zadať port MySQL (predvolený 3306) a PHP (riadok mysql.default_port v php.ini). Všetky požiadavky sú generované v jazyku Lua, dokumentácia je tu dobrým pomocníkom.

Jedným z problémov spojených s prevádzkou akéhokoľvek softvérového produktu je jeho nesprávne nastavenie. Po inštalácii sú k dispozícii ďalšie ukážky účtov, testovacie databázy, môžu sami používatelia nastaviť jednoduché heslá, ktoré sa dajú ľahko vybrať. Tieto problémy možno vyriešiť iba neustálym auditom, ktorý bude povinný aj v prípade, ak sa spracúvajú dôverné/osobné údaje ( kreditné karty, zdravotné záznamy a podobne). Pri vyšetrovaní incidentov a riešení problémov je potrebné vytvoriť prostredie, ktoré je v súlade s bezpečnostnými štandardmi (SOX, HIPAA atď.). Po inštalácii musíte použiť mysql_secure_installation, ktorý poskytuje minimálnu sadu kontrol, ktoré vám umožňujú upraviť všeobecné nastavenia zabezpečenia.

Ďalej by ste mali použiť nástroje a skripty popísané nižšie. Úloha auditu je zjednodušená tým, že vývojári MySQL ponúkajú vhodné API. V MySQL je však doplnok audit_log dostupný len pre verziu Enterprise. Vývojári Percona Server ponúkajú k tomuto modulu alternatívu GPL, ktorá je vhodná na auditovanie MySQL a klonov. Dve ďalšie alternatívy, McAfee MySQL Audit Plugin a MariaDB Audit Plugin pre MySQL, tiež plnia túto úlohu a umožňujú vám auditovať MariaDB, MySQL a Percona Server, ale používajú ich vlastné vlastný formát audit log, odlišný od štandardného MySQL. Bude to vyžadovať trochu viac počiatočného nastavenia. Používanie doplnkov nemožno nazvať jednoduchým a je podrobne popísané v dokumentácii, ktorú si stále musíte prečítať, takže sa tým nebudeme zaoberať.

Okrem toho Patrik Karlsson predstavuje súbor testov pre sieťový skener Nmap, ktorý vám umožňuje otestovať váš server na základné bezpečnostné problémy. V Ubuntu sú nastavenia po inštalácii uložené v adresári /usr/share/nmap/nselib/data a nmap/script, aby ste skontrolovali server, musíte zadať parametre pripojenia a účet.

$ nmap -p 3306 1.1.1.1 --script mysql-audit --script-args "mysql-audit.filename="/usr/share/nmap/nselib/data/mysql-cis.audit" ,mysql-audit.username ="root",mysql- audit.password="heslo""

Hacker to v každom prípade použije, takže správca je jednoducho povinný pravidelne kontrolovať servery týmto spôsobom. Dva balíky, o ktorých by sa malo diskutovať samostatne, tiež obsahujú nástroje na audit.

Percona Toolkit pre MySQL

Štandardné nástroje, ktoré sa dodávajú s MySQL, poskytujú iba základné možnosti administrácie a v dôsledku toho sa mnohé operácie musia vykonávať manuálne. To môže byť problém, pretože udržať si prehľad o všetkom je veľmi ťažké, a často si to vyžaduje určité skúsenosti a je ľahké robiť chyby. Balík Percona Toolkit for MySQL kombinuje prácu dvoch projektov – Maatkit a Aspersa – a poskytuje skripty, ktoré vám umožňujú vykonávať mnohé rutinné administratívne operácie: kontrolu stavu replikácie, zhromažďovanie informácií, optimalizáciu dopytov, ladenie servera, archiváciu/obnovu údajov a oveľa viac. Celkovo existuje viac ako 4000 testov a nastavení. Balík je dostupný pre hlavné distribúcie Linuxu (v Ubuntu je to balík percona-toolkit). Po inštalácii získame 32 nástrojov, ktorých názov začína na pt-*, účel je často jasný z názvu. Pri spustení môžete nastaviť rôzne filtre a formátovať výstup. Preto si stále budete musieť prečítať dokumentáciu, pretože každý nástroj má veľké množstvo parametrov. Napríklad skript pt-summary zobrazí všetky informácie na serveri zhromaždené /proc/cpuinfo, /proc/meminfo, mount, df a inými utilitami, pt-show-grants zobrazí všetky práva používateľa DBMS, pt-query- digest vám umožňuje vytvárať zostavy na základe analýzy protokolov spracovaných serverom požiadaviek, ako aj informácií zhromaždených procesnými zoznamami a tcpdump. Napríklad prezeranie pomalé otázky dvoma spôsobmi:

$ pt-query-digest slow.log $ pt-query-digest --user=user --password=password --processlist --host=example.org

Ďalší populárny balík - openark kit ponúka 14 utilít, ktoré vám umožňujú testovať DBMS: kontrola nastavení, kontrola hesiel (prázdne, identické, slabé), blokovanie účtov, prerušovanie dotazov, filtrovanie záznamov v protokole, zobrazenie stavu replikácie, správne kódovanie a mnoho ďalšieho. Distribuované pod licenciou BSD. Napísané v Pythone a vyžaduje python-mysqldb. Deb a rpm balíčky a suroviny sú ponúkané na inštaláciu, proces je štandardný a nespôsobuje žiadne problémy.

Najpopulárnejším skriptom je sada dub-security-audit, ktorá je určená na pravidelnú kontrolu účtov, hesiel, privilégií a iných nastavení servera. Vo všeobecnosti sa dá spustiť bez parametrov. Štandardne sa používa režim najvyššej úrovne systémového auditu (zodpovedá --audit-level=strict):

$ oak-security-audit --socket=/var/run/mysqld/mysqld.sock --user=user --password=heslo

Výsledkom je, že dostaneme hlásenie všetko, čo nie je označené ako úspešné, vyžaduje si zvýšenú pozornosť. Nástroje zo sady openark (vrátane mycheckpoint, ktorý je uvedený vyššie, od toho istého vývojára) štandardne používajú na pripojenie k DBMS soket /var/run/mysqld/mysql.sock (je zabudovaný v samotnom skripte), v súbor Ubuntu s názvom mysqld.sock. Aby ste cestu neuvádzali zakaždým, môžete použiť vopred pripravený súbor s nastaveniami pripojenia a zadať ho pomocou -defaults-file. Prípadne: zmeňte nastavenia MySQL v my.cnf. Úprava skriptov je nepohodlná, pretože počas aktualizácie nebudú fungovať. Ďalší skript, oak-block-account, je veľmi populárny medzi rôznymi typmi hostiteľov na dočasné zablokovanie prístupu k DBMS. Faktom je, že štandardný mechanizmus DBMS vám neumožňuje dočasne deaktivovať účet (niečo ako REVOKE login ON . ), to znamená, že ak existuje účet, používateľ sa môže vždy pripojiť k databáze. Môžete samozrejme použiť niečo také

Mysql> ZRUŠTE VŠETKY PRIVILEGIÁ, UDELTE MOŽNOSŤ OD "UŽÍVATEĽA"@"%";

ale ak sa práva obnovia, budete si musieť zapamätať všetky nastavenia. A čo je najdôležitejšie, ak sa pozriete na používanie práv

Mysql> ZOBRAZIŤ GRANTY PRE „POUŽÍVATEĽA“;

GRANT POUŽITIE NA *.* "POUŽÍVATEĽOVI"@"%" IDENTIFIKOVANÝM HESLOM .....

zabezpečíme, aby takýto príkaz neresetoval POUŽITIE. Použitie REVOKE USAGE v skutočnosti znamená DROP USER. Je jednoduchšie zmeniť svoje používateľské meno a heslo, ale obnovenie môže byť problém. Vo všeobecnosti je tu veľa rozruchu a rizík. Pri použití oak-block-account zostáva účet nezmenený, je mu pridelené dočasné heslo, takže sa s týmto účtom nemôžete spojiť.

$ oak-block-account --block --account-user=USER --account-host=example.org Dodatočný parameter --kill vám umožní resetovať všetko naraz aktívne spojenia

. Obnovenie funkčnosti účtu je tiež jednoduché. Pozrime sa na zoznam účtov a ich stav:

$ oak-block-account --list

A aktivujte účet:

$ oak-block-account --release --account-user=USER --account-host=example.org Ďalšie skripty zo sady openark vám umožňujú zjednodušiť niektoré operácie. Napríklad oak-chunk-update umožňuje vykonávať veľké operácie UPDATE/DELETE bez zdĺhavého blokovania rozdelením úlohy na malé kúsky. Skript oak-show-replication-status zobrazuje stav replikácie, oak-kill-slow-queries vymaže už spustené dotazy na dlhú dobu

, dub-repeat-query vykonáva dotaz, kým nedosiahne určitú podmienku (počet opakovaní, čas).

Optimalizácia nastavení je veľmi chúlostivý proces, pretože na základe zozbieraných štatistík je potrebné meniť len to, čo skutočne ovplyvní výkon. Najznámejším nástrojom pre MySQL je Perl skript MySQLTuner, ktorý je dostupný v repozitároch väčšiny linuxových distribúcií. Prečíta aktuálne nastavenia servera a inštalácie MySQL a následne vydá odporúčania (iba odporúčania) na ich zmenu. Ak bola inštalácia vykonaná pomocou balíkov, stačí zadať názov skriptu, inak by ste ho mali zavolať a zadať tlmočníka:

$ perl mysqltuner.pl

Ďalej bude vyžiadané prihlasovacie meno a heslo správcu, po ktorom dostaneme systémové metriky a odporúčania. Okrem toho MySQLTuner zobrazuje informácie o indexoch v tabuľkách a fragmentácii, ktoré tiež ovplyvňujú rýchlosť servera. V prípade potreby dostaneme odporúčania na preusporiadanie indexov a defragmentáciu. Pre presnejšiu prácu sa odporúča spustiť skript aspoň po dni prevádzkyschopnosti.

Pôvodný skript bol napísaný pod *nix, ale upravená verzia pre Win je dostupná na CodePlex. Alternatívou je MySQL Performance Tuning Primer Script, ktorý neposkytuje takéto vizuálne informácie, ale o problémoch viac „hovorí“.

Záver

Toto, samozrejme, nie sú všetky nevyhnutné nástroje, ktoré by správca databázy mal mať po ruke. Ale to je asi úplné minimum, ktoré by sa malo študovať. Okrem toho, keď sa zoznámite, začnete chápať viac o mechanizmoch, ktoré sú vlastné MySQL.

Na sledovanie zaťaženia servera MySQL je tam jeden dobrá užitočnosťmytop.
Mytop je otvorený nástroj Nástroj príkazového riadka na monitorovanie výkonu MySQL, modelovaný podľa nástroja na monitorovanie systému Linux s názvom top. Mytop sa pripája k MySQL a pravidelne spúšťa príkazy show processlist a show global status, potom sumarizuje informácie v užitočnom formáte. Pomocou Mytop môžete sledovať vlákna MySQL, dotazy a uptime v reálnom čase, zistiť, ktorý používateľ posiela dopyty do konkrétnej databázy, identifikovať pomalé dopyty a oveľa viac. Všetky tieto informácie možno použiť na optimalizáciu výkonu MySQL server.

Inštalácia pre rôznych systémov:

# apt-get install mytop

# yum install mytop

#pkg nainštalovať mytop

Pripojte sa k nášmu MySQL:

# mysql -u root -p Zadajte heslo:

Najlepšie pre každú databázu alebo pre rôzne programy vytvoriť rôzne účty. Používateľovi mytopuser preto vytvoríme a popíšeme práva na potrebné databázy:

Mysql> vytvorte používateľa "mytopuser"@"localhost" identifikovaného pomocou "hesla"; mysql> udeliť všetko na *.* používateľovi „mytopuser“@’localhost“ identifikovanému pomocou „hesla“;

Vytvorte súbor s nastaveniami vo svojom domovskom adresári ~/.mytop a zadajte do neho konfiguráciu pripojenia:

# mcedit .mytop user=mytopuser pass=dgbple host=localhost db=hviezdičkový port=3306 color=1 delay=3 nečinný=0

kde user a pass sú prihlasovacie meno a heslo, ktoré sme vytvorili.

host, port – adresa a port MySQL servera

db – databáza, ku ktorej sa pripájame

oneskorenie – aby sa mytop displej obnovil každé 3 sekundy

nečinný – určuje, či sa čakajúce vlákna majú odosielať do mytop. Štandardne sa takéto toky berú do úvahy. Vynechaním čakajúcich vlákien zmení mytop predvolené poradie zoradenia a umiestni dlhé dopyty na začiatok zoznamu.

Zmeňme prístupové práva k tomuto súboru:

# chmod 700 .mytop

Spustite pomôcku:

#mytop

Môžete zobraziť údaje pre konkrétnu databázu, napríklad:

# mytop -u mytopuser -p heslo -d goip

V prvom riadku: názov hostiteľa a verzia spusteného servera MySQL. V pravom hornom rohu je doba prevádzky servera (čas nepretržitej prevádzky) dni+hodiny+minúty+sekundy.

V druhom riadku: celkový počet spracovaných dopytov do databázy (Queries:), priemerný počet dopytov za sekundu (qps:) a počet pomalých dopytov (Slow:).

Tretí riadok zobrazuje informácie o procesoch: celkové, aktívne, vo vyrovnávacej pamäti.

Vo štvrtom riadku: informácie o účinnosti kľúčového buffera – ako často MySQL nájde kľúče vo vyrovnávacej pamäti bez prechodu na disk, priemerný počet bajtov odoslaných a prijatých serverom a počet aktuálne odosielaných bajtov.

Druhá časť obrazovky zobrazuje všetky aktívne vlákna (vrátane toho, ktorý sa používa MyTOP). Zobrazí sa meno používateľa, názov databázy a názov uzla, ako aj aktuálna požiadavka a stav vo forme tabuľky.

V štandardnom výstupe mytop sú dotazy skrátené. Ak chcete zobraziť celý príspevok, kliknite F. Program sa opýta:

Úplný dopyt, pre ktoré ID vlákna:

Zadajte ID vlákna na zobrazenie požadovanej požiadavky.

Pre vysvetlenie žiadosti kliknite E a potom program poskytne údaje o spustenom dotaze, ktoré pomôžu určiť, či sa dotaz optimalizuje. EXPLAIN je jedným z najvýkonnejších nástrojov na pochopenie a optimalizáciu dopytov MySQL.

Ak chcete ukončiť tento režim, stlačte ľubovoľné tlačidlo; pre návrat na štandardný výstup kliknite t.

Ďalší užitočný pohľad na mytop je dostupný stlačením klávesu C, ktorý zobrazuje spustené príkazy.

Stĺpec Príkaz zobrazuje typ príkazu alebo dotazu, ktorý bol spustený. Stĺpec Total označuje celkový počet príkazov tohto typu od spustenia servera a Pct zobrazuje tento počet v percentách. Stĺpec Posledný zobrazuje počet príkazov tohto typu odvtedy posledná aktualizácia mytop. Celkovo tieto údaje poskytujú predstavu o výkonnosti servera MySQL v krátkodobom a dlhodobom horizonte.

Záver

Tento nástroj vám umožňuje včas odhaliť a optimalizovať zložité SQL dotazy, čím sa zvýši celkový výkon servera.

Mytop je nástroj príkazového riadka, ktorý je podobný príkazu top, ale je určený na monitorovanie MySQL. Vyžaduje MySQL verziu 3.22 alebo novšiu aktuálnu verziu MySQL 5.x je tiež podporovaná. Mytop funguje na väčšine Linuxové systémy. V tomto článku použijeme Ubuntu ako základ. Na prácu budete potrebovať nainštalovaný Perl, DBI a Term::ReadKey. Pomocou Term::ANSICcolor môžete vytlačiť ľubovoľnú farbu. Verzia 0.7 funguje aj na Windows.

Inštalácia

Pred inštaláciou musíte nainštalovať všetky programy uvedené v predchádzajúcom odseku. Mytop sa inštaluje nasledovne:

Debian: apt-get install mytop Ubuntu: sudo apt-get install mytop

Alebo si môžete stiahnuť tar ball a nainštalovať ho:

Tar -zxvf mytop-x.x.x.tar.gz (číslo vašej verzie)
cd mytop-x.x.x. (Vaše číslo verzie)
perl Makefile.PL
urobiť
urobiť test
vykonať inštaláciu

Vykonaním vyššie uvedených príkazov extrahujte údaje a dokončite inštaláciu. Používatelia CentOS a RedHat si budú musieť stiahnuť úložisko rpmforge automatická inštalácia alebo môžete použiť metódu manuálnej inštalácie.

Pomocou mytop

Po inštalácii prejdime k používaniu mytop:

Mytop --prompt (nastavte výzvu na zadanie hesla a potom heslo potvrďte stlačením klávesu Enter)

Toto je štandardná metóda, heslo môžete nastaviť aj takto:

Mytop -u root -p (tu musíte použiť heslo mysql, pretože používateľ je "root")

Ak sa vyskytne chyba ako „root: NO PASS“ alebo niečo podobné, zadajte nasledovné:

Mytop -u root -p xxxx (namiesto "xxxx" zadajte naše heslo)

Pred použitím týchto príkazov musíte skontrolovať, či je spustený server MySQL.

Po kontrole stačí stlačiť enter.

MySQL na localhost (5.0.8) až 0+00:32:51 (11:20:10)
Dotazy: 19,0 qps: 0 Pomaly: 0,0 Se/In/Up/De(%): 00/00/00/00
Qps teraz: 0 Spomalenie: 0,0 Vlákna: 1 (1/0) 00/00/00/00
Účinnosť kľúča: 100 % Bps vstup/výstup: 7,3/907,3 Teraz vstup/výstup: 8,4/1,3 kB
ID používateľa Host/IP DB Time Cmd dotaz alebo stav
2 root localhost test 0 Dopyt zobrazí celý proces

Prvý riadok zobrazuje názov servera (localhost) a verziu MySQL spustenej v našom systéme. Riadok zvýraznený jadrovou modrou farbou označuje čas, počas ktorého server MySQ pracuje v prevádzkovom režime, formát zápisu je dni+hodiny:minúty:sekundy a je uvedený aj aktuálny systémový čas.

Druhý riadok udáva počet požiadaviek, ktoré systém spracoval od začiatku práce.

Tretí riadok zobrazuje počet vlákien.

Druhá časť obrázku ukazuje počet vlákien, ktoré MySQL spracováva. Vlákna sú zoradené podľa doby nečinnosti, ktorá je najskôr nečinná.

Niektoré parametre je možné preskočiť pomocou mytop:

U alebo používateľské meno používateľa: Zvyčajne sa používa na definovanie používateľského mena počas registrácie v mytop. Predvolená hodnota je "root".

P alebo heslo alebo heslo: Heslá používané na autorizáciu používateľa Predvolené heslo nie je nastavené, takže pole pre heslo môže zostať prázdne.

H alebo názov hostiteľa[:port]: Na definovanie portov, ak MySQL nepoužíva štandardný port. Predvolená hodnota je 3306.

S alebo -delay sekúnd: Určuje časový interval aktualizácie. Predvolená hodnota je 5.

Ak chcete zobraziť ďalšie parametre mytop, zadajte nasledujúce:

Muž mytop

Muž obsahuje veľa informácií o mytope.

Pozrime sa na konfiguračný súbor vytvorený na získanie prístupu a kontrolu nad našimi údajmi:

User=root #Určuje meno používateľa.
pass= #Nastavte heslo.
host=localhost #hostname.
db=test #názov databázy.
delay=5 #časový interval pre aktualizáciu výstupných údajov monitorovania.
port=3306 #port na použitie v mytop.
socket= #ak definujete akýkoľvek socket, mytop bude ignorovať číslo portu a názov hostiteľa, tento riadok môže byť odstránený, ak ho nepotrebujete.
batchmode=0 #poskytuje presný počet dopytov spracovaných v MySQL.
header=1 #Nastavte, ak chcete zobraziť hlavičku. Zobrazuje sa klávesom h pri spustení mytop.
color=1 #Nastavte, ak chcete použiť rôzne farby (iba ak máte podporované farby).
idle=1 #na zobrazenie nečinných procesov v zozname procesov.

Konfiguračný súbor sa vytvorí nasledovne:

V základnom priečinku sa vytvorí súbor Mcedit ~/.mytop, môžete použiť ľubovoľný editor

Ak chcete zobraziť ďalšie možnosti mytop, napíšte: ?, zobrazí sa celý zoznam klávesových skratiek, ktoré sa používajú v mytop.

© 2024 ermake.ru -- O oprave PC - Informačný portál