sql >> Databáze >  >> RDS >> PostgreSQL

Jak monitorovat PostgreSQL pomocí Nagios

Úvod

Bez ohledu na databázovou technologii je nutné mít nastavené monitorování, a to jak pro detekci problémů, tak pro přijetí opatření, nebo jednoduše pro znalost aktuálního stavu našich systémů.

K tomuto účelu existuje několik nástrojů, placených i bezplatných. V tomto blogu se zaměříme na jeden konkrétní:Nagios Core.

Co je Nagios Core?

Nagios Core je Open Source systém pro monitorování hostitelů, sítí a služeb. Umožňuje konfigurovat výstrahy a má pro ně různé stavy. Umožňuje implementaci pluginů vyvinutých komunitou nebo nám dokonce umožňuje konfigurovat naše vlastní monitorovací skripty.

Jak nainstalovat Nagios?

Oficiální dokumentace nám ukazuje, jak nainstalovat Nagios Core na systémy CentOS nebo Ubuntu.

Podívejme se na příklad nezbytných kroků pro instalaci na CentOS 7.

Vyžadují se balíčky

[[email protected] ~]# yum install -y wget httpd php gcc glibc glibc-common gd gd-devel make net-snmp unzip

Stáhněte si Nagios Core, Nagios Plugins a NRPE

[[email protected] ~]# wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.4.2.tar.gz
[[email protected] ~]# wget http://nagios-plugins.org/download/nagios-plugins-2.2.1.tar.gz
[[email protected] ~]# wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-3.2.1/nrpe-3.2.1.tar.gz

Přidat uživatele a skupinu Nagios

[[email protected] ~]# useradd nagios
[[email protected] ~]# groupadd nagcmd
[[email protected] ~]# usermod -a -G nagcmd nagios
[[email protected] ~]# usermod -a -G nagios,nagcmd apache

Instalace Nagios

[[email protected] ~]# tar zxvf nagios-4.4.2.tar.gz
[[email protected] ~]# cd nagios-4.4.2
[[email protected] nagios-4.4.2]# ./configure --with-command-group=nagcmd
[[email protected] nagios-4.4.2]# make all
[[email protected] nagios-4.4.2]# make install
[[email protected] nagios-4.4.2]# make install-init
[[email protected] nagios-4.4.2]# make install-config
[[email protected] nagios-4.4.2]# make install-commandmode
[[email protected] nagios-4.4.2]# make install-webconf
[[email protected] nagios-4.4.2]# cp -R contrib/eventhandlers/ /usr/local/nagios/libexec/
[[email protected] nagios-4.4.2]# chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers
[[email protected] nagios-4.4.2]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Nagios Plugin a instalace NRPE

[[email protected] ~]# tar zxvf nagios-plugins-2.2.1.tar.gz
[[email protected] ~]# cd nagios-plugins-2.2.1
[[email protected] nagios-plugins-2.2.1]# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
[[email protected] nagios-plugins-2.2.1]# make
[[email protected] nagios-plugins-2.2.1]# make install
[[email protected] ~]# yum install epel-release
[[email protected] ~]# yum install nagios-plugins-nrpe
[[email protected] ~]# tar zxvf nrpe-3.2.1.tar.gz
[[email protected] ~]# cd nrpe-3.2.1
[[email protected] nrpe-3.2.1]# ./configure --disable-ssl --enable-command-args
[[email protected] nrpe-3.2.1]# make all
[[email protected] nrpe-3.2.1]# make install-plugin

Na konec našeho souboru /usr/local/nagios/etc/objects/command.cfg přidáváme následující řádek, abychom při kontrole našich serverů použili NRPE:

