Naar hoofdinhoud springen

Handleidingen / Monitoringhandleidingen: elk checktype, stap voor stap

Handleiding databasemonitoring

Een Database-check verbindt op een schema met een databaseserver, bevestigt dat de verbinding lukt, en kan optioneel een query uitvoeren en het resultaat ervan beoordelen. Gebruik hem wanneer een URL-gebaseerde check niet volstaat omdat wat in de gaten gehouden moet worden achter de applicatie zit in plaats van ervoor: een connection pool die volloopt, een geplande taak die een tabel verouderd laat, of een query die vroeger één rij teruggaf en nu geen enkele.

Voordat u begint

Database-checks draaien niet vanaf het gedistribueerde publieke monitoringnetwerk van HostTracker zoals een Http- of Ping-check dat doet, dus dit formulier heeft helemaal geen sectie Monitoringlocaties. In plaats daarvan belt elke check uw server vanaf de eigen private controle-infrastructuur van HostTracker, met twee vaste bronadressen: 4.207.101.172 en 20.107.152.200 (Noord-Europa). Voordat u de monitor opslaat, voegt u beide adressen toe aan de allowlist van de firewall of security group van uw databaseserver, en zorgt u ervoor dat de server verbindingen op zijn poort accepteert vanaf het publieke internet, of op zijn minst vanaf die twee adressen. Als de poort niet bereikbaar is, faalt elke check met een verbindingsfout, ongeacht hoe de rest van de monitor is geconfigureerd.

Zet het monitoringaccount zelf op voordat u begint: maak een databasegebruiker specifiek voor de check, geef hem alleen wat de check nodig heeft (doorgaans alleen de mogelijkheid om te verbinden, plus SELECT op de tabel die uw query raakt), en vermijd een applicatie- of beheerdersaccount te hergebruiken. Als de query die u van plan bent te draaien data wijzigt, geeft u dat account schrijftoegang tot alleen de specifieke betrokken tabel, niets breders.

Doeldatabase

Drie velden identificeren waarmee de check verbindt, en staan boven de inklapbare secties omdat ze verplicht zijn:

  • Servertype - een keuzelijst met de ondersteunde providers: Microsoft SQL Server, Oracle, MySQL, PostgreSQL en Firebird.
  • Server : Poort - de hostnaam of het IP van de databaseserver, en zijn poort. Het servertype wijzigen vult automatisch de gangbare standaardpoort van die provider in (1433 voor SQL Server, 1521 voor Oracle, 3306 voor MySQL, 5432 voor PostgreSQL, 3050 voor Firebird) - u hoeft hem alleen te overschrijven als uw server elders luistert.
  • Database (of, voor Oracle, in plaats daarvan Service en Instantienaam (SID)) - de naam van de database om mee te verbinden. Voor Oracle kunt u de servicenaam, de SID, of beide opgeven, afhankelijk van hoe uw listener is geconfigureerd.

Daaronder laat een optioneel veld Naam u de monitor labelen voor waarschuwingen, rapporten en widgets - handig zodra u meer dan één database-check heeft en ze in één oogopslag uit elkaar moet houden.

Hoofdinstellingen

Deze groep bevat het schema en de twee algemene schakelaars die elk checktype deelt:

  • Interval - hoe vaak de check draait, aangeboden van 10 minuten tot 24 uur (10, 15, 30, 45 minuten, dan 1, 2, 4, 6, 12 en 24 uur), plus een cron-schema als alternatief voor minder regelmatige timing. Database-checks bieden niet de intervallen onder de 10 minuten die sommige andere checktypen wel bieden.
  • Tags - vrije labels om monitors elders in het dashboard te groeperen en filteren.
  • Volledig log - slaat elk individueel checkresultaat op in plaats van alleen gegroepeerde samenvattingen, handig wanneer u exacte responstijden of waarden over tijd wilt zien in plaats van alleen up/down-geschiedenis.
  • Open statistieken - maakt de statistieken- en logpagina van deze monitor deelbaar, ook met mensen die niet zijn ingelogd.

