MySQL pe emisiune. Monitorizarea interogărilor SQL

Acasă / Nu se aprinde

Când înțelegeți cum funcționează un anumit CMS, trebuie să utilizați diverse instrumente pentru a vă ușura munca.
Cel mai interesant subiect este lucrul cu bazele de date. Desigur, pentru a studia interogările și rezultatele interogărilor, trebuie să utilizați ceva universal. Ceva care va funcționa stabil atât cu un motor binecunoscut, cât și cu un sistem personalizat.
Să presupunem că aveți un sistem de management al conținutului și trebuie să vedeți cum este implementată adăugarea de noi utilizatori sau modificarea parolelor.

Majoritatea instrumentelor care vă permit să monitorizați munca cu baza de date sunt plătite [unu, doi]. Am vrut ceva mai ușor și mai convenabil, așa că am ales mysql-proxy. Deși capabilitățile utilitarului sunt mult mai largi decât ceea ce am nevoie, voi descrie doar elementele de bază. Funcționează atât pe sisteme Windows, cât și pe Unix.

Îl puteți descărca aici: dev.mysql.com/downloads/mysql-proxy
Primul pas este să decideți asupra alegerii distribuției. Pe în acest moment ultima versiune este „MySQL Proxy 0.8.3 alpha”, sistemul meu de operare este Windows 7, deci toate testele vor fi pe el.

După ce faceți clic pe butonul „Descărcare”, vi se va cere să vă conectați sau să vă înregistrați, dar mai jos există un link de descărcare fără pași inutile. (Depozitele Ubuntu și Debian au pachete prefabricate, deci: sudo apt-get install mysql-proxy)

Aș dori să remarc că, cu o dimensiune de 7,9 MB, distribuția include Lua cu suport pentru module de bază.

După descărcarea arhivei, trebuie să o despachetați într-un director convenabil pentru dvs., să luăm C:\mysql-proxy ca exemplu.
Pentru a lansa aplicația, trebuie să decideți asupra parametrilor.

În acest context, multe depind de ceea ce ai instalat. Eu folosesc Winginx ca LAMPĂ, puteți citi despre acest pachet aici: winginx.ru
În mod implicit, MySQL rulează pe portul 3306, nu îl vom atinge.
Trebuie să schimbăm portul pentru conectarea php la baza de date. Pentru a face acest lucru, trebuie să remediați php.ini
Găsiți linia „mysql.default_port” și setați portul (implicit 4040). Pentru o funcționare mai universală, schimbați „mysqli.default_port” la 4040

Partea pregătitoare a fost finalizată, să trecem la treabă.

Opțiunea 1: Monitorizarea solicitărilor.
Pentru o monitorizare simplă, trebuie să utilizați un script Lua. După cum am spus deja, Lua este inclus, așa că nu trebuie să instalați nimic nou.
Să creăm un script view.lua simplu în directorul C:\mysql-proxy\ cu conținutul:

Funcția read_query(pachet) if string.byte(packet) == proxy.COM_QUERY then print(string.sub(packet, 2)) end end

Acum puteți verifica rezultatul.
Pentru comoditate, să creăm un fișier view.bat în directorul C:\mysql-proxy cu conținutul:

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 serverului MySQL la care vom trimite cererea.

Pornind serverul web și executând orice interogări în baza de date, puteți vedea asta:

Solicitările sunt afișate, bine.

Opțiunea 2: Monitorizați cererile și scrieți într-un fișier.
Pentru a scrie cereri într-un fișier, vom folosi capabilitățile standard Lua.
Să creăm un fișier view-write.lua în directorul C:\mysql-proxy\ cu conținutul:

Funcția read_query(pachet) dacă șir.byte(pachet) == proxy.COM_QUERY atunci fișier local = io.open("C:\\mysql-proxy\\sql-log.txt", "a") file:write( string.sub(pachet, 2) .. „\n”) fișier:close() print(string.sub(pachet, 2)) end end
Şi fișier bat- „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

Rezultat după executarea interogărilor (la „C:\mysql-proxy\sql-log.txt”)

Pe lângă afișarea interogărilor în sine, este posibil să fie nevoie să afișăm rezultatele acestor interogări.

Opțiunea 3. Interogări și rezultate
Folosind aceeași schemă, creăm scriptul „view-result.lua”:
funcția read_query(pachet) if packet:byte() == proxy.COM_QUERY, apoi print("Interogare: " .. șir.sub(pachet, 2)) fișier local = io.open("C:\\mysql-proxy\ \sql-log.txt", "a") fișier:write("Interogare: " .. șir.sub(pachet, 2) .. "\n") fișier:close() proxy.queries:append(2, string.char(proxy.COM_QUERY) .. string.sub(pachet, 2), (resultset_is_needed = true)) proxy.queries:append(1, packet, (resultset_is_needed = true)) returnează proxy.PROXY_SEND_QUERY end end function read_query_result( inj) dacă inj.id == 1, atunci pentru rândul din inj.resultset.rows do local i = 1 local fields = () în timp ce row[i] do if row[i] == row, atunci break end local file = io. open("C:\\mysql-proxy\\sql-log.txt", "a") file:write("Câmp de răspuns: " .. inj.resultset.fields[i].name .. " => " .. rând[i] .. "\n") file:close() print("Câmp de răspuns: " .. inj.resultset.fields[i].nume .. " => " .. rând[i]) i = i + 1 end end return proxy.PROXY_IGNORE_RESULT final end

Și view-result.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

Ca rezultat, obținem înregistrarea completă a cererilor și răspunsurilor într-o formă care poate fi citită

