最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker mongoDB 4.2.1 安裝并收集springboot日志的步驟詳解

 更新時(shí)間:2020年12月29日 09:23:10   作者:悟能的師兄  
這篇文章主要介紹了Docker mongoDB 4.2.1 安裝并收集springboot日志,本文分步驟通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

一:docker安裝好mongodb

第一步:docker安裝好mongodb

[root@iZbp1gp1t778obaz5m8vk8Z /]# docker search mongo
 
[root@iZbp1gp1t778obaz5m8vk8Z /]# docker pull mongo:latest
 
Trying to pull repository docker.io/library/mongo ... 
latest: Pulling from docker.io/library/mongo
f22ccc0b8772: Pull complete 
3cf8fb62ba5f: Pull complete 
e80c964ece6a: Pull complete 
329e632c35b3: Pull complete 
3e1bd1325a3d: Pull complete 
4aa6e3d64a4a: Pull complete 
035bca87b778: Pull complete 
874e4e43cb00: Pull complete 
08cb97662b8b: Pull complete 
f623ce2ba1e1: Pull complete 
f100ac278196: Pull complete 
6f5539f9b3ee: Pull complete 
Digest: sha256:02e9941ddcb949424fa4eb01f9d235da91a5b7b64feb5887eab77e1ef84a3bad
Status: Downloaded newer image for docker.io/mongo:latest
 
[root@iZbp1gp1t778obaz5m8vk8Z /]# docker images
REPOSITORY   TAG     IMAGE ID   CREATED    SIZE
docker.io/mongo  latest    3068f6bb852e  5 days ago   493 MB
 
 指定版本安裝,建議不要安裝最新的,很坑爹,我喜歡這個(gè)版本
[root@iZbp1gp1t778obaz5m8vk8Z ~]$ docker pull mongo:4.2.1

第二步:?jiǎn)?dòng)docker中的mongodb

[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  IMAGE    COMMAND     CREATED    STATUS    PORTS      NAMES
1bcf117db0a8  mongo    "docker-entrypoint..." 7 seconds ago  Up 7 seconds  0.0.0.0:27017->27017/tcp mongo
 
此處我們?cè)O(shè)置為非登錄可見(jiàn)
新docker人請(qǐng)參考前期文章知曉參數(shù),啟動(dòng)完成后。咱們開(kāi)始整賬戶
這個(gè)是4.2.1 版本的啟動(dòng)
[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  IMAGE    COMMAND     CREATED    STATUS    PORTS      NAMES
1bcf117db0a8  mongo    "docker-entrypoint..." 7 seconds ago  Up 7 seconds  0.0.0.0:27017->27017/tcp mongo
 
此處我們?cè)O(shè)置為非登錄可見(jiàn)
新docker人請(qǐng)參考前期文章知曉參數(shù),啟動(dòng)完成后。咱們開(kāi)始整賬戶

docker常見(jiàn)參數(shù)操作方法

第三步:mongodb 配置好用戶信息

為MongoDb創(chuàng)建賬戶信息
 
[root@iZbp1gp1t778obaz5m8vk8Z mongodb]# docker exec -it mongo mongo admin
MongoDB shell version v4.4.2
connecting to: mongodb://127.0.0.1:27017/admin?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("a2d4a27c-a9dc-4af4-90cb-233e41394d51") }
MongoDB server version: 4.4.2
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
	https://docs.mongodb.com/
Questions? Try the MongoDB Developer Community Forums
	https://community.mongodb.com
> db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});
Successfully added user: {
	"user" : "admin",
	"roles" : [
		{
			"role" : "userAdminAnyDatabase",
			"db" : "admin"
		}
	]
}
> db.auth('admin', '123456')
1
> db.grantRolesToUser("admin", [ { role: "readWrite", db: "admin" } ])
為MongoDb創(chuàng)建賬戶信息,如果你不需要驗(yàn)證可以不跑這一段,但是生產(chǎn)環(huán)境可不要這么干
 
# 連接至docker中的命令操作界面
[root@izwz99z5o9dc90keftqhlrz ~]# docker exec -it mongo mongo admin
 
