sql >> Database >  >> RDS >> PostgreSQL

PostgreSQL bewaken in een hybride omgeving

Hybrid Cloud is een recent concept dat een paar jaar is uitgebreid en nu een veelgebruikte topologie is in elk bedrijf voor een Disaster Recovery Plan (DRP), of zelfs om redundantie op uw systemen te hebben.

Zodra uw Hybrid Cloud-omgeving up-and-running is, moet u altijd weten wat er gebeurt. Monitoring is een must als je zeker wilt weten dat alles goed gaat of als er iets moet veranderen. Voor elke databasetechnologie zijn er verschillende dingen om te controleren. Sommige hiervan zijn specifiek voor de database-engine, leverancier of zelfs de specifieke versie die u gebruikt.

In deze blog zullen we zien wat u moet controleren in een PostgreSQL-database die draait op een Hybrid Cloud-omgeving en hoe ClusterControl u hierbij kan helpen.

Wat te controleren in PostgreSQL

Bij het bewaken van een databasecluster of -knooppunt zijn er twee belangrijke zaken waarmee u rekening moet houden:het besturingssysteem en de database zelf. U moet bepalen welke statistieken u van beide kanten gaat controleren en hoe u dit gaat doen.

Houd er rekening mee dat wanneer een van uw statistieken wordt beïnvloed, dit ook van invloed kan zijn op andere, waardoor het oplossen van het probleem ingewikkelder wordt. Het hebben van een goed monitoring- en waarschuwingssysteem is belangrijk om deze taak zo eenvoudig mogelijk te maken.

Besturingssysteembewaking

Een belangrijk ding (dat gemeenschappelijk is voor alle database-engines en zelfs voor alle systemen) is het bewaken van het gedrag van het besturingssysteem. Laten we een paar punten bekijken om hier te controleren.

CPU-gebruik

Een buitensporig percentage CPU-gebruik kan een probleem zijn als dit niet gebruikelijk is. In dit geval is het belangrijk om het proces of de processen te identificeren die dit probleem veroorzaken. Als het probleem het databaseproces is, moet u controleren wat er in de database gebeurt.

RAM-geheugen of SWAP-gebruik

Als u een hoge waarde voor deze statistiek ziet en er is niets veranderd in uw systeem, moet u waarschijnlijk uw databaseconfiguratie controleren. Parameters zoals shared_buffers en work_mem kunnen dit rechtstreeks beïnvloeden, omdat ze de hoeveelheid geheugen definiëren die voor de PostgreSQL-database kan worden gebruikt.

Schijfgebruik

Een abnormale toename van het gebruik van schijfruimte of een buitensporig gebruik van schijftoegang zijn belangrijke dingen om te controleren, aangezien er een groot aantal fouten in het PostgreSQL-logbestand kan worden vastgelegd of een slechte cacheconfiguratie die kan een belangrijk schijftoegangsverbruik genereren in plaats van geheugen te gebruiken om de query's te verwerken.

Gemiddelde laden

Het heeft te maken met de drie bovengenoemde punten. Een hoge gemiddelde belasting kan worden gegenereerd door overmatig CPU-, RAM- of schijfgebruik.

Netwerk

Een netwerkprobleem kan van invloed zijn op alle systemen, aangezien de applicatie geen verbinding kan maken (of geen verbinding kan maken met verliezende pakketten) met de database, dus dit is inderdaad een belangrijke statistiek om te controleren. U kunt latentie of pakketverlies controleren, en het belangrijkste probleem kan een netwerkverzadiging, een hardwareprobleem of gewoon een slechte netwerkconfiguratie zijn.

Databasecontrole

Het bewaken van je PostgreSQL-database is niet alleen belangrijk om te zien of je een probleem hebt, maar ook om te weten of je iets moet veranderen om de prestaties van je database te verbeteren, dat is waarschijnlijk een van de belangrijkste dingen te monitoren in een database. Laten we eens kijken naar enkele statistieken die hiervoor belangrijk zijn.

Query-controle

Over het algemeen zijn de databases standaard geconfigureerd met het oog op compatibiliteit en stabiliteit, dus u moet uw query's en hun patroon kennen en uw databases configureren afhankelijk van het verkeer dat u heeft. Hier kunt u de opdracht EXPLAIN gebruiken om het queryplan voor een specifieke query te controleren, en u kunt ook het aantal SELECT-, INSERT-, UPDATE- of DELETE's op elk knooppunt controleren. Als u een lange zoekopdracht of een groot aantal zoekopdrachten tegelijkertijd heeft, kan dat een probleem zijn voor alle systemen.

Actieve sessies

Je moet ook het aantal actieve sessies in de gaten houden. Als u de limiet nadert, moet u controleren of er iets mis is of dat u alleen de maximale verbindingswaarde in de databaseconfiguratie moet verhogen. Het verschil in het aantal kan een toename of afname van aansluitingen zijn. Slecht gebruik van pooling van verbindingen, vergrendeling of netwerkproblemen zijn de meest voorkomende problemen met betrekking tot het aantal verbindingen.

Databasevergrendelingen

Als je een vraag hebt die wacht op een andere vraag, moet je controleren of die andere vraag een normaal proces is of iets nieuws. In sommige gevallen, als iemand bijvoorbeeld een update uitvoert op een grote tafel, kan deze actie het normale gedrag van uw database beïnvloeden en een groot aantal vergrendelingen genereren.

Replicatiestatus