MySQL este sistem de gestionare a bazelor de date open source cod sursă , bazat pe Structured Query Language (SQL). Pe lângă faptul că sistemul este disponibil gratuit, avantajul MySQL este că funcționează pe aproape toate platformele. MySQL este unul dintre cele mai utilizate sisteme de baze de date din lume, pe care sunt construite multe site-uri web dinamice. Alături de versiunea open source, există și o versiune comercială a sistemului de management al bazei de date. Pentru a utiliza MySQL într-un produs comercial, trebuie să achiziționați o licență.

Avantajele MySQL

MySQL are cea mai mare cotă de piață a oricărei baze de date open source. În consecință, nu lipsesc cărțile, articolele și suportul pentru MySQL.

În comparație cu alte baze de date, MySQL este ușor de configurat și administrat. Instrumente precum MySQL Administrator sunt disponibile pentru a începe.

Unul dintre cele mai mari avantaje ale MySQL: viteza fulgerătoare! Datorită structurii sale simple, MySQL este extrem de eficient în ceea ce privește consumul de resurse și aproape că nu folosește memorie.

Producător-
MySQL: baza pentru o serie de alte servicii

Dacă baza de date este foarte lentă, returnează erori la unele interogări sau este complet indisponibilă, performanța și calitatea tuturor aplicațiilor care depind de acea bază de date vor avea de suferit. A oferi disponibilitate constantă și rapidă aplicații, este necesar să se efectueze monitorizare bazele Date MySQL. Astfel, prin optimizarea performanței bazei de date, creați baza pentru disponibilitatea și performanța tuturor serviciilor dumneavoastră la diferite niveluri.

Ce face PRTG un instrument complet de monitorizare MySQL?

Dacă site-ul dvs. web, magazinul online sau aplicația web utilizează o bază de date MySQL și baza de date devine coruptă, site-ul în sine va avea de suferit: este posibil să nu se afișeze corect, părți din acesta pot fi inaccesibile sau site-ul poate să nu se încarce deloc.

PRTG vă permite să monitorizați în mod constant disponibilitatea bazei de date MySQL. Cu PRTG, puteți reduce timpul de nefuncționare a bazei de date și puteți răspunde imediat la întreruperile bazei de date. Rezultatul va fi o satisfacție sporită a clienților și o productivitate sporită a angajaților.

Instrumentul complet de monitorizare MySQL de la PAESSLER monitorizează nu numai disponibilitatea bazei de date, ci și alte date de performanță MySQL. Pentru a face acest lucru, PRTG interogează automat bazele de date și masoara timpul, necesar pentru a stabili o conexiune, a executa o interogare SQL, a procesa o tranzacție și a încheia o conexiune. Tabloul de bord PRTG afișează statistici clare timpul total de solicitare.

PRTG vă permite, de asemenea, să urmăriți seturi de date specifice dintr-o bază de date MySQL. Puteți obține, de exemplu, unele informații dintr-un magazin online sau dintr-o bază de date de aplicații. Pentru a face acest lucru, pur și simplu definiți propriile interogări SQL în aplicația PRTG și monitorizați valorile pe care le returnează.

În plus față de valorile returnate, PRTG va afișa timpul de execuție a interogării și numărul de rânduri interogate în tabelele de date. Folosind praguri personalizabile, puteți rula alerte automate și puteți primi notificări, de exemplu, despre epuizarea iminentă a stocurilor unui anumit produs într-un magazin online.

Unul dintre multe funcții utile PRTG este crearea de rapoarte personalizate. Conținutul rapoartelor poate fi personalizat în orice mod dorit, iar apoi rapoartele pot fi apelate din mers sau creați-le automat(zilnic, săptămânal sau lunar) cu trimitere ulterioară, de exemplu prin e-mail.

PRTG vă permite să creați rapoarte cu toate datele care sunt importante pentru munca dvs. Funcția de raportare este, de asemenea, o modalitate ideală de a oferi informatii la zi colegii si superiorii. Pur și simplu selectați informațiile relevante și rapoartele vor fi trimise automat managerilor corespunzători. De exemplu, puteți trimite cele mai importante statistici site-ului către echipa de marketing sau puteți trimite automat numărul de bilete deschise la biroul de asistență.

Software-ul de monitorizare PRTG MySQL are o funcție de alarmă. Dacă baza de date nu este disponibilă sau dacă unele interogări nu returnează valorile cerute (sau incorecte), puteți configura PRTG să primească notificări automate despre această situație.

Notificarea poate fi sub forma unui mesaj e-mail, SMS sau notificări push către smartphone-ul dvs. Veți fi informat în timp util, înainte ca problema să escaladeze. Cu API-ul PRTG, puteți, de asemenea, să creați notificări personalizate și să executați automat scripturi sau acțiuni HTTP.

Bucurați-vă de senzația de control complet cu PRTG!

PRTG vă permite să monitorizați în mod constant
Baze de date MySQL chiar și în deplasare

PRTG se instalează în câteva minute și este compatibil cu majoritatea dispozitivelor mobile.

PRTG monitorizează aceștia și mulți alți producători și aplicații pentru dvs

Trecerea la PRTG este ușoară și sigură

Există multe instrumente pe piață pentru monitorizarea serverelor MySQL. PRTG are următoarele avantaje.

Nu ascuns
scânduri

Mulți administratori folosesc o varietate de instrumente de monitorizare în cazuri speciale. Gestionarea acestei combinații de instrumente necesită timp și energie. Acest lucru are ca rezultat nenumărate ore de muncă care ar putea fi petrecute mai eficient. Mai mult, de obicei nu este posibil să obțineți o imagine de ansamblu concisă în acest fel.

  • Versiunea completă a PRTG timp de 30 de zile
  • După 30 de zile – versiune gratuită
  • Pentru versiunea extinsă – licență comercială