# 創(chuàng)建一個(gè)名為 admin,密碼為 123456的用戶。
> db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});
 
# 嘗試使用上面創(chuàng)建的用戶信息進(jìn)行連接。
> db.auth('admin', '123456')
 
# 給admin授權(quán)、讀寫(xiě)權(quán)限
> db.grantRolesToUser("admin", [ { role: "readWrite", db: "admin" } ])
 
上面是第一次進(jìn)入的時(shí)候
第二次進(jìn)入時(shí),就要守規(guī)矩了.一定要先進(jìn)guides 數(shù)據(jù)庫(kù),再添加用戶,否則不知道你添加到哪里去了
> use guides
#或者直接創(chuàng)建時(shí)給所有者權(quán)限
> db.createUser({user:"guides",pwd:"123456",roles:[{role:"dbOwner",db:"guides"}]})
#連接到此賬戶
> db.auth('guides','123456')
#用此賬戶、寫(xiě)入一條數(shù)據(jù)到guides數(shù)據(jù)庫(kù)-這個(gè)文檔
> db.guides.insert({"name":"liuxing", "age":31})

二:springboot采集日志至mongodb

采集日志就特別粗曠了

第一步:pom.xml添加配置

<!-- mongodb數(shù)據(jù)庫(kù)操作 -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

第二步:application.yml 配置好連接

#告訴Spring Boot應(yīng)該在何處mongodb,沒(méi)開(kāi)驗(yàn)證 --auth 不需要輸入用戶名和密碼,記住
spring 
 data:
 mongodb:
  host: 47.110.57.115
  port: 27017
  authentication-database: guides
  database: guides
  username: guides
  password: '123456'
  max-connection-idle-time: 1000
  max-connection-per-host: 200
  max-wait-time: 60000
  max-connection-life-time: 0
  connect-timeout: 1000
  socket-timeout: 2000
 
4.0以上authentication-database: 不要再寫(xiě)admin了,或者說(shuō)4.2.1
authentication-database: guides

第三步:AOP切片日志獲取

package com.zhx.guides.assistant.dto;
 
import com.zhx.guides.assistant.util.object.TimeHelper;
 
import java.io.Serializable;
import java.util.Date;
 
/**
 * @Date 創(chuàng)建時(shí)間: 2020-12-17 14:33
 * @Author 作者姓名: Liux
 * @Version 1.0
 * @Copyright Copyright by
 * @Direction 類說(shuō)明
 */
public class HttpRequestLog implements Serializable {
 
 public final static String collectName = "guides" ;
 
 private String url ;
 private String httpMethod ;
 private String className ;
 private String methodName ;
 private String ip ;
 private String requestParam ;
 private Date nowTime = TimeHelper.getCurrentDate() ;
 
 .... get set 省略
 
}
package com.zhx.guides.assistant.web.aspect;
 
import com.alibaba.fastjson.JSONObject;
import com.zhx.guides.assistant.dto.HttpRequestLog;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
 
import javax.servlet.http.HttpServletRequest;
 
/**
 * @Class WebLogAspect
 * @Version 1.0
 * @Date 創(chuàng)建時(shí)間:2020-03-03 10:05
 * @Copyright Copyright by company
 * @Direction 類說(shuō)明
 */
@Aspect
@Component
public class WebLogAspect {
 
 @Autowired
 private MongoTemplate mongoTemplate;
 
 private final static Logger logger = LoggerFactory.getLogger(WebLogAspect.class);
 
 /** 以 controller 包下定義的所有請(qǐng)求為切入點(diǎn) */
 @Pointcut("execution(public * com.zhx.guides.assistant.interfaces.controller..*.*(..))")
 public void webLog() {}
 
