开源日志平台:Graylog部署及接入

一、部署Graylog

Graylog总共需要3个服务:graylog服务端、mongodb(存储graylog的配置)、elasticSeach(存储日志)
本文档部署方案介绍:

  • graylog服务端、mongodb(存储graylog的配置)使用docker-compose部署
  • elasticSeach 引用外部地址

1. 安装docker、安装docker-compose

这部分直接参考互联网上的教程:链接

2. 通过docker-compose部署graylog

服务器上新建一个 graylog的目录,并在该目录下新建 docker-compose.yml
开源日志平台:Graylog部署及接入

version: '3'
services:
  mongo:
    image: mongo:5.0
    container_name: mongo
    volumes:
      - /data/docker/graylog/mongo_data:/data/db
    networks:
      - graylog
    ports:
      - 27017:27017
    environment:
      - TZ=Asia/Shanghai
    healthcheck:
      test: ["CMD", "mongo", "--eval", "db.adminCommand('ping')"]
      interval: 30s
      timeout: 10s
      retries: 5

  graylog:
    image: graylog/graylog:5.2
    container_name: graylog
    depends_on:
      mongo:
        condition: service_healthy
    environment:
      - GRAYLOG_ROOT_PASSWORD_SHA2=xxxxx #sha2生成的密码,可以服务器通过命令获取:echo -n yournewpassword | sha256sum
      - GRAYLOG_PASSWORD_SECRET=xxxxx #随机生成的secret,长度超过32位,可以自己生成
      - GRAYLOG_HTTP_ENABLE_TLS=false
      - GRAYLOG_TIMEZONE=Asia/Shanghai
      - GRAYLOG_MONGO_URI=mongodb://mongo:27017/graylog
      - GRAYLOG_ELASTICSEARCH_VERSION=7
      - GRAYLOG_ELASTICSEARCH_HOSTS=http://es账户:es密码@es地址:9200
      - GRAYLOG_ELASTICSEARCH_USER=es账户
      - GRAYLOG_ELASTICSEARCH_PASSWORD=es密码
      - GRAYLOG_HTTP_EXTERNAL_URI=http://访问地址/
      - GRAYLOG_HTTP_PUBLISH_URI=http://访问地址/
      - GRAYLOG_PLUGIN_SYSTEM_LANGUAGESELECTOR_DEFAULT_LOCALE=zh_CN
      - TZ=Asia/Shanghai
    networks:
      - graylog
    ports:
      - "9000:9000"
      - "514:514"
      - "514:514/udp"
      - "12201:12201"
      - "12201:12201/udp"

volumes:
  mongo_data:
    driver: local
  graylog_data:
    driver: local

networks:
  graylog:
    driver: bridge

上面的配置根据自己的环境,重新配置。
注意点:elasticSearch如果存在账密的化,参考下GRAYLOG_ELASTICSEARCH_XXX这几个配置,进行调整。

3. 启动graylog

# 1. 启动执行
docker-compose up -d

# 2. 如果希望调整docker-compose.yml的配置,需要先关闭,再重启
## 2.1 先关闭graylog的应用
docker-compose down

## 2.2 修改完文件后,再执行启动命令
docker-compose up -d

# 3.查看启动日志,确认是否完成启动
docker logs mongo;
docker logs graylog;

4. 配置graylog

日志传输,建议采用UDP协议,其次包括graylog的踩坑记录,参考如下文档:
参考1
参考2

二、java应用接入Graylog

1. pom新增依赖

<!--logback gelf日志收集-->
<dependency>
    <groupId>biz.paluch.logging</groupId>
    <artifactId>logstash-gelf</artifactId>
    <version>1.15.0</version>
</dependency>

2. 配置logback.xml文件,同时增加traceId、spanId方便链路日志的追踪

a. 配置 Logback 以支持 MDC,在 logback.xml 中配置 GelfLogbackAppender,并确保包括 traceId 和 spanId 字段:

