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