 /**
  * 在切點(diǎn)之前織入
  * @param joinPoint
  * @throws Throwable
  */
 @Before("webLog()")
 public void doBefore(JoinPoint joinPoint) throws Throwable {
  // 開(kāi)始打印請(qǐng)求日志
  ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
  HttpServletRequest request = attributes.getRequest();
 
  HttpRequestLog httpRequestLog = new HttpRequestLog() ;
  httpRequestLog.setUrl( request.getRequestURL().toString() );
  httpRequestLog.setHttpMethod( request.getMethod() );
  httpRequestLog.setClassName( joinPoint.getSignature().getDeclaringTypeName() );
  httpRequestLog.setMethodName( joinPoint.getSignature().getName());
  httpRequestLog.setIp( request.getRemoteAddr() );
 
  // 打印請(qǐng)求相關(guān)參數(shù)
  logger.info("======================= Start ======================");
  // 打印請(qǐng)求 url
  logger.info("URL   : {}", httpRequestLog.getUrl() );
  // 打印 Http method
  logger.info("HTTP Method : {}", httpRequestLog.getHttpMethod() );
  // 打印調(diào)用 controller 的全路徑以及執(zhí)行方法
  logger.info("Class Method : {}.{}", httpRequestLog.getClassName() , httpRequestLog.getMethodName());
  // 打印請(qǐng)求的 IP
  logger.info("IP    : {}", httpRequestLog.getIp() );
  // 打印請(qǐng)求入?yún)?
  try {
   Object requestParam = joinPoint.getArgs();
   httpRequestLog.setRequestParam( JSONObject.toJSONString(requestParam) );
   logger.info("參數(shù)   : {}", httpRequestLog.getRequestParam() );
  }catch (Exception e){
   logger.info("參數(shù)打印失敗,異常: {}", e.getMessage() );
  }finally {
   httpRequestLog.setClassName( null );
   try{mongoTemplate.save( httpRequestLog , HttpRequestLog.collectName );}catch (Exception e){}
  }
 }
 
 /**
  * 在切點(diǎn)之后織入
  * @throws Throwable
  */
 @After("webLog()")
 public void doAfter() throws Throwable {
  logger.info("======================= End ======================");
 }
 
 /**
  * 環(huán)繞
  * @param proceedingJoinPoint
  * @return
  * @throws Throwable
  */
 @Around("webLog()")
 public Object doAround(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
  long startTime = System.currentTimeMillis();
  Object result = proceedingJoinPoint.proceed();
  // 打印出參
  logger.info("返回值 : {}", JSONObject.toJSONString(result));
  // 執(zhí)行耗時(shí)
  logger.info("耗時(shí) : {} ms", System.currentTimeMillis() - startTime);
  return result;
 }
 
}
package com.zhx.guides.assistant.util.object;
 
import org.apache.commons.lang.StringUtils;
 
import java.util.Date;
 
/**
 * @Class TimeHelper
 * @Version 1.0
 * @Date 創(chuàng)建時(shí)間:2018/12/21 09:26
 * @Copyright Copyright by
 * @Direction 類說(shuō)明
 */
public class TimeHelper { 
 
 /**
  *當(dāng)前時(shí)間
  * @return
  */
 public static Date getCurrentDate(){
  Calendar calendar = Calendar.getInstance();
  return calendar.getTime();
 }
 
}

三:看看存儲(chǔ)日志的效果

備注:請(qǐng)注意使用的mongodb版本:4.2.1 依次配置使用即可

如果你使用的最新版本,有可能發(fā)生各種 權(quán)限不能通過(guò)的問(wèn)題,那么請(qǐng)切換至4.2.1穩(wěn)定版本,用最新版本有點(diǎn)當(dāng)小白鼠的感覺(jué)。