<configuration>

    <appender name="GELF" class="biz.paluch.logging.gelf.logback.GelfLogbackAppender">
        <host>udp:graylog的地址</host> <!-- graylog 服务器ip -->
        <port>graylog开放的端口</port> <!-- graylog udp端口 -->
        <version>1.1</version>
        <facility>自定义一个名称</facility>
        <extractStackTrace>true</extractStackTrace>
        <filterStackTrace>false</filterStackTrace>
        <mdcProfiling>true</mdcProfiling>
        <timestampPattern>yyyy-MM-dd HH:mm:ss,SSSS</timestampPattern>
        <maximumMessageSize>8192</maximumMessageSize>

        <!-- Include trace and span IDs -->
        <mdcFields>traceId,spanId</mdcFields>
        <dynamicMdcFields>mdc.*,(mdc|MDC)fields</dynamicMdcFields>
        <includeFullMdc>true</includeFullMdc>

    </appender>

    <root level="INFO">
        <appender-ref ref="GELF"/>
    </root>

    <logger name="com.yourcompany" level="DEBUG">
        <appender-ref ref="GELF"/>
    </logger>

</configuration>

b. 代码中 新增MDC过滤器

import org.slf4j.MDC;
import org.springframework.stereotype.Component;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.UUID;

@Component
public class MDCFilter implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        // 过滤器初始化,如果有需要
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {

        // 检查是否是HTTP请求
        if (request instanceof HttpServletRequest) {
            HttpServletRequest httpRequest = (HttpServletRequest) request;

            // 获取traceId,如果已经存在则使用,否则生成新的
            String traceId = httpRequest.getHeader("X-Trace-Id");
            if (traceId == null || traceId.isEmpty()) {
                traceId = UUID.randomUUID().toString();
            }

            // 生成新的spanId
            String spanId = UUID.randomUUID().toString();

            // 将traceId和spanId放入MDC
            MDC.put("traceId", traceId);
            MDC.put("spanId", spanId);
        }

        try {
            // 继续处理请求
            chain.doFilter(request, response);
        } finally {
            // 清理MDC
            MDC.remove("traceId");
            MDC.remove("spanId");
        }
    }

    @Override
    public void destroy() {
        // 过滤器销毁,如果有需要
    }
}

c. 代码中 注册MDC过滤器

import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MDCFilterConfig {

    @Bean
    public FilterRegistrationBean<MDCFilter> loggingFilter() {
        FilterRegistrationBean<MDCFilter> registrationBean = new FilterRegistrationBean<>();
        registrationBean.setFilter(new MDCFilter());
        registrationBean.addUrlPatterns("/*"); // 应用过滤器到所有路径
        return registrationBean;
    }

}

三、Graylog使用

可以针对关键字or具体字段进行检索、聚合、告警等操作,这里就不一一讲解了,大家可以自行尝试学习。
开源日志平台:Graylog部署及接入

Oinone社区 作者:冯, 天宇原创文章,如若转载,请注明出处:https://doc.oinone.top/install/13126.html

访问Oinone官网:https://www.oinone.top获取数式Oinone低代码应用平台体验

(1)
冯, 天宇的头像冯, 天宇数式员工
上一篇 2024年5月30日 pm7:32
下一篇 2024年5月31日 am10:46

