Dette er et citat fra en af mine bekendte, som engang henvendte sig til mig med et spørgsmål om Postgres. På den tid løste vi hans problem på et par dage, og efter at have takket mig, tilføjede han: "Det er godt at have en DBA, man kender."
Men hvad skal man gøre, hvis man ikke har en bekendt DBA? Der kan være mange svarmuligheder, lige fra at lede blandt venners venner til at studere emnet selv. Men uanset hvilket svar, der kommer til dig, har jeg en god nyhed. Vi har i testmode lanceret en anbefalingstjeneste for Postgres og alt, hvad der omhandler det. Hvad er det, og hvordan endte vi her?
Hvorfor alt dette?
Postgres er i det mindste ikke bare simpelt, men nogle gange også meget komplekst. Det afhænger af graden af involvering og ansvar.
For dem, der arbejder med drift, er det vigtigt at sikre, at Postgres som service fungerer korrekt og stabilt — at overvåge ressourceudnyttelse, tilgængelighed, konfigureringens rimelighed, og regelmæssigt udføre opdateringer og sundhedstjek. For dem, der udvikler og skriver applikationer, er det generelt vigtigt at sikre, at applikationen interagerer korrekt med databasen og ikke skaber uheldige situationer, der kan få databasen til at kollapse. Hvis en person er så uheldig at være tech lead/tech director, er det vigtigt, at Postgres i det hele taget fungerer pålideligt, forudsigeligt og uden at skabe problemer, samtidig med at man helst ikke selv skal dykke for dybt og længe ned i Postgres.
I ethvert af disse tilfælde er der dig og Postgres. For at kunne betjene Postgres godt, er det nødvendigt at have en god forståelse af, hvordan det fungerer. Hvis Postgres ikke er ens direkte specialisering, kan det tage meget tid at lære det. I den ideelle situation, hvor der er tid og lyst, er det dog ikke altid klart, hvor man skal starte, hvordan man skal bevæge sig fremad.
Selv hvis man har etableret overvågning, som teoretisk set skal lette driften, forbliver spørgsmålet om ekspertviden åbent. For at kunne læse og forstå graferne er det stadig nødvendigt at have en god forståelse af, hvordan Postgres fungerer. Ellers vil enhver overvågning ende med at blive triste billeder og spam fra alerter på vilkårlige tidspunkter.
er netop lavet for at lette driften af Postgres. Tjenesten indsamler og analyserer data om Postgres og giver anbefalinger om, hvad der kan forbedres.
Den primære målsætning med tjenesten er at give klare anbefalinger, der giver indblik i, hvad der sker, og hvad man skal gøre herefter.
For fagfolk uden ekspertviden giver anbefalingerne et udgangspunkt for at forbedre deres kvalifikationer. For avancerede fagfolk peger anbefalingerne på de aspekter, man bør være opmærksom på. På dette område fungerer Weaponry som en assistent, der udfører rutineopgaver med at finde problemer eller mangler, der kræver særlig opmærksomhed. Weaponry kan sammenlignes med en linter, der tjekker Postgres og peger på mangler.
Hvordan står det til nu?
I øjeblikket er i testmode og tilbydes gratis, registrering er midlertidigt begrænset. Sammen med flere frivillige er vi i gang med at forbedre anbefalingsmotoren på næsten-kampbaser, identificere falske positive og arbejde med teksten i anbefalingerne.
Som det er nu, er anbefalingerne ret direkte - de fortæller blot hvad og hvordan man skal gøre, uden yderligere detaljer - så i starten bliver man nødt til at klikke på de ledsagende links eller foretage yderligere søgninger. Tjek og anbefalinger dækker system- og hardwareindstillinger, indstillinger i Postgres selv, den interne skema og de ressourcer, der bruges. Der er mange ting, der stadig skal tilføjes.
Og selvfølgelig er vi på udkig efter frivillige, der er villige til at prøve tjenesten og give feedback. Vi har også , man kan få adgang og se. Hvis du har forstået, at dette er noget for dig og er klar til at prøve, så skriv til os på .
Opdateret 2020-09-16. Kom i gang.
Efter registreringen bliver brugeren bedt om at oprette et projekt - som giver mulighed for at samle DB-instanser i grupper. Efter oprettelsen af projektet ledes brugeren til vejledningen om opsætning og installation af agenten. Kort sagt skal der oprettes brugere til agenten, hvorefter skripten til installationen af agenten skal downloades og køres. Det ser cirka sådan her ud i shell-kommandoer:
psql -c "CREATE ROLE pgscv WITH LOGIN SUPERUSER PASSWORD 'A7H8Wz6XFMh21pwA'"
export PGSCV_PG_PASSWORD=A7H8Wz6XFMh21pwA
curl -s https://dist.weaponry.io/pgscv/install.sh |sudo -E sh -s - 1 6ada7a04-a798-4415-9427-da23f72c14a5Hvis der er pgbouncer på hosten, skal der også oprettes en bruger for at forbinde agenten. Den specifikke måde at konfigurere brugeren i pgbouncer på kan variere meget og afhænger i høj grad af den anvendte konfiguration. Generelt set handler konfigurationen om at tilføje brugeren til stats_users konfigurationsfilen (normalt er dette pgbouncer.ini) og angive adgangskoden (eller dens hash) i den fil, der er angivet i parameteren auth_file. Når stats_users ændres, kræves der genstart af pgbouncer.
Scriptet install.sh tager et par obligatoriske argumenter, der er unikke for hvert projekt, og gennem miljøvariabler tager det detaljerne for de oprettede brugere. Derefter kører scriptet agenten i bootstrap-tilstand — agenten kopierer sig selv til PATH, opretter en konfiguration med detaljer, systemd-enhed og starter som en systemd-tjeneste.
Installation er hermed afsluttet. Inden for et par minutter vil DB-instansen dukke op på listen over værter i grænsefladen, og man kan allerede se de første anbefalinger. Men et vigtigt punkt er, at mange anbefalinger kræver et stort antal opsamlede metrikker (mindst i løbet af en dag).
Kilde: habr.com