Cum se monitorizează performanța bazei de date MySQL utilizând PRTG

Pentru a începe să monitorizați MySQL cu PRTG, trebuie să urmați doar câțiva pași simpli. Soluția PRTG vine cu un senzor de monitorizare MySQL gata făcut. În general, puteți începe imediat să utilizați acest senzor pentru a monitoriza informațiile de bază ale bazei de date, cum ar fi disponibilitatea și timpul de execuție.

Pentru valori mai detaliate, adăugați propriile interogări SQL ca fișier separat.

Configurarea unui senzor MySQL este ușoară și nu necesită mult timp.

1. Creați o interogare SQL

Interogările SQL autodefinite vă permit să urmăriți diferiți indicatori cheie de performanță, cum ar fi:

  • numărul de vizitatori ai site-ului web;
  • cifre de vânzări în magazinul online;
  • cereri deschise în asistența clienților.

Posibilitățile sunt aproape nesfârșite. Singura cerință este ca instrucțiunea SQL corespunzătoare să fie specificată.

Iată un exemplu despre cum ar putea arăta:


SELECT count(idorder), sum(value), avg(value), GROUP_CONCAT(customer SEPARATOR ", ") din test.order

2. Salvarea scriptului

Salvați interogarea SQL în dosar separat pe hard disk. Asigurați-vă că extensia fișierului este .sql și că este selectată următoarea cale:

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

3. Crearea unui senzor în PRTG

Înainte de a adăuga un senzor la aplicația PRTG, asigurați-vă că mediul dvs. îndeplinește cerințele (consultați ghidul nostru de utilizare pentru mai multe informații). O atenție deosebită trebuie acordată introducerii corecte a datelor de acces în setările dispozitivului, deoarece acest dispozitiv vă va reprezenta baza de date în aplicația PRTG.

Clic „Adăugați senzor” Pe dispozitivul care va primi senzorul, căutați MySQL și selectați MySQL-v2-Sensor. În caseta de dialog ulterioară, introduceți numele senzorului și numele bazei de date care va fi monitorizată.

Apoi, selectați fișierul SQL care conține interogarea dvs. SQL (de la pasul 2) și configurați senzorul după cum doriți. De exemplu, determinați dacă doriți doar să urmăriți timpul de execuție a interogării sau, de asemenea, să analizați și să procesați valori dintr-un tabel de date. Dacă alegeți ultima opțiune, specificați ce valori trebuie citite din tabel.

Senzorul PRTG va fi adăugat după închiderea casetei de dialog. Va arăta cam așa.

PRTG vă face viața mai ușoară!

Noastre software monitorizarea funcționează pentru tine
și oferă o notificare în timp util a potențialelor probleme.
Vă permite să vă concentrați pe lucruri mai importante.

PRTG economisește timp

Prin achiziționarea PRTG, obțineți un singur instrument centralizat pentru monitorizarea funcționării serverelor și a întregii rețele. Obțineți vizibilitate asupra întregii infrastructuri cu aplicația și tabloul de bord.

PRTG vă salvează nervii

Instalarea PRTG este foarte ușoară. Începerea cu PRTG sau trecerea de la un alt instrument de monitorizare este fără probleme datorită detectării automate și șabloane gata făcute pentru numeroase dispozitive.

PRTG economisește bani

PRTG merită banii. 80% dintre clienții noștri spun că au realizat economii în managementul rețelei. Și costul licențelor PRTG se plătește în medie în doar câteva săptămâni.

Paessler AG a efectuat un sondaj amplu asupra a peste 600 de departamente IT din întreaga lume care utilizează PRTG.
Scopul acestui sondaj a fost optimizarea și reglaj fin software-ul nostru de monitorizare a rețelei
care ar răspunde mai bine nevoilor administratorilor.
Conform rezultatelor sondajului nostru, mai mult de 95% dintre participanți au fost dispuși să recomande PRTG sau au făcut-o deja.

Software cu mai multe premii

Ne străduim în fiecare zi să oferim putere și
software simplu pentru clienții noștri.
Desigur, suntem mândri când avem succes și recunoștință pentru munca noastră.

PRTG este un instrument cuprinzător de monitorizare
baze de date

PRTG nu numai că acceptă MySQL, dar este și potrivit pentru monitorizarea altor software-uri de baze de date. Programul are senzori gata pregătiți pentru toate mediile majore de baze de date, inclusiv Microsoft SQL, Oracle SQL și PostgreSQL. În plus, senzorul nostru ADO SQL poate fi utilizat cu aproape orice alt sistem de gestionare a bazelor de date. Acest senzor vă permite să monitorizați orice sursă de date care este accesibilă prin OLE DB sau ODBC.

PRTG: Software revoluționar de monitorizare a rețelei

Folosind API, puteți adapta PRTG individual și dinamic la nevoile dvs. specifice:
  • API HTTP: acces la datele de monitorizare a rețelei și de gestionare a instalațiilor folosind solicitări HTTP
  • Senzori individuali: vă puteți adăuga propriii senzori pentru monitorizarea individuală a rețelei
  • Notificări individuale: puteți adăuga propriile notificări pentru a trimite alerte către sisteme externe
  • Noul senzor API REST: Monitorizează aproape orice acceptă XML și JSON

Aproape orice aplicație modernă client-server nu se poate descurca fără un SGBD, iar în majoritatea organizațiilor, întreținerea serverelor de baze de date depinde doar de umerii administratorului de sistem. Instrumentele standard vă permit să rezolvați doar probleme de bază, iar funcțiile lor nu sunt întotdeauna suficiente. Utilitare de la terți vor face administrarea MySQL și a clonelor foarte ușoară.

