So überwachen Sie Ihre verwaltete PostgreSQL-Datenbank mit Nagios Core unter Ubuntu 18.04

Der Autor hat dieFree and Open Source Fundausgewählt, um eine Spende im Rahmen desWrite for DOnations-Programms zu erhalten.

Einführung

Die Datenbanküberwachung ist der Schlüssel zum Verständnis der Leistung einer Datenbank im Zeitverlauf. Sie können damit versteckte Nutzungsprobleme und Engpässe in Ihrer Datenbank aufdecken. Die Implementierung von Datenbanküberwachungssystemen kann sich schnell als langfristiger Vorteil herausstellen, der sich positiv auf Ihren Infrastrukturverwaltungsprozess auswirkt. Sie können schnell auf Statusänderungen Ihrer Datenbank reagieren und werden schnell benachrichtigt, wenn die überwachten Dienste wieder normal funktionieren.

Nagios Core ist ein beliebtes Überwachungssystem, mit dem Sie Ihre verwaltete Datenbank überwachen können. Die Vorteile der Verwendung von Nagios für diese Aufgabe liegen in der Vielseitigkeit - es ist einfach zu konfigurieren und zu verwenden -, einem großen Repository vonavailable plugins und vor allem in der integrierten Warnung.

In diesem Tutorial richten Sie die PostgreSQL-Datenbanküberwachung inNagios Core mit dem Nagios-Plugincheck_postgres ein und richten die Slack-basierte Warnung ein. Am Ende verfügen Sie über ein Überwachungssystem für Ihre verwaltete PostgreSQL-Datenbank und werden umgehend über Statusänderungen verschiedener Funktionen informiert.

Voraussetzungen

  • Ein Ubuntu 18.04-Server mit Root-Rechten und einem sekundären Nicht-Root-Konto. Sie können dies einrichten, indem Siethis initial server setup guide folgen. In diesem Tutorial ist der Nicht-Root-Benutzersammy.

  • Nagios Core auf Ihrem Server installiert. Führen Sie dazu die ersten fünf Schritte des LernprogrammsHow To Install Nagios 4 and Monitor Your Servers on Ubuntu 18.04aus.

  • Ein DigitalOcean-Konto und einPostgreSQL managed databasevon DigitalOcean mit verfügbaren Verbindungsinformationen. Stellen Sie sicher, dass sich die IP-Adresse Ihres Servers in der Whitelist befindet. Weitere Informationen zu DigitalOcean Managed Databases finden Sie unterproduct docs.

  • EinSlack-Konto mit vollem Zugriff, das einem Arbeitsbereich hinzugefügt wurde, in dem Sie Statusaktualisierungen erhalten möchten.

[[Schritt-1 -—- Installation von check_postgres]] == Schritt 1 - Installation von check_postgres

In diesem Abschnitt laden Sie die neueste Version descheck_postgres-Plugins von Github herunter und stellen es Nagios Core zur Verfügung. Sie installieren auch den PostgreSQL-Client (psql), damitcheck_postgres eine Verbindung zu Ihrer verwalteten Datenbank herstellen kann.

Beginnen Sie mit der Installation des PostgreSQL-Clients, indem Sie den folgenden Befehl ausführen:

sudo apt install postgresql-client

Als Nächstes laden Siecheck_postgres in Ihr Home-Verzeichnis herunter. Navigieren Sie zuerst dorthin:

cd ~

Gehen Sie zur SeiteGithub releasesund kopieren Sie den Link der neuesten Version des Plugins. Zum Zeitpunkt des Schreibens war die neueste Version voncheck_postgres2.24.0; Beachten Sie, dass dies aktualisiert wird. Wenn möglich, empfiehlt es sich, die neueste Version zu verwenden.

Laden Sie es jetzt mit curl herunter:

curl -LO https://github.com/bucardo/check_postgres/releases/download/2.24.0/check_postgres-2.24.0.tar.gz

Extrahieren Sie es mit dem folgenden Befehl:

tar xvf check_postgres-*.tar.gz

Dadurch wird ein Verzeichnis mit demselben Namen wie die heruntergeladene Datei erstellt. Dieser Ordner enthält die ausführbare Datei voncheck_postgres, die Sie in das Verzeichnis kopieren müssen, in dem Nagios seine Plugins speichert (normalerweise/usr/local/nagios/libexec/). Kopieren Sie es, indem Sie den folgenden Befehl ausführen:

