Aceasta este comanda check_postgres_database_sizep care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS
PROGRAM:
NUME
check_postgres - un script de monitorizare Postgres pentru Nagios, MRTG, Cacti și altele
Acest document descrie check_postgres versiunea 2.22.0
REZUMAT
## Creați toate legăturile simbolice
check_postgres --legături simbolice
## Verificați conexiunea la baza de date Postgres „pluto”:
check_postgres --action=conexiune --db=pluto
## Aceleași lucruri, dar folosind link-ul simbolic
check_postgres_connection --db=pluto
## Avertizați dacă > 100 de blocări, critic dacă > 200 sau > 20 exclusiv
check_postgres_locks --warning=100 --critical="total=200:exclusive=20"
## Afișați numărul curent de conexiuni inactive pe portul 6543:
check_postgres_txn_idle --port=6543 --output=simplu
## Există multe alte acțiuni și opțiuni, vă rugăm să continuați să citiți.
Cele mai recente știri și documentație pot fi întotdeauna găsite la:
http://bucardo.org/check_postgres/
DESCRIERE
check_postgres este un script Perl care rulează multe teste diferite împotriva unuia sau mai multor teste
Baze de date Postgres. Folosește programul psql pentru a aduna informații și emite fișierul
rezultă într-unul dintre cele trei formate: Nagios, MRTG sau simplu.
producție Moduri
Ieșirea poate fi modificată prin utilizarea opțiunii „--output”. Ieșirea implicită este nagios,
deși acest lucru poate fi schimbat în partea de sus a scriptului, dacă doriți. Opțiunea curentă
alegerile sunt nagios, mrtg și simplu. Pentru a evita necesitatea introducerii fiecărui argument de ieșire
timp, tipul de ieșire este setat automat dacă nu este dat niciun argument --output și dacă
directorul curent are una dintre opțiunile de ieșire în numele său. De exemplu, crearea unui
directorul numit mrtg și popularea acestuia cu link-uri simbolice prin intermediul --legături simbolice argument ar
asigurați-vă că orice acțiune rulată din acel director va fi întotdeauna implicită la o ieșire de „mrtg”
Ca scurtătură pentru --output=simple, puteți introduce --simple, care, de asemenea, înlocuiește
truc de denumire a directorului.
Nagios producție
Formatul implicit de ieșire este pentru Nagios, care este o singură linie de informații, împreună cu
patru coduri de ieșire specifice:
0 (OK)
1 (AVERTISMENT)
2 (CRITIC)
3 (NECUNOSCUT)
Linia de ieșire este unul dintre cuvintele de mai sus, două puncte și apoi o scurtă descriere a ce
a fost măsurat. Informații statistice suplimentare, precum și durata totală a comenzii
a luat, poate fi de asemenea scos: vezi documentația privind argumentele --showperf,
--perflimit și --arată timpul.
MRTG producție
Ieșirea MRTG este de patru linii, prima linie dând întotdeauna un singur număr de
importanţă. Când este posibil, acest număr reprezintă o valoare reală, cum ar fi un număr de
octeți, dar poate fi, de asemenea, un 1 sau un 0 pentru acțiunile care returnează doar „adevărat” sau „fals”, cum ar fi
ca check_postgres_version. A doua linie este o statistică suplimentară și este folosită doar pentru
unele actiuni. A treia linie indică un „uptime” și nu este utilizată. A patra linie este a
descriere și indică de obicei numele bazei de date statistica din prima linie
a fost scos, dar poate fi diferit în funcție de acțiune.
Unele acțiuni acceptă opțional --mrtg argument pentru a controla în continuare rezultatul.
Consultați documentația pentru fiecare acțiune pentru detalii despre ieșirea MRTG exactă pentru fiecare.
simplu producție
Ieșirea simplă este pur și simplu o versiune trunchiată a celei MRTG și pur și simplu returnează
primul număr și nimic altceva. Acest lucru este foarte util atunci când doriți doar să verificați starea
a ceva, indiferent de orice prag. Puteți transforma rezultatul numeric prin
adăugarea KB, MB, GB, TB sau EB la argumentul de ieșire, de exemplu:
--output=simplu,MB
Cactusii producție
Ieșirea Cacti constă din unul sau mai multe articole pe aceeași linie, cu un nume simplu, a
două puncte și apoi un număr. Momentan, singura acțiune cu ieșire explicită Cacti este
„dbstats”, iar utilizarea opțiunii --output nu este necesară în acest caz, deoarece Cacti este singurul
ieșire pentru această acțiune. Pentru multe alte acțiuni, folosirea --simple este suficientă pentru a face Cacti
fericit.
BAZA DE DATE CONEXIUNEA OPŢIUNI
Toate acțiunile acceptă un set comun de opțiuni de bază de date.
-H NUME or --host=NUME
Conectați-vă la gazda indicată de NAME. Poate fi o listă de nume separate prin virgulă.
Sunt permise mai multe argumente gazdă. Dacă nu este furnizată nicio gazdă, implicit este „PGHOST”
variabilă de mediu sau nicio gazdă (ceea ce indică utilizarea unui socket Unix local).
De asemenea, puteți utiliza „--dbhost”.
-p PORT or --port=PORT
Se conectează utilizând numărul de PORT specificat. Poate fi o listă de porturi separate prin virgulă
sunt permise numere și mai multe argumente de porturi. Dacă nu este dat niciun număr de port, este implicit
la variabila de mediu „PGPORT”. Dacă nu este setat, este implicit 5432. Puteți
folosiți și „--dbport”
-db NUME or --dbname=NUME
Specifică la ce bază de date să se conecteze. Poate fi o listă de nume separate prin virgulă și
sunt permise mai multe argumente dbname. Dacă nu este furnizată nicio opțiune dbname, implicit este
variabila de mediu „PGDATABASE”. Dacă nu este setat, este implicit „postgres”
dacă psql este versiunea 8 sau mai mare, iar „template1” în caz contrar.
-u USERNAME or --dbuser=NUME DE UTILIZATOR
Numele utilizatorului bazei de date cu care se va conecta. Poate fi o listă separată prin virgulă
sunt permise nume de utilizator și mai multe argumente dbuser. Dacă acest lucru nu este furnizat, acesta
este implicit la variabila de mediu „PGUSER”, în caz contrar, este implicit „postgres”.
--dbpass=PAROLA
Furnizează parola cu care se poate conecta la baza de date. Utilizarea acestei opțiuni este foarte mare
descurajat. În schimb, ar trebui să utilizați un fișier .pgpass sau pg_service.conf.
--dbservice=NUME
Numele unui serviciu din fișierul pg_service.conf. Înainte de versiunea 9.0 a
Postgres, acesta este un fișier global, de obicei găsit în /etc/pg_service.conf. Daca esti
folosind versiunea 9.0 sau mai mare de Postgres, puteți utiliza fișierul „.pg_service.conf” în
directorul principal al utilizatorului care rulează scriptul, de exemplu nagios.
Acest fișier conține o listă simplă de opțiuni de conectare. De asemenea, puteți trece suplimentar
informații atunci când utilizați această opțiune, cum ar fi --dbservice="maindatabase sslmode=require"
Documentația pentru acest fișier poate fi găsită la
http://www.postgresql.org/docs/current/static/libpq-pgservice.html
Opțiunile de conectare la baza de date pot fi grupate: --gazdă=a,b --gazdă=c --port=1234
--port=3344 s-ar conecta la a-1234, b-1234 și c-3344. Rețineți că, odată setat, o opțiune
continuă până când este schimbată din nou.
Exemple:
--host=a,b --port=5433 --db=c
Se conectează de două ori la portul 5433, folosind baza de date c, la gazdele a și b: a-5433-c b-5433-c
--host=a,b --port=5433 --db=c,d
Se conectează de patru ori: a-5433-c a-5433-d b-5433-c b-5433-d
--host=a,b --host=foo --port=1234 --port=5433 --db=e,f
Se conectează de șase ori: a-1234-e a-1234-f b-1234-e b-1234-f foo-5433-e foo-5433-f
--host=a,b --host=x --port=5432,5433 --dbuser=alice --dbuser=bob -db=baz
Se conectează de trei ori: a-5432-alice-baz b-5433-alice-baz x-5433-bob-baz
--dbservice="foo" --port=5433
Se conectează folosind serviciul numit „foo” din fișierul pg_service.conf, dar suprascrie portul
ALTE OPŢIUNI
Alte opțiuni includ:
--action=NUME
Afirmă ce acțiune desfășurăm. Obligatoriu, cu excepția cazului în care se utilizează un fișier cu linkuri simbolice, în care
în cazul în care numele fișierului este folosit pentru a afla acțiunea.
--warning=VAL or -w VAL
Setează pragul la care se declanșează o alertă de avertizare. Opțiunile valide pentru asta
opțiunea depinde de acțiunea utilizată.
--critical=VAL or -c VAL
Setează pragul la care se declanșează o alertă critică. Opțiunile valide pentru asta
opțiunea depinde de acțiunea utilizată.
-t VAL or --timeout=VAL
Setează timpul de expirare în secunde după care scriptul va anula orice face și
returnează o stare NECUNOSCUT. Timeout-ul este pe cluster Postgres, nu pentru întreg
scenariu. Valoarea implicită este 10; unitățile sunt întotdeauna în secunde.
--asumați-modul-de-așteptare
Dacă este specificat, mai întâi se va verifica dacă serverul în modul de așteptare va fi efectuată (--datadir
este necesar), dacă da, toate verificările care necesită interogări SQL vor fi ignorate și „Server
în modul de așteptare" cu starea OK va fi returnat în schimb.
Exemplu:
postgres@db$./check_postgres --action=version --warning=8.1 --datadir /var/lib/postgresql/8.3/main/ --assume-standby-mode
POSTGRES_VERSION OK: Server în modul de așteptare | timp=0.00
--asumă-prod
Dacă este specificat, verificați dacă serverul în modul producție este executat (este necesar --datadir).
Opțiunea este relevantă doar pentru ("link simbolic: check_postgres_checkpoint").
Exemplu:
postgres@db$./check_postgres --action=checkpoint --datadir /var/lib/postgresql/8.3/main/ --assume-prod
POSTGRES_CHECKPOINT OK: Ultimul punct de control a fost acum 72 de secunde | varsta=72;;modul 300=MASTER
-h or --Ajutor
Afișează un ecran de ajutor cu un rezumat al tuturor acțiunilor și opțiunilor.
--om
Afișează întregul manual.
-V or --versiune
Afișează versiunea curentă.
-v or --verbos
Setați nivelul de verbozitate. Poate suna de mai multe ori pentru a crește nivelul. Setarea la
trei sau mai mare (cu alte cuvinte, emiterea „-v -v -v”) activează informațiile de depanare
pentru acest program care este trimis la stderr.
--showperf=VAL
Determină dacă scoatem date suplimentare de performanță în format Nagios standard (la sfârșit
de șir, după un simbol pipe, folosind nume=valoare). VAL ar trebui să fie 0 sau 1. Implicit
este 1. Are efect numai dacă utilizați modul de ieșire Nagios.
--perflimit=i
Stabilește o limită a numărului de articole de interes care sunt raportate atunci când se utilizează
showperf opțiune. Acest lucru are efect numai pentru acțiunile care returnează un număr mare de
articole, cum ar fi table_size. Valoarea implicită este 0 sau fără limită. Aveți grijă când utilizați acest lucru
cu --include or --exclude opțiuni, pe măsură ce se fac acele restricții după il
interogarea a fost executată și, prin urmare, este posibil ca limita dvs. să nu includă elementele dorite. Doar ia
efect dacă utilizați modul de ieșire Nagios.
--showtime=VAL
Stabilește dacă timpul necesar pentru a rula fiecare interogare este afișat în rezultat. VAL ar trebui să fie 0
sau 1. Valoarea implicită este 1. Niciun efect decât dacă showperf este pornit. Are efect numai dacă este utilizat
Modul de ieșire Nagios.
--Test
Activează modul de testare. Consultați secțiunea „MOD TEST” de mai jos.
--PGBINDIR=CALEA
Spune scriptului unde să găsească binarele psql. Util dacă aveți mai multe
versiunea executabilelor PostgreSQL de pe sistemul dvs. sau dacă nu există în sistemul dvs
cale. Rețineți că această opțiune este scrisă cu majuscule. În mod implicit, această opțiune este nu
permis. Pentru a-l activa, trebuie să modificați $NO_PSQL_OPTION din partea de sus a scriptului
la 0. Evitați să utilizați această opțiune dacă puteți și, în schimb, utilizați variabila de mediu
c sau variabilă $PGBINDIR codificată, de asemenea, în partea de sus a scriptului, pentru a seta
calea către PostgreSQL de utilizat.
--PSQL=CALEA
(depreciat, acest opțiune Mai be îndepărtat in a viitor eliberare!) Spune scenariului unde
pentru a găsi programul psql. Util dacă aveți mai multe versiuni de psql
executabil pe sistemul dvs. sau dacă nu există niciun program psql în calea dvs. Rețineți că aceasta
opțiunea este cu majuscule. În mod implicit, această opțiune este nu permis. Pentru a-l activa, tu
trebuie să schimbe $NO_PSQL_OPTION din partea de sus a scriptului la 0. Evitați utilizarea acestuia
opțiune dacă puteți și, în schimb, codificați locația dvs. psql în variabila $PSQL,
de asemenea, aproape de partea de sus a scenariului.
--legături simbolice
Creează legături simbolice către programul principal pentru fiecare acțiune.
--output=VAL
Determină formatul de ieșire, pentru utilizare în diferite programe. Valoarea implicită este
'nagios'. Opțiunile disponibile sunt „nagios”, „mrtg”, „simple” și „cacti”.
--mrtg=VAL
Folosit numai pentru MRTG sau ieșire simplă, pentru câteva acțiuni specifice.
--debugoutput=VAL
Afișează șirul exact returnat de psql, pentru utilizare în depanare. Valoarea este una sau
mai multe litere, care determină dacă rezultatul este afișat sau nu, unde „a” = toate, „c”
= critic, „w” = avertisment, „o” = ok și „u” = necunoscut. Literele pot fi combinate.
--get_method=VAL
Permite specificarea metodei utilizate pentru a prelua informații pentru „new_version_cp”,
Verificări „new_version_pg”, „new_version_bc”, „new_version_box” și „new_version_tnm”.
Următoarele programe sunt încercate, pentru a prelua informațiile de pe web: GET,
wget, fetch, curl, lynx, link-uri. Pentru a forța utilizarea doar a unuia (și astfel eliminați
overhead de a încerca toate celelalte până la una dintre acele lucrări), introduceți unul dintre nume ca
argumentul pentru get_method. De exemplu, o casetă BSD poate introduce următorul rând
fișierul lor „.check_postgresrc”:
get_method=preluare
--language=VAL
Setați limba de utilizat pentru toate mesajele de ieșire. În mod normal, acest lucru este detectat de
examinând variabilele de mediu LC_ALL, LC_MESSAGES și LANG, dar setând acest lucru
opțiunea va suprascrie orice astfel de detectare.
ACȚIUNI
Scriptul rulează una sau mai multe acțiuni. Acest lucru se poate face fie cu indicatorul --action, fie prin
folosind un link simbolic către fișierul principal care conține numele acțiunii în interiorul acestuia. Pentru
de exemplu, pentru a rula acțiunea „timesync”, puteți:
check_postgres --action=timesync
sau utilizați un program numit:
check_postgres_timesync
Toate legăturile simbolice sunt create pentru dvs. în directorul curent dacă utilizați opțiunea --symlinks
perl check_postgres --symlinks
Dacă numele fișierului există deja, acesta nu va fi suprascris. Dacă fișierul există și este a
link simbolic, îl puteți forța să se suprascrie folosind „--action=build_symlinks_force”
Cele mai multe acțiuni iau a --avertizare și --critic opțiunea, indicând în ce moment schimbăm
de la OK la AVERTISMENT și la ce punct mergem la CRITIC. Rețineți că pentru că criticii sunt
întotdeauna verificat primul, setarea avertismentului egal cu criticul este o modalitate eficientă de a
dezactivați avertismentele și dați întotdeauna un critic.
Acțiunile actuale susținute sunt:
arhiva_gata
("link simbolic: check_postgres_archive_ready") Verifică câte fișiere WAL cu extensie .gata
exista in pg_xlog/archive_status director, care se găsește în afara dvs directorul_date.
Această acțiune trebuie rulată ca superutilizator, pentru a accesa conținutul fișierului
pg_xlog/archive_status director. Versiunea minimă pentru a utiliza această acțiune este Postgres 8.1.
--avertizare si --critic opțiunile sunt pur și simplu numărul de .gata fișiere în
pg_xlog/archive_status director. De obicei, aceste valori ar trebui să fie scăzute, pornind
mecanism de arhivare, de obicei dorim să arhiveze fișierele WAL cât mai repede posibil.
Dacă comanda de arhivare eșuează, numărul de WAL din dvs pg_xlog directorul va crește până la
epuizând tot spațiul pe disc și forțând PostgreSQL să se oprească imediat.
Exemplul 1: verificați dacă numărul de fișiere WAL pregătite este de 10 sau mai puțin pe gazda „pluto”
check_postgres_archive_ready --host=pluto --critical=10
Pentru ieșirea MRTG, raportează numărul de fișiere WAL pregătite pe linia 1.
autovac_freeze
("link simbolic: check_postgres_autovac_freeze") Verifică cât de aproape este fiecare bază de date de
postgres autovacuum_freeze_max_age setare. Această acțiune va funcționa numai pentru baze de date
versiunea 8.2 sau mai recentă. The --avertizare si --critic opțiunile ar trebui exprimate ca
procente. „Vârsta” tranzacțiilor din fiecare bază de date este comparată cu
setarea autovacuum_freeze_max_age (200 milioane în mod implicit) pentru a genera o valoare rotunjită
procent. Valorile implicite sunt 90% pentru avertisment şi 95% pentru cei critici. Baze de date
poate fi filtrat prin utilizarea --include si --exclude Opțiuni. Consultați „FILTRAREA DE BAZĂ”
pentru mai multe detalii.
Exemplul 1: dați un avertisment când orice baze de date de pe portul 5432 sunt peste 97%
check_postgres_autovac_freeze --port=5432 --warning="97%"
Pentru ieșirea MRTG, cel mai mare procent total este raportat pe prima linie și
cea mai mare vârstă este raportată pe a doua linie. Toate bazele de date care au procentul din
prima linie sunt raportate pe a patra linie, separate printr-un simbol țeavă.
backend-uri
("link simbolic: check_postgres_backends") Verifică numărul curent de conexiuni pentru una sau
mai multe baze de date și opțional îl compară cu maximul permis, care este determinat de
variabila de configurare Postgres max_connections. --avertizare si --critic Opțiuni
poate lua una dintre cele trei forme. În primul rând, poate fi dat un număr simplu, care reprezintă
numărul de conexiuni la care va fi dată alerta. Această alegere nu folosește
max_connections setare. În al doilea rând, poate fi dat procentul de conexiuni disponibile.
În al treilea rând, poate fi dat un număr negativ care reprezintă numărul de conexiuni rămase
până la max_connections este atins. Valorile implicite pentru --avertizare si --critic sunt
„90%” și „95%”. De asemenea, puteți filtra bazele de date utilizând --include si --exclude
Opțiuni. Consultați secțiunea „FILTRAREA DE BAZĂ” pentru mai multe detalii.
Pentru a vizualiza numai procesele care nu sunt inactive, puteți utiliza --noidle argument. Rețineți că utilizatorul dvs
se conectează așa cum trebuie să fie un superutilizator pentru ca acest lucru să funcționeze corect.
Exemplul 1: dați un avertisment atunci când numărul de conexiuni pe quirm gazdă ajunge la 120 și un
critic dacă ajunge la 150.
check_postgres_backends --host=quirm --warning=120 --critical=150
Exemplul 2: dați o valoare critică când ajungem la 75% din setarea noastră max_connections pe gazde
lancre sau lancre2.
check_postgres_backends --warning='75%' --critical='75%' --host=lancre,lancre2
Exemplul 3: dați un avertisment când mai sunt doar 10 sloturi de conexiune pe gazdă
plasmidă, și o critică atunci când mai avem doar 5.
check_postgres_backends --warning=-10 --critical=-5 --host=plasmid
Exemplul 4: Verificați toate bazele de date, cu excepția celor cu „test” în numele lor, dar permiteți-le
sunt denumite „pg_greatest”. Conectați-vă ca portul 5432 pe primele două gazde și ca portul 5433 pe
al treilea. Vrem să aruncăm întotdeauna un critic atunci când ajungem la 30 sau mai multe conexiuni.
check_postgres_backends --dbhost=hong,kong --dbhost=fooey --dbport=5432 --dbport=5433 --warning=30 --critical=30 --exclude="~test" --include="pg_greatest,~prod "
Pentru ieșirea MRTG, numărul de conexiuni este raportat pe prima linie, iar pe a patra
line oferă numele bazei de date, plus conexiunile maxime curente. Dacă mai mult decât
a fost interogată o bază de date, este scoasă cea cu cel mai mare număr de conexiuni.
balonează
("link simbolic: check_postgres_bloat") Verifică cantitatea de balonare din tabele și indici. (Umoaie
este, în general, cantitatea de spațiu mort nefolosit ocupată într-un tabel sau index. Acest spațiu este
de obicei recuperată prin utilizarea comenzii VACUUM.) Această acțiune necesită ca statistici
colectarea să fie activată în bazele de date țintă și necesită rularea ANALYZE
frecvent. The --include si --exclude opțiunile pot fi folosite pentru a filtra tabelele
uita-te la. Consultați secțiunea „FILTRAREA DE BAZĂ” pentru mai multe detalii.
--avertizare si --critic opțiunile pot fi specificate ca dimensiuni, procente sau ambele. Valabil
unitățile de dimensiune sunt octeți, kiloocteți, megaocteți, gigaocteți, teraocteți, exaocteți, petaocteți și
zettabytes. Puteți prescurta toate cele cu prima literă. Articolele fără unități sunt
presupus a fi „octeți”. Valorile implicite sunt „1 GB” și „5 GB”. Valoarea reprezintă
numărul de „octeți irosiți”, sau diferența dintre ceea ce este utilizat de fapt de tabel și
index și ce calculăm că ar trebui să fie.
Rețineți că această acțiune are două valori codificate pentru a evita alarmele false pe mai mici
relaţii. Tabelele trebuie să aibă cel puțin 10 pagini, iar indexurile cel puțin 15, înainte de a putea fi
luate în considerare de acest test. Dacă doriți cu adevărat să ajustați aceste valori, puteți căuta
variabile $MINPAGES si $MINIPAGES în partea de sus a subrutinei „check_bloat”. Aceste
valorile sunt ignorate dacă oricare --exclude or --include este folosit.
Sunt afișate doar primele 10 cele mai umflate relații. Puteți schimba acest număr utilizând
--perflimit opțiunea de a vă stabili propria limită.
Schema numită „schema_informații” este exclusă din acest test, deoarece este doar tabelată
conține sunt mici și nu se schimbă.
Vă rugăm să rețineți că valorile calculate prin această acțiune nu sunt precise și ar trebui folosite ca
doar un ghid. S-au făcut eforturi mari pentru a estima dimensiunea corectă a unui tabel, dar în
in final este doar o estimare. Mărimea corectă a indexului este chiar mai presus decât cea
dimensiunea corectă a mesei, dar ambele ar trebui să ofere o idee aproximativă despre cât de umflate sunt lucrurile.
Exemplul 1: Avertizați dacă orice tabel de pe portul 5432 are peste 100 MB umflat și critic dacă peste 200
MB
check_postgres_bloat --port=5432 --warning='100 M' --critical='200 M'
Exemplul 2: dați un critic dacă tabelul „comenzi” pe gazda „sami” are mai mult de 10 mega de umflare
check_postgres_bloat --host=sami --include=comenzi --critical='10 MB'
Exemplul 3: dați o valoare critică dacă tabelul „q4” din baza de date „vânzări” este umflat cu peste 50%
check_postgres_bloat --db=sales --include=q4 --critical='50%'
Exemplul 4: Dați un critic orice masă este umflată cu peste 20%. si are peste 150 MB de umflare:
check_postgres_bloat --port=5432 --critical='20% și 150 M'
Exemplul 5: Dați un critic orice masă este umflată cu peste 40%. or are peste 500 MB de umflare:
check_postgres_bloat --port=5432 --warning='500 M sau 40%'
Pentru ieșirea MRTG, prima linie oferă cel mai mare număr de octeți irosiți pentru tabele,
iar a doua linie oferă cel mai mare număr de octeți irosiți pentru indici. Al patrulea
linia oferă informații despre numele bazei de date, numele tabelului și numele indexului. Dacă doriți să
scoateți în schimb raportul de balonare (de câte ori este mai mare relația în comparație cu cum
mare ar trebui să fie), trebuie doar să introduceți „--mrtg=raport”.
punctul de control
("link simbolic: check_postgres_checkpoint") Stabilește cât timp a trecut de la ultimul punct de control
fost condus. Acesta trebuie să ruleze pe același server cu baza de date care este verificată (de exemplu,
-h flag nu va funcționa). Această verificare este menită să ruleze pe un server „în așteptare caldă”, adică
procesează în mod activ fișierele WAL livrate și este menit să verifice dacă este cazul tău cald
cu adevărat „cald”. Directorul de date trebuie setat, fie de variabila de mediu
„PGDATA” sau transmiterea argumentului „--datadir”. Returnează numărul de secunde de la
ultimul punct de control a fost rulat, așa cum a fost determinat prin analizarea apelului la „pg_controldata”. Din cauza
aceasta, executabilul pg_controldata trebuie să fie disponibil în calea curentă. Alternativ,
puteți specifica „PGBINDIR” ca director în care locuiește. Este, de asemenea, posibil să îl utilizați
opțiunile speciale --asumă-prod or --asumați-modul-de-așteptare, dacă modul găsit nu este
unul de așteptat, se emite un CRITIC.
Trebuie setat cel puțin un avertisment sau un argument critic.
Această acțiune necesită modulul Date::Parse.
Pentru MRTG sau ieșire simplă, returnează numărul de secunde.
cluster_id
("symlink: check_postgres_cluster-id") Verifică dacă identificatorul sistemului de baze de date a furnizat
by pg_controldata este la fel ca ultima dată când ați verificat. Acesta trebuie să ruleze pe același server
ca baza de date care este verificată (de exemplu, marcajul -h nu va funcționa). Fie
--avertizare sau --critic ar trebui oferită opțiunea, dar nu ambele. Valoarea fiecăruia este
identificatorul clusterului, o valoare întreagă. Puteți rula cu „--critical=0” special
opțiunea de a afla un identificator de cluster existent.
Exemplul 1: Găsiți identificatorul inițial
check_postgres_cluster_id --critical=0 --datadir=/var//lib/postgresql/9.0/main
Exemplul 2: Asigurați-vă că clusterul este același și avertizează dacă nu, folosind rezultatul de mai sus.
check_postgres_cluster_id --critical=5633695740047915135
Pentru ieșirea MRTG, returnează un 1 sau 0 care indică succesul sau eșecul identificatorului
Meci. Trebuie furnizat un identificator ca argument „--mrtg”. A patra linie întotdeauna
oferă identificatorul curent.
commitratio
("link simbolic: check_postgres_commitratio") Verifică raportul de comitere a tuturor bazelor de date și
se plânge când sunt prea scăzute. Nu este nevoie să rulați această comandă de mai multe ori pe fiecare
cluster de baze de date. Bazele de date pot fi filtrate cu --include si --exclude Opțiuni. Vedea
secțiunea „FILTRAREA DE BAZĂ” pentru mai multe detalii. Ele pot fi filtrate și de proprietarul
baza de date cu --includeutilizator si --excludeuser Opțiuni. Vedeți „NUME DE UTILIZATOR
secțiunea FILTRARE" pentru mai multe detalii.
Opțiunile de avertizare și critice trebuie specificate ca procente. Nu sunt
implicite pentru această acțiune: trebuie specificate avertismentul și criticul. Valoarea de avertizare
nu poate fi mai mare decât valoarea critică. Ieșirea returnează toate bazele de date sortate după
commitratio, cel mai mic primul.
Exemplu: Avertizați dacă orice bază de date de pe flagg gazdă este mai mică de 90% în commitratio și critică
dacă mai puțin de 80%.
check_postgres_database_commitratio --host=flagg --warning='90%' --critical='80%'
Pentru ieșirea MRTG, returnează procentul din baza de date cu cel mai mic commitratio activat
prima linie, iar numele bazei de date pe a patra linie.
conexiune
("Symlink: check_postgres_connection") Pur și simplu se conectează, emite un „SELECT versiune()', și
frunze. Ia nr --avertizare or --critic opțiuni.
Pentru ieșirea MRTG, pur și simplu scoate un 1 (conexiune bună) sau un 0 (conexiune proastă) la prima
linia.
interogare_personalizată
("link simbolic: check_postgres_custom_query") Rulează o interogare personalizată la alegerea dvs. și analizează
rezultatele. Interogarea în sine este transmisă prin argumentul „interogare” și ar trebui să fie
păstrat cât se poate de simplu. Dacă este posibil, împachetați-l într-o vizualizare sau într-o funcție de păstrat
lucruri mai ușor de gestionat. Interogarea ar trebui să returneze una sau două coloane. Se cere ca
una dintre coloane va fi numită „rezultat” și este elementul care va fi verificat în raport cu dvs
avertisment și valori critice. A doua coloană este pentru datele de performanță și orice nume
poate fi folosit: aceasta va fi „valoarea” din secțiunea de date de performanță.
Trebuie specificat cel puțin un avertisment sau un argument critic. La ce sunt setate acestea depinde
pe tipul de interogare pe care îl executați. Există patru tipuri de interogări_personalizate care pot fi
run, specificat de argumentul „valtype”. Dacă nu este specificat niciuna, această acțiune este implicită
'întreg'. Cele patru tipuri sunt:
întreg: Face o comparație simplă între numere întregi. Prima coloană ar trebui să fie un număr întreg simplu,
iar valorile de avertizare și critice ar trebui să fie aceleași.
şir: Avertismentul și criticul sunt șiruri de caractere și sunt declanșate numai dacă valoarea din
prima coloană se potrivește exact cu ea. Acest lucru este sensibil la majuscule.
timp: Avertismentul și criticul sunt timpi și pot avea unități de secunde, minute,
ore sau zile. Fiecare poate fi scris la singular sau abreviat doar la prima literă. Dacă
nu sunt date unități, se presupun secunde. Prima coloană ar trebui să fie un număr întreg
reprezentând numărul de secunde de verificat.
mărimea: Avertismentul și criticul sunt dimensiuni și pot avea unități de octeți, kiloocteți,
megabytes, gigabytes, terabytes sau exabytes. Fiecare poate fi prescurtat la prima literă.
Dacă nu sunt date unități, se presupun octeți. Prima coloană ar trebui să fie un număr întreg
reprezentând numărul de octeți de verificat.
În mod normal, o alertă este declanșată dacă valorile returnate sunt mai mare decât sau egal cu
valoare critică sau de avertizare. Cu toate acestea, o opțiune de --verso va declanșa alerta dacă
valoarea returnată este LOWER decât sau egal cu valoarea critică sau de avertizare.
Exemplul 1: Avertizați dacă orice relație de peste 100 de pagini este numită „rad”, puneți numărul de pagini
în secțiunea de date de performanță.
check_postgres_custom_query --valtype=șir -w "rad" --query=
„SELECTează relname AS rezultat, relpages AS pagini FROM pg_class WHERE relpages > 100”
Exemplul 2: Dați un critic dacă funcția „foobar” returnează un număr de peste 5 MB:
check_postgres_custom_query --critical='5MB'--valtype=size --query="SELECT foobar() AS result"
Exemplul 2: Avertizați dacă funcția „snazzo” returnează mai puțin de 42:
check_postgres_custom_query --critical=42 --query="SELECT snazzo() AS result" --reverse
Dacă veniți cu o interogare personalizată utilă, luați în considerare trimiterea unui patch la acest program către
transformă-l într-o acțiune standard pe care alți oameni o pot folosi.
Această acțiune nu acceptă încă MRTG sau ieșire simplă.
dimensiunea_bază de date
("link simbolic: check_postgres_database_size") Verifică dimensiunea tuturor bazelor de date și se plânge
când sunt prea mari. Nu este nevoie să rulați această comandă de mai multe ori pe bază de date
cluster. Bazele de date pot fi filtrate cu --include si --exclude Opțiuni. Vezi
Secțiunea „FILTRAREA DE BAZĂ” pentru mai multe detalii. Ele pot fi filtrate și de proprietarul
baza de date cu --includeutilizator si --excludeuser Opțiuni. Vedeți „FILTRAREA NUMELE DE UTILIZATOR”
pentru mai multe detalii.
Opțiunile de avertizare și critice pot fi specificate ca bytes, kilobytes, megabytes,
gigabytes, terabytes sau exabytes. Fiecare poate fi abreviat și la prima literă.
Dacă nu este dată nicio unitate, se presupune că unitățile sunt octeți. Nu există setări implicite pentru asta
acțiune: trebuie specificate avertismentul și criticul. Valoarea de avertizare nu poate fi mai mare
decât valoarea critică. Ieșirea returnează mai întâi toate bazele de date sortate după dimensiunea cea mai mare,
afișând atât octeții bruti, cât și o versiune „drăguță” a dimensiunii.
Exemplul 1: Avertizați dacă orice bază de date de pe flagg gazdă are o dimensiune de peste 1 TB și este critică dacă este peste
1.1 TB.
check_postgres_database_size --host=flagg --warning='1 TB' --critical='1.1 t'
Exemplul 2: dați o valoare critică dacă șablonul bazei de date1 de pe portul 5432 depășește 10 MB.
check_postgres_database_size --port=5432 --include=template1 --warning='10MB' --critical='10MB'
Exemplul 3: dați un avertisment dacă orice bază de date de pe gazda „tardis” deținută de utilizatorul „tom” sa încheiat
5 GB
check_postgres_database_size --host=tardis --includeuser=tom --warning='5 GB' --critical='10 GB'
Pentru ieșirea MRTG, returnează dimensiunea în octeți a celei mai mari baze de date de pe prima linie și
numele bazei de date pe a patra linie.
dbstats
("link simbolic: check_postgres_dbstats") Raportează informații din vizualizarea pg_stat_database,
și îl scoate într-o manieră prietenoasă cu Cacti. Nicio altă ieșire nu este acceptată, așa cum este ieșirea
informațional și nu se pretează la alerte, cum ar fi cele utilizate cu Nagios. Dacă nu există opțiuni
sunt date, toate bazele de date sunt returnate, una pe linie. Puteți include o anumită bază de date
folosind opțiunea „--include” sau puteți folosi opțiunea „--dbname”.
Unsprezece articole sunt returnate pe fiecare linie, în formatul nume:valoare, separate printr-un singur
spaţiu. Elementele sunt:
backend-uri
Numărul de backend-uri care rulează în prezent pentru această bază de date.
comite
Numărul total de comitări pentru această bază de date de când a fost creată sau resetată.
restituiri
Numărul total de rollback pentru această bază de date de când a fost creată sau resetată.
citit
Numărul total de blocuri de disc citite.
hit Numărul total de accesări ale tamponului.
ret Numărul total de rânduri returnate.
aduc
Numărul total de rânduri preluate.
ins Numărul total de rânduri inserate.
upd Numărul total de rânduri actualizate.
del Numărul total de rânduri șterse.
dbname
Numele bazei de date.
Rețineți că elementele ret, fetch, ins, upd și del vor fi întotdeauna 0 dacă Postgres este versiunea 8.2
sau mai mici, deoarece acele statistici nu erau disponibile în acele versiuni.
Dacă este dat argumentul dbname, sunt returnate șapte elemente suplimentare:
idxscan
Numărul total de scanări ale indexului utilizatorului.
idxtupread
Numărul total de intrări în indexul utilizatorului returnate.
idxtupfetch
Numărul total de rânduri preluate prin scanări simple ale indexului utilizatorului.
idxblksread
Numărul total de blocuri de disc citite pentru toți indecșii utilizatorilor.
idxblkshit
Numărul total de accesări ale bufferului pentru toți indecșii utilizatorilor.
seqscan
Numărul total de scanări secvențiale față de toate tabelele de utilizatori.
seqtupread
Numărul total de tupluri returnate din toate tabelele de utilizator.
Exemplul 1: luați statisticile pentru o bază de date numită „produse” pe gazda „salcie”:
check_postgres_dbstats --dbhost willow --dbname produse
Ieșirea returnată va fi astfel (totul pe o singură linie, nu împachetat):
backends:82 comite:58374408 rollback:1651 read:268435543 hit:2920381758 idxscan:310931294 idxtupread:2777040927
idxtupfetch:1840241349 idxblksread:62860110 idxblkshit:1107812216 seqscan:5085305 seqtupread:5370500520
ret:0 fetch:0 ins:0 upd:0 del:0 dbname:willow
disabled_triggers
("link simbolic: check_postgres_disabled_triggers") Verifică numărul de declanșatoare dezactivate
în interiorul bazei de date. The --avertizare si --critic opțiunile sunt numărul de astfel de declanșatori
găsit, iar ambele implicite la „1”, ca în utilizarea normală, a avea declanșatoare dezactivate este un pericol
eveniment. Dacă baza de date verificată este 8.3 sau mai mare, verificarea este pentru numărul de
declanșatoare care sunt într-o stare „dezactivată” (spre deosebire de a fi „întotdeauna” sau „replica”). The
ieșirea va afișa numele tabelului și numele declanșatorului pentru fiecare dezactivat
declanșator.
Exemplul 1: Asigurați-vă că nu există declanșatoare dezactivate
check_postgres_disabled_triggers
Pentru ieșirea MRTG, returnează numărul de declanșatoare dezactivate pe prima linie.
spatiu pe disc
("link simbolic: check_postgres_disk_space") Verifică spațiul fizic disponibil pe disc utilizat de
Postgres. Această acțiune necesită să aveți executabilul "/bin/df"disponibil pentru raportare
pe dimensiunile discului și, de asemenea, trebuie să fie rulat ca superutilizator, astfel încât să poată examina
directorul_date amplasat în interiorul Postgres. The --avertizare si --critic sunt date optiuni
fie în dimensiuni, fie în procente sau ambele. Dacă utilizați dimensiuni, tipurile de unități standard sunt
permise: octeți, kiloocteți, gigaocteți, megaocteți, gigaocteți, teraocteți sau exaocteți. Fiecare
poate fi prescurtat doar la prima literă; nicio unitate nu indică „octeți”. The
valorile implicite sunt „90%” și „95%”.
Această comandă verifică următoarele lucruri pentru a determina toate discurile fizice diferite
fiind folosit de Postgres.
directorul_date - Discul pe care se află directorul principal de date.
log director - Discul pe care se află fișierele jurnal.
WAL fişier director - Discul pe care se află jurnalele de scriere anticipată (de exemplu pg_xlog cu link simbolic)
tablespaces - Fiecare tablespace care se află pe un disc separat.
Ieșirea arată dimensiunea totală utilizată și disponibilă pe fiecare disc, precum și
procent, ordonat după procentajul cel mai mare la cel mai mic utilizat. Fiecare element de mai sus se mapează la un fișier
sistem: acestea pot fi incluse sau excluse. Consultați secțiunea „FILTRAREA DE BAZĂ” pentru mai multe
Detalii.
Exemplul 1: Asigurați-vă că niciun sistem de fișiere nu depășește 90% pentru baza de date de pe portul 5432.
check_postgres_disk_space --port=5432 --warning='90%' --critical='90%'
Exemplul 2: verificați dacă toate sistemele de fișiere care încep cu /dev/sda sunt mai mici de 10 GB și
11 GB (avertisment și critic)
check_postgres_disk_space --port=5432 --warning='10 GB' --critical='11 GB' --include="~^/dev/sda"
Exemplul 4: Asigurați-vă că niciun sistem de fișiere nu depășește 50% si are peste 15 GB
check_postgres_disk_space --critical='50% și 15 GB'
Exemplul 5: Emiteți un avertisment dacă orice sistem de fișiere este fie peste 70% plin or are mai mult de 1T
check_postgres_disk_space --warning='1T sau 75'
Pentru ieșirea MRTG, returnează dimensiunea în octeți a sistemului de fișiere pe prima linie și
numele sistemului de fișiere pe a patra linie.
fsm_pages
("link simbolic: check_postgres_fsm_pages") Verifică cât de aproape este un cluster de Postgres
max_fsm_pages setare. Această acțiune va funcționa numai pentru bazele de date cu versiunea 8.2 sau mai mare și aceasta
necesită modulul contrib pg_freespacemap fi instalat. The --avertizare si --critic
opțiunile trebuie exprimate ca procente. Numărul de pagini utilizate în harta cu spațiu liber
este determinată prin căutarea în vizualizarea pg_freespacemap_relations și rularea unei formule
bazat pe formula utilizată pentru afișarea spațiilor de pagini cu hărți libere în vacuum verbose
comanda. Valorile implicite sunt 85% pentru avertisment şi 95% pentru cei critici.
Exemplul 1: dați un avertisment atunci când clusterul nostru a folosit 76% din spațiile libere de pagini,
cu pg_freespacemap instalat în baza de date robert
check_postgres_fsm_pages --dbname=robert --warning="76%"
Deși trebuie să treceți numele bazei de date în care este instalat pg_freespacemap, dvs
trebuie să rulați această verificare o singură dată pe cluster. De asemenea, verificarea acestor informații necesită
obținerea de blocări speciale pe harta spațiului liber, deci este recomandat să nu rulați acest lucru
verifica la intervale scurte.
Pentru ieșirea MRTG, returnează procentul hărții de spațiu liber de pe prima linie și numărul
de pagini utilizate în prezent pe a doua linie.
fsm_relations
("link simbolic: check_postgres_fsm_relations") Verifică cât de aproape este un cluster de Postgres
max_fsm_relations setare. Această acțiune va funcționa numai pentru bazele de date cu versiunea 8.2 sau mai mare și
necesită modulul contrib pg_freespacemap fi instalat. The --avertizare si --critic
opțiunile trebuie exprimate ca procente. Numărul de relații utilizate în liber-
space-map este determinată prin căutarea în vizualizarea pg_freespacemap_relations. Implicit
valorile sunt 85% pentru avertisment şi 95% pentru cei critici.
Exemplul 1: dați un avertisment când clusterul nostru a folosit 80% din relațiile de spațiu liber,
cu pg_freespacemap instalat în baza de date Dylan
check_postgres_fsm_relations --dbname=dylan --warning="75%"
Deși trebuie să treceți numele bazei de date în care este instalat pg_freespacemap, dvs
trebuie să rulați această verificare o singură dată pe cluster. De asemenea, verificarea acestor informații necesită
obținerea de blocări speciale pe harta spațiului liber, deci este recomandat să nu rulați acest lucru
verifica la intervale scurte.
Pentru ieșirea MRTG, returnează procentul hărții de spațiu liber pe prima linie, numărul de
relaţii utilizate în prezent pe a doua linie.
hiratie
("link simbolic: check_postgres_hitratio") Verifică rata de accesare a tuturor bazelor de date și se plânge
când sunt prea scăzute. Nu este nevoie să rulați această comandă de mai multe ori pe bază de date
cluster. Bazele de date pot fi filtrate cu --include si --exclude Opțiuni. Vezi
Secțiunea „FILTRAREA DE BAZĂ” pentru mai multe detalii. Ele pot fi filtrate și de proprietarul
baza de date cu --includeutilizator si --excludeuser Opțiuni. Vedeți „FILTRAREA NUMELE DE UTILIZATOR”
pentru mai multe detalii.
Opțiunile de avertizare și critice trebuie specificate ca procente. Nu sunt
implicite pentru această acțiune: trebuie specificate avertismentul și criticul. Valoarea de avertizare
nu poate fi mai mare decât valoarea critică. Ieșirea returnează toate bazele de date sortate după
hiratio, cel mai mic primul.
Exemplu: Avertizați dacă orice bază de date de pe flagg gazdă este mai mică de 90% în proporție și critică dacă
mai putin de 80%.
check_postgres_hitratio --host=flagg --warning='90%' --critical='80%'
Pentru ieșirea MRTG, returnează procentul din baza de date cu cel mai mic raport de succes
prima linie, iar numele bazei de date pe a patra linie.
întârziere_hot_standby
("link simbolic: check_hot_standby_delay") Verifică decalajul de replicare a fluxului prin calculul
delta dintre poziția xlog curentă a unui server master și locația de reluare a unui server
sclav conectat la acesta. Serverul slave trebuie să fie în modul hot_standby (de exemplu, doar citire),
prin urmare, versiunea minimă pentru a utiliza această acțiune este Postgres 9.0. The --avertizare si
--critic opțiunile sunt delta dintre locațiile xlog. Deoarece aceste valori sunt byte
compensațiile din WAL ar trebui să se potrivească cu volumul de tranzacții așteptat al aplicației dvs
pentru a preveni fals pozitive sau negative.
Primele opțiuni „--dbname”, „--host” și „--port”, etc. sunt considerate master; cel
a doua aparține sclavului.
Valorile octeților ar trebui să se bazeze pe volumul de tranzacții necesar pentru a avea streaming
replicarea se deconectează de la master din cauza prea multă întârziere, determinată de Postgres
variabila de configurare wal_keep_segments. Pentru unitățile de timp, unitățile valide sunt „secunde”,
„minute”, „ore” sau „zile”. Fiecare poate fi scris la singular sau abreviat doar la
prima literă. La specificarea ambelor, sub forma 'bytes si timp', ambele condiții trebuie să fie
adevărat pentru pragul care trebuie îndeplinit.
Trebuie să furnizați informații despre cum să ajungeți la bazele de date, oferind o virgulă separată
listă la parametrii --dbhost și --dbport, cum ar fi „--dbport=5432,5543”. Dacă nu este dat,
acțiunea eșuează.
Exemplul 1: Avertizați că o bază de date cu o replică locală pe portul 5433 este în urmă la orice reluare xlog
deloc
check_hot_standby_delay --dbport=5432,5433 --warning='1'
Exemplul 2: dați un critic dacă ultima tranzacție replica1 primită este mai mare de 10
minute în urmă
check_hot_standby_delay --dbhost=master,replica1 --critical='10 min'
Exemplul 3: permiteți replica1 să fie cu 1 segment WAL în urmă, dacă masterul vede momentan
mai multă activitate decât poate gestiona conexiunea de replicare în flux sau cu 10 minute în urmă,
dacă comandantul vede foarte puțină activitate și nu procesează nicio tranzacție, dar nu
ambele, ceea ce ar indica o problemă de durată cu conexiunea de replicare.
check_hot_standby_delay --dbhost=master,replica1 --warning='1048576 și 2 min' --critical='16777216 și 10 min'
dimensiune_index
table_size
dimensiune_relație
(legături simbolice: „check_postgres_index_size”, „check_postgres_table_size” și
„check_postgres_relation_size”) Acțiunile table_size si dimensiune_index sunt pur și simplu
variatii ale dimensiune_relație acțiune, care verifică o relație care a crescut și ea
mare. Relațiile (cu alte cuvinte, tabele și indecși) pot fi filtrate cu --include
si --exclude Opțiuni. Consultați secțiunea „FILTRAREA DE BAZĂ” pentru mai multe detalii. Relațiile pot
de asemenea, să fie filtrate de către utilizatorul care le deține, prin utilizarea --includeutilizator si --excludeuser
Opțiuni. Consultați secțiunea „FILTRAREA NUMELE DE UTILIZATOR” pentru mai multe detalii.
Valorile pentru --avertizare si --critic opțiunile sunt dimensiuni de fișier și pot avea unități de
bytes, kilobytes, megabytes, gigabytes, terabytes sau exabytes. Fiecare poate fi prescurtat
până la prima literă. Dacă nu sunt date unități, se presupun octeți. Nu există implicite
valori: trebuie date atat avertismentul cat si varianta critica. Textul returnat arată
dimensiunea celei mai mari relații găsite.
În cazul în care --showperf opțiunea este activată, toate a relaţiilor cu mărimile lor se vor da.
Pentru a preveni acest lucru, se recomandă să setați --perflimit opțiune, care va cauza
interogarea pentru a face o „ORDER BY size DESC LIMIT (perflimit)”.
Exemplul 1: dați o valoare critică dacă orice tabel este mai mare de 600 MB pe burrick gazdă.
check_postgres_table_size --critical='600 MB' --warning='600 MB' --host=burrick
Exemplul 2: Avertizați dacă produsele de masă au o dimensiune de peste 4 GB și acordați o valoare critică la 4.5 GB.
check_postgres_table_size --host=burrick --warning='4 GB' --critical='4.5 GB' --include=produs
Exemplul 3: Avertizați dacă orice index care nu este deținut de postgres depășește 500 MB.
check_postgres_index_size --port=5432 --excludeuser=postgres -w 500MB -c 600MB
Pentru ieșirea MRTG, returnează dimensiunea în octeți a celei mai mari relații și numele
baza de date și relație ca a patra linie.
ultima_analiza
ultimul_vacuum
last_autoanalyze
ultimul_autovacuum
(legături simbolice: „check_postgres_last_analyze”, „check_postgres_last_vacuum”,
„check_postgres_last_autoanalyze” și „check_postgres_last_autovacuum”) Verifică cât timp
a fost de când vacuum (sau analiză) a fost rulat ultima dată pe fiecare tabel dintr-una sau mai multe baze de date.
Utilizarea acestor acțiuni necesită ca baza de date țintă să fie versiunea 8.3 sau mai mare sau aceea
versiunea este 8.2 și variabila de configurare stats_row_level a fost activat. Mese
poate fi filtrat cu --include si --exclude Opțiuni. Consultați „FILTRAREA DE BAZĂ”
sectiune pentru mai multe detalii. Tabelele pot fi, de asemenea, filtrate de către proprietarul lor prin utilizarea
--includeutilizator si --excludeuser Opțiuni. Consultați secțiunea „FILTRAREA NUMELE DE UTILIZATOR” pentru mai multe
Detalii.
Unitățile pentru --avertizare si --critic sunt specificate ca timpi. Unitățile valide sunt secunde,
minute, ore și zile; toate pot fi prescurtate la prima literă. Dacă nu există unități
dat, se presupun „secunde”. Valorile implicite sunt „1 zi” și „2 zile”. Vă rugăm să rețineți
că există cazuri în care acest câmp nu se completează automat. Dacă este sigur
mesele vă dau probleme, asigurați-vă că au rânduri moarte de aspirat sau doar
excludeți-i de la test.
Schema numită „schema_informații” este exclusă din acest test, deoarece este doar tabelată
conține sunt mici și nu se schimbă.
Rețineți că versiunile non-automate vor verifica și versiunile automate. In alta
cuvinte, folosind last_vacuum va raporta despre ultimul vid, dacă a fost un vid normal,
sau unul condus de daemonul autovacuum.
Exemplul 1: Avertizați dacă nicio masă nu a fost aspirată în 3 zile și dați o valoare critică la o
saptamana, pentru pelin gazda
check_postgres_last_vacuum --host=pelin --warning='3d' --critical='7d'
Exemplul 2: La fel ca mai sus, dar omiteți mesele aparținând utilizatorilor „eve” sau „mallory”
check_postgres_last_vacuum --host=pelin --warning='3d' --critical='7d' --excludeusers=eve,mallory
Pentru ieșirea MRTG, returnează (pe prima linie) cea mai mică perioadă de timp în secunde de la a
masa a fost ultima dată aspirată sau analizată. A patra linie returnează numele bazei de date și
numele mesei.
ascultător
("link simbolic: check_postgres_listener") Confirmați că cineva ascultă unul sau mai multe
șiruri de caractere specifice (folosind sistemul LISTEN/NOTIFY), analizând tabelul pg_listener.
Este necesar doar unul de avertisment sau critic. Formatul este un șir simplu care reprezintă
țintă LISTEN sau un caracter tilde urmat de un șir pentru verificarea expresiei regulate.
Rețineți că această verificare nu va funcționa pe versiunile Postgres 9.0 sau mai recente.
Exemplul 1: dați un avertisment dacă nimeni nu ascultă șirul bucardo_mcp_ping pe porturi
5555 și 5556
check_postgres_listener --port=5555,5556 --warning=bucardo_mcp_ping
Exemplul 2: dați un critic dacă nu există solicitări LISTEN active care să se potrivească cu „grimm” pe
baza de date oskar
check_postgres_listener --db oskar --critical=~grimm
Pentru ieșirea MRTG, returnează un 1 sau un 0 pe primul, indicând succesul sau eșecul. Numele
a anunțului trebuie furnizat prin intermediul --mrtg opțiune.
încuietori
("link simbolic: check_postgres_locks") Verificați numărul total de încuietori pe unul sau mai multe
baze de date. Nu este nevoie să rulați acest lucru de mai multe ori pentru fiecare cluster de baze de date. Bazele de date pot
fi filtrat cu --include si --exclude Opțiuni. Consultați secțiunea „FILTRAREA DE BAZĂ”.
pentru mai multe detalii.
--avertizare si --critic opțiunile pot fi specificate ca numere simple, care reprezintă
numărul total de încuietori sau pot fi defalcate în funcție de tipul de lacăt. Nume de blocare valide
sunt „total”, „în așteptare” sau numele unui tip de blocare utilizat de Postgres. Aceste nume sunt
insensibil la majuscule și nu au nevoie de partea „blocare” de la capăt, deci exclusiv se va potrivi
„ExclusiveLock”. Formatul este nume=număr, cu diferite elemente separate prin două puncte sau
punct și virgulă (sau orice alt simbol).
Exemplul 1: Avertizați dacă numărul de încuietori este de 100 sau mai mult și critic dacă este de 200 sau mai mult,
gazdă garrett
check_postgres_locks --host=garrett --warning=100 --critical=200
Exemplul 2: Pe artemusul gazdă, avertizați dacă există 200 sau mai multe încuietori și dați o valoare critică dacă
există peste 250 de încuietori în total sau dacă există peste 20 de încuietori exclusive sau dacă există peste 5 conexiuni
așteaptă o lacăt.
check_postgres_locks --host=artemus --warning=200 --critical="total=250:waiting=5:exclusive=20"
Pentru ieșirea MRTG, returnează numărul de blocări de pe prima linie și numele
baza de date pe a patra linie.
fișier jurnal
("link simbolic: check_postgres_logfile") Se asigură că fișierul jurnal se află în locația așteptată
și este conectat la. Această acțiune emite o comandă care aruncă o eroare pentru fiecare
baza de date pe care o verifică și se asigură că mesajul apare în jurnalele. Acesta scanează
diverse setări log_* în interiorul Postgres pentru a afla unde ar trebui să fie jurnalele. daca tu
folosesc syslog, efectuează o scanare brută (dar nu sigură). /etc/syslog.conf.
Alternativ, puteți furniza numele fișierului jurnal cu --fișier jurnal opțiune. Aceasta este
util mai ales dacă jurnalele au o schemă de rotație personalizată condusă de un program extern.
--fișier jurnal opțiunea acceptă următoarele caractere de escape: „%Y %m %d %H”, care
reprezintă anul curent, luna, data și, respectiv, ora. O eroare este întotdeauna
raportat ca critic, cu excepția cazului în care opțiunea de avertizare a fost transmisă ca valoare diferită de zero.
În afară de această utilizare specifică, opțiunile „--warning” și „--critical” ar trebui nu be
folosit.
Exemplul 1: pe portul 5432, asigurați-vă că fișierul jurnal este scris în fișier
/home/greg/pg8.2.log
check_postgres_logfile --port=5432 --logfile=/home/greg/pg8.2.log
Exemplul 2: La fel ca mai sus, dar ridicați un avertisment, nu un critic
check_postgres_logfile --port=5432 --logfile=/home/greg/pg8.2.log -w 1
Pentru ieșirea MRTG, returnează un 1 sau 0 pe prima linie, indicând succesul sau eșecul. În
în cazul unei defecțiuni, a patra linie va oferi mai multe detalii despre defecțiunea întâlnită.
versiunea_nouă_bc
("link simbolic: check_postgres_new_version_bc") Verifică dacă o versiune mai nouă a Bucardo
programul este disponibil. Versiunea curentă se obține prin rularea „bucardo_ctl --version”.
Dacă este disponibilă o actualizare majoră, este returnat un avertisment. Dacă o actualizare de revizuire este
disponibil, un critic este returnat. (Bucardo este stăpân la sclav, și stăpân la stăpân
sistem de replicare pentru Postgres: vezi http://bucardo.org pentru mai multe informatii). Vezi si
informațiile din opțiunea „--get_method”.
new_version_box
("link simbolic: check_postgres_new_version_box") Verifică dacă o versiune mai nouă a boxinfo
programul este disponibil. Versiunea curentă este obținută prin rularea „boxinfo.pl --version”.
Dacă este disponibilă o actualizare majoră, este returnat un avertisment. Dacă o actualizare de revizuire este
disponibil, un critic este returnat. (boxinfo este un program pentru a prelua important
informații de la un server și punerea lor într-un format HTML: vezi
http://bucardo.org/wiki/boxinfo pentru mai multe informatii). Vezi și informațiile de pe
Opțiunea „--get_method”.
new_version_cp
("link simbolic: check_postgres_new_version_cp") Verifică dacă o versiune mai nouă a acestui program
(check_postgres) este disponibil, prin preluarea versiunii dintr-un fișier text mic de pe principal
pagina de start a proiectului. Returnează un avertisment dacă versiunea returnată nu
se potrivesc cu cea pe care o alergi. Intervalul recomandat pentru verificare este o dată pe zi. Vezi și
informații despre opțiunea „--get_method”.
noua_versiune_pg
("link simbolic: check_postgres_new_version_pg") Verifică dacă există o versiune mai nouă a Postgres
pentru fiecare bază de date conectată la. Rețineți că aceasta verifică doar revizuirea, de exemplu, trecerea de la
8.3.6 până la 8.3.7. Revizuirile sunt întotdeauna 100% compatibile cu binar și nu implică dump și
restaurați pentru a face upgrade. Se fac revizuiri pentru a rezolva erorile, deci actualizarea cât mai curând posibil
este întotdeauna recomandat. Returnează un avertisment dacă nu aveți cea mai recentă revizuire. Este
se recomandă ca această verificare să fie efectuată cel puțin o dată pe zi. Vezi și informațiile de pe
Opțiunea „--get_method”.
versiunea_nouă_tnm
("link simbolic: check_postgres_new_version_tnm") Verifică dacă o versiune mai nouă a tail_n_mail
programul este disponibil. Versiunea curentă este obținută prin rularea „tail_n_mail --version”.
Dacă este disponibilă o actualizare majoră, este returnat un avertisment. Dacă o actualizare de revizuire este
disponibil, un critic este returnat. (tail_n_mail este un instrument de monitorizare a jurnalelor care poate trimite
e-mail atunci când apar evenimente interesante în jurnalele dvs. Postgres. Vedea:
http://bucardo.org/wiki/Tail_n_mail pentru mai multe informatii). Vezi și informațiile de pe
opțiunea „--get_method”.
pgb_pool_cl_active
pgb_pool_cl_waiting
pgb_pool_sv_active
pgb_pool_sv_idle
pgb_pool_sv_used
pgb_pool_sv_tested
pgb_pool_sv_login
pgb_pool_maxwait
(legături simbolice: „check_postgres_pgb_pool_cl_active”, „check_postgres_pgb_pool_cl_waiting”,
„check_postgres_pgb_pool_sv_active”, „check_postgres_pgb_pool_sv_idle”,
„check_postgres_pgb_pool_sv_used”, „check_postgres_pgb_pool_sv_tested”,
„check_postgres_pgb_pool_sv_login” și „check_postgres_pgb_pool_maxwait”)
Examinează statisticile pool-ului lui pgbouncer. Fiecare piscină are un set de conexiuni „client”,
referindu-se la conexiuni de la clienți externi și conexiuni „server”, referindu-se la
conexiuni la PostgreSQL însuși. Acțiunile asociate check_postgres sunt prefixate de „cl_”
și respectiv „sv_”. Conexiunile client active sunt acele conexiuni conectate în prezent
cu o conexiune la server activă. Conexiunile client pot fi, de asemenea, „în așteptare”, adică acestea
nu li sa alocat încă o conexiune la server. Conexiunile la server sunt „active” (linked
către un client), „inactiv” (în așteptarea unei conexiuni client cu care să se conecteze), „utilizat” (doar
deconectat de la un client și încă neîntors în pool-ul inactiv), „testat” (în prezent
testat) și „login” (în procesul de conectare). Valoarea maxwait arată cât timp în
secunde, cea mai veche conexiune client în așteptare a așteptat.
pgbouncer_backends
("link simbolic: check_postgres_pgbouncer_backends") Verifică numărul curent de conexiuni
pentru una sau mai multe baze de date prin pgbouncer și opțional îl compară la maxim
permis, care este determinat de variabila de configurare pgbouncer max_client_conn.
--avertizare si --critic opțiunile pot lua una dintre cele trei forme. În primul rând, un număr simplu poate
fi dat, care reprezintă numărul de conexiuni la care va fi dat alerta.
Această alegere nu folosește max_connections setare. În al doilea rând, procentul de disponibil
pot fi date conexiuni. În al treilea rând, poate fi dat un număr negativ care reprezintă
numărul de conexiuni rămase până la max_connections este atins. Valorile implicite pentru
--avertizare si --critic sunt „90%” și „95%”. De asemenea, puteți filtra bazele de date folosind
il --include si --exclude Opțiuni. Consultați secțiunea „FILTRAREA DE BAZĂ” pentru mai multe detalii.
Pentru a vizualiza numai procesele care nu sunt inactive, puteți utiliza --noidle argument. Rețineți că utilizatorul dvs
se conectează așa cum trebuie să fie un superutilizator pentru ca acest lucru să funcționeze corect.
Exemplul 1: dați un avertisment atunci când numărul de conexiuni pe quirm gazdă ajunge la 120 și un
critic dacă ajunge la 150.
check_postgres_pgbouncer_backends --host=quirm --warning=120 --critical=150 -p 6432 -u pgbouncer
Exemplul 2: dați o valoare critică când ajungem la 75% din setarea noastră max_connections pe gazde
lancre sau lancre2.
check_postgres_pgbouncer_backends --warning='75%' --critical='75%' --host=lancre,lancre2 -p 6432 -u pgbouncer
Exemplul 3: dați un avertisment când mai sunt doar 10 sloturi de conexiune pe gazdă
plasmidă, și o critică atunci când mai avem doar 5.
check_postgres_pgbouncer_backends --warning=-10 --critical=-5 --host=plasmid -p 6432 -u pgbouncer
Pentru ieșirea MRTG, numărul de conexiuni este raportat pe prima linie, iar pe a patra
line oferă numele bazei de date, plus max_client_conn curent. Dacă mai mult de unul
baza de date a fost interogată, este scoasă cea cu cel mai mare număr de conexiuni.
pgbouncer_checksum
("link simbolic: check_postgres_pgbouncer_checksum") Verifică dacă toate setările pgBouncer sunt
la fel ca ultima dată când ai verificat. Acest lucru se face prin generarea unei sume de control a unei liste sortate
de stabilire a numelor şi a valorilor acestora. Rețineți că nu ar trebui să specificați numele bazei de date, ci
va fi automat implicit pgbouncer. Fie --avertizare sau --critic opțiune
ar trebui date, dar nu ambele. Valoarea fiecăruia este suma de control, de 32 de caractere
valoare hexazecimală. Puteți rula cu opțiunea specială „--critical=0” pentru a afla un
suma de control existentă.
Această acțiune necesită modulul Digest::MD5.
Exemplul 1: Găsiți suma de control inițială pentru configurația pgbouncer pe portul 6432 folosind
utilizator implicit (de obicei Postgres)
check_postgres_pgbouncer_checksum --port=6432 --critical=0
Exemplul 2: Asigurați-vă că nu s-au schimbat setările și avertizați dacă da, folosind suma de control de la
de mai sus.
check_postgres_pgbouncer_checksum --port=6432 --warning=cd2f3b5e129dc2b4f5c0f6d8d2e64231
Pentru ieșirea MRTG, returnează un 1 sau 0 indicând succesul eșecului sumei de verificare.
O sumă de control trebuie furnizată ca argument „--mrtg”. A patra linie dă întotdeauna
suma de control curentă.
pgagent_jobs
("link simbolic: check_postgres_pgagent_jobs") Verifică dacă toate joburile pgAgent care au
executate în intervalul de timp precedent au reușit. Acest lucru se face prin verificarea pentru
orice pași care au un rezultat diferit de zero.
Fie „--warning” sau „--critical”, sau ambele, pot fi specificate ca timpi, iar joburile vor fi
verificat pentru defecțiuni în perioadele specificate înainte de ora curentă. Valabil
unitățile sunt secunde, minute, ore și zile; toate pot fi prescurtate la prima literă.
Dacă nu sunt date unități, se presupun „secunde”.
Exemplul 1: Dați un critic atunci când orice job executat în ultima zi a eșuat.
check_postgres_pgagent_jobs --critical=1d
Exemplul 2: dați un avertisment atunci când toate lucrările executate în ultima săptămână au eșuat.
check_postgres_pgagent_jobs --warning=7d
Exemplul 3: dați o critică pentru joburile care au eșuat în ultimele 2 ore și un avertisment pentru
locuri de muncă care au eșuat în ultimele 4 ore:
check_postgres_pgagent_jobs --critical=2h --warning=4h
preparat_txns
("link simbolic: check_postgres_prepared_txns") Verificați vechimea oricărui preparat existent
tranzactii. Rețineți că majoritatea oamenilor NU vor folosi tranzacții pregătite, deoarece acestea fac parte
de angajare în două părți și complicat de întreținut. De asemenea, nu trebuie confundate cu
DECLARAȚII pregătite, la care se gândesc cei mai mulți oameni când aud pregătirea. The
valoarea implicită pentru un avertisment este de 1 secundă, pentru a detecta orice utilizare a tranzacțiilor pregătite, care
este probabil o greșeală pe majoritatea sistemelor. Avertisment și critic sunt numărul de secunde a
tranzacția pregătită a fost deschisă înainte ca o alertă să fie dată.
Exemplul 1: dați un avertisment la detectarea oricăror tranzacții pregătite:
check_postgres_prepared_txns -w 0
Exemplul 2: dați o valoare critică dacă orice tranzacție pregătită a fost deschisă mai mult de 10
secunde, dar permiteți până la 360 de secunde pentru baza de date „shrike”:
check_postgres_prepared_txns --critical=10 --exclude=shrike
check_postgres_prepared_txns --critical=360 --include=shrike
Pentru ieșirea MRTG, returnează numărul de secunde în care cea mai veche tranzacție a fost deschisă ca
prima linie și baza de date din care provine ca linie finală.
query_runtime
("link simbolic: check_postgres_query_runtime") Verifică cât durează rularea unei anumite interogări,
prin executarea unui „EXPLAIN ANALYZE” împotriva acestuia. The --avertizare si --critic opțiunile sunt
perioada maximă de timp pe care ar trebui să o dureze interogarea. Unitățile valide sunt secunde, minute și ore;
oricare poate fi prescurtat la prima literă. Dacă nu sunt date unități, se presupun „secunde”.
Trebuie date atât avertismentul, cât și opțiunea critică. Numele vizualizării sau funcției
pentru a fi alergat trebuie să fie transmis la --nume interogare opțiune. Trebuie să fie compus dintr-un singur cuvânt
(sau schema.word), cu paranți opționali la sfârșit.
Exemplul 1: dați un critic dacă funcția numită „speedtest” nu rulează în 10 secunde sau
Mai puțin.
check_postgres_query_runtime --queryname='speedtest()' --critical=10 --warning=10
Pentru ieșirea MRTG, raportează timpul în secunde pentru finalizarea interogării pe prima linie.
A patra linie listează baza de date.
timp_interogare
("link simbolic: check_postgres_query_time") Verifică durata de rulare a interogărilor pe una sau mai multe
baze de date. Nu este nevoie să rulați acest lucru de mai multe ori pe același cluster de baze de date. Notă
că acest lucru exclude deja interogările care sunt „inactiv în tranzacție”. Bazele de date pot fi
filtrat prin utilizarea --include si --exclude Opțiuni. Consultați secțiunea „FILTRAREA DE BAZĂ”.
pentru mai multe detalii. De asemenea, puteți filtra pe utilizatorul care execută interogarea cu --includeutilizator
si --excludeuser Opțiuni. Consultați secțiunea „FILTRAREA NUMELE DE UTILIZATOR” pentru mai multe detalii.
Valorile pentru --avertizare si --critic opțiunile sunt cantități de timp și implicit la „2
minute” și, respectiv, „5 minute”. Unitățile valide sunt „secunde”, „minute”, „ore” sau
„zile”. Fiecare poate fi scris la singular sau abreviat doar la prima literă. Dacă nu există unități
sunt date, unitatea se presupune a fi secunde.
Această acțiune necesită Postgres 8.1 sau o versiune mai bună.
Exemplul 1: dați un avertisment dacă vreo interogare a rulat mai mult de 3 minute și a
critic dacă mai mult de 5 minute.
check_postgres_query_time --port=5432 --warning='3 minute' --critical='5 minute'
Exemplul 2: Folosind valorile implicite (2 și 5 minute), verificați toate bazele de date, cu excepția celor
începând cu „șablon”.
check_postgres_query_time --port=5432 --exclude=~^template
Exemplul 3: Avertizați dacă utilizatorul „nu” are o interogare care rulează peste 20 de secunde
check_postgres_query_time --port=5432 --includeuser=don --warning=20s
Pentru ieșirea MRTG, returnează lungimea în secunde a celei mai lungi interogări care rulează pe prima
linia. A patra linie oferă numele bazei de date.
replicate_row
("link simbolic: check_postgres_replicate_row") Verifică dacă replicarea master-slave funcționează
unuia sau mai multor sclavi.
Primele opțiuni „--dbname”, „--host” și „--port”, etc. sunt considerate master;
utilizările ulterioare sunt sclavii. Valorile sau --avertizare si --critic opțiunile sunt
unități de timp și trebuie furnizată cel puțin una (fără valori implicite). Unitățile valide sunt „secunde”,
„minute”, „ore” sau „zile”. Fiecare poate fi scris la singular sau abreviat doar la
prima literă. Dacă nu sunt date unități, se presupune că unitățile sunt secunde.
Această verificare actualizează un singur rând pe master și apoi măsoară cât timp durează
aplicate sclavilor. Pentru a face acest lucru, trebuie să alegeți un tabel care este replicat
găsiți un rând care poate fi schimbat și nu va fi schimbat de niciun alt proces. A
coloana specifică a acestui rând va fi schimbată de la o valoare la alta. Toate acestea sunt hrănite
la opțiunea „repinfo” și ar trebui să conțină următoarele opțiuni, separate prin virgule:
numele tabelului, cheia primară, id-ul cheii, coloana, prima valoare, a doua valoare.
Exemplul 1: Slony reproduce un tabel numit „comenzi” de la gazda „alfa” la gazda „beta”,
în baza de date „vânzări”. Cheia primară a tabelului se numește id și o vom face
testați rândul cu un id de 3 (care este istoric și nu s-a schimbat niciodată). Există o coloană
numit „salesrep”, pe care vom comuta de la o valoare „slon” la „nols” pentru a verifica
replicarea. Vrem să lansăm un avertisment dacă replicarea nu are loc în 10
secunde.
check_postgres_replicate_row --host=alpha --dbname=sales --host=beta
--dbname=sales --warning=10 --repinfo=comenzi,id,3,salesrep,slon,nols
Exemplul 2: Bucardo reproduce un tabel numit „chitanță” de la gazdă „verde” la gazde
„roșu”, „albastru” și „galben”. Baza de date pentru ambele părți este „publică”. Bazele de date de sclavi
rulează pe portul 5455. Cheia primară se numește „receipt_id”, rândul pe care vrem să-l folosim
are valoarea 9, iar coloana pe care vrem să o schimbăm pentru test se numește „zonă”. Bine
comutați între „nord” și „sud” pentru valoarea acestei coloane și aruncați o valoare critică dacă
schimbarea nu este pe toate cele trei slave în 5 secunde.
check_postgres_replicate_row --host=verde --port=5455 --host=rosu,albastru,galben
--critical=5 --repinfo=chitanță,receipt_id,9,zonă,nord,sud
Pentru ieșirea MRTG, returnează pe prima linie timpul în secunde în care durează replicarea
finalizarea. Timpul maxim este setat la 4 minute și 30 de secunde: dacă nu a durat nicio replicare
loc în acea perioadă lungă de timp, se aruncă o eroare.
aceeași_schemă
("link simbolic: check_postgres_same_schema") Verifică dacă două sau mai multe baze de date sunt identice
în ceea ce privește schema lor (dar nu datele din interior). Acest lucru este deosebit de util pentru a face
asigurați-vă că sclavii dvs. nu au fost modificați sau corupti în niciun fel când folosiți master la slave
replicare. Spre deosebire de majoritatea celorlalte acțiuni, aceasta nu are niciun avertisment sau criterii critice - the
bazele de date fie sunt sincronizate, fie nu sunt. Dacă sunt diferite, o listă detaliată a
diferențele sunt prezentate.
Este posibil să doriți să excludeți sau să filtrați anumite diferențe. Modul de a face acest lucru este să adăugați
șiruri la opțiunea „--filter”. Pentru a exclude un tip de obiect, utilizați „noname”, unde „nume”
este tipul de obiect, de exemplu, „noschema”. A exclude obiecte de un anumit tip prin a
expresie regulată împotriva numelui lor, utilizați „noname=regex”. Vezi exemplele de mai jos pentru a
intelegere mai buna.
Tipurile de obiecte care pot fi filtrate includ:
utilizator
schemă
tabel
Vizualizează
index
secvenţă
constrângere
declanşa
funcţie
Opțiunea de filtrare „noposition” împiedică verificarea poziției coloanelor în interiorul unui
tabel.
Opțiunea de filtru „nofuncbody” împiedică compararea corpurilor tuturor funcțiilor.
Opțiunea de filtru „noperm” împiedică compararea permisiunilor obiectelor.
Pentru a furniza a doua bază de date, trebuie doar să adăugați diferențele la prima printr-un apel către
argumentul conexiunii adecvate. De exemplu, pentru a compara bazele de date pe gazde alpha și
bravo, folosește „--dbhost=alpha,bravo”. Vedeți și exemplele de mai jos.
Dacă este dată doar o singură gazdă, se presupune că facem un raport „bazat pe timp”. The
prima dată când se rulează, un instantaneu al tuturor elementelor din baza de date este salvat într-un local
fişier. Când îl rulați din nou, acel instantaneu este citit și devine „baza de date #2” și este
comparativ cu baza de date actuală.
Pentru a înlocui vechiul fișier stocat cu noua versiune, utilizați argumentul --replace.
Pentru a activa instantanee în diferite momente în timp, puteți utiliza argumentul „--sufix” pentru a face
numele de fișiere unice pentru fiecare rulare. Vezi exemplele de mai jos.
Exemplul 1: Verificați dacă două baze de date de pe gazde steaua și linia sunt aceleași:
check_postgres_same_schema --dbhost=stea,linie
Exemplul 2: La fel ca înainte, dar excludeți orice declanșator cu „slony” în numele lor
check_postgres_same_schema --dbhost=star,line --filter="notrigger=slony"
Exemplul 3: La fel ca înainte, dar excludeți și toți indecșii
check_postgres_same_schema --dbhost=star,line --filter="notrigger=slony noindexes"
Exemplul 4: Verificați diferențele pentru baza de date „battlestar” pe diferite porturi
check_postgres_same_schema --dbname=battlestar --dbport=5432,5544
Exemplul 5: creați un fișier instantaneu zilnic și săptămânal
check_postgres_same_schema --dbname=cylon --suffix=zilnic
check_postgres_same_schema --dbname=cylon --suffix=săptămânal
Exemplul 6: Rulați o comparație istorică, apoi înlocuiți fișierul
check_postgres_same_schema --dbname=cylon --suffix=daily --replace
secvenţă
("link simbolic: check_postgres_sequence") Verifică cât spațiu a mai rămas pentru toate secvențele din
Bază de date. Acesta este măsurat ca procent din totalul valorilor posibile care au fost utilizate
pentru fiecare secvență. The --avertizare si --critic opțiunile ar trebui exprimate ca
procente. Valorile implicite sunt 85% pentru avertisment şi 95% pentru cei critici. Poți
utilizați --include și --exclude pentru a controla ce secvențe trebuie verificate. Rețineți că aceasta
cecul contează neobișnuit valoare minimă si creştere by valorile, dar nu-i pasă dacă
secvența este setată să cicleze sau nu.
Ieșirea pentru Nagios oferă numele secvenței, procentul utilizat și numărul
de „apeluri” rămase, indicând de câte ori mai poate fi apelat nextval pe acea secvență
înainte de a ajunge la valoarea maximă.
Ieșirea pentru MRTG returnează cel mai mare procent din toate secvențele de pe prima linie,
și numele fiecărei secvențe cu acel procent pe a patra linie, separate prin „|”
(țeavă) dacă există mai mult de o secvență la acel procent.
Exemplul 1: dați un avertisment dacă vreo secvență se apropie de 95% plină.
check_postgres_sequence --dbport=5432 --warning=95%
Exemplul 2: Verificați dacă secvența numită „order_id_seq” nu este mai mult de jumătate plină.
check_postgres_sequence --dbport=5432 --critical=50% --include=orders_id_seq
settings_checksum
("link simbolic: check_postgres_settings_checksum") Verifică dacă toate setările Postgres sunt
la fel ca ultima dată când ai verificat. Acest lucru se face prin generarea unei sume de control a unei liste sortate
de stabilire a numelor şi a valorilor acestora. Rețineți că utilizatorii diferiți din aceeași bază de date pot avea
sume de control diferite, datorită utilizării ALTER USER și datorită faptului că superutilizatorii văd mai mult
setări decât utilizatorii obișnuiți. Fie --avertizare sau --critic opțiunea ar trebui să fie
dat, dar nu ambele. Valoarea fiecăruia este suma de control, un hexazecimal de 32 de caractere
valoare. Puteți rula cu opțiunea specială „--critical=0” pentru a afla un existent
suma de control.
Această acțiune necesită modulul Digest::MD5.
Exemplul 1: Găsiți suma de control inițială pentru baza de date pe portul 5555 utilizând utilizatorul implicit
(de obicei postgres)
check_postgres_settings_checksum --port=5555 --critical=0
Exemplul 2: Asigurați-vă că nu s-au schimbat setările și avertizați dacă da, folosind suma de control de la
de mai sus.
check_postgres_settings_checksum --port=5555 --warning=cd2f3b5e129dc2b4f5c0f6d8d2e64231
Pentru ieșirea MRTG, returnează un 1 sau 0 indicând succesul eșecului sumei de verificare.
O sumă de control trebuie furnizată ca argument „--mrtg”. A patra linie dă întotdeauna
suma de control curentă.
slony_status
("link simbolic: check_postgres_slony_status") Verifică starea unui cluster Slony prin
privind rezultatele vizualizării sl_status a lui Slony. Acesta este returnat ca număr de
secunde de „timp de întârziere”. The --avertizare si --critic opțiunile ar trebui exprimate ca timpi.
Valorile implicite sunt 60 secunde pentru avertisment şi 300 secunde pentru cei critici.
Argumentul opțional --schemă a indicat schema sub care este instalat Slony. Daca
nu este dat, schema va fi determinată automat de fiecare dată când se execută această verificare.
Exemplul 1: dați un avertisment dacă vreun Slony este întârziat cu mai mult de 20 de secunde
check_postgres_slony_status --warning 20
Exemplul 2: dați o valoare critică dacă Slony, instalat sub schema „_slony”, este peste 10
minute au întârziat
check_postgres_slony_status --schema=_slony --critical=600
sincronizare temporală
("link simbolic: check_postgres_timesync") Compară ora sistemului local cu ora raportată
de una sau mai multe baze de date. The --avertizare si --critic opțiunile reprezintă numărul de
secunde între cele două sisteme înainte ca o alertă să fie dată. Dacă niciunul nu este specificat,
sunt utilizate valorile implicite, care sunt „2” și „5”. Valoarea de avertizare nu poate fi mai mare decât
valoarea critică. Din cauza naturii non-exacte a acestui test, valorile „0” sau „1” nu sunt
recomandată.
Șirul returnat arată diferența de timp, precum și ora pe fiecare parte scrisă
afară.
Exemplul 1: verificați dacă bazele de date pe gazdele ankh, morpork și klatch nu sunt mai mult de 3
secunde de pauză față de ora locală:
check_postgres_timesync --host=ankh,morpork,klatch --critical=3
Pentru ieșirea MRTG, returnează pe prima linie diferența de numărul de secunde dintre
ora locală și ora bazei de date. A patra linie returnează numele bazei de date.
txn_idle
(„link simbolic: check_postgres_txn_idle”) Verifică numărul și durata „idle în
tranzacții" pe una sau mai multe baze de date. Nu este nevoie să rulați aceasta de mai multe ori
pe același cluster de baze de date. Bazele de date pot fi filtrate folosind --include si
--exclude Opțiuni. Consultați secțiunea „FILTRAREA DE BAZĂ” de mai jos pentru mai multe detalii.
--avertizare si --critic opțiunile sunt date ca unități de timp, numere întregi cu semn sau
numere întregi pentru unități de timp și ambele trebuie furnizate (nu există valori implicite). Unități valabile
sunt „secunde”, „minute”, „ore” sau „zile”. Fiecare poate fi scris la singular sau prescurtat
doar la prima literă. Dacă nu sunt date unități și numerele sunt nesemnate, unitățile
sunt presupuse a fi secunde.
Această acțiune necesită Postgres 8.3 sau o versiune mai bună.
Exemplul 1: dați un avertisment dacă vreo conexiune a fost inactivă în tranzacție de mai mult de 15
secunde:
check_postgres_txn_idle --port=5432 --warning='15 secunde'
Exemplul 2: dați un avertisment dacă există 50 sau mai multe tranzacții
check_postgres_txn_idle --port=5432 --warning='+50'
Exemplul 3: dați un critic dacă 5 sau mai multe conexiuni au fost inactive în tranzacție pentru mai multe
mai mult de 10 secunde:
check_postgres_txn_idle --port=5432 --critical='5 pentru 10 secunde'
Pentru ieșirea MRTG, returnează timpul în secunde în care a fost cea mai lungă tranzacție inactivă
alergare. A patra linie returnează numele bazei de date și alte informații despre
cea mai lungă tranzacție.
txn_time
("link simbolic: check_postgres_txn_time") Verifică durata tranzacțiilor deschise pentru una sau mai multe
baze de date. Nu este nevoie să rulați această comandă de mai multe ori pentru fiecare cluster de baze de date.
Bazele de date pot fi filtrate prin utilizarea --include si --exclude Opțiuni. Consultați „BASIC
secțiunea FILTRARE" pentru mai multe detalii. Proprietarul tranzacției poate fi filtrat și prin
utilizarea --includeutilizator si --excludeuser Opțiuni. Consultați secțiunea „FILTRAREA NUMELE DE UTILIZATOR”.
pentru mai multe detalii.
Valorile sau --avertizare si --critic opțiunile sunt unități de timp și trebuie furnizate
(fără implicit). Unitățile valide sunt „secunde”, „minute”, „ore” sau „zile”. Fiecare poate fi
scris la singular sau prescurtat doar la prima literă. Dacă nu sunt date unități,
se presupune că unitățile sunt secunde.
Această acțiune necesită Postgres 8.3 sau o versiune mai bună.
Exemplul 1: dați un critic dacă orice tranzacție a fost deschisă mai mult de 10 minute:
check_postgres_txn_time --port=5432 --critical='10 minute'
Exemplul 1: Avertizați dacă utilizatorul „depozit” are o tranzacție deschisă peste 30 de secunde
check_postgres_txn_time --port-5432 --warning=30s --includeuser=warehouse
Pentru ieșirea MRTG, returnează timpul maxim în secunde în care o tranzacție a fost deschisă pe
prima linie. A patra linie oferă numele bazei de date.
txn_wraparound
("link simbolic: check_postgres_txn_wraparound") Verifică cât de aproape de tranzacție învelișul unu
sau mai multe baze de date primesc. The --avertizare si --critic opțiunile indică numărul
de tranzacții efectuate și trebuie să fie un număr întreg pozitiv. Dacă nu este dată nici una dintre opțiuni,
sunt utilizate valori implicite de 1.3 și 1.4 miliarde. Nu este nevoie să rulați această comandă mai mult
decât o dată pe cluster de baze de date. Pentru o discuție mai detaliată despre ce este acest număr
reprezintă și ce să faceți în privința acestuia, vă rugăm să vizitați pagina
<http://www.postgresql.org/docs/current/static/routine-vacuuming.html#VACUUM-PENTRU-ÎMBLAVĂRAT>
Valorile de avertizare și critice pot avea subliniere în număr pentru lizibilitate, ca Perl
nu.
Exemplul 1: Verificați valorile implicite pentru baza de date localhost
check_postgres_txn_wraparound --host=localhost
Exemplul 2: Verificați portul 6000 și dați un critic atunci când sunt lovite 1.7 miliarde de tranzacții:
check_postgres_txn_wraparound --port=6000 --critical=1_700_000_000
Pentru ieșirea MRTG, returnează cel mai mare număr de tranzacții pentru toate bazele de date de pe linia unu,
în timp ce linia 4 indică ce bază de date este.
versiune
("link simbolic: check_postgres_version") Verifică dacă versiunea necesară de Postgres este
alergare. The --avertizare si --critic opțiunile (este necesară doar una) trebuie să aibă formatul
X Y or XYZ Unde X este numărul major al versiunii, Y este numărul de versiune minoră și Z is
revizuirea.
Exemplul 1: Dați un avertisment dacă baza de date de pe portul 5678 nu este versiunea 8.4.10:
verifica_versiunea_postgres --port=5678 -w=8.4.10
Exemplul 2: dați un avertisment dacă bazele de date pe gazde vale, cereale sau sunshine nu sunt 8.3:
check_postgres_version -H valley,grain,sunshine --critical=8.3
Pentru ieșirea MRTG, raportează un 1 sau un 0 indicând succesul sau eșecul pe prima linie. The
a patra linie indică versiunea curentă. Versiunea trebuie furnizată prin intermediul „--mrtg”
opțiune.
wal_files
("link simbolic: check_postgres_wal_files") Verifică câte fișiere WAL există în pg_xlog
director, care se găsește în afara dvs directorul_date, uneori ca un link simbolic către altul
disc fizic din motive de performanță. Această acțiune trebuie să fie rulată ca superutilizator, pentru a
accesați conținutul pg_xlog director. Versiunea minimă pentru a utiliza această acțiune este
Postgres 8.1. The --avertizare si --critic opțiunile sunt pur și simplu numărul de fișiere din fișierul
pg_xlog director. Numărul pe care să îl setați va varia, dar trebuie să puneți un ghid general
un numar putin mai mare decat este in mod normal acolo, pentru a surprinde problemele devreme.
În mod normal, fișierele WAL sunt închise și apoi reutilizate, dar o tranzacție deschisă de lungă durată sau a
defect comandă_arhivă script, poate determina Postgres să creeze prea multe fișiere. În cele din urmă,
acest lucru va face ca discul pe care se află să rămână fără spațiu, moment în care Postgres o va face
închide.
Exemplul 1: verificați dacă numărul de fișiere WAL este de 20 sau mai puțin pe gazda „pluto”
check_postgres_wal_files --host=pluto --critical=20
Pentru ieșirea MRTG, raportează numărul de fișiere WAL pe linia 1.
rebuild_symlinks
rebuild_symlinks_force
Această acțiune nu necesită alte argumente și nu se conectează la nicio bază de date, ci pur și simplu
creează legături simbolice în directorul curent pentru fiecare acțiune, în formular
verifica_postgres_. Dacă fișierul există deja, acesta nu va fi suprascris. Dacă
acțiunea este rebuild_symlinks_force, apoi legăturile simbolice vor fi suprascrise. Optiunea
--symlinks este un mod mai scurt de a spune --action=rebuild_symlinks
BASIC FILTRU
Opțiunile --include si --exclude poate fi combinat pentru a limita lucrurile care sunt verificate,
în funcţie de acţiune. Numele bazei de date poate fi filtrat când se utilizează următoarele
acțiuni: backend, database_size, locks, query_time, txn_idle și txn_time. Numele lui
o relație poate fi filtrată atunci când se utilizează următoarele acțiuni: bloat, index_size,
table_size, relation_size, last_vacuum, last_autovacuum, last_analyze și
last_autoanalyze. Numele unei setări poate fi filtrat când se utilizează sets_checksum
acțiune. Numele unui sistem de fișiere poate fi filtrat când se utilizează acțiunea disk_space.
Dacă este dată doar o opțiune de includere, atunci NUMAI acele intrări care se potrivesc vor fi verificate.
Cu toate acestea, dacă sunt date atât exclude cât și includ, excluderea se face mai întâi și includerea
după, pentru a restabili lucruri care ar fi putut fi excluse. Ambii --include si --exclude poate să
să fie date de mai multe ori și/sau ca liste separate prin virgulă. O tildă principală se va potrivi cu
următorul cuvânt ca expresie regulată.
Pentru a potrivi o schemă, terminați termenul de căutare cu o singură punct. Pot fi folosite tilde conducătoare
si pentru scheme.
Fiți atenți când utilizați filtrarea: o regulă de includere pe backend, de exemplu, poate
nu raportați probleme nu numai pentru că baza de date potrivită nu avea backend-uri, ci și pentru că dvs
a scris greșit numele bazei de date!
Exemple:
Verifică numai articolele numite pg_class:
--include=pg_class
Verifică numai articolele care conțin literele „pg_”:
--include=~pg_
Verificați numai elementele care încep cu „pg_”:
--include=~^pg_
Excludeți elementul numit „test”:
--exclude=test
Excludeți toate articolele care conțin literele „test:
--exclude=~test
Excludeți toate articolele din schema „pg_catalog”:
--exclude='pg_catalog.'
Excludeți toate articolele care conțin literele „as”, dar permiteți elementul „faceoff”:
--exclude=~as --include=faceoff
Excludeți toate articolele care încep cu literele „pg_”, care conțin literele „slon” sau
care sunt denumite „sql_settings” sau „verde”. Verificați în mod specific articolele cu literele
„prod” în numele lor și verificați întotdeauna elementul numit „pg_relname”:
--exclude=~^pg_,~slon,sql_settings --exclude=verde --include=~prod,pg_relname
USER NUME FILTRU
Opțiunile --includeutilizator si --excludeuser poate fi folosit pentru unele acțiuni doar pentru a examina
obiecte de bază de date deținute de (sau care nu sunt deținute de) unul sau mai mulți utilizatori. Un --includeutilizator opțiune
intotdeauna atu pe o --excludeuser opțiune. Puteți da fiecare opțiune de mai multe ori pentru
mai mulți utilizatori sau puteți oferi o listă separată prin virgulă. Acțiunile pe care le utilizează în prezent
aceste opțiuni sunt:
dimensiunea_bază de date
ultima_analiza
last_autoanalyze
ultimul_vacuum
ultimul_autovacuum
timp_interogare
dimensiune_relație
txn_time
Exemple:
Verificați numai articolele deținute de utilizatorul numit greg:
--includeuser=greg
Verificați numai articolele deținute fie de watson, fie de crick:
--includeuser=watson,crick
Verificați numai articolele deținute de crick, franklin, watson sau wilkins:
--includeuser=watson --includeuser=franklin --includeuser=crick,wilkins
Verificați toate articolele, cu excepția celor care aparțin utilizatorului scott:
--excludeuser=scott
TEST MODE
Pentru a ajuta la configurarea lucrurilor, acest program poate fi rulat într-un „mod de testare” prin specificarea
--Test opțiune. Acest lucru va efectua câteva teste de bază pentru a vă asigura că bazele de date pot fi
contactat și că sunt îndeplinite anumite cerințe prealabile pentru fiecare acțiune, cum ar fi dacă utilizatorul este
un superutilizator, dacă versiunea Postgres este suficient de nouă și dacă stats_row_level este activat.
Utilizați online check_postgres_database_sizep folosind serviciile onworks.net