Inleiding
In dit document worden de stappen beschreven voor het configureren van de databaseclustering (DB) op Cisco Meeting Server (CMS) of Acano call bridges (CB).
Voorwaarden
Vereisten
- Cisco raadt aan dat u ten minste 3 CMS-knooppunten hebt om een levensvatbaar DB-cluster te kunnen maken
Opmerking: Het is aanbevolen een oneven aantal DB-clusternodes te hebben, omdat dit belangrijk is voor de primaire selectie en het actieve failover-mechanisme. Een andere reden hiervoor is dat het primaire DB-knooppunt het knooppunt is dat verbindingen heeft met het grootste deel van de DB in het cluster. Er kunnen slechts drie knooppunten aan een databasecluster worden gekoppeld en andere servers kunnen aan het cluster worden toegevoegd met de opdracht databaseclusterverbinding.
- Poort 5432 geopend op firewall
Opmerking: de primaire node van het DB-cluster luistert op poort 5432 naar verbindingen van de Replica-nodes, dus als er een firewall (FW) tussen de nodes is, moet u ervoor zorgen dat deze poort wordt geopend.
Gebruikte componenten
Dit document is niet beperkt tot specifieke software- en hardware-versies.
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
Configureren
Er zijn twee soorten certificaten voor de DB-clustering:
1. Client: het clientcertificaat wordt, zoals de naam al aangeeft, door de DB-clients gebruikt om verbinding te maken met de DB-server (primaire server). Dit certificaat moet de string, postgres, bevatten in het Common Name (CN) veld.
2. Server: het servercertificaat wordt, zoals de naam al aangeeft, door de DB-server gebruikt om verbinding te maken met de Postgres-DB.
Deel 1. Certificaat maken
1. Maak verbinding met een Secure Shell (SSH) met de beheerdersreferenties voor de MMP-server.
2. Verzoek om ondertekening van certificaten genereren:
a. Voor het databasecluster-clientcertificaat:
pki csr <key/cert basename> CN:postgres
Bijvoorbeeld: pki csr databasecluster_client CN:postgres
b. Voor het databasecluster-servercertificaat:
pki csr <key/cert basename> CN:<domeinnaam>
Bijvoorbeeld: pki csr databasecluster_server CN:vngtpres.aca
3. Stuur de CSR's naar uw certificeringsinstantie (CA) om ze te laten ondertekenen. Zorg ervoor dat de CA u de basiscertificaten van de CA (en eventuele tussenliggende CA) verstrekt.
4. Upload de ondertekende certificaten, basiscertificaten (en eventuele tussenliggende CA-certificaten) naar alle DB-knooppunten met behulp van een SFTP-client (bijvoorbeeld WinSCP).
Opmerking: De CN voor deel A moet postgres zijn en deel B kan de domeinnaam van de call bridge zijn, er zijn geen items voor alternatieve onderwerpnaam (SAN) vereist.
Deel 2. Configuratie call bridge
Voer de volgende stappen uit op de CB die de primaire DB uitvoert:
1. Voer de volgende opdracht in om de te gebruiken interface te selecteren:
Lokale knooppunt A van databasecluster
Hierdoor kan interface "a" worden gebruikt voor de DB-clustering.
2. Definieer de client-, server- en root-ca-certificaten en de privésleutels die door het DB-cluster moeten worden gebruikt met de volgende opdrachten:
Databasecluster CERTS <client_key> <client_crt> <ca_crt>
Databasecluster-certs <server_key> <server_crt> <client_key> <client_crt> <ca_crt>
Opmerking: Dezelfde client- en servercertificaten kunnen worden gebruikt op andere CB-knooppunten die moeten worden geclusterd wanneer u de privésleutels en certificaten naar de andere knooppunten kopieert. Dit is mogelijk omdat de certificaten geen SAN bevatten dat ze aan een specifieke oproepbrug koppelt. Het is echter raadzaam om voor elke DB-node afzonderlijke certificaten te hebben.
3. Initialiseer deze DB op de lokale CB als de primaire database voor dit DB-cluster:
databasecluster initialiseren
4. Voer op de CallBridges die deel zouden uitmaken van de geclusterde DB en de DB-replica worden, deze opdracht uit nadat u stap 1 en 2 voor deel 2 hebt voltooid:
databaseclusterjoin <Primair CB IP-adres>
Bijvoorbeeld: databaseclusterjoin <10.48.36.61>

Hiermee wordt de DB-synchronisatie gestart en wordt de DB gekopieerd van de primaire peer.
Opmerking: de lokale DB die bestond voordat de opdracht databaseclusterverbinding werd gemaakt, wordt overschreven en daarom wordt de inhoud ervan verwijderd.
Netwerkdiagram