Verbinding

Sectie Databaseverbinding met de velden voor DB-gebruikersnaam en wachtwoord, de opmerking dat checks worden bevraagd vanaf twee vaste HostTracker-IP-adressen in Noord-Europa om toe te voegen aan de allowlist van de databasefirewall, en de schakelaar Opnieuw proberen bij mislukte verbinding aan

Met het doel al hierboven ingesteld, behandelt deze sectie hoe de check zich authenticeert en hoe hij een mislukte verbindingspoging afhandelt:

  • DB-gebruikersnaam en DB-wachtwoord - de inloggegevens voor het hierboven beschreven monitoringaccount. Beide zijn optioneel: laat ze leeg als uw database een trust- of anonieme verbinding toestaat vanaf een op de allowlist staand adres, wat sommige interne opzetten doen.
  • Het paneel zelf toont de twee bronadressen waarvandaan checks worden gedaan (4.207.101.172, 20.107.152.200) met een herinnering om ze in de allowlist van uw databasefirewall op te nemen - dat is dezelfde eis die onder Voordat u begint staat, hier herhaald omdat het precies is waar de inloggegevens leven.
  • Opnieuw proberen bij mislukte verbinding - een schakelaar, standaard aan, die de verbindingspoging eenmaal opnieuw probeert voordat hij de check als mislukt markeert. Dat dekt alleen de verbindingsstap zelf, niet de query.

Antwoordvalidatie

Sectie Antwoordvalidatie met een leeg Query-tekstvak met SELECT- en UPDATE-voorbeeldplaceholders, en de groepssamenvatting die alleen verbindingstest zegt

Dit is de sleutelbeslissing bij een Database-check: of u test dat de verbinding werkt, of dat een specifieke query zich nog gedraagt zoals verwacht.

  • Query - laat dit leeg en de check test alleen de verbinding: hij gaat open, en dicht, en dat is de hele check. Vul elke SQL in die uw monitoringaccount mag draaien - een SELECT, of een datawijzigende instructie zoals UPDATE, DELETE of INSERT - en de check draait hem bij elke poll en kan het resultaat beoordelen.
  • Queryresultaat (alleen getoond zodra een query is ingevoerd) - kies Scalaire waarde om te lezen wat er in de eerste kolom van de eerste teruggegeven rij staat (de natuurlijke keuze voor een SELECT, of voor een UPDATE/INSERT die een OUTPUT-clausule gebruikt), of Rijaantal om te lezen hoeveel rijen werden geraakt (de natuurlijke keuze voor een gewone UPDATE, DELETE of INSERT zonder eigen resultaatset).
  • Resultaatverificatie - een vergelijking om op die waarde toe te passen: Geen verificatie (de query hoeft alleen zonder fout te draaien), Gelijk aan, Ongelijk aan, Groter dan, Kleiner dan, Binnen bereik, of Buiten bereik. De opties groter/kleiner-dan en bereik voegen één of twee numerieke velden toe, met een inbegrepen/uitgesloten schakelaar op elke bereikgrens.
  • Query opnieuw proberen bij fout - een schakelaar, standaard aan, die de query-uitvoering eenmaal opnieuw probeert als hij faalt, los van de verbindingsniveau-herhaling hierboven.

Kies alleen-verbinding wanneer u alleen hoeft te weten dat de database bereikbaar is en verbindingen accepteert - dat vangt regelrechte storingen op. Kies een query met resultaatverificatie wanneer bereikbaarheid alleen het echte probleem zou missen: een tabel die geen nieuwe rijen meer ontvangt, een opgeslagen telling die buiten een normaal bereik afdrijft, of een specifiek stuk data dat altijd aanwezig zou moeten zijn.

Waarschuwingsabonnementen