Interfata de administrare

MySQL și clonele sunt distribuite fără implicit GUI. In cel mai mult cazuri simple cu mai multe baze de gestionat este suficient linie de comandă, când numărul de servere, baze de date și administratori care le deservesc depășește o duzină, necesitatea unei GUI devine mai evidentă. Oracle oferă dezvoltarea sa - un singur instrument pentru dezvoltatorii și administratorii de baze de date, MySQL Workbench pentru Windows, Linux, OS X. Acesta este un mediu puternic cu capabilități excelente care vă permite să proiectați, să creați și să gestionați vizual baze de date. Toate instrumentele sunt disponibile pentru configurarea serverelor, administrarea conturilor, backup și recuperare, auditare și monitorizare simplă a stării. De asemenea, poate fi folosit pentru a migra cu ușurință de la alte SGBD - MS SQL Server, Sybase ASE, PostreSQL și altele. Capacitățile pot fi extinse și folosind plugin-uri. Interfața nu este localizată. Există o mulțime de funcții, așa că va trebui să petreceți ceva timp pentru a vă obișnui, deși în general mediul este convenabil. Ediția Community (OSS) este licențiată sub GNU GPL. Instalarea nu provoacă probleme, pachetele sunt disponibile pentru diferite distribuții de Linux, Windows și OS X. Pentru Red Hat / CentOS este mai bine să folosiți depozitul de dezvoltatori EPEL, Ubuntu APT.

$ 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 -get install mysql-workbench

PhpMyAdmin este foarte popular printre hosteri, permițându-vă să efectuați majoritatea operațiunilor privind gestionarea bazelor de date, lucrul cu tabele, indexuri, drepturi de acces, configurarea replicării, exportarea informațiilor, backup/restaurare, vizualizarea statisticilor și așa mai departe într-un mediu intuitiv. În același timp, rămâne posibil să introduceți direct orice interogări SQL. Gestionarea mai multor servere este acceptată. Totul este destul de intuitiv, iar utilizatorul se poate ocupa de administrare fără nicio pregătire specială, de pe orice dispozitiv cu browser. Există multe instrucțiuni și exemple pe Internet folosind phpMyAdmin. Instalarea din depozitul de pachete nu provoacă probleme, puteți utiliza nu numai Apache ca server web, ci și mai ușor nginx sau lighttpd. Unele panouri de control de găzduire, cum ar fi cPanel și Plesk, acceptă phpMyAdmin.

Utilizatorii Windows vor aprecia cu siguranță HeidiSQL, care acceptă gestionarea MySQL, MS SQL și PostgreSQL (încă experimental) și este distribuit sub o licență Open Source. Programul are o interfață foarte convenabilă, acceptă conectarea la mai multe servere simultan, care sunt disponibile într-o singură fereastră, acest lucru simplifică operațiunile de export/import de date. Puteți crea și edita baze de date, tabele, gestionați privilegii, exportați tabele (CSV, HTML, XML, SQL, ...), căutare, optimizare, monitorizare. Completarea automată ajută la scrierea interogărilor. Linia de comandă este acceptată, este posibilă conexiunea prin tunel SSH. Există o versiune portabilă folosind Wine, poate fi rulată și pe *nix / OS X.

Pentru cei care nu sunt mulțumiți de produsele descrise, le puteți găsi pe Internet. număr mare analogi: SQLyog, dbForge Studio pentru MySQL, TOra, SQL Buddy și altele.

Utilități de monitorizare

Ca orice aplicație, un SGBD necesită o monitorizare constantă a funcționării sale, astfel încât în ​​caz de probleme blocajul poate fi ușor de găsit. Informații generale Puteți obține informații despre cum funcționează MySQL utilizând clientul standard mysqladmin. Interogări precum SHOW QUERY LOG, SHOW PROCESSLIST, SHOW VARIABLES, SHOW GLOBAL STATUS și altele oferă rareori o imagine clară, deoarece există întotdeauna interogări lente, dar nu afectează neapărat funcționarea serviciului. Există, de asemenea, un utilitar numit mysqldumpslow, care analizează datele slow.log și afișează cele mai frecvente interogări lente.

Ediția Enterprise oferă un instrument dedicat MySQL Enterprise Monitor care oferă informații în timp real despre performanță și disponibilitate pentru toate bazele de date MySQL. În plus, pluginuri speciale sunt disponibile pentru majoritatea sistemelor de monitorizare, inclusiv Open Source Nagios, Cacti, Zabbix, Ganglia. De exemplu, Nagios. Fiecare dintre pluginuri trebuie configurat corect pentru a putea prezenta informatii detaliate despre ceea ce se întâmplă în MySQL, iar acest lucru necesită adesea experiență. Nu este întotdeauna rațional să implementezi un sistem de monitorizare cu drepturi depline atunci când sarcina este doar de a monitoriza DBMS. În acest caz, instrumentele specializate vin în ajutor.

Din păcate, foarte popularul mytop nu a fost dezvoltat de mai bine de doi ani (deși asta nu înseamnă că nu poate fi folosit), dar are un înlocuitor excelent și mai funcțional. Pornind de la versiunea MySQL 3.23.41, InnoDB include InnoDB Monitor innotop, un fel de analog al topului Unix pentru acest DBMS. Innotop afișează informații despre starea internă a InnoDB într-o formă convenabilă, care poate fi utilă la reglarea performanței. Există multe opțiuni pentru lansarea utilitarului. Cel mai simplu este să rulezi ca un anumit utilizator fără parametri