define command{
    command_name           check_nrpe
    command_line           /usr/local/nagios/libexec/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

Nagios začíná

[[email protected] nagios-4.4.2]# systemctl start nagios
[[email protected] nagios-4.4.2]# systemctl start httpd

Přístup na web

Vytvoříme uživatele pro přístup k webovému rozhraní a můžeme vstoupit na web.

[[email protected] nagios-4.4.2]# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

http://IP_Address/nagios/

Nagios Web Access

Jak nakonfigurovat Nagios?

Nyní, když máme náš Nagios nainstalovaný, můžeme pokračovat v konfiguraci. K tomu musíme přejít do umístění odpovídající naší instalaci, v našem příkladu /usr/local/nagios/etc.

Existuje několik různých konfiguračních souborů, které budete muset vytvořit nebo upravit, než začnete cokoliv monitorovat.

[[email protected] etc]# ls /usr/local/nagios/etc
cgi.cfg  htpasswd.users  nagios.cfg  objects  resource.cfg
  • cgi.cfg: Konfigurační soubor CGI obsahuje řadu direktiv, které ovlivňují činnost CGI. Obsahuje také odkaz na hlavní konfigurační soubor, takže CGI vědí, jak jste nakonfigurovali Nagios a kde jsou uloženy definice vašich objektů.
  • htpasswd.users: Tento soubor obsahuje uživatele vytvořené pro přístup k webovému rozhraní Nagios.
  • nagios.cfg: Hlavní konfigurační soubor obsahuje řadu direktiv, které ovlivňují fungování démona Nagios Core.
  • objekty: Při instalaci Nagios je zde umístěno několik ukázkových konfiguračních souborů objektů. Pomocí těchto ukázkových souborů můžete vidět, jak funguje dědění objektů, a naučit se, jak definovat vlastní definice objektů. Objekty jsou všechny prvky, které se podílejí na logice monitorování a oznámení.
  • resource.cfg: Používá se k určení volitelného souboru prostředků, který může obsahovat definice maker. Makra vám umožňují odkazovat na informace o hostitelích, službách a dalších zdrojích ve vašich příkazech.

V rámci objektů najdeme šablony, které lze použít při vytváření nových objektů. Například můžeme vidět, že v našem souboru /usr/local/nagios/etc/objects/templates.cfg je šablona nazvaná linux-server, která bude použita k přidání našich serverů.

define host {
    name                            linux-server            ; The name of this host template
    use                             generic-host            ; This template inherits other values from the generic-host template
    check_period                    24x7                    ; By default, Linux hosts are checked round the clock
    check_interval                  5                       ; Actively check the host every 5 minutes
    retry_interval                  1                       ; Schedule host check retries at 1 minute intervals
    max_check_attempts              10                      ; Check each Linux host 10 times (max)
    check_command                   check-host-alive        ; Default command to check Linux hosts
    notification_period             workhours               ; Linux admins hate to be woken up, so we only notify during the day
                                                           ; Note that the notification_period variable is being overridden from
                                                           ; the value that is inherited from the generic-host template!
    notification_interval           120                     ; Resend notifications every 2 hours
    notification_options            d,u,r                   ; Only send notifications for specific host states
    contact_groups                  admins                  ; Notifications get sent to the admins by default
    register                        0                       ; DON'T REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
}

Pomocí této šablony naši hostitelé zdědí konfiguraci, aniž by je museli zadávat jednoho po druhém na každém serveru, který přidáme.

Máme také předdefinované příkazy, kontakty a časové úseky.

Příkazy bude Nagios používat pro své kontroly, a to je to, co přidáváme do konfiguračního souboru každého serveru, abychom to mohli sledovat. Například PING:

define command {
    command_name    check_ping
    command_line    $USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5
}

Máme možnost vytvořit kontakty nebo skupiny a určit, která upozornění chci zasílat které osobě nebo skupině.

define contact {
    contact_name            nagiosadmin             ; Short name of user
    use                     generic-contact         ; Inherit default values from generic-contact template (defined above)
    alias                   Nagios Admin            ; Full name of user
    email                   [email protected] ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
}

Pro naše kontroly a upozornění můžeme nakonfigurovat, v kolik hodin a dnů je chceme dostávat. Pokud máme službu, která není kritická, pravděpodobně se nechceme probouzet za svítání, takže by bylo dobré varovat pouze v pracovní době, aby se tomu zabránilo.

define timeperiod {
    name                    workhours
    timeperiod_name         workhours
    alias                   Normal Work Hours
    monday                  09:00-17:00
    tuesday                 09:00-17:00
    wednesday               09:00-17:00
    thursday                09:00-17:00
    friday                  09:00-17:00
}

Podívejme se nyní, jak přidat upozornění do našeho Nagios.

Budeme monitorovat naše PostgreSQL servery, takže je nejprve přidáme jako hostitele do našeho adresáře objektů. Vytvoříme 3 nové soubory:

[[email protected] ~]# cd /usr/local/nagios/etc/objects/
[[email protected] objects]# vi postgres1.cfg
define host {
    use        linux-server      ; Name of host template to use
    host_name    postgres1        ; Hostname
    alias        PostgreSQL1        ; Alias
    address    192.168.100.123    ; IP Address
}
[[email protected] objects]# vi postgres2.cfg
define host {
    use        linux-server      ; Name of host template to use
    host_name    postgres2        ; Hostname
    alias        PostgreSQL2        ; Alias
    address    192.168.100.124    ; IP Address
}
[[email protected] objects]# vi postgres3.cfg
define host {
    use        linux-server      ; Name of host template to use
    host_name    postgres3        ; Hostname
    alias        PostgreSQL3        ; Alias
    address    192.168.100.125    ; IP Address
}

Poté je musíme přidat do souboru nagios.cfg a zde máme 2 možnosti.

Přidejte naše hostitele (soubory cfg) jeden po druhém pomocí proměnné cfg_file (výchozí možnost) nebo přidejte všechny soubory cfg, které máme v adresáři, pomocí proměnné cfg_dir.

Budeme přidávat soubory jeden po druhém podle výchozí strategie.

cfg_file=/usr/local/nagios/etc/objects/postgres1.cfg
cfg_file=/usr/local/nagios/etc/objects/postgres2.cfg
cfg_file=/usr/local/nagios/etc/objects/postgres3.cfg

Díky tomu máme naše hostitele monitorované. Teď už jen zbývá přidat, jaké služby chceme monitorovat. K tomu použijeme některé již definované kontroly (check_ssh a check_ping) a přidáme některé základní kontroly operačního systému, jako je zatížení a místo na disku, mimo jiné pomocí NRPE.

Stáhněte si Whitepaper Today Správa a automatizace PostgreSQL s ClusterControlZjistěte, co potřebujete vědět k nasazení, monitorování, správě a škálování PostgreSQLStáhněte si Whitepaper

Co je NRPE?

Nagios Remote Plugin Executor. Tento nástroj nám umožňuje spouštět pluginy Nagios na vzdáleném hostiteli co nejtransparentnějším způsobem.

Abychom jej mohli používat, musíme nainstalovat server do každého uzlu, který chceme monitorovat, a náš Nagios se ke každému z nich připojí jako klient a spustí odpovídající plugin(y).

Jak nainstalovat NRPE?

[[email protected] ~]# wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-3.2.1/nrpe-3.2.1.tar.gz
[[email protected] ~]# wget http://nagios-plugins.org/download/nagios-plugins-2.2.1.tar.gz
[[email protected] ~]# tar zxvf nagios-plugins-2.2.1.tar.gz
[[email protected] ~]# tar zxvf nrpe-3.2.1.tar.gz
[[email protected] ~]# cd nrpe-3.2.1
[[email protected] nrpe-3.2.1]# ./configure --disable-ssl --enable-command-args
[[email protected] nrpe-3.2.1]# make all
[[email protected] nrpe-3.2.1]# make install-groups-users
[[email protected] nrpe-3.2.1]# make install
[[email protected] nrpe-3.2.1]# make install-config
[[email protected] nrpe-3.2.1]# make install-init
[[email protected] ~]# cd nagios-plugins-2.2.1
[[email protected] nagios-plugins-2.2.1]# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
[[email protected] nagios-plugins-2.2.1]# make
[[email protected] nagios-plugins-2.2.1]# make install
[[email protected] nagios-plugins-2.2.1]# systemctl enable nrpe

Poté upravíme konfigurační soubor /usr/local/nagios/etc/nrpe.cfg

server_address=<Local IP Address>
allowed_hosts=127.0.0.1,<Nagios Server IP Address>

A restartujeme službu NRPE:

[[email protected] ~]# systemctl restart nrpe

Připojení můžeme otestovat spuštěním následujícího z našeho serveru Nagios:

[[email protected] ~]# /usr/local/nagios/libexec/check_nrpe -H <Node IP Address>
NRPE v3.2.1

Jak monitorovat PostgreSQL?

Při monitorování PostgreSQL je třeba vzít v úvahu dvě hlavní oblasti:operační systém a databáze.

Pro operační systém má NRPE nakonfigurované některé základní kontroly, jako je mimo jiné místo na disku a zatížení. Tyto kontroly lze velmi snadno aktivovat následujícím způsobem.

V našich uzlech upravíme soubor /usr/local/nagios/etc/nrpe.cfg a přejdeme na následující řádky:

command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -r -w 15,10,05 -c 30,25,20
command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200

Názvy v hranatých závorkách jsou názvy, které použijeme na našem serveru Nagios k povolení těchto kontrol.

V našem Nagios upravujeme soubory 3 uzlů:

/usr/local/nagios/etc/objects/postgres1.cfg
/usr/local/nagios/etc/objects/postgres2.cfg
/usr/local/nagios/etc/objects/postgres3.cfg

Přidáme tyto kontroly, které jsme viděli dříve, a ponecháme naše soubory takto:

define host {
    use                     linux-server
    host_name               postgres1
    alias                   PostgreSQL1
    address                 192.168.100.123
}
define service {
    use                     generic-service
    host_name               postgres1
    service_description     PING
    check_command           check_ping!100.0,20%!500.0,60%
}
define service {
    use                     generic-service
    host_name               postgres1
    service_description     SSH
    check_command           check_ssh
}
define service {
    use                     generic-service
    host_name               postgres1
    service_description     Root Partition
    check_command        check_nrpe!check_disk
}
define service {
    use                     generic-service
    host_name               postgres1
    service_description     Total Processes zombie
    check_command           check_nrpe!check_zombie_procs
}
define service {
    use                     generic-service
    host_name               postgres1
    service_description     Total Processes
    check_command           check_nrpe!check_total_procs
}
define service {
    use                     generic-service
    host_name               postgres1
    service_description     Current Load
    check_command           check_nrpe!check_load
}
define service {
    use                     generic-service
    host_name               postgres1
    service_description     Current Users
    check_command           check_nrpe!check_users
}

A restartujeme službu nagios:

[[email protected] ~]# systemctl start nagios

V tuto chvíli, pokud přejdeme do sekce služeb ve webovém rozhraní našeho Nagios, měli bychom mít něco jako následující:

Upozornění hostitele Nagios

Tímto způsobem pokryjeme základní kontroly našeho serveru na úrovni operačního systému.

Máme mnohem více kontrol, které můžeme přidat, a můžeme dokonce vytvořit vlastní kontroly (uvidíme příklad později).

Nyní se podívejme, jak monitorovat náš databázový stroj PostgreSQL pomocí dvou hlavních pluginů navržených pro tento úkol.

Check_postgres

Jeden z nejpopulárnějších pluginů pro kontrolu PostgreSQL je check_postgres od Bucardo.

Podívejme se, jak ji nainstalovat a jak ji používat s naší PostgreSQL databází.

Vyžadují se balíčky

[[email protected] ~]# yum install perl-devel

Instalace

[[email protected] ~]#  wget http://bucardo.org/downloads/check_postgres.tar.gz
[[email protected] ~]#  tar zxvf check_postgres.tar.gz
[[email protected] ~]#  cp check_postgres-2.23.0/check_postgres.pl /usr/local/nagios/libexec/
[[email protected] ~]# chown nagios.nagios /usr/local/nagios/libexec/check_postgres.pl
[[email protected] ~]# cd /usr/local/nagios/libexec/
[[email protected] libexec]# perl /usr/local/nagios/libexec/check_postgres.pl  --symlinks

Tento poslední příkaz vytváří odkazy pro použití všech funkcí této kontroly, jako je mimo jiné check_postgres_connection, check_postgres_last_vacuum nebo check_postgres_replication_slots.

[[email protected] libexec]# ls |grep postgres
check_postgres.pl
check_postgres_archive_ready
check_postgres_autovac_freeze
check_postgres_backends
check_postgres_bloat
check_postgres_checkpoint
check_postgres_cluster_id
check_postgres_commitratio
check_postgres_connection
check_postgres_custom_query
check_postgres_database_size
check_postgres_dbstats
check_postgres_disabled_triggers
check_postgres_disk_space
…

Do našeho konfiguračního souboru NRPE (/usr/local/nagios/etc/nrpe.cfg) přidáme řádek pro provedení kontroly, kterou chceme použít:

command[check_postgres_locks]=/usr/local/nagios/libexec/check_postgres_locks -w 2 -c 3
command[check_postgres_bloat]=/usr/local/nagios/libexec/check_postgres_bloat -w='100 M' -c='200 M'
command[check_postgres_connection]=/usr/local/nagios/libexec/check_postgres_connection --db=postgres
command[check_postgres_backends]=/usr/local/nagios/libexec/check_postgres_backends -w=70 -c=100

V našem příkladu jsme přidali 4 základní kontroly pro PostgreSQL. Budeme monitorovat Locks, Bloat, Connection a Backends.

Do souboru odpovídající naší databázi na serveru Nagios (/usr/local/nagios/etc/objects/postgres1.cfg) přidáme následující položky:

define service {
      use                    generic-service
      host_name              postgres1
      service_description    PostgreSQL locks
      check_command          check_nrpe!check_postgres_locks
}
define service {
      use                    generic-service
      host_name              postgres1
      service_description    PostgreSQL Bloat
      check_command          check_nrpe!check_postgres_bloat
}
define service {
      use                    generic-service
      host_name              postgres1
      service_description    PostgreSQL Connection
      check_command          check_nrpe!check_postgres_connection
}
define service {
      use                    generic-service
      host_name              postgres1
      service_description    PostgreSQL Backends
      check_command          check_nrpe!check_postgres_backends
}

A po restartu obou služeb (NRPE a Nagios) na obou serverech můžeme vidět, že jsou naše výstrahy nakonfigurované.

Nagios check_postgres Alerts

V oficiální dokumentaci pluginu check_postgres najdete informace o tom, co ještě sledovat a jak to udělat.

Check_pgactivity

Nyní je řada na check_pgactivity, také populární pro monitorování naší PostgreSQL databáze.

Instalace

[[email protected] ~]# wget https://github.com/OPMDG/check_pgactivity/releases/download/REL2_3/check_pgactivity-2.3.tgz
[[email protected] ~]# tar zxvf check_pgactivity-2.3.tgz
[[email protected] ~]# cp check_pgactivity-2.3check_pgactivity /usr/local/nagios/libexec/check_pgactivity
[[email protected] ~]# chown nagios.nagios /usr/local/nagios/libexec/check_pgactivity

Do našeho konfiguračního souboru NRPE (/usr/local/nagios/etc/nrpe.cfg) přidáme řádek pro provedení kontroly, kterou chceme použít:

command[check_pgactivity_backends]=/usr/local/nagios/libexec/check_pgactivity -h localhost -s backends -w 70 -c 100
command[check_pgactivity_connection]=/usr/local/nagios/libexec/check_pgactivity -h localhost -s connection
command[check_pgactivity_indexes]=/usr/local/nagios/libexec/check_pgactivity -h localhost -s invalid_indexes
command[check_pgactivity_locks]=/usr/local/nagios/libexec/check_pgactivity -h localhost -s locks -w 5 -c 10

V našem příkladu přidáme 4 základní kontroly pro PostgreSQL. Budeme monitorovat backendy, připojení, neplatné indexy a zámky.

Do souboru odpovídající naší databázi na serveru Nagios (/usr/local/nagios/etc/objects/postgres2.cfg) přidáme následující položky:

define service {
    use                     generic-service           ; Name of service template to use
    host_name               postgres2
    service_description     PGActivity Backends
    check_command           check_nrpe!check_pgactivity_backends
}
define service {
    use                     generic-service           ; Name of service template to use
    host_name               postgres2
    service_description     PGActivity Connection
    check_command           check_nrpe!check_pgactivity_connection
}
define service {
    use                     generic-service           ; Name of service template to use
    host_name               postgres2
    service_description     PGActivity Indexes
    check_command           check_nrpe!check_pgactivity_indexes
}
define service {
    use                     generic-service           ; Name of service template to use
    host_name               postgres2
    service_description     PGActivity Locks
    check_command           check_nrpe!check_pgactivity_locks
}

A po restartu obou služeb (NRPE a Nagios) na obou serverech můžeme vidět, že jsou naše výstrahy nakonfigurované.

Upozornění Nagios check_pgactivity

Zkontrolujte protokol chyb

Jednou z nejdůležitějších nebo nejdůležitějších kontrol je kontrola našeho protokolu chyb.

Zde můžeme najít různé typy chyb, jako je FATAL nebo uváznutí, a je to dobrý výchozí bod pro analýzu jakéhokoli problému, který máme v naší databázi.

Abychom zkontrolovali náš protokol chyb, vytvoříme vlastní monitorovací skript a začleníme jej do našeho Nagios (toto je pouze příklad, tento skript bude základní a má spoustu prostoru pro vylepšení).

Skript

Na našem PostgreSQL3 serveru vytvoříme soubor /usr/local/nagios/libexec/check_postgres_log.sh.

[[email protected] ~]# vi /usr/local/nagios/libexec/check_postgres_log.sh
#!/bin/bash
#Variables
LOG="/var/log/postgresql-$(date +%a).log"
CURRENT_DATE=$(date +'%Y-%m-%d %H')
ERROR=$(grep "$CURRENT_DATE" $LOG | grep "FATAL" | wc -l)
#States
STATE_CRITICAL=2
STATE_OK=0
#Check
if [ $ERROR -ne 0 ]; then
       echo "CRITICAL - Check PostgreSQL Log File - $ERROR Error Found"
       exit $STATE_CRITICAL
else
       echo "OK - PostgreSQL without errors"
       exit $STATE_OK
fi

Důležité u skriptu je správně vytvořit výstupy odpovídající každému stavu. Tyto výstupy čte Nagios a každé číslo odpovídá stavu:

0=OK
1=WARNING
2=CRITICAL
3=UNKNOWN

V našem příkladu použijeme pouze 2 stavy, OK a KRITICKÉ, protože nás zajímá pouze to, zda jsou v našem protokolu chyb v aktuální hodině chyby typu FATAL.

Text, který použijeme před naším odchodem, se zobrazí ve webovém rozhraní našeho Nagios, takže by mělo být co nejsrozumitelnější, abychom jej mohli použít jako průvodce problémem.

Jakmile dokončíme náš monitorovací skript, přistoupíme k tomu, že mu udělíme oprávnění ke spuštění, přiřadíme jej uživateli nagios a přidáme jej na náš databázový server NRPE a také do našeho Nagios:

[[email protected] ~]# chmod +x /usr/local/nagios/libexec/check_postgres_log.sh
[[email protected] ~]# chown nagios.nagios /usr/local/nagios/libexec/check_postgres_log.sh

[[email protected] ~]# vi /usr/local/nagios/etc/nrpe.cfg
command[check_postgres_log]=/usr/local/nagios/libexec/check_postgres_log.sh

[[email protected] ~]# vi /usr/local/nagios/etc/objects/postgres3.cfg
define service {
    use                     generic-service           ; Name of service template to use
    host_name               postgres3
    service_description     PostgreSQL LOG
    check_command           check_nrpe!check_postgres_log
}

Restartujte NRPE a Nagios. Poté můžeme vidět naši kontrolu v rozhraní Nagios:

Upozornění skriptu Nagios

Jak vidíme, je v KRITICKÉM stavu, takže pokud přejdeme do protokolu, můžeme vidět následující:

2018-08-30 02:29:49.531 UTC [22162] FATAL:  Peer authentication failed for user "postgres"
2018-08-30 02:29:49.531 UTC [22162] DETAIL:  Connection matched pg_hba.conf line 83: "local   all             all                                     peer"

Pro více informací o tom, co můžeme sledovat v naší databázi PostgreSQL, vám doporučuji navštívit naše blogy o výkonu a monitorování nebo tento webinář Postgres Performance.

Bezpečnost a výkon

Při konfiguraci jakéhokoli monitorování, ať už pomocí pluginů nebo vlastního skriptu, musíme být velmi opatrní se 2 velmi důležitými věcmi – bezpečnost a výkon.

Když přidělujeme nezbytná oprávnění pro monitorování, musíme být co nejpřísnější, omezovat přístup pouze lokálně nebo z našeho monitorovacího serveru, používat zabezpečené klíče, šifrovat provoz a umožnit připojení na minimum nezbytné pro fungování monitorování.

S ohledem na výkon je monitoring nezbytný, ale je také nutné jej bezpečně používat pro naše systémy.

Musíme být opatrní, abychom negenerovali nepřiměřeně vysoký přístup k disku nebo nespouštěli dotazy, které negativně ovlivňují výkon naší databáze.

Pokud máme mnoho transakcí za sekundu generujících gigabajty protokolů a neustále hledáme chyby, pravděpodobně to není pro naši databázi to nejlepší. Musíme tedy udržovat rovnováhu mezi tím, co monitorujeme, jak často a dopadem na výkon.

Závěr

Existuje několik způsobů, jak implementovat monitorování nebo jej nakonfigurovat. Můžeme to udělat tak složitě nebo jednoduše, jak chceme. Cílem tohoto blogu bylo seznámit vás s monitorováním PostgreSQL pomocí jednoho z nejpoužívanějších open source nástrojů. Také jsme viděli, že konfigurace je velmi flexibilní a lze ji přizpůsobit různým potřebám.

A nezapomeňte, že se na komunitu můžeme vždy spolehnout, takže zanechám několik odkazů, které by mohly být velkou pomocí.

Fórum podpory:https://support.nagios.com/forum/

Známé problémy:https://github.com/NagiosEnterprises/nagioscore/issues

Pluginy Nagios:https://exchange.nagios.org/directory/Plugins

Nagios Plugin pro ClusterControl:https://severalnines.com/blog/nagios-plugin-clustercontrol


  1. SQL Server - zastavení nebo přerušení provádění skriptu SQL

  2. Jak vypsat všechny pohledy v databázi Oracle

  3. Měření výkonu databáze pod tlakem

  4. Chyba při odesílání dat do Heroku:posunutí časového pásma mimo rozsah