sudo cp check_postgres-*/check_postgres.pl /usr/local/nagios/libexec/

Als Nächstes müssen Sie dem Benutzer (nagios) die Eigentumsrechte dafür geben, damit es von Nagios aus ausgeführt werden kann:

sudo chown nagios:nagios /usr/local/nagios/libexec/check_postgres.pl

check_postgres steht Nagios jetzt zur Verfügung und kann von dort aus verwendet werden. Es enthält jedoch eine Vielzahl von Befehlen zu verschiedenen Aspekten von PostgreSQL. Um die Wartungsfreundlichkeit des Dienstes zu verbessern, sollten Sie diese Befehle aufteilen, damit sie separat aufgerufen werden können. Sie erreichen dies, indem Sie einen Symlink zu jedemcheck_postgres-Befehl im Plugin-Verzeichnis erstellen.

Navigieren Sie zu dem Verzeichnis, in dem Nagios Plugins speichert, indem Sie den folgenden Befehl ausführen:

cd /usr/local/nagios/libexec

Dann erstelle die Symlinks mit:

sudo perl check_postgres.pl --symlinks

Die Ausgabe sieht folgendermaßen aus:

OutputCreated "check_postgres_archive_ready"
Created "check_postgres_autovac_freeze"
Created "check_postgres_backends"
Created "check_postgres_bloat"
Created "check_postgres_checkpoint"
Created "check_postgres_cluster_id"
Created "check_postgres_commitratio"
Created "check_postgres_connection"
Created "check_postgres_custom_query"
Created "check_postgres_database_size"
Created "check_postgres_dbstats"
Created "check_postgres_disabled_triggers"
Created "check_postgres_disk_space"
Created "check_postgres_fsm_pages"
Created "check_postgres_fsm_relations"
Created "check_postgres_hitratio"
Created "check_postgres_hot_standby_delay"
Created "check_postgres_index_size"
Created "check_postgres_indexes_size"
Created "check_postgres_last_analyze"
Created "check_postgres_last_autoanalyze"
Created "check_postgres_last_autovacuum"
Created "check_postgres_last_vacuum"
Created "check_postgres_listener"
Created "check_postgres_locks"
Created "check_postgres_logfile"
Created "check_postgres_new_version_bc"
Created "check_postgres_new_version_box"
Created "check_postgres_new_version_cp"
Created "check_postgres_new_version_pg"
Created "check_postgres_new_version_tnm"
Created "check_postgres_pgagent_jobs"
Created "check_postgres_pgb_pool_cl_active"
Created "check_postgres_pgb_pool_cl_waiting"
Created "check_postgres_pgb_pool_maxwait"
Created "check_postgres_pgb_pool_sv_active"
Created "check_postgres_pgb_pool_sv_idle"
Created "check_postgres_pgb_pool_sv_login"
Created "check_postgres_pgb_pool_sv_tested"
Created "check_postgres_pgb_pool_sv_used"
Created "check_postgres_pgbouncer_backends"
Created "check_postgres_pgbouncer_checksum"
Created "check_postgres_prepared_txns"
Created "check_postgres_query_runtime"
Created "check_postgres_query_time"
Created "check_postgres_relation_size"
Created "check_postgres_replicate_row"
Created "check_postgres_replication_slots"
Created "check_postgres_same_schema"
Created "check_postgres_sequence"
Created "check_postgres_settings_checksum"
Created "check_postgres_slony_status"
Created "check_postgres_table_size"
Created "check_postgres_timesync"
Created "check_postgres_total_relation_size"
Created "check_postgres_txn_idle"
Created "check_postgres_txn_time"
Created "check_postgres_txn_wraparound"
Created "check_postgres_version"
Created "check_postgres_wal_files"

Perl listet alle Funktionen auf, für die es einen Symlink erstellt hat. Diese können nun wie gewohnt über die Kommandozeile ausgeführt werden.

Sie haben das Plugincheck_postgresheruntergeladen und installiert. Sie haben auch Symlinks zu allen Befehlen des Plugins erstellt, so dass diese individuell von Nagios aus verwendet werden können. Im nächsten Schritt erstellen Sie eine Verbindungsdienstdatei, mit dercheck_postgres eine Verbindung zu Ihrer verwalteten Datenbank herstellt.

