spring boot admin分布式部署日志查看

spring boot admin 监控和服务部署到同一台服务器查看日志没有什么问题。但是当spring boot服务进行分布式部署时,这个时候会存在如下情况,查看不了日志。

在这里插入图片描述

在这里插入图片描述

这个时候,我们需要进行如下配置操作,

1、添加属性版
1-1、yml文件修改
xxxx:
  server:
    ip:

spring:
  boot:
    admin:
      client:
        instance:
          name: xxxx服务_${spring.profiles.active}
          id: ${random.uuid}
          prefer-ip: true
          service-base-url: http://${xxxx.server.ip}:${server.port}
1-2、后台代码
public class xxxxService {
    public static void main(String[] args) {
        System.setProperty("xxxx.server.ip",ServerIPFileUtils.getServerIp());
        SpringApplication.run(xxxxService.class, args);
    }
}
2、新增配置文件版本
2-1、配置文件操作
spring:
  boot:
    admin:
      client:
        instance:
          name: xxxx服务_${random.int[1,10]}
          id: ${random.uuid}
          prefer-ip: true
  config:
    import:
      - optional:/xxx/xxx/xx-xx/server_ip.yml #引入外部文件设置spring boot server 服务器ip地址.

2-1-1、server_ip.yml文件内容
spring:
  boot:
    admin:
      client:
        instance:
          service-base-url: http://xxxxx:${server.port}
2-2、动态生成server_ip.yml
 private static final String  IP_FILE_CONTENT="spring:\n" +
            "  boot:\n" +
            "    admin:\n" +
            "      client:\n" +
            "        instance:\n" +
            "          service-base-url: http://local_ip_server_name:${server.port}";

    private static final String SERVER_FILE_NAME = "/server_ip.yml";

    public static void createServerFile(String filePath ) {
        File file = new File(filePath);
        if (!file.getParentFile().exists()) {
            file.getParentFile().mkdirs();
            log.debug("穿件文件夹{}成功",file.getParentFile().getAbsolutePath());
        }

        if(file.exists()){
            log.info("文件{}存在,不需要重复生成",filePath);
            return;
        }else {
            log.info("文件不存在,首次生成文件,path={}",file.getAbsolutePath());
        }
     
        try (OutputStream outputStream = new FileOutputStream(file);) {
            String content=IP_FILE_CONTENT.replace("local_ip_server_name",getServerIp() );
            outputStream.write(content.getBytes());
        } catch (IOException e) {
            log.error(e.getMessage(), e);
        }
    }

    /**
     * 获取当前部署环境主机IP
     * @return
     */
    public static String getServerIp() {
        try {
            String hostName  = Inet4Address.getLocalHost().getHostName();
            InetAddress inetAddress2[] = Inet4Address.getAllByName(hostName);
            for (InetAddress add:inetAddress2){
                if(add.isSiteLocalAddress()){
                    log.debug("address={},hostname={}",add.getHostAddress(),add.getHostName());
                    return add.getHostAddress();
                }
            }
        } catch (UnknownHostException e) {
            log.error(e.getMessage(),e);
        }
        return DEFAULT_IP;
    }
2-3、服务启动生成server_ip.ymal文件
@SpringBootApplication
@ComponentScan({"com.xxx.xx.xxx.*"})
@MapperScan({"com.xx.xx.xx.xx.*.mapper"})
public class MQApplication {

    private static String filePath;
	//server_ip。ymal文件生成地址
    @Value("${xx.xx.ip-server-file}")
    private   String ipServerFile;

    @PostConstruct
    public void init(){
        filePath = ipServerFile;
    }

    public static void main(String[] args) {
        SpringApplication.run(XXApplication.class,args);
        ServerIPFileUtils.createServerFile(filePath);
    }
}

