Detaillierte Schritte zur Installation von Docker mongoDB 4.2.1 und zum Sammeln von Springboot-Protokollen

Detaillierte Schritte zur Installation von Docker mongoDB 4.2.1 und zum Sammeln von Springboot-Protokollen

1: Installieren Sie MongoDB im Docker

Schritt 1: Installieren Sie MongoDB im Docker

[root@iZbp1gp1t778obaz5m8vk8Z /]# Docker-Suche Mongo
 
[root@iZbp1gp1t778obaz5m8vk8Z /]# Docker Pull Mongo: neueste
 
Es wird versucht, das Repository docker.io/library/mongo abzurufen ... 
aktuell: Abrufen von docker.io/library/mongo
f22ccc0b8772: Ziehen abgeschlossen 
3cf8fb62ba5f: Ziehen abgeschlossen 
e80c964ece6a: Ziehen abgeschlossen 
329e632c35b3: Ziehen abgeschlossen 
3e1bd1325a3d: Ziehen abgeschlossen 
4aa6e3d64a4a: Ziehen abgeschlossen 
035bca87b778: Ziehen abgeschlossen 
874e4e43cb00: Ziehen abgeschlossen 
08cb97662b8b: Ziehen abgeschlossen 
f623ce2ba1e1: Ziehen abgeschlossen 
f100ac278196: Ziehen abgeschlossen 
6f5539f9b3ee: Ziehen abgeschlossen 
Zusammenfassung: sha256:02e9941ddcb949424fa4eb01f9d235da91a5b7b64feb5887eab77e1ef84a3bad
Status: Neueres Image für docker.io/mongo:latest heruntergeladen
 
[root@iZbp1gp1t778obaz5m8vk8Z /]# Docker-Bilder
REPOSITORY TAG BILD ID ERSTELLT GRÖSSE
docker.io/mongo latest 3068f6bb852e vor 5 Tagen 493 MB
 
 Geben Sie die zu installierende Version an. Es wird empfohlen, nicht die neueste Version zu installieren, da dies sehr schlecht ist. Ich mag diese Version [root@iZbp1gp1t778obaz5m8vk8Z ~]$ docker pull mongo:4.2.1

Schritt 2: Starten Sie MongoDB im Docker

[root@iZbp1gp1t778obaz5m8vk8Z mongodb]# docker run -itd --name mongo --restart=on-failure:10 -d -m 1G --memory-swap 4G -p 27017:27017 -v /data/mongodb:/data/db mongo 
1bcf117db0a8e86840a1acac769338053e8dff25a41bd1488d7a274ea171371a
[root@iZbp1gp1t778obaz5m8vk8Z mongodb]# 
[root@iZbp1gp1t778obaz5m8vk8Z mongodb]# docker ps -a
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
1bcf117db0a8 mongo „docker-entrypoint…“ vor 7 Sekunden Up 7 Sekunden 0.0.0.0:27017->27017/tcp mongo
 
Hier stellen wir es so ein, dass es für neue Docker-Benutzer ohne Anmeldung sichtbar ist. Bitte lesen Sie den vorherigen Artikel, um die Parameter nach Abschluss des Startvorgangs zu erfahren. Beginnen wir mit der Anpassung des Kontos
Dies ist der Start der Version 4.2.1 [root@iZbp1gp1t778obaz5m8vk8Z mongodb]# docker run -itd --name mongo --restart=on-failure:10 -d -m 1G --memory-swap 4G -p 27017:27017 \
-v /data/mongodb:/data/db \
mongo:4.2.1 --auth
[root@iZbp1gp1t778obaz5m8vk8Z mongodb]# 
[root@iZbp1gp1t778obaz5m8vk8Z mongodb]# docker ps -a
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
1bcf117db0a8 mongo „docker-entrypoint…“ vor 7 Sekunden Up 7 Sekunden 0.0.0.0:27017->27017/tcp mongo
 
Hier stellen wir es so ein, dass es für neue Docker-Benutzer ohne Anmeldung sichtbar ist. Bitte lesen Sie den vorherigen Artikel, um die Parameter nach Abschluss des Startvorgangs zu erfahren. Beginnen wir mit der Anpassung des Kontos

《So bedienen Sie allgemeine Docker-Parameter》

Schritt 3: Benutzerinformationen in MongoDB konfigurieren