[[Schritt 2 - Konfigurieren Ihrer Datenbank] == Schritt 2 - Konfigurieren Ihrer Datenbank

In diesem Abschnitt erstellen Sie eine PostgreSQL-Verbindungsdienstdatei mit den Verbindungsinformationen Ihrer Datenbank. Anschließend testen Sie die Verbindungsdaten, indem Siecheck_postgres darauf aufrufen.

Die Verbindungsdienstdatei heißt üblicherweisepg_service.conf und muss sich unter/etc/postgresql-common/ befinden. Erstellen Sie es zum Bearbeiten mit Ihrem bevorzugten Editor (z. B. nano):

sudo nano /etc/postgresql-common/pg_service.conf

Fügen Sie die folgenden Zeilen hinzu und ersetzen Sie die markierten Platzhalter durch die tatsächlichen Werte, die in der Systemsteuerung für verwaltete Datenbanken unter dem AbschnittConnection Details angezeigt werden:

/etc/postgresql-common/pg_service.conf

[managed-db]
host=host
port=port
user=username
password=password
dbname=defaultdb
sslmode=require

Die Verbindungsdienstdatei kann mehrere Datenbankverbindungsinfogruppen enthalten. Der Beginn einer Gruppe wird angezeigt, indem der Name in eckige Klammern gesetzt wird. Danach folgen die Verbindungsparameter (host,port,user,password usw.), die durch neue Zeilen getrennt sind und denen ein Wert zugewiesen werden muss.

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Sie testen jetzt die Gültigkeit der Konfiguration, indem Sie übercheck_postgres eine Verbindung zur Datenbank herstellen, indem Sie den folgenden Befehl ausführen:

./check_postgres.pl --dbservice=managed-db --action=connection

Hier teilen Siecheck_postgres mit, welche Datenbankverbindungsinfogruppe mit dem Parameter--dbservice verwendet werden soll, und geben an, dass nur versucht werden soll, eine Verbindung herzustellen, indemconnection als Aktion angegeben wird.

Ihre Ausgabe sieht ungefähr so ​​aus:

OutputPOSTGRES_CONNECTION OK: service=managed-db version 11.4 | time=0.10s

Dies bedeutet, dass escheck_postgres gelungen ist, gemäß den Parametern vonpg_service.conf eine Verbindung zur Datenbank herzustellen. Wenn Sie eine Fehlermeldung erhalten, überprüfen Sie noch einmal, was Sie gerade in diese Konfigurationsdatei eingegeben haben.

Sie haben eine PostgreSQL-Verbindungsdienstdatei erstellt und ausgefüllt, die alsconnection string funktioniert. Sie haben die Verbindungsdaten auch getestet, indem Siecheck_postgres darauf ausgeführt und die Ausgabe beobachtet haben. Im nächsten Schritt konfigurieren Sie Nagios so, dass verschiedene Teile Ihrer Datenbank überwacht werden.

[[Schritt 3 - Erstellen von Überwachungsdiensten in Nagios] == Schritt 3 - Erstellen von Überwachungsdiensten in Nagios

Jetzt konfigurieren Sie Nagios so, dass verschiedene Metriken Ihrer Datenbank überwacht werden, indem Sie einen Host und mehrere Dienste definieren, die das Plugincheck_postgresund seine Symlinks aufrufen.

Nagios speichert Ihre benutzerdefinierten Konfigurationsdateien unter/usr/local/nagios/etc/objects. Neue Dateien, die Sie dort hinzufügen, müssen manuell in der zentralen Nagios-Konfigurationsdatei aktiviert werden, die sich bei/usr/local/nagios/etc/nagios.cfg befindet. Sie definieren nun Befehle, einen Host und mehrere Services, mit denen Sie Ihre verwaltete Datenbank in Nagios überwachen können.

Erstellen Sie zunächst einen Ordner unter/usr/local/nagios/etc/objects, um Ihre PostgreSQL-bezogene Konfiguration zu speichern, indem Sie den folgenden Befehl ausführen:

sudo mkdir /usr/local/nagios/etc/objects/postgresql

Sie speichern Nagios-Befehle fürcheck_nagios in einer Datei mit dem Namencommands.cfg. Erstellen Sie es zum Bearbeiten:

sudo nano /usr/local/nagios/etc/objects/postgresql/commands.cfg

Fügen Sie die folgenden Zeilen hinzu:

/usr/local/nagios/etc/objects/postgresql/commands.cfg

define command {
    command_name           check_postgres_connection
    command_line           /usr/local/nagios/libexec/check_postgres_connection --dbservice=$ARG1$
}

define command {
    command_name           check_postgres_database_size
    command_line           /usr/local/nagios/libexec/check_postgres_database_size --dbservice=$ARG1$ --critical='$ARG2$'
}

define command {
    command_name           check_postgres_locks
    command_line           /usr/local/nagios/libexec/check_postgres_locks --dbservice=$ARG1$
}

define command {
    command_name           check_postgres_backends
    command_line           /usr/local/nagios/libexec/check_postgres_backends --dbservice=$ARG1$
}

Speichern und schließen Sie die Datei.

In dieser Datei definieren Sie vier Nagios-Befehle, die verschiedene Teile descheck_postgres-Plugins aufrufen (Konnektivität überprüfen, Anzahl der Sperren und Verbindungen sowie Größe der gesamten Datenbank ermitteln). Sie alle akzeptieren ein Argument, das an den Parameter--dbservice übergeben wird, und geben an, zu welcher der inpg_service.conf definierten Datenbanken eine Verbindung hergestellt werden soll.

Der Befehlcheck_postgres_database_size akzeptiert ein zweites Argument, das an den Parameter--critical übergeben wird, der den Punkt angibt, an dem der Datenbankspeicher voll wird. Akzeptierte Werte sind1 KB für ein Kilobyte,1 MB für ein Megabyte usw. bis zu Exabyte (EB). Eine Zahl ohne Kapazitätseinheit wird als in Bytes ausgedrückt behandelt.

Nachdem die erforderlichen Befehle definiert wurden, definieren Sie den Host (im Wesentlichen die Datenbank) und seine Überwachungsdienste in einer Datei mit dem Namenservices.cfg. Erstellen Sie es mit Ihrem Lieblingseditor:

sudo nano /usr/local/nagios/etc/objects/postgresql/services.cfg

Fügen Sie die folgenden Zeilen hinzu und ersetzen Siedb_max_storage_size durch einen Wert, der sich auf den verfügbaren Speicher Ihrer Datenbank bezieht. Es wird empfohlen, 90 Prozent der zugewiesenen Speichergröße festzulegen:

/usr/local/nagios/etc/objects/postgresql/services.cfg

define host {
      use                    linux-server
      host_name              postgres
      check_command          check_postgres_connection!managed-db
}

define service {
      use                    generic-service
      host_name              postgres
      service_description    PostgreSQL Connection
      check_command          check_postgres_connection!managed-db
      notification_options   w,u,c,r,f,s
}

define service {
      use                    generic-service
      host_name              postgres
      service_description    PostgreSQL Database Size
      check_command          check_postgres_database_size!managed-db!db_max_storage_size
      notification_options   w,u,c,r,f,s
}

define service {
      use                    generic-service
      host_name              postgres
      service_description    PostgreSQL Locks
      check_command          check_postgres_locks!managed-db
      notification_options   w,u,c,r,f,s
}

define service {
      use                    generic-service
      host_name              postgres
      service_description    PostgreSQL Backends
      check_command          check_postgres_backends!managed-db
      notification_options   w,u,c,r,f,s
}

Sie definieren zunächst einen Host, damit Nagios weiß, zu welcher Entität die Services gehören. Anschließend erstellen Sie vier Dienste, die die soeben definierten Befehle aufrufen. Jeder übergibtmanaged-db als Argument und gibt an, dass diemanaged-db, die Sie in Schritt 2 definiert haben, überwacht werden sollten.

In Bezug auf Benachrichtigungsoptionen gibt jeder Dienst an, dass Benachrichtigungen gesendet werden sollen, wenn der DienststatusWARNING,UNKNOWN,CRITICAL,OK (wenn er sich von Ausfallzeiten erholt) lautet Der Dienst startetflapping oder wenn geplante Ausfallzeiten beginnen oder enden. Ohne die explizite Angabe eines Werts für diese Option werden überhaupt keine Benachrichtigungen (an verfügbare Kontakte) gesendet, es sei denn, diese werden manuell ausgelöst.

Speichern und schließen Sie die Datei.

Als Nächstes müssen Sie Nagios explizit anweisen, Konfigurationsdateien aus diesem neuen Verzeichnis zu lesen, indem Sie die allgemeine Nagios-Konfigurationsdatei bearbeiten. Öffnen Sie es zum Bearbeiten, indem Sie den folgenden Befehl ausführen:

sudo nano /usr/local/nagios/etc/nagios.cfg

Suchen Sie diese hervorgehobene Zeile in der Datei:

/usr/local/nagios/etc/nagios.cfg

...
# directive as shown below:

cfg_dir=/usr/local/nagios/etc/servers
#cfg_dir=/usr/local/nagios/etc/printers
...

Fügen Sie darüber die folgende hervorgehobene Zeile hinzu:

/usr/local/nagios/etc/nagios.cfg

...
cfg_dir=/usr/local/nagios/etc/objects/postgresql
cfg_dir=/usr/local/nagios/etc/servers
...

Speichern und schließen Sie die Datei. Diese Zeile weist Nagios an, alle Konfigurationsdateien aus dem Verzeichnis/usr/local/nagios/etc/objects/postgresqlzu laden, in dem sich Ihre Konfigurationsdateien befinden.

Überprüfen Sie vor dem Neustart von Nagios die Gültigkeit der Konfiguration, indem Sie den folgenden Befehl ausführen:

sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Das Ende der Ausgabe sieht ungefähr so ​​aus:

OutputTotal Warnings: 0
Total Errors:   0

Things look okay - No serious problems were detected during the pre-flight check

Dies bedeutet, dass Nagios keine Fehler in der Konfiguration gefunden hat. Wenn ein Fehler angezeigt wird, erhalten Sie auch einen Hinweis darauf, was schief gelaufen ist, damit Sie den Fehler leichter beheben können.

Starten Sie den Dienst neu, indem Sie den folgenden Befehl ausführen, damit Nagios die Konfiguration erneut lädt:

sudo systemctl restart nagios

Sie können nun in Ihrem Browser zu Nagios navigieren. Drücken Sie nach dem Laden im linken Menü auf die OptionServices. Sie sehen den Host vonpostgresund eine Liste der Dienste sowie deren aktuellen Status:

PostgreSQL Monitoring Services - Pending

Sie werden alle bald grün und zeigen den Status einesOKan. Die Befehlsausgabe wird in der SpalteStatus Informationangezeigt. Sie können auf den Dienstnamen klicken und detaillierte Informationen zu dessen Status und Verfügbarkeit anzeigen.

Sie haben Ihrer Nagios-Installationcheck_postgres Befehle, einen Host und mehrere Dienste hinzugefügt, um Ihre Datenbank zu überwachen. Sie haben auch überprüft, ob die Dienste ordnungsgemäß funktionieren, indem Sie sie über die Nagios-Weboberfläche überprüft haben. Im nächsten Schritt konfigurieren Sie die Slack-basierte Warnung.

[[Schritt-4 - Konfigurieren von Slack-Alerting]] == Schritt 4 - Konfigurieren von Slack-Alerting

In diesem Abschnitt konfigurieren Sie Nagios so, dass Sie über Slack über Ereignisse informiert werden, indem Sie diese in den gewünschten Kanälen in Ihrem Arbeitsbereich veröffentlichen.

Bevor Sie beginnen, melden Sie sich bei Slack in Ihrem gewünschten Arbeitsbereich an und erstellen Sie zwei Kanäle, auf denen Sie Statusmeldungen von Nagios erhalten möchten: einen für den Host und einen für Servicemeldungen. Wenn Sie möchten, können Sie nur einen Kanal erstellen, in dem Sie beide Arten von Benachrichtigungen erhalten.

Gehen Sie dann zuNagios app im Slack App Directory und drücken SieAdd Configuration. Es wird eine Seite zum Hinzufügen der Nagios-Integration angezeigt.

Slack - Add Nagios Integration

Drücken Sie aufAdd Nagios Integration. Scrollen Sie nach dem Laden der Seite nach unten und notieren Sie sich das Token, da Sie es später benötigen.

Slack - Integration Token

Sie installieren und konfigurieren jetzt das in Perl geschriebene Slack-Plugin für Nagios auf Ihrem Server. Installieren Sie zunächst die erforderlichen Perl-Voraussetzungen, indem Sie den folgenden Befehl ausführen:

sudo apt install libwww-perl libcrypt-ssleay-perl -y

Laden Sie dann das Plugin in Ihr Nagios-Plugin-Verzeichnis herunter:

sudo curl https://raw.githubusercontent.com/tinyspeck/services-examples/master/nagios.pl -o slack.pl

Machen Sie es ausführbar, indem Sie den folgenden Befehl ausführen:

sudo chmod +x slack.pl

Jetzt müssen Sie es bearbeiten, um mit dem von Slack erhaltenen Token eine Verbindung zu Ihrem Arbeitsbereich herzustellen. Öffne es zum Bearbeiten:

sudo nano slack.pl

Suchen Sie die folgenden Zeilen in der Datei:

/usr/local/nagios/libexec/slack.pl

...
my $opt_domain = "foo.slack.com"; # Your team's domain
my $opt_token = "your_token"; # The token from your Nagios services page
...

Ersetzen Siefoo.slack.com durch Ihre Arbeitsbereichsdomäne undyour_token durch Ihr Nagios-App-Integrationstoken, speichern Sie die Datei und schließen Sie sie. Das Skript kann nun ordnungsgemäße Anforderungen an Slack senden, die Sie jetzt testen, indem Sie den folgenden Befehl ausführen:

./slack.pl -field slack_channel=#your_channel_name -field HOSTALIAS="Test Host" -field HOSTSTATE="UP" -field HOSTOUTPUT="Host is UP" -field NOTIFICATIONTYPE="RECOVERY"

Ersetzen Sieyour_channel_name durch den Namen des Kanals, auf dem Sie Statusbenachrichtigungen erhalten möchten. Das Skript gibt Informationen über die HTTP-Anforderung an Slack aus. Wenn alles korrekt durchlaufen wurde, lautet die letzte Zeile der Ausgabeok. Wenn Sie eine Fehlermeldung erhalten, überprüfen Sie, ob der von Ihnen angegebene Slack-Kanal im Arbeitsbereich vorhanden ist.

Sie können jetzt zu Ihrem Slack-Arbeitsbereich gehen und den von Ihnen angegebenen Kanal auswählen. Sie sehen eine Testnachricht von Nagios.

Slack - Nagios Test Message

Dies bestätigt, dass Sie das Slack-Skript richtig konfiguriert haben. Sie werden nun Nagios so konfigurieren, dass Sie mithilfe dieses Skripts über Slack benachrichtigt werden.

Sie müssen einen Kontakt für Slack und zwei Befehle erstellen, die ihm Nachrichten senden. Sie speichern diese Konfiguration in einer Datei mit dem Namenslack.cfg im selben Ordner wie die vorherigen Konfigurationsdateien. Erstellen Sie es zum Bearbeiten, indem Sie den folgenden Befehl ausführen:

sudo nano /usr/local/nagios/etc/objects/postgresql/slack.cfg

Fügen Sie die folgenden Zeilen hinzu:

/usr/local/nagios/etc/objects/postgresql/slack.cfg

define contact {
      contact_name                             slack
      alias                                    Slack
      service_notification_period              24x7
      host_notification_period                 24x7
      service_notification_options             w,u,c,f,s,r
      host_notification_options                d,u,r,f,s
      service_notification_commands            notify-service-by-slack
      host_notification_commands               notify-host-by-slack
}

define command {
      command_name     notify-service-by-slack
      command_line     /usr/local/nagios/libexec/slack.pl -field slack_channel=#service_alerts_channel
}

define command {
      command_name     notify-host-by-slack
      command_line     /usr/local/nagios/libexec/slack.pl -field slack_channel=#host_alerts_channel
}

Hier definieren Sie einen Kontakt mit dem Namenslack, geben an, dass er jederzeit kontaktiert werden kann, und geben an, welche Befehle zum Benachrichtigen von dienst- und hostbezogenen Ereignissen verwendet werden sollen. Diese beiden Befehle werden danach definiert und rufen das gerade konfigurierte Skript auf. Sie müssenservice_alerts_channel undhost_alerts_channel durch die Namen der Kanäle ersetzen, auf denen Sie Dienst- bzw. Hostnachrichten empfangen möchten. Bei Bedarf können Sie dieselben Kanalnamen verwenden.

Ähnlich wie bei der Serviceerstellung im letzten Schritt ist das Festlegen von Service- und Hostbenachrichtigungsoptionen für den Kontakt von entscheidender Bedeutung, da hier festgelegt wird, welche Art von Benachrichtigungen der Kontakt erhält. Wenn Sie diese Optionen auslassen, werden Benachrichtigungen nur gesendet, wenn sie manuell über die Webschnittstelle ausgelöst werden.

Wenn Sie mit der Bearbeitung fertig sind, speichern und schließen Sie die Datei.

Um die Benachrichtigung über den soeben definiertenslack-Kontakt zu aktivieren, müssen Sie ihn der Kontaktgruppeadminhinzufügen, die in der Konfigurationsdateicontacts.cfg unter/usr/local/nagios/etc/objects/ definiert ist . Öffnen Sie es zum Bearbeiten, indem Sie den folgenden Befehl ausführen:

sudo nano /usr/local/nagios/etc/objects/contacts.cfg

Suchen Sie den Konfigurationsblock, der folgendermaßen aussieht:

/usr/local/nagios/etc/objects/contacts.cfg

define contactgroup {

    contactgroup_name       admins
    alias                   Nagios Administrators
    members                 nagiosadmin
}

Fügen Sieslack zur Mitgliederliste hinzu, wie folgt:

/usr/local/nagios/etc/objects/contacts.cfg

define contactgroup {

    contactgroup_name       admins
    alias                   Nagios Administrators
    members                 nagiosadmin,slack
}

Speichern und schließen Sie die Datei.

Standardmäßig stellt Nagios beim Ausführen von Skripten Host- und Serviceinformationen nicht über Umgebungsvariablen zur Verfügung. Dies ist für das Slack-Skript erforderlich, um aussagekräftige Nachrichten zu senden. Um dies zu beheben, müssen Sie die Einstellungenable_environment_macros innagios.cfg auf1 setzen. Öffnen Sie es zum Bearbeiten, indem Sie den folgenden Befehl ausführen:

sudo nano /usr/local/nagios/etc/nagios.cfg

Suchen Sie die Zeile, die so aussieht:

/usr/local/nagios/etc/nagios.cfg

enable_environment_macros=0

Ändern Sie den Wert wie folgt in1:

/usr/local/nagios/etc/nagios.cfg

enable_environment_macros=1

Speichern und schließen Sie die Datei.

Testen Sie die Gültigkeit der Nagios-Konfiguration, indem Sie den folgenden Befehl ausführen:

sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Das Ende der Ausgabe sieht folgendermaßen aus:

OutputTotal Warnings: 0
Total Errors:   0

Things look okay - No serious problems were detected during the pre-flight check

Führen Sie den folgenden Befehl aus, um Nagios neu zu starten:

sudo systemctl restart nagios

Um die Slack-Integration zu testen, senden Sie eine benutzerdefinierte Benachrichtigung über die Weboberfläche. Laden Sie die Statusseite von NagiosServicesin Ihrem Browser neu. Drücken Sie auf den DienstPostgreSQL Backendsund aufSend custom service notificationrechts, wenn die Seite geladen wird.

Nagios - Custom Service Notification

Geben Sie einen Kommentar Ihrer Wahl ein und drücken Sie aufCommit und dann aufDone. Sie erhalten umgehend eine neue Nachricht in Slack.

Slack - Status Alert From Nagios

Sie haben Slack jetzt in Nagios integriert, sodass Sie sofort Nachrichten über kritische Ereignisse und Statusänderungen erhalten. Sie haben die Integration auch getestet, indem Sie ein Ereignis in Nagios manuell ausgelöst haben.

Fazit

Sie haben Nagios Core jetzt so konfiguriert, dass es Ihre verwaltete PostgreSQL-Datenbank überwacht und alle Statusänderungen und Ereignisse an Slack meldet, sodass Sie immer auf dem Laufenden sind, was mit Ihrer Datenbank geschieht. Auf diese Weise können Sie im Notfall schnell reagieren, da Sie den Status-Feed in Echtzeit erhalten.

Wenn Sie mehr über die Funktionen voncheck_postgreserfahren möchten, lesen Sie diedocs, in denen Sie viele weitere Befehle finden, die Sie möglicherweise verwenden können.

Weitere Informationen darüber, was Sie mit Ihrer verwalteten PostgreSQL-Datenbank tun können, finden Sie unterproduct docs.