Verifiëren
Gebruik deze sectie om te controleren of uw configuratie goed werkt.
Als u de status van de geclusterde database wilt controleren, voert u deze opdracht uit op een van de nodes in het DB-cluster:
Databaseclusterstatus
De output is vergelijkbaar met:
Status : Enabled
Nodes:
10.48.36.61 : Connected Primary
10.48.36.118 : Connected Replica ( In Sync )
10.48.36.182 (me) : Connected Replica ( In Sync )
Node in use : 10.48.36.61
Interface : a
Certificates
Server Key : dbclusterserver.key
Server Certificate : dbclusterserver.cer
Client Key : dbclusterclient.key
Client Certificate : dbclusterclient.cer
CA Certificate : vngtpRootca.cer
Last command : 'database cluster join 10.48.36.61' (Success)
Problemen oplossen
Deze sectie bevat informatie die u kunt gebruiken om problemen met de configuratie te troubleshooten.
Gebruik deze opdracht in de CLI om de huidige logs met betrekking tot de DB-clustering weer te geven:
syslog follow
Log-uitgangen voor de DB bevatten meestal de tekenreeks Postgres, voorbeelden als volgt:
Mar 30 12:39:04 local0.warning ClusterCore1 postgres[20882]: [2-7] #011SQL statement "INSERT INTO domains(domain_id, domain_name, tenant_id, target, priority, passcode_separator) VALUES (inp_domain_id, inp_domain_name, inp_tenant_id, existing_target, inp_priority, inp_passcode_separator)"
Mar 30 12:39:04 local0.warning ClusterCore1 postgres[20882]: [2-8] #011PL/pgSQL function create_or_update_matching_domain(boolean,uuid,text,boolean,uuid,integer,integer,integer,text) line 61 at SQL statement
Mar 30 12:39:04 local0.warning ClusterCore1 postgres[20882]: [2-9] #011SQL statement "SELECT * FROM create_or_update_matching_domain(TRUE, inp_domain_id, inp_domain_name, TRUE, inp_tenant_id, inp_target_true, 0, inp_priority, inp_passcode_separator)"
Mar 30 12:39:04 local0.warning ClusterCore1 postgres[20882]: [2-10] #011PL/pgSQL function create_matching_domain(uuid,text,uuid,integer,integer,text) line 3 at SQL statement
Hier zijn enkele typische DB-problemen en -oplossingen:
Probleem: DB-schemafout op een niet-primaire peer
ERROR : Couldn't upgrade the schema
Status : Error
Nodes:
10.48.54.75 : Connected Primary
10.48.54.76 : Connected Replica ( In Sync )
10.48.54.119 (me) : Connected Replica ( In Sync )
Node in use : 10.48.54.75
Interface : a
Certificates
Server Key : dbclusterServer.key
Server Certificate : dbserver.cer
Client Key : dbclusterClient.key
Client Certificate : dbclient.cer
CA Certificate : Root.cer
Last command : 'database cluster upgrade_schema' (Failed)
Oplossing:
1. Voer eerst deze opdracht uit om de fout te verwijderen:
Fout bij wissen van databasecluster
2. Gevolgd door deze opdracht om het DB-schema te upgraden:
Upgrade_schema databasecluster
3. Controleer vervolgens de status van de DB-clustering met:
Databaseclusterstatus
De logs tonen een uitvoer die vergelijkbaar is met deze:
Mar 30 11:22:45 user.notice acanosrv05 schema_builder: Upgrading schema with connect line 'connect_timeout=4 user=postgres host=127.0.0.1 port=9899 sslmode=verify-ca sslcert=/srv/pgsql/client.crt sslkey=/srv/pgsql/client.key sslrootcert=/srv/pgsql/ca.crt '
Mar 30 11:22:45 user.notice acanosrv05 schema_builder: Using database name 'cluster'
Mar 30 11:22:45 user.notice acanosrv05 schema_builder: schema build on database cluster complete
Mar 30 11:22:45 user.notice acanosrv05 schema_builder: Using CiscoSSL 1.0.1u.4.13.322-fips (caps 0x4FABFFFF)
Mar 30 11:22:45 user.notice acanosrv05 schema_builder: Using 0x1000115F
Mar 30 11:22:45 user.notice acanosrv05 schema_builder: INFO : Waiting for database cluster to settle...
Mar 30 11:22:45 user.notice acanosrv05 schema_builder: INFO : Database cluster settled
Mar 30 11:22:45 user.notice acanosrv05 schema_builder: Schema upgrade complete
Mar 30 11:22:45 user.info acanosrv05 dbcluster_watcher: Operation Complete
Probleem: Peer-nodes kunnen geen verbinding maken met primaire DB-node
Mar 31 10:16:59 user.info acanosrv02 sfpool: Health check 10.48.54.119: error (up = 1): could not connect to server: Connection refused|#011Is the server running on host "10.48.54.119" and accepting|#011TCP/IP connections on port 5432?|
Oplossing:
Gebruik deze stappen om sporen te verzamelen om de verbindingsproblemen op te lossen:
1. Voer de opdracht pcap <interface> uit op de niet-primaire (replica) node en stop na een paar minuten de opname met Ctrl-C.
2. Maak verbinding met een Secure File Transfer Protocol (SFTP)-client naar de server en download het .pcap-bestand uit de hoofddirectory:

3. Open het opnamebestand op Wireshark en filter op poort 5432 met tcp.port==5432 om te controleren op verkeer tussen de niet-primaire peer en de primaire DB.
4. Als er geen retourverkeer van de server is, is het waarschijnlijk dat een FW de poort tussen de logische locatie van de twee servers kan blokkeren.
Hier is een typische pakketopname van een werkende verbinding tussen de client en de server:
In dit voorbeeld is het IP-adres van de client 10.48.54.119 en de server 10.48.54.75.

Gerelateerde informatie
Voor meer informatie over het oplossen van problemen en andere vragen over databaseclustering raadpleegt u de veelgestelde vragen in deze koppelingen: