Inhoud

Inleiding

Voorwaarden

Vereisten

Gebruikte componenten

Loggegevens bekijken

Repareer de database als deze niet start

Inleiding

In dit document wordt beschreven hoe u de MongoDB op het Secure Network Analytics (voorheen Stealthwatch) Manager-apparaat kunt repareren na een onschone stopzetting.

Voorwaarden

Vereisten

Er zijn geen specifieke vereisten van toepassing op dit document.

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, zorg er dan voor dat u de mogelijke impact van elke opdracht begrijpt."

Loggegevens bekijken

Gebruik de opdracht minder om het bestand mongodb.log te bekijken.

732smc:~# less /lancope/var/mongodb/log/mongodb.log

2021-06-21T14:54:43.029+0000 I CONTROL ***** SERVER RESTARTED *****

2021-06-21T14:54:43.033+0000 I CONTROL [initandlisten] MongoDB starting : pid=87057 port=27017 dbpath=/lancope/var/database/dbs/mdb/ 64-bit host=ussecrapstwsmc1

2021-06-21T14:54:43.033+0000 I CONTROL [initandlisten] db version v3.0.15

2021-06-21T14:54:43.033+0000 I CONTROL [initandlisten] git version: b8ff507269c382bc100fc52f75f48d54cd42ec3b

2021-06-21T14:54:43.033+0000 I CONTROL [initandlisten] build info: Linux 3555b2234f08 4.9.0-2-amd64 #1 SMP Debian 4.9.13-1 (2017-02-27) x86_64 BOOST_LIB_VERSION=1_49

2021-06-21T14:54:43.033+0000 I CONTROL [initandlisten] allocator: tcmalloc

2021-06-21T14:54:43.033+0000 I CONTROL [initandlisten] options: { config: "/etc/mongodb/mongodb.conf", net: { port: 27017 }, processManagement: { fork: true }, storage: { dbPath: "/lancope/var/database/dbs/mdb/" }, systemLog: { destination: "file", logAppend: true, path: "/lancope/var/mongodb/log/mongodb.log" } }

2021-06-21T14:54:43.050+0000 W - [initandlisten] Detected unclean shutdown - /lancope/var/database/dbs/mdb/mongod.lock is not empty.

2021-06-21T14:54:43.063+0000 I STORAGE [initandlisten] **************

old lock file: /lancope/var/database/dbs/mdb/mongod.lock. probably means unclean shutdown,

but there are no journal files to recover.

this is likely human error or filesystem corruption.

please make sure that your journal directory is mounted.

found 2 dbs.

see: http://dochub.mongodb.org/core/repair for more information

*************

2021-06-21T14:54:43.063+0000 I STORAGE [initandlisten] exception in initAndListen: 12596 old lock file, terminating

2021-06-21T14:54:43.063+0000 I CONTROL [initandlisten] dbexit: rc: 100

Repareer de database als deze niet start

Stap 1. Mongo-status controleren

Om de status van lc-mongodb.service te controleren, geeft u de opdracht systemctl is-active lc-mongodb uit.

Als Mongo in een actieve staat is, zullen uw resultaten lijken op:

732smc:/# systemctl is-active lc-mongodb

active

732smc:/#

Als Mongo niet actief is, zullen de resultaten er als volgt uitzien:

732smc:/# systemctl is-active lc-mongodb

inactive

732smc:/#

Stap 2. Stop de Mongo Service

Als de lc-mongodb-dienst in een actieve staat bleek te zijn, stop de dienst met de /bin/systemctl stop lc-mongodb.service commando.

732smc:/# /bin/systemctl stop lc-mongodb.service

732smc:/# /bin/systemctl status lc-mongodb.service | grep Active

Active: inactive (dead) since Thu 2022-04-07 12:33:49 UTC; 1s ago7

Wacht een paar ogenblikken en zorg ervoor dat het mongo in een stilstaande toestand blijft. Gebruik de opdracht /bin/systemctl status lc-mongodb.service indien nodig om ervoor te zorgen dat de service inactief is.

Stap 3. Verzamel proces-ID (PID)

Controleer of het vergrendelingsbestand nog steeds een PID bevat. Geef de opdracht cat /lancope/var/database/dbs/mdb/mongod.lock uit.

Deze output toont aan dat het slotbestand de PID van de mongoservice bevat. Dit bestand mag alleen gegevens bevatten als de service actief is.

Opmerking: Noteer de PID als er een wordt teruggegeven, zoals deze in Stap 4 wordt gebruikt

732smc:/# cat /lancope/var/database/dbs/mdb/mongod.lock

14259

732smc:/#

Deze output toont aan dat het slotbestand geen PID bevat. Dit bestand moet leeg zijn als het proces niet actief is. Als er geen PID is, gaat u verder met Stap 7.

732smc:/# cat /lancope/var/database/dbs/mdb/mongod.lock

732smc:/#

Stap 4. PID-status controleren

Als mongod.lock bestand ingecheckt in Stap 3 een PID bevat, voer dan de ps-fuax uit | grep [1]4259 commando (verander de [1]4259 met uw PID van stap 3) om het bestaan van de PID te controleren en vervolgens te doden die PID als het wordt gevonden.

Opmerking: de haakexpressie is niet vereist, maar resulteert in de uitsluiting van de opdracht "grep" in de uitvoer.

732smc:/# ps faux | grep [1]4259

mongodb 14259 0.3 0.4 516180 71520 ? Sl 12:38 0:03 /lancope/mongodb/bin/mongod --fork --config /etc/mongodb/mongodb.conf

732smc:/# kill -9 14259

732smc:/#

Stap 5. Inhoud vergrendelingsbestand wissen

Schakel de inhoud van het vergrendelingsbestand uit met de opdracht > /lancope/var/database/dbs/mdb/mongod.lock. Controleer of het bestand nu leeg is met de opdracht cat /lancope/var/database/dbs/mdb/mongo.lock.

732smc:/# > /lancope/var/database/dbs/mdb/mongod.lock

732smc:/# cat /lancope/var/database/dbs/mdb/mongod.lock

732smc:/#

Stap 6. Probeer de MongoDB te starten

Probeer de lc-mongodb service te starten met de lc-mongodb.service commando/bin/systemctl start. Controleer na het teruggeven van de prompt de status van het proces met de status lc-mongodb.service | grep Active opdracht.

732smc:/# /bin/systemctl start lc-mongodb.service

732smc:/# /bin/systemctl status lc-mongodb.service | grep Active

Active: active (running) since Thu 2022-04-07 12:38:37 UTC; 27s ago

732smc:/#

Als het proces in een actieve staat is, controleer opnieuw in een paar minuten om ervoor te zorgen dat het in een actieve staat blijft. U hoeft de database niet te repareren als deze in een functionerende staat blijft.  Als het proces niet actief blijft, gaat u verder naar stap 7 en start u een reparatieproces.

Stap 7. Reparatie starten

De sudo -u mongodb /lancope/mongodb/bin/mongod —dbpath/lancope/var/database/dbs/mdb —Repair commando uitgeven

732smc:/# sudo -u mongodb /lancope/mongodb/bin/mongod --dbpath /lancope/var/database/dbs/mdb/ --repair

732smc:/#

Stap 8. Probeer de gerepareerde MongoDB te starten

Voer de opdracht lc-mongodb.service om de service te starten uit vanuit de/bin/systemctl-start.  Het proces moet in een actieve staat blijven en kan met de opdracht /bin/systemctl status lc-mongodb.service worden gecontroleerd.

732smc:/# /bin/systemctl start lc-mongodb.service

732smc:/# /bin/systemctl status lc-mongodb.service | grep Active

Active: active (running) since Thu 2022-04-07 12:38:37 UTC; 27s ago