PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Мониторинг на PostgreSQL в хибридна среда

Хибридният облак е скорошна концепция, която беше разширена от няколко години и сега е често срещана топология във всяка компания за план за възстановяване при бедствия (DRP) или дори за резервиране на вашите системи.

След като вашата хибридна облачна среда стартира и работи, ще трябва да знаете какво се случва през цялото време. Наблюдението е задължително, ако искате да сте сигурни, че всичко върви добре или ако може да се наложи да промените нещо. За всяка технология на базата данни има няколко неща за наблюдение. Някои от тях са специфични за двигателя на базата данни, доставчика или дори конкретната версия, която използвате.

В този блог ще видим какво трябва да наблюдавате в PostgreSQL база данни, работеща в хибридна облачна среда, и как ClusterControl може да ви помогне с тази задача.

Какво да наблюдавате в PostgreSQL

Когато наблюдавате клъстер или възел на база данни, има две основни неща, които трябва да вземете предвид:операционната система и самата база данни. Ще трябва да дефинирате кои показатели ще наблюдавате от двете страни и как ще го направите.

Имайте предвид, че когато един от вашите показатели е засегнат, това може да засегне и други, което прави отстраняването на проблема по-сложно. Наличието на добра система за наблюдение и известяване е важно, за да направите тази задача възможно най-проста.

Наблюдение на операционната система

Едно важно нещо (което е общо за всички машини за бази данни и дори за всички системи) е да наблюдавате поведението на операционната система. Нека видим някои точки, които да проверим тук.

Използване на процесора

Прекомерният процент използване на процесора може да бъде проблем, ако не е обичайно поведение. В този случай е важно да се идентифицират процеса/процесите, които генерират този проблем. Ако проблемът е в процеса на база данни, ще трябва да проверите какво се случва в базата данни.

Използване на RAM памет или SWAP

Ако виждате висока стойност за този показател и нищо не се е променило във вашата система, вероятно трябва да проверите конфигурацията на вашата база данни. Параметри като shared_buffers и work_mem могат да повлияят пряко на това, тъй като определят количеството памет, което да може да се използва за базата данни PostgreSQL.

Използване на диск

Ненормалното увеличаване на използването на дисково пространство или прекомерната консумация на достъп до диска са важни неща, които трябва да наблюдавате, тъй като може да имате голям брой грешки, регистрирани в регистрационния файл на PostgreSQL или лоша конфигурация на кеша, които биха могли генерира важно потребление на достъп до диск, вместо да използва памет за обработка на заявките.

Средно зареждане

Това е свързано с трите точки, споменати по-горе. Високо средно натоварване може да бъде генерирано от прекомерно използване на процесора, RAM или диска.

Мрежа

Проблем с мрежата може да засегне всички системи, тъй като приложението не може да се свърже (или да свърже губещи пакети) към базата данни, така че това наистина е важен показател за наблюдение. Можете да наблюдавате забавянето или загубата на пакети, като основният проблем може да бъде насищане на мрежата, хардуерен проблем или просто лоша конфигурация на мрежата.

Наблюдение на базата данни

Наблюдението на вашата PostgreSQL база данни е важно не само, за да видите дали имате проблем, но и да знаете дали трябва да промените нещо, за да подобрите производителността на вашата база данни, това вероятно е едно от най-важните неща за наблюдение в база данни. Нека видим някои показатели, които са важни за това.

Наблюдение на заявки

По принцип базите данни са конфигурирани с оглед на съвместимостта и стабилността по подразбиране, така че трябва да знаете своите заявки и техния модел и да конфигурирате базите си в зависимост от трафика, който имате. Тук можете да използвате командата EXPLAIN, за да проверите плана на заявката за конкретна заявка, както и да наблюдавате количеството на SELECT, INSERT, UPDATE или DELETE на всеки възел. Ако имате дълга заявка или голям брой заявки, изпълнявани едновременно, това може да е проблем за всички системи.

Активни сесии

Трябва също да наблюдавате броя на активните сесии. Ако сте близо до лимита, трябва да проверите дали нещо не е наред или просто трябва да увеличите максималната стойност на връзката в конфигурацията на базата данни. Разликата в броя може да бъде увеличаване или намаляване на връзките. Лошото използване на пуловете на връзките, заключването или проблемите с мрежата са най-честите проблеми, свързани с броя на връзките.

Заключване на базата данни

Ако имате заявка, която чака друга заявка, трябва да проверите дали тази друга заявка е нормален процес или нещо ново. В някои случаи, ако някой прави актуализация на голяма маса, например, това действие може да повлияе на нормалното поведение на вашата база данни, генерирайки голям брой заключвания.

Състояние на репликация