$ innotop -u root -p parola

În mod implicit, conexiunea se face la server local, dar puteți specifica orice nod sau puteți monitoriza mai multe servere simultan. O listă cu toate comenzile (Shift + tasta) poate fi obținută prin apăsarea tastei întrebare. De exemplu, va afișa o listă cu toate solicitările curente. Parametrul --write vă permite să salvați datele de conexiune în fișierul .innotop/innotop.conf:

$innotop --scrie

Singurul inconvenient cu aceste utilitare este că ele afișează informații în timp real și ar trebui să vă ocupați singur de salvarea și analiza ulterioară a datelor statistice.

Proiectul mycheckpoint, care a apărut în 2009, a devenit un instrument standard de facto pentru monitorizarea MySQL de-a lungul mai multor ani. Motivul popularității sale este abordarea sa unică. Pentru stocare și interogare, se folosește o bază de date, în care (o operațiune INSERT) sunt colectate date despre metrici de monitorizare, statistici și variabile MySQL, informații despre sistemul de operare Linux (RAM și starea de swap, încărcare etc.). Rezultatele interogărilor utilizatorilor sunt de asemenea incluse în baza de date. Informațiile colectate pot fi vizualizate cu ușurință folosind interogări SELECT simple. În același timp, administratorul primește diagrame vizuale (pe baza API-ului Google Chart), rapoarte și metrici care sunt generate din mers. Puteți utiliza propriul dvs. server web pentru a scoate rapoarte HTML. Alertele trimise prin e-mail pot fi, de asemenea, configurate. Este posibilă monitorizarea unui sistem la distanță și a mai multor servere.

Este scris în Python, deci instalarea nu este dificilă. Dezvoltatorii oferă pachete deb, rpm și tar.gz și materii prime. Pe Ubuntu ar trebui să introduceți următoarele comenzi:

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

Apoi va trebui să creați o bază de date pentru a stoca informații:

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

mysql> ACORDĂ TOATE PRIVILEGIILE PE mycheckpoint.* CĂTRE „utilizator”@“localhost” IDENTIFICAT DE „parolă”;

Pentru a colecta și afișa date, se folosește utilitarul mycheckpoint, care poate fi lansat manual sau prin cron. Parametrii pentru conectarea la serverul MySQL și SMTP sunt, de asemenea, specificați pe linia de comandă:

$ mycheckpoint --user=utilizator --parolă=parolă --gazdă=server --port=3306

Sau scris în fișierul de configurare (în mod implicit /etc/mycheckpoint.cnf):

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

Acum putem vizualiza informațiile colectate și putem genera rapoarte folosind interogări SQL.

$ mysql mycheckpoint -e „SELECT html FROM sv_report_html_brief” --silent --raw > ./checkpoint_report.html

Un alt instrument util care vă permite să monitorizați, să analizați și, dacă este necesar, să schimbați schimbul de date între serverul MySQL și aplicația client se numește MySQL Proxy. Programul are oportunități foarte mari. Funcționează atât sub sisteme Windows, cât și *nix. Instalarea nu provoacă probleme; în setări trebuie să specificați portul MySQL (implicit 3306) și PHP (mysql.default_port line în php.ini). Toate cererile sunt generate în limba Lua, documentația este de mare ajutor aici.

Una dintre problemele asociate cu funcționarea oricărui produs software este sa setare incorectă. După instalare, există demonstrații suplimentare conturi, bazele de date de testare, utilizatorii înșiși le pot seta parole simple, care sunt ușor de ridicat. Aceste probleme pot fi rezolvate doar printr-un audit constant, care va fi obligatoriu și în cazul în care sunt prelucrate date confidențiale/personale ( carduri de credit, fișe medicale și altele asemenea). Este necesar să se creeze un mediu care să respecte standardele de securitate (SOX, HIPAA etc.) atunci când se investighează incidente și se rezolvă problemele. După instalare, trebuie să utilizați mysql_secure_installation, care oferă un set minim de verificări care vă permit să ajustați setările generale de securitate.

În continuare, ar trebui să utilizați instrumentele și scripturile descrise mai jos. Sarcina de auditare este simplificată de faptul că dezvoltatorii MySQL oferă un API adecvat. Cu toate acestea, în MySQL pluginul audit_log este disponibil numai pentru versiunea Enterprise. Dezvoltatorii Percona Server oferă o alternativă GPL la acest modul, care este potrivită pentru auditarea MySQL și clonele. Alte două alternative, McAfee MySQL Audit Plugin și MariaDB Audit Plugin pentru MySQL, fac, de asemenea, treaba și vă permit să auditați MariaDB, MySQL și Percona Server, dar să folosiți propriile lor format propriu jurnal de audit, diferit de MySQL standard. Acest lucru va necesita puțin mai multă configurare inițială. Utilizarea pluginurilor nu poate fi numită simplă și este tratată în detaliu în documentație, pe care încă trebuie să o citiți, așa că nu ne vom opri asupra ei.

În plus, Patrik Karlsson prezintă un set de teste pentru scaner de rețea Nmap, care vă permite să vă testați serverul pentru probleme de securitate de bază. În Ubuntu, după instalare, setările sunt stocate în directorul /usr/share/nmap/nselib/data și nmap/script pentru a verifica serverul, trebuie să specificați parametrii de conectare și contul;

$ 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="parolă""

Un hacker îl va folosi în orice caz, așa că administratorul este pur și simplu obligat să verifice periodic serverele în acest fel. Două pachete, care ar trebui discutate separat, conțin și instrumente de audit.

Setul de instrumente Percona pentru MySQL