Kontoinformationen für MongoDb erstellen [root@iZbp1gp1t778obaz5m8vk8Z mongodb]# docker exec -it mongo mongo admin
MongoDB-Shell-Version v4.4.2
Verbindung wird hergestellt mit: mongodb://127.0.0.1:27017/admin?compressors=disabled&gssapiServiceName=mongodb
Implizite Sitzung: Sitzung { "id" : UUID("a2d4a27c-a9dc-4af4-90cb-233e41394d51") }
MongoDB-Serverversion: 4.4.2
Willkommen in der MongoDB-Shell.
Geben Sie „help“ ein, um interaktive Hilfe zu erhalten.
Ausführlichere Dokumentation finden Sie unter
	https://docs.mongodb.com/
Fragen? Besuchen Sie die MongoDB Developer Community-Foren
	https://community.mongodb.com
> db.createUser({ Benutzer:'admin',pwd:'123456',Rollen:[ { Rolle:'userAdminAnyDatabase', db: 'admin'}]});
Benutzer erfolgreich hinzugefügt:
	"Benutzer" : "Administrator",
	"Rollen" : [
		{
			"Rolle" : "BenutzerAdminAlleDatenbank",
			"Datenbank": "Administrator"
		}
	]
}
> db.auth('admin', '123456')
1
> db.grantRolesToUser("admin", [ { role: "readWrite", db: "admin" } ])
Erstellen Sie Kontoinformationen für MongoDb. Wenn Sie keine Authentifizierung benötigen, können Sie diesen Schritt überspringen, aber tun Sie dies nicht in einer Produktionsumgebung. # Stellen Sie eine Verbindung zur Befehlsoperationsschnittstelle im Docker her [root@izwz99z5o9dc90keftqhlrz ~] # docker exec -it mongo mongo admin
 
# Erstellen Sie einen Benutzer namens admin mit dem Passwort 123456.
> db.createUser({ Benutzer:'admin',pwd:'123456',Rollen:[ { Rolle:'userAdminAnyDatabase', db: 'admin'}]});
 
# Versuchen Sie, mit den oben erstellten Benutzerinformationen eine Verbindung herzustellen.
> db.auth('admin', '123456')
 
# Administratorberechtigung, Lese- und Schreibberechtigung erteilen> db.grantRolesToUser("admin", [ { role: "readWrite", db: "admin" } ])
 
Das Obige ist, als ich zum ersten Mal eintrat
Wenn Sie sich zum zweiten Mal anmelden, müssen Sie die Regeln befolgen. Sie müssen zuerst die Guides-Datenbank aufrufen und dann Benutzer hinzufügen, sonst wissen Sie nicht, wo Sie sie hinzugefügt haben. > Guides verwenden
#Oder erteilen Sie dem Eigentümer beim direkten Erstellen die Berechtigungen> db.createUser({user:"guides",pwd:"123456",roles:[{role:"dbOwner",db:"guides"}]})
#Mit diesem Konto verbinden> db.auth('guides','123456')
#Verwenden Sie dieses Konto, um Daten in die Guide-Datenbank zu schreiben – dieses Dokument> db.guides.insert({"name":"liuxing", "age":31})

2: Springboot sammelt Protokolle für MongoDB

Das Sammelprotokoll ist besonders rau

Schritt 1: Konfiguration zu pom.xml hinzufügen

<!-- MongoDB-Datenbankoperation-->
<Abhängigkeit>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-mongodb</artifactId>
</Abhängigkeit>

Schritt 2: Konfigurieren Sie die Verbindung in application.yml

#Sagen Sie Spring Boot, wo MongoDB sein soll, keine Authentifizierung --auth erfordert keinen Benutzernamen und kein Passwort, denken Sie an Spring 
 Daten:
 MongoDB:
  Gastgeber: 47.110.57.115
  Port: 27017
  Authentifizierungsdatenbank: Anleitungen
  Datenbank: Leitfäden
  Benutzername: guides
  Passwort: '123456'
  Maximale Verbindungsleerlaufzeit: 1000
  Maximale Verbindungen pro Host: 200
  maximale Wartezeit: 60000
  maximale Verbindungslebensdauer: 0
  Verbindungs-Timeout: 1000
  Socket-Timeout: 2000
 
authentication-database 4.0 und höher: nicht mehr admin schreiben, oder 4.2.1
Authentifizierungsdatenbank: Anleitungen

Schritt 3: AOP-Slice-Protokolle abrufen