Ключовите показатели за наблюдение за репликация са изоставането и състоянието на репликация. Най-честите проблеми са проблеми с мрежата, проблеми с хардуерните ресурси или проблеми с оразмеряването. Ако сте изправени пред проблем с репликацията, ще трябва да знаете това възможно най-скоро, тъй като ще трябва да го поправите, за да осигурите среда с висока наличност.

Резервни копия

Избягването на загуба на данни е една от основните задачи на DBA, така че не е нужно само да правите резервно копие, трябва да знаете дали архивирането е завършено и дали е използваемо. Обикновено тази последна точка не се взема предвид, но това е може би най-важната проверка в процеса на архивиране.

Регистрации на базата данни

Трябва да наблюдавате дневника на вашата база данни за грешки, проблеми с удостоверяването или дори продължителни заявки. Повечето от грешките са записани в регистрационния файл с подробна полезна информация за отстраняването им.

Известия и сигнали

Само следене на система не е достатъчно, ако не получавате известие за всеки проблем. Без система за предупреждение трябва да отидете до инструмента за наблюдение, за да видите дали всичко е наред и е възможно да имате голям проблем от преди много часове. Тази задача за известяване може да се извърши чрез използване на имейл сигнали, текстови сигнали или други инструменти като Slack.

Наистина е трудно да се намери инструмент за наблюдение на всички необходими показатели за PostgreSQL, като цяло ще трябва да използвате повече от един и дори ще трябва да се направят някои скриптове. Един от начините за централизиране на задачата за наблюдение и предупреждение е чрез използване на ClusterControl, който ви предоставя функции като управление на архивиране, наблюдение и предупреждение, внедряване и мащабиране, автоматично възстановяване и по-важни функции, които да ви помогнат да управлявате вашите бази данни. Всички тези функции в една и съща система.

Един важен момент тук е, че ClusterControl работи в облака, On-prem или дори комбинация от двете. Изискването тук е да имате SSH достъп до възлите и след това ClusterControl ще се погрижи за тях.

Наблюдение на вашата PostgreSQL база данни с ClusterControl

ClusterControl е система за управление и наблюдение, която помага за внедряване, управление, наблюдение и мащабиране на вашите бази данни от удобен интерфейс. Той поддържа най-добрите технологии за бази данни с отворен код и можете да автоматизирате много от задачите на базата данни, които трябва да изпълнявате редовно, като добавяне и мащабиране на нови възли, стартиране на архивиране и възстановяване и др.

ClusterControl ви позволява да наблюдавате сървърите си в реално време с предварително дефиниран набор от табла за управление, за да анализирате някои от най-често срещаните показатели.

Позволява ви да персонализирате наличните графики в клъстера и можете да активирате базирания на агент мониторинг, за да генерирате по-подробни табла за управление.

Можете също да създавате сигнали, които ви информират за събития във вашия клъстер или да се интегрират с различни услуги като PagerDuty или Slack.

В секцията за наблюдение на заявки можете да намерите най-честите заявки, изпълняваните заявки, отклонения от заявките и статистическите данни на заявките, за да наблюдавате трафика на вашата база данни.

С тези функции можете да видите как върви вашата PostgreSQL база данни.

За управление на архивиране, ClusterControl го централизира, за да защити, защити и възстанови вашите данни, а с функцията за архивиране за проверка можете да потвърдите дали архивирането е готово.

Това задание за архивиране за проверка ще възстанови архива в отделен самостоятелен хост, така че можете да се уверите, че архивирането работи.

Накрая, не е необходимо да осъществявате достъп до своя възел на базата данни, за да проверите регистрационните файлове, можете да намерите всичките си регистрационни файлове на базата данни, централизирани в секцията ClusterControl Log.

Както виждате, можете да обработвате всички споменати неща от една и съща централизирана система:ClusterControl.

Мониторинг с командния ред на ClusterControl

За скриптове и автоматизиране на задачи или дори ако предпочитате просто командния ред, ClusterControl разполага с инструмента s9s. Това е инструмент от командния ред за управление или наблюдение на клъстера на вашата база данни.

Списък с клъстери

Списък с възли

Можете да изпълнявате всички задачи (и дори повече), налични в потребителския интерфейс на ClusterControl, и можете да интегрирате тази функция с някои външни инструменти като slack, за да я управлявате от там.

Заключение

Както можете да видите, наблюдението е абсолютно необходимо, независимо дали работи локално, в облака или дори в комбинация от тях, а най-добрият начин за това как да го направите зависи от инфраструктурата и самата система. В този блог споменахме някои важни показатели за наблюдение във вашата PostgreSQL среда, как да използвате ClusterControl, за да вършите работата.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Свържете се с база данни PostgreSQL в Docker контейнер

  2. Генериране на потребителска парола за postgresql

  3. PostgreSQL предава данни от рекурсивния CTE към функцията

  4. Как да pg_dump RDS Postgres база данни?

  5. Клауза Go и IN в Postgres