De belangrijkste meetwaarden die moeten worden gecontroleerd op replicatie zijn de vertraging en de replicatiestatus. De meest voorkomende problemen zijn netwerkproblemen, problemen met hardwarebronnen of problemen met de maatvoering. Als u een replicatieprobleem ondervindt, moet u dit zo snel mogelijk weten, aangezien u dit moet oplossen om de omgeving met hoge beschikbaarheid te garanderen.

Back-ups

Het voorkomen van gegevensverlies is een van de basistaken van DBA, dus u hoeft niet alleen de back-up te maken, u moet ook weten of de back-up is voltooid en of deze bruikbaar is. Meestal wordt met dit laatste punt geen rekening gehouden, maar het is waarschijnlijk de belangrijkste controle in een back-upproces.

Databaselogboeken

U moet uw databaselogboek controleren op fouten, authenticatieproblemen of zelfs langlopende query's. De meeste fouten worden in het logbestand geschreven met gedetailleerde nuttige informatie om ze op te lossen.

Meldingen en waarschuwingen

Alleen het monitoren van een systeem is niet genoeg als u geen melding over elk probleem ontvangt. Zonder een waarschuwingssysteem zou je naar de monitoringtool moeten gaan om te zien of alles in orde is, en het zou mogelijk kunnen zijn dat je een groot probleem hebt sinds vele uren geleden. Deze waarschuwingstaak kan worden gedaan door e-mailwaarschuwingen, tekstwaarschuwingen of andere hulpmiddelen zoals Slack te gebruiken.

Het is echt moeilijk om een ​​tool te vinden om alle benodigde statistieken voor PostgreSQL te controleren, in het algemeen zul je er meer dan één moeten gebruiken en zelfs wat scripting zal moeten worden gemaakt. Een manier om de bewakings- en waarschuwingstaak te centraliseren, is door ClusterControl te gebruiken, dat u functies biedt zoals back-upbeheer, bewaking en waarschuwingen, implementatie en schaling, automatisch herstel en meer belangrijke functies om u te helpen bij het beheren van uw databases. Al deze functies op hetzelfde systeem.

Een belangrijk punt hier is dat ClusterControl werkt op de cloud, op locatie of zelfs een combinatie van beide. De vereiste hier is om SSH-toegang tot de knooppunten te hebben, en dan zorgt ClusterControl voor hen.

Uw PostgreSQL-database bewaken met ClusterControl

ClusterControl is een beheer- en bewakingssysteem dat helpt bij het implementeren, beheren, bewaken en schalen van uw databases vanuit een gebruiksvriendelijke interface. Het biedt ondersteuning voor de beste open-source databasetechnologieën en u kunt veel van de databasetaken automatiseren die u regelmatig moet uitvoeren, zoals het toevoegen en schalen van nieuwe knooppunten, het uitvoeren van back-ups en herstelbewerkingen, en meer.

Met ClusterControl kunt u uw servers in realtime bewaken met een vooraf gedefinieerde set dashboards om enkele van de meest voorkomende statistieken te analyseren.

Hiermee kunt u de beschikbare grafieken in het cluster aanpassen, en u kunt de op agenten gebaseerde controle inschakelen om meer gedetailleerde dashboards te genereren.

U kunt ook waarschuwingen maken, die u informeren over gebeurtenissen in uw cluster, of integreren met verschillende services zoals PagerDuty of Slack.

In de sectie Querymonitor kunt u de meest voorkomende zoekopdrachten, de lopende zoekopdrachten, uitbijters van zoekopdrachten en de zoekopdrachtstatistieken vinden om uw databaseverkeer te controleren.

Met deze functies kunt u zien hoe uw PostgreSQL-database werkt.

Voor back-upbeheer centraliseert ClusterControl het om uw gegevens te beschermen, beveiligen en herstellen, en met de back-upfunctie voor verificatie kunt u bevestigen of de back-up klaar is voor gebruik.

Deze verificatie-back-uptaak ​​herstelt de back-up op een aparte standalone host, zodat u zeker weet dat de back-up werkt.

Ten slotte hoeft u uw databaseknooppunt niet te openen om de logboeken te controleren, u kunt al uw databaselogboeken gecentraliseerd vinden in het gedeelte ClusterControl Log.

Zoals u kunt zien, kunt u alle genoemde zaken vanuit hetzelfde centrale systeem afhandelen:ClusterControl.

Bewaken met de ClusterControl-opdrachtregel

Voor het scripten en automatiseren van taken, of zelfs als je gewoon de voorkeur geeft aan de opdrachtregel, heeft ClusterControl de s9s-tool. Het is een opdrachtregelprogramma voor het beheren of bewaken van uw databasecluster.

Clusterlijst

Knooppuntenlijst

Je kunt alle taken (en zelfs meer) uitvoeren die beschikbaar zijn in de gebruikersinterface van ClusterControl, en je kunt deze functie integreren met een aantal externe tools zoals speling, om het vanaf daar te beheren.

Conclusie

Zoals u kunt zien, is monitoring absoluut noodzakelijk, of het nu on-premise, in de cloud of zelfs een combinatie daarvan draait, en de beste manier om dit te doen hangt af van de infrastructuur en het systeem zelf. In deze blog hebben we enkele belangrijke statistieken genoemd die u in uw PostgreSQL-omgeving moet controleren, hoe u ClusterControl kunt gebruiken om het werk te doen.


  1. Hoe loop ik door een MySQL-query via PDO in PHP?

  2. Het volgnummer van een database-e-mailaccount binnen een profiel in SQL Server (T-SQL) wijzigen

  3. DAY() Voorbeelden – MySQL

  4. PLS-00201 identifier 'PACKAGENAME.PROCEDURENAME' moet worden gedeclareerd