Paket com.zhx.guides.assistant.dto;
 
importiere com.zhx.guides.assistant.util.object.TimeHelper;
 
importiere java.io.Serializable;
importiere java.util.Date;
 
/**
 * @Datum Erstellungszeit: 2020-12-17 14:33
 * @Autor Name des Autors: Liux
 * @Version 1.0
 * @Copyright Urheberrechtlich geschützt durch
 * @Direction Klassenbeschreibung */
öffentliche Klasse HttpRequestLog implementiert Serializable {
 
 öffentliche endgültige statische Zeichenfolge collectName = "Anleitungen";
 
 private String-URL;
 private String-httpMethod;
 privater String-Klassenname;
 privater String-Methodenname;
 private String-IP;
 privater String-Anforderungsparameter;
 privates Datum nowTime = TimeHelper.getCurrentDate();
 
 .... get set ausgelassen}
Paket com.zhx.guides.assistant.web.aspect;
 
importiere com.alibaba.fastjson.JSONObject;
importiere com.zhx.guides.assistant.dto.HttpRequestLog;
importiere org.aspectj.lang.JoinPoint;
importiere org.aspectj.lang.ProceedingJoinPoint;
importiere org.aspectj.lang.annotation.*;
importiere org.slf4j.Logger;
importiere org.slf4j.LoggerFactory;
importiere org.springframework.beans.factory.annotation.Autowired;
importiere org.springframework.data.mongodb.core.MongoTemplate;
importiere org.springframework.stereotype.Component;
importiere org.springframework.web.context.request.RequestContextHolder;
importiere org.springframework.web.context.request.ServletRequestAttributes;
 
importiere javax.servlet.http.HttpServletRequest;
 
/**
 * @Class WebLogAspect
 * @Version 1.0
 * @Datum Erstellungszeit: 2020-03-03 10:05
 * @Copyright Urheberrecht beim Unternehmen
 * @Direction Klassenbeschreibung */
@Aspekt
@Komponente
öffentliche Klasse WebLogAspect {
 
 @Autowired
 privates MongoTemplate mongoTemplate;
 
 privater endgültiger statischer Logger Logger = LoggerFactory.getLogger (WebLogAspect.class);
 
 /** Alle im Controller-Paket definierten Anfragen als Einstiegspunkt verwenden*/
 @Pointcut("Ausführung(öffentlich * com.zhx.guides.assistant.interfaces.controller..*.*(..))")
 öffentliche void webLog() {}
 
 /**
  * Weben vor dem Pointcut * @param joinPoint
  * @throws Wurfobjekt
  */
 @Before("webLog()")
 öffentliche void doBefore(JoinPoint joinPoint) wirft Throwable {
  // Anforderungsprotokoll drucken ServletRequestAttributes-Attribute = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
  HttpServletRequest-Anfrage = Attribute.getRequest();
 
  HttpRequestLog httpRequestLog = neues HttpRequestLog();
  httpRequestLog.setUrl( request.getRequestURL().toString() );
  httpRequestLog.setHttpMethod( request.getMethod() );
  httpRequestLog.setClassName( joinPoint.getSignature().getDeclaringTypeName() );
  httpRequestLog.setMethodName(joinPoint.getSignature().getName());
  httpRequestLog.setIp( request.getRemoteAddr() );
 
  // Anforderungsbezogene Parameter drucken logger.info("======================= Start =========================");
  // Anfrage-URL drucken
  logger.info("URL : {}", httpRequestLog.getUrl() );
  //Drucken der HTTP-Methode
  logger.info("HTTP-Methode: {}", httpRequestLog.getHttpMethod());
  // Den vollständigen Pfad des Controller-Aufrufs und der Ausführungsmethode drucken logger.info("Class Method : {}.{}", httpRequestLog.getClassName() , httpRequestLog.getMethodName());
  // Drucke die angeforderte IP
  logger.info("IP : {}", httpRequestLog.getIp() );
  //Anforderungseingabeparameter drucken try {
   Objekt requestParam = joinPoint.getArgs();
   httpRequestLog.setRequestParam( JSONObject.toJSONString(requestParam) );
   logger.info("Parameter: {}", httpRequestLog.getRequestParam());
  }catch (Ausnahme e){
   logger.info("Parameterdruck fehlgeschlagen, Ausnahme: {}", e.getMessage());
  }Endlich {
   httpRequestLog.setClassName( null );
   versuche {mongoTemplate.save( httpRequestLog , HttpRequestLog.collectName );}catch (Exception e) {}
  }
 }
 
 /**
  * Nach dem Pointcut einweben * @throws Throwable
  */
 @Nach("webLog()")
 öffentliche void doAfter() wirft Throwable {
  logger.info("======================= Ende ========================");
 }
 
 /**
  * Umbruch * @param proceedingJoinPoint
  * @zurückkehren
  * @throws Wurfobjekt
  */
 @Around("webLog()")
 öffentliches Objekt doAround(ProceedingJoinPoint proceedingJoinPoint) wirft Throwable {
  lange Startzeit = System.currentTimeMillis();
  Objektergebnis = proceedingJoinPoint.proceed();
  //Drucken Sie die Parameter aus logger.info("return value: {}", JSONObject.toJSONString(result));
  // Ausführungszeit logger.info("Time: {} ms", System.currentTimeMillis() - startTime);
  Ergebnis zurückgeben;
 }
 
}
Paket com.zhx.guides.assistant.util.object;
 