Instrumentele standard care vin cu MySQL oferă doar capabilități de administrare de bază și, ca urmare, multe operațiuni trebuie efectuate manual. Aceasta poate fi o problemă, deoarece ținerea evidenței tuturor este foarte dificilă și adesea necesită ceva experiență și este ușor să greșiți. Pachetul Percona Toolkit for MySQL combină munca a două proiecte - Maatkit și Aspersa - și oferă scripturi care vă permit să efectuați multe operațiuni de administrare de rutină: verificarea stării replicării, colectarea informațiilor, optimizarea interogărilor, reglarea serverului, arhivarea/restaurarea datelor și mult mai mult. În total, există peste 4000 de teste și setări. Pachetul este disponibil pentru distribuțiile majore de Linux (în Ubuntu, pachetul percona-toolkit). După instalare, obținem 32 de utilități, al căror nume începe cu pt-*, scopul este adesea clar din nume. La pornire, puteți seta diverse filtre și puteți formata ieșirea. Prin urmare, va trebui să citiți în continuare documentația, deoarece fiecare utilitar are un număr mare de parametri. De exemplu, scriptul pt-summary va afișa toate informațiile de pe server colectate de /proc/cpuinfo, /proc/meminfo, mount, df și alte utilitare, pt-show-grants va afișa toate drepturile de utilizator DBMS, pt-query- digest vă permite să construiți rapoarte, pe baza unei analize a jurnalelor procesate de serverul de solicitări, precum și a informațiilor colectate de processlist și tcpdump. De exemplu, vizionarea interogări lenteîn două moduri:

$ pt-query-digest slow.log $ pt-query-digest --user=utilizator --parolă=parolă --processlist --host=example.org

Un alt pachet popular - kit openark oferă 14 utilități care vă permit să testați DBMS: verificați setările, verificați parolele (vide, identice, slabe), blocarea conturilor, întreruperea interogărilor, filtrarea intrărilor din jurnal, afișarea stării replicării, codificări corecte și multe altele. Distribuit sub licență BSD. Scris în Python și necesită python-mysqldb. Pachetele deb și rpm și materii prime sunt oferite pentru instalare; procesul este standard și nu provoacă probleme.

Cel mai popular script este kitul oak-security-audit, conceput pentru auditarea periodică a conturilor, parolelor, privilegiilor și altor setări ale serverului. În general, poate fi rulat fără parametri. În mod implicit, este utilizat cel mai înalt mod de nivel de audit al sistemului (corespunde cu --audit-level=strict):

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

Ca rezultat, primim un raport tot ceea ce nu este marcat ca Trecut necesită o atenție deosebită. În mod implicit, utilitățile din kit-ul openark (inclusiv mycheckpoint, care este menționat mai sus, de la același dezvoltator) folosesc socket-ul /var/run/mysqld/mysql.sock pentru a se conecta la DBMS (aceasta este încorporată în scriptul însuși), în fișier Ubuntu numit mysqld.sock. Pentru a nu specifica calea de fiecare dată, puteți utiliza un fișier pre-pregătit cu setări de conexiune și îl puteți specifica folosind -defaults-file. Alternativ: modificați setările MySQL în my.cnf. Editarea scripturilor este incomod, deoarece acestea nu vor funcționa în timpul actualizării. Următorul script, oak-block-account, este foarte popular printre diferitele tipuri de hosteri pentru dezactivarea temporară a accesului la DBMS. Faptul este că mecanismul standard DBMS nu vă permite să dezactivați temporar un cont (ceva de genul REVOKE login ON . ), adică dacă există un cont, utilizatorul se poate conecta oricând la baza de date. Desigur, puteți folosi ceva de genul

Mysql> REVOCĂ TOATE PRIVILEGIILE, ACCORDĂ OPȚIUNEA DE LA „UTILIZATOR”@”%”;

dar dacă drepturile sunt restaurate, va trebui să vă amintiți toate setările. Și cel mai important, dacă te uiți la drepturile de utilizare

Mysql> AFIȚIȚI SUBVENȚII PENTRU „UTILIZATOR”;

ACORDĂ UTILIZARE PE *.* CĂTRE „UTILIZATOR”@”%” IDENTIFICAT PRIN PAROLĂ .....

ne vom asigura că o astfel de comandă nu reseta UTILIZARE. Utilizarea REVOKE UTILIZARE înseamnă de fapt DROP UTILIZATOR. Este mai ușor să vă schimbați numele de utilizator și parola, dar recuperarea poate fi o problemă. În general, există multă agitație și riscuri. Când utilizați oak-block-account, contul rămâne neschimbat, pur și simplu i se dă o parolă temporară, așa că nu vă puteți conecta cu acest cont.

$ oak-block-account --block --account-user=UTILIZATOR --account-host=example.org Parametrul suplimentar --kill vă va permite să resetați totul dintr-o dată conexiuni active

. Restabilirea funcționalității contului este, de asemenea, ușoară. Să ne uităm la lista de conturi și starea acestora:

$ oak-block-account --list

Și activați contul:

$ oak-block-account --release --account-user=UTILIZATOR --account-host=example.org Alte scripturi din kitul openark vă permit să simplificați unele operațiuni. De exemplu, oak-chunk-update face posibilă efectuarea de operațiuni mari de ACTUALIZARE/ȘTERGERE fără blocare îndelungată, prin împărțirea sarcinii în bucăți mici. Scriptul oak-show-replication-status afișează starea de replicare, oak-kill-slow-queries șterge interogările care rulează deja pentru o lungă perioadă de timp

, oak-repeat-query execută interogarea până când atinge o anumită condiție (număr de iterații, timp).