到此這篇關(guān)于Docker mongoDB 4.2.1 安裝并收集springboot日志的文章就介紹到這了,更多相關(guān)Docker安裝mongoDB并收集springboot日志內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker安裝運(yùn)行apache2服務(wù)器做圖片服務(wù)器的方法

    Docker安裝運(yùn)行apache2服務(wù)器做圖片服務(wù)器的方法

    這篇文章主要介紹了Docker安裝運(yùn)行apache2服務(wù)器做圖片服務(wù)器的方法,需要的朋友可以參考下
    2017-06-06
  • Docker鏡像加載原理

    Docker鏡像加載原理

    Docker鏡像是Docker容器運(yùn)行的基礎(chǔ),沒(méi)有Docker鏡像,就不可能有Docker容器,這也是Docker的設(shè)計(jì)原則之一 ,本文給大家介紹Docker鏡像加載原理,感興趣的朋友一起看看吧
    2021-06-06
  • docker部署Zlm服務(wù)的實(shí)現(xiàn)

    docker部署Zlm服務(wù)的實(shí)現(xiàn)

    本文主要介紹了docker部署Zlm服務(wù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-03-03
  • Docker版FFmpeg安裝部署的詳細(xì)步驟

    Docker版FFmpeg安裝部署的詳細(xì)步驟

    項(xiàng)目組開(kāi)發(fā)過(guò)程用因?yàn)橐褂靡纛l格式轉(zhuǎn)換功能,FFmpeg是常見(jiàn)的音視頻處理工具,本文就來(lái)介紹一下Docker版FFmpeg安裝部署的詳細(xì)步驟,感興趣的可以了解一下
    2023-10-10
  • docker desktop安裝redis的實(shí)現(xiàn)步驟

    docker desktop安裝redis的實(shí)現(xiàn)步驟

    本文主要介紹了docker desktop安裝redis的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • Docker容器實(shí)現(xiàn)按順序啟動(dòng)的完整指南

    Docker容器實(shí)現(xiàn)按順序啟動(dòng)的完整指南

    在日常開(kāi)發(fā)和運(yùn)維中,我們會(huì)遇到這樣的需求,即多個(gè) Docker 容器需要按特定順序啟動(dòng),下面小編就和大家詳細(xì)介紹一下具體的實(shí)現(xiàn)方法吧
    2025-12-12
  • Docker 中 Crontab 不執(zhí)行的原因全解析與解決方案

    Docker 中 Crontab 不執(zhí)行的原因全解析與解決方案

    文章總結(jié)了在Docker容器里使用crontab時(shí)遇到的問(wèn)題及解決方法,常見(jiàn)問(wèn)題包括缺少cron服務(wù)、服務(wù)未啟動(dòng)、容器銷毀后任務(wù)丟失等,解決方法包括使用Supervisor管理cron、將任務(wù)放在宿主機(jī)的crontab、通過(guò)掛載方式加載宿主機(jī)的cron文件,感興趣的朋友跟隨小編一起看看吧
    2025-12-12
  • Docker?Desktop容器的自啟動(dòng)設(shè)置修改步驟

    Docker?Desktop容器的自啟動(dòng)設(shè)置修改步驟

    Docker作為一種輕量級(jí)的容器化技術(shù),在開(kāi)發(fā)、測(cè)試、部署等環(huán)節(jié)發(fā)揮著至關(guān)重要的作用,這篇文章主要介紹了Docker?Desktop容器的自啟動(dòng)設(shè)置修改的相關(guān)資料,需要的朋友可以參考下
    2025-04-04
  • docker利用selenium+testng實(shí)現(xiàn)web自動(dòng)化的方法

    docker利用selenium+testng實(shí)現(xiàn)web自動(dòng)化的方法

    這篇文章主要給大家介紹了關(guān)于docker利用selenium+testng實(shí)現(xiàn)web自動(dòng)化的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2018-10-10
  • Docker入門(mén)教程之本地打包docker鏡像教程

    Docker入門(mén)教程之本地打包docker鏡像教程

    Docker鏡像是一個(gè)特殊的文件系統(tǒng),既提供了運(yùn)行時(shí)所需的程序、庫(kù)和資源,還提供了相應(yīng)的配置參數(shù),只是不包含動(dòng)態(tài)數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于Docker入門(mén)教程之本地打包docker鏡像的相關(guān)資料,需要的朋友可以參考下
    2023-06-06

最新評(píng)論

连江县| 志丹县| 甘泉县| 原平市| 上杭县| 兴安县| 大英县| 辽阳市| 开化县| 闸北区| 吉安县| 宁远县| 宣威市| 勐海县| 徐闻县| 同心县| 平罗县| 巴马| 左贡县| 临泽县| 麟游县| 丰原市| 宽甸| 图木舒克市| 福建省| 上虞市| 通海县| 武清区| 滨州市| 平塘县| 五寨县| 泉州市| 牟定县| 台东市| 祁阳县| 勐海县| 疏勒县| 洛宁县| 剑阁县| 平昌县| 称多县|