importiere org.apache.commons.lang.StringUtils;
 
importiere java.util.Date;
 
/**
 * @Class Zeithelfer
 * @Version 1.0
 * @Datum Erstellungszeit: 2018/12/21 09:26
 * @Copyright Urheberrechtlich geschützt durch
 * @Direction Klassenbeschreibung */
öffentliche Klasse TimeHelper { 
 
 /**
  *Aktuelle Uhrzeit* @return
  */
 öffentliches statisches Datum getCurrentDate(){
  Kalender Kalender = Kalender.getInstance();
  Kalender zurückgeben.getTime();
 }
 
}

Drei: Sehen Sie sich die Auswirkungen der Protokollspeicherung an

Hinweis : Bitte beachten Sie die verwendete MongoDB-Version: 4.2.1. Konfigurieren und verwenden Sie sie der Reihe nach.

Wenn Sie die neueste Version verwenden, kann es zu Problemen mit verschiedenen Berechtigungen kommen, die nicht weitergegeben werden. Wechseln Sie daher bitte zur stabilen Version 4.2.1. Die Verwendung der neuesten Version ist ein bisschen wie ein Versuchskaninchen.

Dies ist das Ende dieses Artikels über die Installation von Docker mongoDB 4.2.1 und das Sammeln von Springboot-Protokollen. Weitere Informationen zur Installation von Docker mongoDB und zum Sammeln von Springboot-Protokollen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung zur Installation von MongoDB mit Docker unter Linux
  • So installieren Sie die neueste Version von MongoDB mit Docker
  • Installieren Sie Mongo4.2 und Client-Tools, um unter Docker eine Verbindung zu Mongo herzustellen

<<:  VUE Erste Schritte Erlernen der Ereignisbehandlung

>>:  Umfassende Analyse der Isolationsebenen in MySQL

Artikel empfehlen

Docker View-Prozess, Speicher und Cup-Verbrauch

Docker-Ansichtsprozess, Speicher, Cup-Verbrauch S...

Lernen Sie die asynchrone Programmierung in Node.js in einem Artikel

Inhaltsverzeichnis Einführung Synchron Asynchron ...

So erstellen Sie ein React-Projekt mit Vite

Inhaltsverzeichnis Vorwort Erstellen Sie ein Vite...

Verstehen Sie kurz die MySQL-Datenbankoptimierungsphase

Einführung Haben Sie schon einmal eine Situation ...

In diesem Artikel erfahren Sie mehr über NULL in MySQL

Inhaltsverzeichnis Vorwort NULL in MySQL 2 NULL b...

Zusammenfassung der Wissenspunkte zum Ereignismodul in Node.js

Durch das Studium und die Anwendung von Node wiss...

Detaillierte Erklärung der CSS-Stylesheets und des Formatlayouts

Stilvorlagen CSS (Cascading Style Sheets) wird zu...

Detaillierte Erläuterung der Nginx-Timeout-Konfiguration

Ich habe kürzlich in einem Projekt nginx und im B...

HTML als Startseite festlegen und zu Favoriten hinzufügen_Powernode Java Academy

So implementieren Sie die Funktionen „Als Startse...

Ändern Sie die Dateiberechtigungen (Eigentum) unter Linux

Linux und Unix sind Mehrbenutzer-Betriebssysteme,...