Optimizarea setărilor este un proces foarte delicat, deoarece pe baza statisticilor colectate, trebuie să schimbați doar ceea ce va afecta cu adevărat performanța. Cel mai faimos instrument pentru MySQL este scriptul Perl MySQLTuner, care este disponibil în depozitele majorității distribuțiilor Linux. Citește setările curente ale serverului și instalările MySQL și apoi face recomandări (doar recomandări) pentru modificarea acestora. Dacă instalarea a fost efectuată folosind pachete, introduceți doar numele scriptului, altfel ar trebui să îl apelați, specificând interpretul:

$ perl mysqltuner.pl

În continuare, vor fi solicitate autentificarea și parola administratorului, după care vom primi metrici și recomandări de sistem. În plus, MySQLTuner arată informații despre indici din tabele și fragmentare, care afectează și viteza serverului. Dacă este necesar, vom primi recomandări de rearanjare a indicilor și defragmentare. Pentru o muncă mai precisă, se recomandă să rulați scriptul după cel puțin o zi de funcționare.

Scriptul original a fost scris sub *nix, dar o versiune adaptată pentru Win este disponibilă pe CodePlex. O alternativă este MySQL Performance Tuning Primer Script, care nu oferă astfel de informații vizuale, dar este mai „vorbăreț” în privința problemelor.

Concluzie

Acestea, desigur, nu sunt toate instrumentele obligatorii pe care un administrator de baze de date ar trebui să le aibă la îndemână. Dar acesta este probabil minimul strict care ar trebui studiat. În plus, pe măsură ce vă familiarizați, începeți să înțelegeți mai multe despre mecanismele inerente MySQL.

Pentru a monitoriza încărcarea serverului MySQL există unul utilitate bunamytop.
Mytop este instrument deschis Un instrument de linie de comandă pentru monitorizarea performanței MySQL, modelat după instrumentul de monitorizare a sistemului Linux numit top. Mytop se conectează la MySQL și rulează periodic comenzile show processlist și show global status, apoi rezumă informațiile într-un format util. Cu Mytop, puteți monitoriza firele MySQL, interogările și timpul de funcționare în timp real, puteți afla care utilizator trimite interogări către o anumită bază de date, puteți identifica interogări lente și multe altele. Toate aceste informații pot fi folosite pentru a optimiza performanța Server MySQL.

Instalare pt sisteme diferite:

# apt-get install mytop

# yum instalează mytop

#pkg instalează mytop

Conectați-vă la nostru MySQL:

# mysql -u root -p Introduceți parola:

De preferință pentru fiecare bază de date sau pentru diferite programe creați conturi diferite. Prin urmare, vom crea și vom descrie drepturile asupra bazelor de date necesare utilizatorului mytopuser:

Mysql> creează utilizatorul "mytopuser"@"localhost" identificat prin "parolă"; mysql> acordă toate pe *.* la ‘mytopuser’@’localhost’ identificată prin ‘parolă’;

Creați un fișier de setări în directorul dvs. de pornire ~/.mytopși introduceți configurația conexiunii în ea:

# mcedit .mytop user=mytopuser pass=dgbple host=localhost db=asterisc port=3306 culoare=1 delay=3 idle=0

unde user și pass sunt login-ul și parola pe care le-am creat.

gazdă, port – adresa și portul serverului MySQL

db – baza de date la care ne conectăm

întârziere – pentru a face ca afișajul mytop să se reîmprospăteze la fiecare 3 secunde

idle - determină dacă firele în așteptare ar trebui să fie scoase la mytop. În mod implicit, astfel de fluxuri sunt luate în considerare. Omitând firele în așteptare, mytop modifică ordinea implicită de sortare, plasând interogări lungi în partea de sus a listei.

Să modificăm drepturile de acces la acest fișier:

# chmod 700 .mytop

Lansați utilitarul:

#mytop

Puteți afișa date pentru o anumită bază de date, de exemplu:

# mytop -u mytopuser -p parola -d goip

În prima linie: numele de gazdă și versiunea serverului care rulează MySQL. Colțul din dreapta sus este timpul de funcționare al serverului (timp de funcționare continuă) zile+ore+minute+secunde.

În a doua linie: numărul total de interogări procesate în baza de date (Queries:), numărul mediu de interogări pe secundă (qps:) și numărul de interogări lente (Slow:).

A treia linie arată informații despre procese: total, activ, cache.

În a patra linie: informații despre eficiența tamponului cheie - cât de des MySQL găsește cheile în buffer fără a merge pe disc, numărul mediu de octeți trimiși și primiți de server și numărul de octeți trimiși în prezent.

A doua parte a ecranului arată toate firele active (inclusiv cel care utilizează MyTOP). Aceasta afișează numele de utilizator, numele bazei de date și numele nodului, precum și cererea și starea curentă, în formă tabelară.

În ieșirea standard a mytop, interogările sunt scurtate. Pentru a vizualiza întreaga postare, faceți clic F. Programul va cere:

Interogare completă pentru ce id de fir:

Introduceți id-ul firului pentru a vedea solicitarea necesară.

Pentru o explicație a cererii, faceți clic E, iar apoi programul va furniza date despre interogarea care rulează, ceea ce va ajuta la determinarea dacă interogarea este optimizată. EXPLAIN este unul dintre cele mai puternice instrumente pentru înțelegerea și optimizarea interogărilor MySQL.

Pentru a ieși din acest mod, apăsați orice tastă; pentru a reveni la ieșirea standard, faceți clic t.

O altă vizualizare utilă a mytop este disponibilă prin apăsarea tastei C. Afișează comenzile care rulează.

