Тази цитата е от един от моите познати, който някога се обърна към мен с въпрос за Postgres. Тогава за няколко дни решихме проблема му и, благодарейки ми, той добави: «Хубаво е, когато имаш познат DBA».
Но какво да правим, ако нямаме познат DBA? Отговорите могат да бъдат много, от търсене сред приятелите на приятелите до изучаване на въпроса самостоятелно. Но какъвто и отговор да ви дойде наум, имам добра новина за вас. В тестов режим стартирахме услуга за препоръки за Postgres и всичко, свързано с него. Какво представлява това и как стигнахме до тук?
Защо всичко това?
Postgres не е просто нещо, а понякога е много сложно. Всичко зависи от степента на ангажираност и отговорност.
За хората в операциите е важно да следят Postgres като услуга да работи правилно и стабилно — следят за използването на ресурсите, за наличността, за адекватността на конфигурацията, периодично провеждат актуализации и редовни проверки на състоянието. Хората, които разработват и пишат приложения, трябва да следят как приложението взаимодействува с базата данни и да не създават аварийни ситуации, които биха могли да сринат базата. Ако на някого не му е провървяло и е технически лидер/директор, му е важно Postgres да работи надеждно, предсказуемо и да не създава проблеми, като същевременно е желателно да не се задълбочава дълбоко в Postgres.
Във всеки от тези случаи имате вас и Postgres. За да обслужвате добре Postgres, трябва да разбирате как е устроен. Ако Postgres не е ваша пряка специализация, изучаването му може да отнеме доста време. В идеалния случай, когато имате време и желание, не винаги е ясно откъде да започнете и как да продължите.
Даже ако се е събрал мониторинг, който по принцип трябва да улесни експлоатацията, въпросът с експертните знания остава отворен. За да можете да четете и разбирате графики, все още трябва да имате добро разбиране за това как е устроен Postgres. В противен случай всякакъв мониторинг се превръща в тъжни картини и спам от известия през случайно време на денонощието.
е създаден специално, за да улесни експлоатацията на Postgres. Услугата събира и анализира данни за Postgres и дава препоръки за подобрения.
Основната цел на услугата е да предоставя ясни препоръки, които дават представа за това, какво се случва и какво трябва да се направи след това.
За специалисти без експертни знания, препоръките служат като отправна точка за повишаване на квалификацията. За напреднали специалисти препоръките посочват моментите, на които да се обърне внимание. В това отношение Weaponry е помощник, който изпълнява рутинни задачи по откриване на проблеми или недостатъци и изискващи внимание. Weaponry може да бъде сравнен с линтер, който проверява Postgres и посочва недостатъците.
Как е ситуацията в момента
В момента се намира в тестов режим и на безплатна база, регистрацията за момента е временно ограничена. В сътрудничество с няколко доброволци усъвършенстваме двигателя на препоръките на около боеви бази, откриваме фалшиви сработвания и работим върху текста на препоръките.
Препоръките все още са доста прости — просто указват какво и как да се направи, без допълнителни детайли — така че в началото ще се наложи да следвате свързаните линкове или да търсите допълнително. Контролите и препоръките обхващат настройки на системата и оборудването, настройки на самого Postgres, вътрешната схема, използваните ресурси. В плановете ни има още много неща, които трябва да добавим.
И разбира се, търсим доброволци, готови да изпробват услугата и да предоставят обратна връзка. Имаме и , можете да влезете и да разгледате. Ако разбирате, че това е нещо, от което имате нужда и сте готови да опитате, пишете ни на .
Актуализирано на 2020-09-16. Започнете.
След регистрацията на потребителя се предлага да създаде проект — който позволява да се обединят инстанции на БД в групи. След създаването на проекта, потребителят е насочен към инструкция за настройка и инсталиране на агента. В два думи, трябва да създадете потребители за агента, след което да изтеглите скрипта за инсталиране на агента и да го стартирате. В shell командите, това изглежда приблизително така:
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-da23f72c14a5Ако на хостинга има pgbouncer, то за свързване на агента ще е необходимо също да се създаде потребител. Конкретният начин за настройка на потребителя в pgbouncer може да бъде много вариативен и да зависи от използваната конфигурация. В общи линии настройката се свежда до добавяне на потребител в stats_users файла с конфигурация (обикновено това е pgbouncer.ini) и задаване на паролата (или нейния хеш) в файла, посочен в параметъра auth_file. При промяна на stats_users е необходимо рестартиране на pgbouncer.
Скриптът install.sh приема два задължителни аргумента, които са уникални за всеки проект, и чрез променливи на средата приема данните на създадените потребители. След това скриптът стартира агента в bootstrap режим — агентът копира себе си в PATH, създава конфигурация с данните, systemd единица и се стартира като systemd услуга.
На това инсталацията приключва. В рамките на няколко минути инстанцията на базата данни ще се появи в списъка с хостове в интерфейса и вече можете да разгледате първите препоръки. Но важен момент е, че много от препоръките изискват голямо количество натрупани метрики (поне за денонощие).
Източник: habr.com
