У нас там Postgres, але я хз што з ім рабіць (з)

Гэта цытата аднаго з маіх знаёмых які калісьці даўно звяртаўся да мяне з пытаннем пра Postgres. Тады мы за пару дзён вырашылі яго праблему і падзякаваўшы мяне ён дадаў: "Добра, калі ёсць знаёмы DBA".

Але што рабіць, калі няма знаёмага DBA? Варыянтаў адказу можа быць даволі шмат, пачынаючы ад пашукаць сярод сяброў сяброў і заканчваючы да вывучыць пытанне самастойна. Але які б адказ не прыйшоў да вас у галаву, у мяне для вас добрая навіна. У тэставым рэжыме мы запусцілі сэрвіс рэкамендацый для Postgres і за ўсё што вакол яго. Што гэта такое і як мы дакаціліся да жыцця такога

Навошта гэта ўсё?

Postgres гэта прынамсі не проста, а часам і вельмі складана. Залежыць ад ступені ўцягнутасці і адказнасці.

Тым хто ў operations трэба сачыць за тым каб Postgres як сэрвіс працаваў спраўна і стабільна – сачыць за утылізацыяй рэсурсаў, за даступнасцю, за адэкватнасцю канфігурацыі, перыядычна праводзіць абнаўленні і рэгулярныя праверкі здароўя. Тым хто ў распрацоўцы і піша прыкладанні, у агульных рысах трэба сачыць за тым як прыкладанне ўзаемадзейнічае з базай і што яно не стварае аварыйных сітуацый якія маглі б абрынуць базу. Калі чалавеку не павезла настолькі што ён техлід/тэхдзір, то яму важна каб Postgres у цэлым працаваў надзейна, прадказальна і не ствараў праблем, пры гэтым пажадана самому не апускацца ў Postgres глыбока і надоўга.

У любым з гэтых выпадкаў ёсьць ты і Postgres. Каб добра абслугоўваць Postgres у ім трэба нядрэнна разбірацца і ўяўляць як ён уладкованы. Калі Postgres не з'яўляецца прамой спецыялізацыяй, то на яго вывучэнне можна патраціць даволі шмат часу. У ідэальным выпадку калі ёсць час і жаданне, тое не заўсёды зразумела з чаго пачаць, як і куды рухацца.

Нават калі абкласціся маніторынгам, які па ідэі павінен аблегчыць эксплуатацыю, пытанне экспертных ведаў застаецца адкрытым. Каб умець чытаць і разумець графікі трэба ўсё таксама мець добрае ўяўленне аб тым, як уладкованы Postgres. У адваротным выпадку любы маніторынг ператвараецца ў невясёлыя карцінкі і спам ад алертаў у выпадковы час сутак.

зброю якраз зроблены для таго, каб аблегчыць эксплуатацыю Postgres. Сэрвіс збірае і аналізуе дадзеныя аб Postgres'е і дае рэкамендацыі аб тым, што можна палепшыць.

Асноўная мэта сэрвісу гэта даваць зразумелыя рэкамендацыі, якія даюць уяўленне аб тым, што адбываецца і што трэба рабіць далей.

Для адмыслоўцаў у якіх няма экспертных ведаў, рэкамендацыі даюць адпраўную кропку для падвышэння кваліфікацыі. Прасунутым спецыялістам рэкамендацыі паказваюць на тыя моманты, на якія варта звярнуць увагу. У гэтым плане Weaponry выступае ў ролі памагатага які выконвае руцінныя задачы па пошуку праблем ці недахопаў і патрабуюць асобнай увагі. Weaponry можна параўнаць з лінтэрам які правярае Postgres і паказвае на недахопы.

Як ідуць справы зараз

На дадзены момант зброю знаходзіцца ў тэставым рэжыме і на бясплатнай аснове, рэгістрацыя пакуль часова абмежавана. Сумесна з некалькімі добраахвотнікамі дапілоўваем рухавік рэкамендацый на каля-баявых базах, выяўляем ілжывыя спрацоўванні і працуем над тэкстам рэкамендацый.

Дарэчы рэкамендацыі пакуль даволі прамалінейныя - проста кажуць што і як рабіць, без дадатковых падрабязнасцяў - так што першы час давядзецца пераходзіць па спадарожных спасылках, альбо дагугліваць. Праверкі і рэкамендацыі ахопліваюць наладкі сістэмы і абсталявання, наладкі самога Postgres, схему ўнутры, якія выкарыстоўваюцца рэсурсы. У планах яшчэ даволі шмат рэчаў, якія трэба дадаць.

Ну і вядома, мы знаходзімся ў пошуку добраахвотнікаў якія гатовыя паспрабаваць сэрвіс і даць зваротную сувязь. Яшчэ ў нас ёсць дэма, можна зайсці і паглядзець. Калі вы зразумелі што вам такое трэба і гатовы паспрабаваць, то пішыце нам на пошту.

Updated 2020-09-16. Getting started.

Пасля рэгістрацыі карыстачу прапануецца стварыць праект - які дазваляе аб'ядноўваць інстансы БД у групы. Пасля стварэння праекту карыстач накіроўваецца ў інструкцыю па наладзе і ўсталёўцы агента. Калі ў двух словах, тое трэба стварыць карыстачоў для агента, пасля чаго спампаваць скрыпт усталёўкі агента і запусціць яго. У 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

Дадаць каментар