相关推荐

  • Oinone平台部署及依赖说明(v4.7)

    概述 名词解释 业务工程包:指平台提供的内置基础包和内置功能包。 设计器工程包:指模型设计器、界面设计器、流程设计器等相关依赖包。 父POM:仅声明依赖包版本的pom文件 启动工程POM:仅声明具体依赖包的pom文件,一般不用于指定版本。 业务工程部署 Oinone平台向合作伙伴提供前后端业务工程所需的全部依赖,依赖项的具体说明下面会分别介绍。 设计器部署 Oinone平台向合作伙伴提供了两种设计器部署方式: Docker镜像:支持amd64和arm64两种架构的操作系统。(推荐) JAR包:与Docker镜像中的内容完全一致。 使用JAR包直接启动需要使用Oinone专属启动器,Docker镜像已内置Oinone专属启动器。 PS:如遇到以上部署方式或提供的镜像无法满足部署需求时,请联系Oinone平台售后获取技术支持。 Docker镜像 体验镜像 包括所有设计器。 内置所有所需中间件,包括Mysql、Redis、Zookeeper、RocketMQ。 适用场景:用于快速体验Oinone平台全部功能 docker pull harbor.oinone.top/oinone/oinone-designer-full-v4.8:TAG 前后端一体部署镜像 包括所有设计器。 无内置中间件。 适用场景:用于便捷部署Oinone平台的前后端服务 docker pull harbor.oinone.top/oinone/oinone-designer-mini-v4.8:TAG 前后端一体部署镜像 – 流程设计器 仅包括流程设计器。 无内置中间件。 适用场景:用于便捷部署仅需流程设计器的Oinone平台的前后端服务。 docker pull harbor.oinone.top/oinone/workflow-designer-v4.8:TAG 镜像拉取 以体验镜像为例,Oinone平台提供多种拉取镜像的方式。 # 获取混合架构镜像,支持amd64和arm64架构的操作系统 docker pull harbor.oinone.top/oinone/oinone-designer-full-v4.8:4.8.19 # 仅获取amd64架构镜像 docker pull harbor.oinone.top/oinone/oinone-designer-full-v4.8:4.8.19-amd64 # 仅获取arm64架构镜像 docker pull harbor.oinone.top/oinone/oinone-designer-full-v4.8:4.8.19-arm64 # 获取最新版镜像(每次拉取自动更新) docker pull harbor.oinone.top/oinone/oinone-designer-full-v4.8 PS:如镜像拉取过慢,可在确定操作系统架构的情况下获取amd64或arm64架构镜像。 JAR包获取 $VERSION:对应镜像版本号 包含所有设计器的后端JAR包下载路径示例 https://oinone-jar.oss-cn-zhangjiakou.aliyuncs.com/install/oinone-designer/pamirs-designer-boot-v4.8-$VERSION.jar 仅包含流程设计器的后端JAR包下载路径示例 https://oinone-jar.oss-cn-zhangjiakou.aliyuncs.com/install/workflow-designer/pamirs-workflow-designer-boot-v4.8-$VERSION.jar 后端依赖 Oinone平台后端使用Maven管理工具对所有依赖包进行版本管理。 版本说明 下面是在每个版本升级说明中提供的所有依赖版本,最新版本请查看对应的最新升级说明文档。 版本更新日志 <!– 平台基础 –> <pamirs.middleware.version>4.7.8.5</pamirs.middleware.version> <pamirs.k2.version>4.7.8.7</pamirs.k2.version> <pamirs.framework.version>4.7.8.19</pamirs.framework.version> <pamirs.boot.version>4.7.8.12</pamirs.boot.version> <pamirs.distribution.version>4.7.8.5</pamirs.distribution.version> <!– 平台功能 –> <pamirs.metadata.manager>4.7.8</pamirs.metadata.manager> <pamirs.core.version>4.7.8.19</pamirs.core.version> <pamirs.workflow.version>4.7.8.16</pamirs.workflow.version> <pamirs.workbench.version>4.7.8</pamirs.workbench.version> <pamirs.data.visualization.version>4.7.8.1</pamirs.data.visualization.version> <!– 设计器 –> <pamirs.designer.common.version>4.7.8</pamirs.designer.common.version> <pamirs.flow.designer.base.version>4.7.8.1</pamirs.flow.designer.base.version> <pamirs.workflow.designer.version>4.7.8</pamirs.workflow.designer.version> <pamirs.model.designer.version>4.7.8</pamirs.model.designer.version> <pamirs.ui.designer.version>4.7.8.9</pamirs.ui.designer.version> <pamirs.data.designer.version>4.7.8</pamirs.data.designer.version> <pamirs.dataflow.designer.version>4.7.8.1</pamirs.dataflow.designer.version> <pamirs.eip.designer.version>4.7.8.1</pamirs.eip.designer.version> 完整依赖管理示例 以下列举了除了设计器相关依赖外的全部依赖管理项,其通常使用在父POM中。 <dependency> <groupId>pro.shushi.pamirs</groupId> <artifactId>pamirs-k2</artifactId> <version>${pamirs.k2.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>pro.shushi.pamirs</groupId> <artifactId>pamirs-framework</artifactId> <version>${pamirs.framework.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>pro.shushi.pamirs.boot</groupId> <artifactId>pamirs-boot-dependencies</artifactId> <version>${pamirs.boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>pro.shushi.pamirs.core</groupId> <artifactId>pamirs-core-dependencies</artifactId> <version>${pamirs.core.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>pro.shushi.pamirs</groupId> <artifactId>pamirs-distribution</artifactId> <version>${pamirs.distribution.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>pro.shushi.pamirs.middleware</groupId> <artifactId>pamirs-middleware-dependencies</artifactId> <version>${pamirs.middleware.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!–metadata manager–> <dependency> <groupId>pro.shushi.pamirs.metadata.manager</groupId> <artifactId>pamirs-metadata-manager</artifactId> <version>${pamirs.metadata.manager}</version> </dependency> <!–workflow–> <dependency> <groupId>pro.shushi.pamirs.workflow</groupId> <artifactId>pamirs-workflow</artifactId> <version>${pamirs.workflow.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!–workbench–> <dependency> <groupId>pro.shushi.pamirs.work.bench</groupId> <artifactId>pamirs-work-bench</artifactId> <version>${pamirs.workbench.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!–data-vi–> <dependency> <groupId>pro.shushi.pamirs.data.visualization</groupId> <artifactId>pamirs-data-visualization</artifactId> <version>${pamirs.data.visualization.version}</version> <type>pom</type> <scope>import</scope> </dependency> 完整功能依赖示例 以下列举了除了设计器相关依赖外的全部依赖管理项,其通常使用在启动工程POM中。 <dependency> <groupId>pro.shushi.pamirs</groupId> <artifactId>a</artifactId> </dependency>…

    2024年9月3日
    88000
  • 如何配置文件存储地址为相对路径

    介绍 大部分情况下,文件存储的配置都会配置uploadUrl和downloadUrl的值,这样图片和文件类型的业务字段会存储带域名的全路径文件地址,但是有些场景需要用户在专有内网的时候访问内网的文件存储地址,用户在公网的时候通过公网访问(一般情况下这个公网ip内部最后还是会转发到内网)文件存储地址,这个时候就要求存在数据库字段里的不能是全路径的地址,只能是想相对路径,这个时候可以通过前端访问的域名用nginx转发当前域名下的文件请求到所匹配环境的ip内的文件存储服务。 配置参考 cdn: oss: name: 本地文件NG系统 type: LOCAL bucket: pamirs # 此处可以不配置值,也可以配置相对路径前缀方便做转发 uploadUrl: downloadUrl: validTime: 3600000 timeout: 600000 active: true referer: localFolderUrl: /test/static 文件上传的路径同步配置nginx转发 location ~ /file/upload { // 此处配置为后端服务的ip+端口 proxy_pass http://127.0.0.1:8190; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } excel导入场景相对路径在后端代码内无法保存导入的文件 在导入任务的前置hook处理相对文件路径的前缀 package pro.shushi.pamirs.demo.core.hook; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Component; import pro.shushi.pamirs.file.api.FileModule; import pro.shushi.pamirs.file.api.model.ExcelImportTask; import pro.shushi.pamirs.meta.annotation.Hook; import pro.shushi.pamirs.meta.api.core.faas.HookBefore; import pro.shushi.pamirs.meta.api.dto.fun.Function; @Component public class DemoExcelImportTaskActionHookBefore implements HookBefore { // 内网访问文件的地址 public static final String INNER_HOST = "http://127.0.0.1:6800"; @Override @Hook(module = {FileModule.MODULE_MODULE}, model = {ExcelImportTask.MODEL_MODEL}, fun = {"createImportTask"}) public Object run(Function function, Object… args) { if (args.length > 0) { ExcelImportTask excelImportTask = (ExcelImportTask) args[0]; if (excelImportTask != null && excelImportTask.getFile() != null && StringUtils.isNotBlank(excelImportTask.getFile().getUrl())) { excelImportTask.getFile().setUrl(INNER_HOST + excelImportTask.getFile().getUrl()); } } return null; } } 注意事项 上面的例子为本地文件NG系统的,如果是阿里云oss、7牛云等第三方文件存储服务,downloadUrl可以按上面方案直接配置,uploadUrl还是要按正常配置

    2024年6月21日
    1.7K00
  • Oinone平台部署及依赖说明(v5.0)

    概述 名词解释 业务工程包:指平台提供的内置基础包和内置功能包。 设计器工程包:指模型设计器、界面设计器、流程设计器等相关依赖包。 父POM:仅声明依赖包版本的pom文件 启动工程POM:仅声明具体依赖包的pom文件,一般不用于指定版本。 业务工程部署 Oinone平台向合作伙伴提供前后端业务工程所需的全部依赖,依赖项的具体说明下面会分别介绍。 设计器部署 Oinone平台向合作伙伴提供了两种设计器部署方式: Docker镜像:支持amd64和arm64两种架构的操作系统。(推荐) JAR包:与Docker镜像中的内容完全一致。 使用JAR包直接启动需要使用Oinone专属启动器,Docker镜像已内置Oinone专属启动器。 PS:如遇到以上部署方式或提供的镜像无法满足部署需求时,请联系Oinone平台售后获取技术支持。 Docker镜像 体验镜像 包括所有设计器。 内置所有所需中间件,包括Mysql、Redis、Zookeeper、RocketMQ。 适用场景:用于快速体验Oinone平台全部功能 docker pull harbor.oinone.top/oinone/oinone-designer-full-v5.0:TAG 前后端一体部署镜像 包括所有设计器。 无内置中间件。 适用场景:用于便捷部署Oinone平台的前后端服务 docker pull harbor.oinone.top/oinone/oinone-designer-mini-v5.0:TAG 前后端一体部署镜像 – 流程设计器 仅包括流程设计器。 无内置中间件。 适用场景:用于便捷部署仅需流程设计器的Oinone平台的前后端服务。 docker pull harbor.oinone.top/oinone/workflow-designer-v5.0:TAG 后端部署镜像 用于前后端分别部署,包括所有设计器。 仅包含后端服务 无内置中间件 适用场景:Kubenetes部署;支持健康检查,前后端分离部署; docker pull harbor.oinone.top/oinone/designer-backend-v5.0:TAG 前端部署镜像 用于前后端分别部署,包括所有设计器。 仅包含前端服务 无内置中间件 适用场景:Kubenetes部署;支持健康检查,前后端分离部署; docker pull harbor.oinone.top/oinone/designer-frontend-v5.0:TAG 镜像拉取 以体验镜像为例,Oinone平台提供多种拉取镜像的方式。 # 获取混合架构镜像,支持amd64和arm64架构的操作系统 docker pull harbor.oinone.top/oinone/oinone-designer-full-v5.0:5.0.3.3 # 仅获取amd64架构镜像 docker pull harbor.oinone.top/oinone/oinone-designer-full-v5.0:5.0.3.3-amd64 # 仅获取arm64架构镜像 docker pull harbor.oinone.top/oinone/oinone-designer-full-v5.0:5.0.3.3-arm64 # 获取最新版镜像(每次拉取自动更新) docker pull harbor.oinone.top/oinone/oinone-designer-full-v5.0 PS:如镜像拉取过慢,可在确定操作系统架构的情况下获取amd64或arm64架构镜像。 JAR包获取 $VERSION:对应镜像版本号 包含所有设计器的后端JAR包下载路径示例 https://oinone-jar.oss-cn-zhangjiakou.aliyuncs.com/install/oinone-designer/pamirs-designer-boot-v5.0-$VERSION.jar 仅包含流程设计器的后端JAR包下载路径示例 https://oinone-jar.oss-cn-zhangjiakou.aliyuncs.com/install/workflow-designer/pamirs-workflow-designer-boot-v5.0-$VERSION.jar Kubernetes后端部署健康检查 准备健康检查脚本 将以下脚本放置在镜像中。/opt/pamirs/bin/healthCheck.sh为以下示例中所用脚本路径。(平台提供的设计器镜像有内置该脚本,并与示例路径一致) #!/usr/bin/env bash function sendDingTalkMessage() { url=$DING_TALK_ROBOT_URL if [ -z $url ]; then return -1 fi message=$DING_TALK_ROBOT_MESSAGE if [ -z $message ]; then return -1 fi message="$message\\nby kubernetes" isAtAll=$DING_TALK_ROBOT_IS_AT_ALL if [ $isAtAll ]; then isAtAll="true" message="$message\\n" else isAtAll="false" fi message="{\"msgtype\": \"text\",\"text\": {\"content\":\"$message\"}, \"isAtAll\": \"${isAtAll}\"}" curl "${url}" -H 'Content-Type: application/json' -d "${message}" } port=$1 callback=$2 OK=$(curl -s http://127.0.0.1:${port}/ruok) if [ "$OK" == "imok" ]; then if [ -n $callback ]; then $callback fi exit 0 else exit 1 fi 配置Kubernetes健康检查 kind: Deployment apiVersion: apps/v1 spec: template: spec: containers: – name: designer-backend env: – name: DING_TALK_ROBOT_URL #…

    2024年6月21日
    2.3K00
  • 自定义表达式函数

    由于表达式内的函数在前后端都可能执行,所以同一个表达式需要前后端同时定义 后端表达式自定义 package pro.shushi.pamirs.demo.core.fun; import org.apache.commons.lang3.StringUtils; import org.joda.time.DateTime; import pro.shushi.pamirs.meta.annotation.Fun; import pro.shushi.pamirs.meta.annotation.Function; import pro.shushi.pamirs.meta.common.constants.NamespaceConstants; import java.util.Date; import java.util.List; import static pro.shushi.pamirs.meta.enmu.FunctionCategoryEnum.TEXT; import static pro.shushi.pamirs.meta.enmu.FunctionCategoryEnum.TIME; import static pro.shushi.pamirs.meta.enmu.FunctionLanguageEnum.JAVA; import static pro.shushi.pamirs.meta.enmu.FunctionOpenEnum.LOCAL; import static pro.shushi.pamirs.meta.enmu.FunctionSceneEnum.EXPRESSION; /** * 自定义函数 */ @Fun(NamespaceConstants.expression) public class DemoCustomFunctions { @Function.Advanced( displayName = "逗号分隔字符串数组", language = JAVA, builtin = true, category = TEXT ) @Function.fun("MY_COMMA") @Function(name = "MY_COMMA", scene = {EXPRESSION}, openLevel = LOCAL, summary = "函数示例: MY_COMMA(list)\n函数说明: 将字符串数组转为逗号分隔的字符串" ) public String myComma(List<String> list) { return StringUtils.join(list, ","); } @Function.Advanced( displayName = "根据出生算年龄", language = JAVA, builtin = true, category = TIME ) @Function.fun("CALC_AGE") @Function(name = "CALC_AGE", scene = {EXPRESSION}, openLevel = LOCAL, summary = "函数示例: CALC_AGE(birthDate)\n函数说明: 根据出生算年龄" ) public Integer calcAge(Date birthDate) { if (birthDate == null) { return 0; } return new DateTime().getYear() – new DateTime(birthDate).getYear(); } } 前端表达式定义 定义后导入到main.ts里,导入@kunlun/dependencies的代码之后 import { Expression } from '@kunlun/dependencies'; import dayjs from 'dayjs'; Expression.getInstance().registerFunction('MY_COMMA', ['array'], (list: string[]) => { return (list || []) .map((value) => { return `'${value}'`; }) .join(','); }); Expression.getInstance().registerFunction('CALC_AGE', ['string'], (birthDate: string) => { if (birthDate == null) { return 0; } return Math.ceil(dayjs().year() – dayjs(birthDate,…

    2024年7月10日
    1.9K00
  • 东方通Web和Tomcat部署Oinone项目

    场景描述 在国产化和信创体系下,可能会要求使用东方通Web服务器(TongWeb)或者Tomcat等应用服务器部署项目;本文介绍使用TongWeb或者Tomcat部署Oinone项目时的方法。 你需要了解 了解Tomcat容器,TongWeb的操作基本和Tomcat类似; 项目打包成成war包和Jar的区别; Springboot项目打成war包 详细步骤参考:https://www.cnblogs.com/memoa/p/10250553.html TongWeb和Tomcat部署War包 TongWeb部署war包一般会有提供操作手册,这里不在说明; Tomcat部署war包可以参考网上的资料,这里不在说明; 本文仅说明部署Oinone打成的War包不同之处; Oinone项目War包部署 已知限制 Oinone项目在部署时,需要指定生命周期-Plifecycle=INSTALL等 而TongWeb和Tomcat无法在启动脚本中设置Program arguments 解法办法 通过yml文件的配置,可以配置等同于-Plifecycle=INSTALL的参数 pamirs: boot: init: true sync: true profile: AUTO install: AUTO upgrade: FORCE modules: 配置参考 配置参考 模块之启动指令 参数 名称 默认值 说明 -Plifecycle 生命周期部署指令 RELOAD 可选项:无/INSTALL/PACKAGE/RELOAD/DDL 安装(INSTALL) install为AUTO;upgrade为FORCE;profile为AUTO 打包(PACKAGE) install为AUTO;upgrade为FORCE;profile为PACKAGE 重启(RELOAD) install、upgrade、profile为READONLY 打印变更DDL(DDL) install为AUTO;upgrade为FORCE;profile为DDL

    2024年5月18日
    2.1K00

Leave a Reply

登录后才能评论