Introduzione
Indipendentemente dalla tecnologia del database, è necessario disporre di un'impostazione di monitoraggio, sia per rilevare problemi e agire, sia semplicemente per conoscere lo stato attuale dei nostri sistemi.
A tale scopo ci sono diversi strumenti, a pagamento e gratuiti. In questo blog ci concentreremo su uno in particolare:Nagios Core.
Cos'è Nagios Core?
Nagios Core è un sistema Open Source per il monitoraggio di host, reti e servizi. Consente di configurare gli avvisi e ha diversi stati per loro. Consente l'implementazione di plug-in, sviluppati dalla community, o addirittura ci consente di configurare i nostri script di monitoraggio.
Come installare Nagios?
La documentazione ufficiale ci mostra come installare Nagios Core su sistemi CentOS o Ubuntu.
Vediamo un esempio dei passaggi necessari per l'installazione su CentOS 7.
Pacchetti richiesti
[[email protected] ~]# yum install -y wget httpd php gcc glibc glibc-common gd gd-devel make net-snmp unzip
Scarica Nagios Core, Nagios Plugin e 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
Aggiungi utente e gruppo Nagios
[[email protected] ~]# useradd nagios
[[email protected] ~]# groupadd nagcmd
[[email protected] ~]# usermod -a -G nagcmd nagios
[[email protected] ~]# usermod -a -G nagios,nagcmd apache
Installazione di 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
Installazione del plug-in Nagios e 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
Aggiungiamo la seguente riga alla fine del nostro file /usr/local/nagios/etc/objects/command.cfg per utilizzare NRPE durante il controllo dei nostri server:
define command{
command_name check_nrpe
command_line /usr/local/nagios/libexec/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
Nagios inizia
[[email protected] nagios-4.4.2]# systemctl start nagios
[[email protected] nagios-4.4.2]# systemctl start httpd
Accesso al Web
Creiamo l'utente per accedere all'interfaccia web e possiamo entrare nel sito.
[[email protected] nagios-4.4.2]# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
http://Indirizzo_IP/nagios/
Nagios Web AccessCome configurare Nagios?
Ora che abbiamo installato i nostri Nagios, possiamo continuare con la configurazione. Per questo dobbiamo andare nella posizione corrispondente alla nostra installazione, nel nostro esempio /usr/local/nagios/etc.
Ci sono diversi file di configurazione che dovrai creare o modificare prima di iniziare a monitorare qualsiasi cosa.
[[email protected] etc]# ls /usr/local/nagios/etc
cgi.cfg htpasswd.users nagios.cfg objects resource.cfg
- cgi.cfg: Il file di configurazione CGI contiene una serie di direttive che influiscono sul funzionamento dei CGI. Contiene anche un riferimento al file di configurazione principale, in modo che i CGI sappiano come hai configurato Nagios e dove sono archiviate le definizioni dei tuoi oggetti.
- htpasswd.users: Questo file contiene gli utenti creati per accedere all'interfaccia web di Nagios.
- nagios.cfg: Il file di configurazione principale contiene una serie di direttive che influenzano il funzionamento del demone Nagios Core.
- oggetti: Quando installi Nagios, qui vengono inseriti diversi file di configurazione degli oggetti di esempio. È possibile utilizzare questi file di esempio per vedere come funziona l'ereditarietà degli oggetti e imparare a definire le proprie definizioni di oggetti. Gli oggetti sono tutti gli elementi coinvolti nella logica di monitoraggio e notifica.
- risorsa.cfg: Viene utilizzato per specificare un file di risorse facoltativo che può contenere definizioni di macro. Le macro ti consentono di fare riferimento alle informazioni di host, servizi e altre fonti nei tuoi comandi.
All'interno degli oggetti, possiamo trovare modelli, che possono essere utilizzati durante la creazione di nuovi oggetti. Ad esempio, possiamo vedere che nel nostro file /usr/local/nagios/etc/objects/templates.cfg è presente un modello chiamato linux-server, che verrà utilizzato per aggiungere i nostri 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!
}
Utilizzando questo modello, i nostri host erediteranno la configurazione senza doverli specificare uno per uno su ogni server che aggiungiamo.
Abbiamo anche comandi, contatti e periodi di tempo predefiniti.
I comandi verranno utilizzati da Nagios per i suoi controlli, ed è ciò che aggiungiamo all'interno del file di configurazione di ogni server per monitorarlo. Ad esempio, PING:
define command {
command_name check_ping
command_line $USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5
}
Abbiamo la possibilità di creare contatti o gruppi e specificare quali avvisi voglio raggiungere a quale persona o gruppo.
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 ******
}
Per i nostri controlli e avvisi, possiamo configurare in quali ore e giorni vogliamo riceverli. Se abbiamo un servizio non critico, probabilmente non vogliamo svegliarci all'alba, quindi sarebbe bene avvisare solo in orario di lavoro per evitare che ciò accada.
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
}
Vediamo ora come aggiungere avvisi ai nostri Nagios.
Monitoreremo i nostri server PostgreSQL, quindi prima li aggiungiamo come host nella nostra directory degli oggetti. Creeremo 3 nuovi file:
[[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
}
Quindi dobbiamo aggiungerli al file nagios.cfg e qui abbiamo 2 opzioni.
Aggiungi i nostri host (file cfg) uno per uno usando la variabile cfg_file (opzione predefinita) o aggiungi tutti i file cfg che abbiamo all'interno di una directory usando la variabile cfg_dir.
Aggiungeremo i file uno per uno seguendo la strategia predefinita.
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
Con questo monitoriamo i nostri host. Ora non ci resta che aggiungere quali servizi vogliamo monitorare. Per questo utilizzeremo alcuni controlli già definiti (check_ssh e check_ping) e aggiungeremo alcuni controlli di base del sistema operativo come il carico e lo spazio su disco, tra gli altri, utilizzando NRPE.
Scarica il whitepaper oggi Gestione e automazione di PostgreSQL con ClusterControlScopri cosa devi sapere per distribuire, monitorare, gestire e ridimensionare PostgreSQLScarica il whitepaperCos'è NRPE?
Nagios Remote Plugin Executor. Questo strumento ci consente di eseguire i plug-in Nagios su un host remoto nel modo più trasparente possibile.
Per utilizzarlo, dobbiamo installare il server in ogni nodo che vogliamo monitorare e i nostri Nagios si collegheranno come client a ciascuno di essi, eseguendo i plug-in corrispondenti.
Come si installa 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
Quindi modifichiamo il file di configurazione /usr/local/nagios/etc/nrpe.cfg
server_address=<Local IP Address>
allowed_hosts=127.0.0.1,<Nagios Server IP Address>
E riavviamo il servizio NRPE:
[[email protected] ~]# systemctl restart nrpe
Possiamo testare la connessione eseguendo quanto segue dal nostro server Nagios:
[[email protected] ~]# /usr/local/nagios/libexec/check_nrpe -H <Node IP Address>
NRPE v3.2.1
Come monitorare PostgreSQL?
Durante il monitoraggio di PostgreSQL, ci sono due aree principali di cui tenere conto:sistema operativo e database.
Per il sistema operativo, NRPE ha alcuni controlli di base configurati come lo spazio su disco e il carico, tra gli altri. Questi controlli possono essere abilitati molto facilmente nel modo seguente.
Nei nostri nodi modifichiamo il file /usr/local/nagios/etc/nrpe.cfg e andiamo dove si trovano le seguenti righe:
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
I nomi tra parentesi quadre sono quelli che utilizzeremo nel nostro server Nagios per abilitare questi controlli.
Nei nostri Nagios, modifichiamo i file dei 3 nodi:
/usr/local/nagios/etc/objects/postgres1.cfg
/usr/local/nagios/etc/objects/postgres2.cfg
/usr/local/nagios/etc/objects/postgres3.cfg
Aggiungiamo questi controlli che abbiamo visto in precedenza, lasciando i nostri file come segue:
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
}
E riavviamo il servizio nagios:
[[email protected] ~]# systemctl start nagios
A questo punto, se andiamo nella sezione servizi nell'interfaccia web del nostro Nagios, dovremmo avere qualcosa di simile al seguente:
Avvisi host di NagiosIn questo modo tratteremo i controlli di base del nostro server a livello di sistema operativo.
Abbiamo molti altri controlli che possiamo aggiungere e possiamo persino creare i nostri controlli (vedremo un esempio più avanti).
Ora vediamo come monitorare il nostro motore di database PostgreSQL utilizzando due dei principali plugin progettati per questo compito.
Check_postgres
Uno dei plugin più popolari per il controllo di PostgreSQL è check_postgres di Bucardo.
Vediamo come installarlo e come usarlo con il nostro database PostgreSQL.
Pacchetti richiesti
[[email protected] ~]# yum install perl-devel
Installazione
[[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
Quest'ultimo comando crea i collegamenti per utilizzare tutte le funzioni di questo controllo, come check_postgres_connection, check_postgres_last_vacuum o check_postgres_replication_slots tra gli altri.
[[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
…
Aggiungiamo nel nostro file di configurazione NRPE (/usr/local/nagios/etc/nrpe.cfg) la riga per eseguire il controllo che vogliamo utilizzare:
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
Nel nostro esempio abbiamo aggiunto 4 controlli di base per PostgreSQL. Monitoreremo Lock, Bloat, Connection e Backend.
Nel file corrispondente al nostro database nel server Nagios (/usr/local/nagios/etc/objects/postgres1.cfg), aggiungiamo le seguenti voci:
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
}
E dopo aver riavviato entrambi i servizi (NRPE e Nagios) su entrambi i server, possiamo vedere i nostri avvisi configurati.
Nagios check_postgres AvvisiNella documentazione ufficiale del plug-in check_postgres, puoi trovare informazioni su cos'altro monitorare e come farlo.
Verifica_pgattività
Ora è il turno di check_pgactivity, popolare anche per il monitoraggio del nostro database PostgreSQL.
Installazione
[[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
Aggiungiamo nel nostro file di configurazione NRPE (/usr/local/nagios/etc/nrpe.cfg) la riga per eseguire il controllo che vogliamo utilizzare:
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
Nel nostro esempio aggiungeremo 4 controlli di base per PostgreSQL. Monitoreremo backend, connessione, indici non validi e blocchi.
Nel file corrispondente al nostro database nel server Nagios (/usr/local/nagios/etc/objects/postgres2.cfg), aggiungiamo le seguenti voci:
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
}
E dopo aver riavviato entrambi i servizi (NRPE e Nagios) su entrambi i server, possiamo vedere i nostri avvisi configurati.
Nagios check_pgactivity AvvisiControlla registro errori
Uno dei controlli più importanti, o il più importante, è controllare il nostro registro degli errori.
Qui possiamo trovare diversi tipi di errori come FATAL o deadlock, ed è un buon punto di partenza per analizzare qualsiasi problema che abbiamo nel nostro database.
Per controllare il nostro registro degli errori, creeremo il nostro script di monitoraggio e lo integreremo nei nostri Nagios (questo è solo un esempio, questo script sarà di base e avrà molto margine di miglioramento).
Sceneggiatura
Creeremo il file /usr/local/nagios/libexec/check_postgres_log.sh sul nostro server PostgreSQL3.
[[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
L'importante dello script è creare correttamente gli output corrispondenti a ciascuno stato. Queste uscite vengono lette da Nagios e ogni numero corrisponde a uno stato:
0=OK
1=WARNING
2=CRITICAL
3=UNKNOWN
Nel nostro esempio utilizzeremo solo 2 stati, OK e CRITICO, poiché ci interessa solo sapere se ci sono errori di tipo FATAL nel nostro registro errori nell'ora corrente.
Il testo che utilizziamo prima della nostra uscita verrà mostrato dall'interfaccia web del nostro Nagios, quindi dovrebbe essere il più chiaro possibile usarlo come guida al problema.
Una volta terminato il nostro script di monitoraggio, procederemo a dargli i permessi di esecuzione, ad assegnarlo all'utente nagios e ad aggiungerlo al nostro server di database NRPE così come ai nostri 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
}
Riavvia NRPE e Nagios. Quindi possiamo vedere il nostro controllo nell'interfaccia di Nagios:
Avvisi script NagiosCome possiamo vedere è in uno stato CRITICO, quindi se andiamo al log, possiamo vedere quanto segue:
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"
Per ulteriori informazioni su ciò che possiamo monitorare nel nostro database PostgreSQL, ti consiglio di controllare i nostri blog sulle prestazioni e sul monitoraggio o questo webinar sulle prestazioni di Postgres.
Sicurezza e prestazioni
Quando configuriamo qualsiasi monitoraggio, utilizzando i plug-in o il nostro script, dobbiamo prestare molta attenzione a 2 cose molto importanti:sicurezza e prestazioni.
Quando assegniamo le autorizzazioni necessarie per il monitoraggio, dobbiamo essere il più restrittivi possibile, limitando l'accesso solo localmente o dal nostro server di monitoraggio, utilizzando chiavi sicure, crittografando il traffico, consentendo la connessione al minimo necessario per il funzionamento del monitoraggio.
Per quanto riguarda le prestazioni, il monitoraggio è necessario, ma è anche necessario utilizzarlo in sicurezza per i nostri sistemi.
Dobbiamo fare attenzione a non generare accessi al disco irragionevolmente elevati o eseguire query che influiscono negativamente sulle prestazioni del nostro database.
Se abbiamo molte transazioni al secondo che generano gigabyte di log e continuiamo a cercare continuamente errori, probabilmente non è il massimo per il nostro database. Quindi dobbiamo mantenere un equilibrio tra ciò che monitoriamo, la frequenza e l'impatto sulle prestazioni.
Conclusione
Esistono diversi modi per implementare il monitoraggio o per configurarlo. Possiamo arrivare a farlo nel modo più complesso o semplice che vogliamo. L'obiettivo di questo blog era di introdurti al monitoraggio di PostgreSQL utilizzando uno degli strumenti open source più utilizzati. Abbiamo anche visto che la configurazione è molto flessibile e può essere adattata alle diverse esigenze.
E non dimenticare che possiamo sempre contare sulla community, quindi lascio alcuni link che potrebbero essere di grande aiuto.
Forum di supporto:https://support.nagios.com/forum/
Problemi noti:https://github.com/NagiosEnterprises/nagioscore/issues
Plugin Nagios:https://exchange.nagios.org/directory/Plugins
Plugin Nagios per ClusterControl:https://diversealnines.com/blog/nagios-plugin-clustercontrol