Coloana Comandă arată tipul de comandă sau de interogare care a fost executată. Coloana Total indică numărul total de comenzi de acest tip de la pornirea serverului, iar Pct arată acest număr ca procent. Coloana Ultima arată numărul de comenzi de acest tip de atunci ultima actualizare mytop. În general, aceste date oferă o idee despre performanța serverului MySQL pe termen scurt și lung.

Concluzie

Acest instrument vă permite să detectați și să optimizați interogările SQL complexe în timp util, crescând astfel performanța generală a serverului.

Mytop este un instrument de linie de comandă care este similar cu comanda de sus, dar este conceput pentru a monitoriza MySQL. Necesită versiunea MySQL 3.22 sau o versiune ulterioară, este acceptată și versiunea actuală MySQL 5.x. Mytop funcționează pe majoritatea sisteme Linux. În acest articol vom folosi Ubuntu ca bază. Pentru a funcționa, veți avea nevoie de instalat Perl, DBI și Term::ReadKey. Cu Term::ANSColor puteți scoate orice culoare doriți. Versiunea 0.7 funcționează și pe Windows.

Instalare

Înainte de instalare, trebuie să instalați toate programele specificate în paragraful anterior. Mytop este instalat după cum urmează:

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

Sau puteți descărca tar ball și o puteți instala:

Tar -zxvf mytop-x.x.x.tar.gz (numărul versiunii dvs.)
cd mytop-x.x.x. (Numărul dvs. de versiune)
perl Makefile.PL
face
face test
face instalarea

Completați comenzile de mai sus pentru a extrage datele și a finaliza instalarea. Utilizatorii CentOS și RedHat vor trebui să descarce depozitul rpmforge pentru instalare automată sau puteți utiliza metoda de instalare manuală.

Folosind mytop

După instalare, să trecem la utilizarea mytop:

Mytop --prompt (setați solicitarea parolei, apoi apăsați Enter pentru a confirma parola)

Aceasta este metoda standard, de asemenea, puteți seta parola după cum urmează:

Mytop -u root -p (trebuie să utilizați parola mysql aici deoarece utilizatorul este „root”)

Dacă apare o eroare precum „root: NO PASS” sau ceva similar, introduceți următoarele:

Mytop -u root -p xxxx (în loc de „xxxx” introduceți parola noastră)

Înainte de a utiliza aceste comenzi, trebuie să verificați dacă serverul MySQL rulează.

După verificare, apăsați pe Enter.

MySQL pe localhost (5.0.8) până la 0+00:32:51 (11:20:10)
Interogări: 19,0 qps: 0 Încet: 0,0 Se/In/Up/De(%): 00/00/00/00
Qps acum: 0 Încetiniri: 0,0 Fire: 1 (1/ 0) 00/00/00/00
Eficiență cheie: 100% Bps intrare/ieșire: 7,3/907,3 Acum intrare/ieșire: 8,4/1,3k
Id utilizator Gazdă/IP DB Time Interogare sau stare
2 test localhost rădăcină 0 Interogarea arată procesul complet

Prima linie afișează numele serverului (localhost) și versiunea MySQL care rulează pe sistemul nostru. Linia evidențiată cu albastru nuclear indică timpul în care serverul MySQ funcționează în modul de funcționare, formatul de notație este zile+ore:minute:secunde și este indicată și ora curentă a sistemului.

A doua linie indică numărul de solicitări pe care sistemul le-a procesat de când a început să funcționeze.

A treia linie afișează numărul de fire.

A doua parte a imaginii arată numărul de fire pe care MySQL le procesează. Firele de discuție sunt sortate în funcție de timpul lor de inactivitate cel puțin mai întâi.

Unii parametri pot fi omisi folosind mytop:

U sau nume de utilizator: folosit de obicei pentru a defini numele de utilizator în timpul înregistrării în mytop. Valoarea implicită este „rădăcină”.

P sau parola sau parola: Parolele utilizate pentru a autoriza utilizatorul Parola implicită nu este setată, astfel încât câmpul pentru parolă poate fi lăsat necompletat.

H sau hostname[:port]: Pentru a defini porturile dacă MySQL nu folosește un port standard. Valoarea implicită este 3306.

S sau -delay secunde: Specifică intervalul de timp pentru actualizare. Valoarea implicită este 5.

Pentru a vedea alți parametri mytop, introduceți următoarele:

Man mytop

Bărbatul conține o mulțime de informații despre mytop.

Să ne uităm la fișierul de configurare creat pentru a obține acces și control asupra datelor noastre:

User=root #Specifică numele de utilizator.
pass= #Setați o parolă.
host=localhost #hostname.
db=test #numele bazei de date.
delay=5 #interval de timp pentru actualizarea datelor de ieșire de monitorizare.
port=3306 #port de utilizat în mytop.
socket= #dacă definiți orice socket, mytop va ignora numărul portului și numele gazdei, această linie poate fi eliminată dacă nu aveți nevoie de ea.
batchmode=0 #furnizează numărul exact de interogări procesate în MySQL.
header=1 #Setați dacă doriți să afișați antetul. Afișat de tasta h când rulați mytop.
color=1 #Setați dacă doriți să utilizați culori diferite (doar dacă aveți culori acceptate).
idle=1 #pentru a afișa procesele inactive în lista de procese.

Fișierul de configurare este creat după cum urmează:

Fișierul Mcedit ~/.mytop va fi creat în folderul de bază, puteți utiliza orice editor

Pentru a vedea alte opțiuni mytop, tastați: ?, aceasta va afișa întreaga listă de taste de comandă rapidă care sunt utilizate în mytop.

© 2024 ermake.ru -- Despre repararea PC-ului - Portal de informații