Sectie Waarschuwingsabonnementen met de schakelaar Alle contacten abonneren op Up/Down-gebeurtenissen aan, en een contactenlijst met de kolommen Down en Up geselecteerd voor één e-mailcontact

Kies welke contacten over deze monitor horen en voor welke gebeurtenissen - Up, Down en Repeat (een herhaalde herinnering terwijl de check down blijft). Eén schakelaar abonneert elk contact ineens op Up/Down, of u kiest individuele contacten en gebeurtenissen in de tabel eronder.

Rapportabonnementen

Sectie Rapportabonnementen met de schakelaar Alle contacten abonneren op wekelijkse/maandelijkse rapporten aan, en een contact met de kolommen Weekly en Monthly geselecteerd

Los van waarschuwingen kiest u wie periodieke uptime- en prestatierapporten voor deze monitor ontvangt - dagelijks, wekelijks of maandelijks - per e-mail.

Uitgewerkt voorbeeld

Een productie-PostgreSQL-database in de gaten houden waar een applicatie van afhangt: Servertype PostgreSQL, Server : Poort db.example.com:5432, Database myapp_prod. Een toegewijd alleen-lezen account wordt onder Verbinding ingevoerd, en beide bron-IP's worden eerst aan de security group van de database toegevoegd. Het veld Query bevat SELECT COUNT(*) FROM orders WHERE created_at > now() - interval '1 hour', Queryresultaat is Scalaire waarde, en Resultaatverificatie is Groter dan met een limiet van 0 - zijn er in het laatste uur geen bestellingen geregistreerd, dan is er stroomopwaarts iets gestopt met schrijven, en gaat de check Down, ook al is de database bereikbaar. Interval is 15 minuten, beide schakelaars Opnieuw proberen blijven aan zodat een voorbijgaande hapering geen valse waarschuwing veroorzaakt, waarschuwingen gaan naar het Up/Down-abonnement van het hele team, en een wekelijks rapport gaat naar de accounteigenaar.

Probleemoplossing

  • Elke check faalt met een verbindingsfout. De meest voorkomende oorzaak is een firewall die niet is opengezet voor de twee bronadressen van HostTracker - controleer of 4.207.101.172 en 20.107.152.200 op de allowlist staan, en of de poort zelf voor hen open is.
  • Verbinding lukt maar authenticatie faalt. Controleer of de DB-gebruikersnaam en het wachtwoord correct zijn en of het account toestemming heeft om te verbinden met de genoemde database, niet alleen met de server.
  • Een query die prima werkt in een clienttool geeft hier niets terug. Een gewone UPDATE, DELETE of INSERT zonder OUTPUT-clausule heeft geen resultaatset om als Scalaire waarde te lezen - zet Queryresultaat op Rijaantal, of voeg een OUTPUT-clausule toe als u de data van de rij terug nodig heeft.
  • Resultaatverificatie gaat nooit af. Controleer of de vergelijking en de numerieke velden overeenkomen met het bereik dat u verwacht: een grens ingesteld op uitgesloten in plaats van inbegrepen is een makkelijke manier om een limiet nooit te laten afgaan.
  • Af en toe losse mislukkingen waarvan u vermoedt dat ze voorbijgaand zijn. Beide herhaal-schakelaars staan standaard aan en proberen al eenmaal opnieuw voordat de check faalt - blijven mislukkingen toch frequent, dan is het probleem waarschijnlijker een echte connectiviteits- of queryzaak dan ruis.

Gerelateerd

Nu controleren

Voer de gratis check uit op je eigen site, zonder account.

Database query monitoring

Dit permanent monitoren

Ontvang een melding zodra er iets misgaat: HostTracker controleert vanaf meer dan 300 locaties en waarschuwt je via e-mail, sms, Slack, Telegram en meer.

HostTracker-functies

Meer in dit onderdeel: Monitoringhandleidingen: elk checktype, stap voor stap