1: Installieren Sie MongoDB im DockerSchritt 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 MongoDBDas 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 anHinweis : 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:
|
<<: VUE Erste Schritte Erlernen der Ereignisbehandlung
>>: Umfassende Analyse der Isolationsebenen in MySQL
Docker-Ansichtsprozess, Speicher, Cup-Verbrauch S...
Streng geprüfte Attribute Das offizielle Dokument...
Inhaltsverzeichnis Einführung Synchron Asynchron ...
Inhaltsverzeichnis Vorwort Erstellen Sie ein Vite...
Einführung Haben Sie schon einmal eine Situation ...
Inhaltsverzeichnis 1. Kernbefehle 2. Allgemeine B...
Inhaltsverzeichnis Vorwort NULL in MySQL 2 NULL b...
Durch das Studium und die Anwendung von Node wiss...
1. Abnormale Leistung beim Docker-Start: 1. Der S...
Direkt zur Konfigurationsdatei Server { listen 80...
Stilvorlagen CSS (Cascading Style Sheets) wird zu...
Ich habe kürzlich in einem Projekt nginx und im B...
So implementieren Sie die Funktionen „Als Startse...
Linux und Unix sind Mehrbenutzer-Betriebssysteme,...
Als Front-End-Webentwickler sind Sie beim Erstell...