以上操作为个人实现方案,仅供参考,大家如果还有更好的方式,欢迎评论区留言一起讨论。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Java微服务架构l零从基础到精通高清视频教程全套 第1章 微服务简介 001构建单体应用 002微服务解决复杂问题 003微服务的优点 004微服务的缺点 第2章 Linux使用 005Linux 简介 006Linux 与 Windows 比较 007安装 Linux 008Linux 远程控制管理 009Linux 目录结构 010操作文件目录 011系统管理命令 012开关机命令 013压缩命令 014Linux 编辑器 015修改数据源 016常用 APT 命令 017Linux 用户和组管理 018查看目录和文件的权限 019更改操作权限 020安装 Java 021安装 Tomcat 022安装 MySQL 023部署项目 第3章 Docker实战开发 042设置镜像标签 024Docker 简介 025Docker 功能特点 026Docker 系统架构 027Docker 安装 028第一个 Docker 应用程序 029运行交互式的容器 030后台运行与停止容器 031Docker 客户端帮助命令 032运行 Web 容器 033指定 Web 容器映射端口 034查看容器进程 035查看容器状态 036批量移除容器 037Docker Hub 镜像仓库 038获取镜像 039查找镜像 040更新镜像 041创建和移除镜像 043安装 Tomcat 044安装 MySQL 045部署项目 046数据卷简介 047创建数据卷 048备份数据卷 049恢复数据卷 050Docker Compose-安装 051Docker Compose-使用 第4章 使用 GitLab 托管代码 055GitLab简介 056GitLab 安装 057GitLab 设置 058GitLab 账户管理 059GitLab 使用-HTTP 060GitLab 使用-SSH 第5章 Spring Boot 061Spring简史 062 Spring Boot 简介 063 第一个 Spring Boot 应用程序 064 Spring Boot 自定义 Banner 065 Spring Boot 配置 066 Spring Boot Starter POM 067 Spring Boot 日志配置 第6章 集成 MyBatis 068Thymeleaf简介 069 第一个 Thymeleaf 模板页 070 集成 Druid 数据源 071 集成 TkMyBatis 简化 MyBatis 操作 072 集成 PageHelper 分页插件 073 使用 MyBatis Maven Plugin 自动生成代码 074 集成 MyBatis-测试查询 第7章 项目实战 075项目简介 076 创建依赖管理项目 077 创建通用工具项目 078 创建数据库管理项目 079 创建领域模型项目 080 创建管理后台接口项目 081 创建管理后台实现项目 082 为什么要使用 Dubbo 083 再谈微服务-背景介绍 084 再谈微服务-面向服务架构与微服务架构 085 再谈微服务-服务框架对比 1 085 再谈微服务-服务框架对比 2 086 再谈微服务-RPC 对比 REST 087 Dubbo 简介 088 Dubbo 服务治理 089 Dubbo 组件角色 090 Zookeeper 简介 091 Zookeeper 应用举例 092 Zookeeper 集群模式 093 Dubbo Admin 管理控制台 094 系统后台管理-修改所需依赖 095 服务提供者 096 服务消费者 097 测试 JRebel 热部署 098 登录页 099 首页1 099 首页2 100 使用 thymeleaf 模板 101 使用 iframe 展示功能页 102 频道管理功能-列表页布局 103 新增频道 104 频道列表 105 选择父级频道1 105 选择父级频道2 106 表单页的树控件 107 列表页的树表格 108 FastDFS 分布式文件系统简介 109 FastDFS 分布式文件系统安装 110 文章管理功能-改造树控件1 110文章管理功能-改造树控件2 111 文章管理功能-新增文章 112 文章管理功能-使用 PageHelper 进行分页查询 113 文章管理功能-前端 Datatable 控件分页处理1 113 文章管理功能-前端 Datatable 控件分页处理2 114 文章管理功能-补充内容(关于 PageHelper 的依赖问题) 115 文章管理功能-Thymeleaf 自定义标签1 115 文章管理功能-Thymeleaf 自定义标签2 116 文章管理功能-实现字典标签1 116 文章管理功能-实现字典标签2 117 文章管理功能-实现 FastDFS 客户端 118 文章管理功能-前端 Dropzone 上传图片1 118 文章管理功能-前端 Dropzone 上传图片2 119 文章管理功能-前端 WangEditor 上传图片 120 HBuilder 客户端-创建移动 APP 项目 121 HBuilder 客户端-真机运行项目 122 HBuilder 客户端-HBuilder 的基本使用 123 HBuilder 客户端-使用自定义图标 124 HBuilder 客户端-HBuilder Manifest 文件说明 125 HBuilder 客户端-实现底部选项卡切换1 125 HBuilder 客户端-实现底部选项卡切换2 126 HBuilder 客户端-HBuilder 自定义代码块 127 HBuilder 客户端-打开新窗口 128 使用 API Gateway 统一服务接口-API Gateway 简介 129 使用 API Gateway 统一服务接口-创建频道服务 130使用 API Gateway 统一服务接口-创建文章服务 131 使用 API Gateway 统一服务接口-创建 API Gateway 132 使用 API Gateway 统一服务接口-Swagger2 生成接口文档 133 使用 API Gateway 统一服务接口-完善 API 网关代码 134 客户端与服务端通信-客户端请求服务端 135 客户端与服务端通信-服务端封装响应结构 136 客户端与服务端通信-客户端封装数据结构 137 客户端与服务端通信-客户端封装 Ajax 请求1 137 客户端与服务端通信-客户端封装 Ajax 请求2 138 客户端与服务端通信-解决跨域问题 139 Redis 为数据添加缓存-Redis HA 简介 140 Redis 为数据添加缓存-Redis Sentinel 高可用集群部署 141 Redis 为数据添加缓存-Redis 客户端的使用 142 Redis 为数据添加缓存-Spring Boot 集成 Redis1 142 Redis 为数据添加缓存-Spring Boot 集成 Redis2 143 HBuilder 客户端-前端功能编码演示01(可略过) 144 HBuilder 客户端-前端功能编码演示02(可略过) 145 HBuilder 客户端-前端功能编码演示03(可略过)1 145 HBuilder 客户端-前端功能编码演示03(可略过)2 146 HBuilder 客户端-前端功能编码演示04(可略过)1 146 HBuilder 客户端-前端功能编码演示04(可略过)2 147 HBuilder 客户端-前端功能编码演示05(可略过)1 147 HBuilder 客户端-前端功能编码演示05(可略过)2 148 Solr 全文搜索引擎-Solr 简介 149 Solr 全文搜索引擎-Solr 服务器部署 150 Solr 全文搜索引擎-Solr 配置字段域 151 Solr 全文搜索引擎-Solr 维护功能 152 Solr 全文搜索引擎-Solr 查询与高亮显示 153 Solr 全文搜索引擎-Spring Boot 集成 Solr 154 Solr 全文搜索引擎-完成测试类 CRUD 功能 155 Solr 全文搜索引擎-实现搜索接口 156 Spring Boot 启用 Profile 157 Docker 私服搭建 158 项目的容器化部署1 159 项目的容器化部署2.1 159 项目的容器化部署2.2 160 项目的容器化部署3.1 160 项目的容器化部署3.2 161 基本概念 162 操作流程 163 GitLab CI
Hmily是柔性分布式事务解决方案,提供了TCC 与 TAC 模式。它以零侵入以及快速集成方式能够方便的被业务进行整合。在性能上,日志存储异步(可选)以及使用异步执行的方式,不损耗业务方法方法。之前是由我个人开发,目前由我在京东数科已经重新启动,未来将会是金融场景的分布式事务解决方案。 功能: 高可靠性:支持分布式场景下,事务异常回滚,超时异常恢复,防止事务悬挂 易用性:提供零侵入性式的 Spring-BootSpring-Namespace 快速与业务系统集成 高性能:去中心化设计,与业务系统完全融合,天然支持集群部署 可观测性:Metrics多项指标性能监控,以及admin管理后台UI展示 多种RPC:支持 Dubbo,SpringCloud,Motan,Sofa-rpc,brpc,tars 等知名RPC框架 日志存储:支持 mysql,oracle,mongodb,redis,zookeeper 等方式 复杂场景:支持RPC嵌套调用事务 必要前提: 必须使用 JDK8+ TCC模式必须要使用一款 RPC 框架,比如:Dubbo,SpringCloud,Montan TCC模式 当使用TCC模式的时候,用户根据自身业务需求提供 try,confirm,cancel 等三个方法, 并且 confirm,cancel 方法由自身完成实现,框架只是负责来调用,来达到事务的一致性。 TAC模式 当用户使用TAC模式的时候,用户必须使用关系型数据库来进行业务操作,框架会自动生成回滚SQL,当业务异常的时候,会执行回滚SQL来达到事务的一致性。
entfrm-boot是一个以模块化为核心的无代码开发平台,是一个集PC和APP快速开发、系统管理、运维监控、开发工具、OAuth2授权、可视化数据源管理与数据构建、API动态生成与统计、工作流、智能表单设计、微服务骨架等全方位功能于一体的高效、稳定的快速开发平台。 后端采用Spring Boot 2.X 、Spring Security、Oauth2、Mybatis Plus、Activiti、 uni-app等核心技术,前端基于vue-element-admin框架。 entfrm-boot可视化开发平台功能: 1、系统管理 机构管理:配置系统组织机构,无限级树结构展现支持数据权限。 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。 用户管理:用户是系统操作者,该功能主要完成系统用户配置。 菜单管理:配置系统菜单,操作权限,按钮权限标识等。 字典管理:对系统中经常使用的一些较为固定的数据进行维护。 参数管理:对系统动态配置常用参数。 快捷方式:添加顶部、首页快捷方式。 文件管理:文件统一管理,集成阿里云、腾讯云、七牛等。 终端管理:OAuth2 Password、授权码模式,灵活管理。 数据维护:mysql数据库备份与还原。 2、运维监控 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。 令牌管理:用户登录token管理。 数据监控: 监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。 缓存监控:redis缓存监控。 服务监控: 监视当前系统CPU、内存、磁盘、堆栈等相关信息。 API监控:restful api 接口调用统计、可视化。 日志监控 登录日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。 操作日志:系统登录日志记录查询包含登录异常。 3、消息系统 消息模板:消息模板管理与审核。 系统消息:包括系统通知、告警等。 短信:短信平台集成。 邮件:邮件集成。 4、开发工具 数据管理:Mysql、SQL Server、PostgreSQL等主流数据库在线管理、数据表管理(新建、修改、删除、查询)、数据源管理与数据转换。 代码生成:支持单表、树表、左树右表代码生成。 5、API引擎 应用管理:应用新增、修改、删除、查看。 API设计:API在线设计、无代码开发,支持自定义。 API文档与测试:API文档生成与自动化测试。 API资源权限:API资源管理、权限控制。 API统计报表:API使用统计、图表展示。 6、流程引擎(Activiti) 模型管理:功能包括模型新增、查看、删除、模型设计、模型部署。 流程定义:功能包括流程图查看、流程挂起与激活、流程删除。 请假管理:功能包括请假新增、编辑、查看、删除、导出、提交。 流程任务:功能包括流程审批、审批意见列表及流程追踪。 7、表单引擎 表单设计:表单快速设计。 多终端支持:PC、Pad、手机多端适配。 表单分享:表单一键分享。 表单数据统计:手机填写的表单,支持列表和图表统计。 uni-app示例与基础:提供uni-app实例,并集成表单功能。 8、数据引擎 可视化:快速配置,图表生成。 大屏:图表编排,大屏显示。 报表:报表设计。 9、拓展插件 10、分布式与微服务 开发环境: 开发工具 IntelliJ IDEA、Navicat Premium 后端技术 Springboot2.x、SpringSecurity、Oauth2、JWT、mybatis-plus、activiti、Flutter、Mysql等 前端技术 Node.js 10+、Vue.js 2.6+、Vue CLI、Vuex、VueRouter、Element-UI等 entfrm-boot可视化开发平台使用说明: 1、配置环境(jdk1.8、maven3.x、mysql5.6及以上、redis3.2及以上) 2、创建数据库 3、初始化sql脚本:entfrm.sql 4、导入项目到IntelliJ IDE中 5、修改配置文件entfrm-boot/entfrm-web/src/main/resources/application.yml redis 配置 datasource 数据源配置 6、启动WebApplication 7、启动entfrm-ui 在线演示 账号:entfrm 密码:123456

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山不在高_有仙则灵

你的奖励是我的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值