Spring Boot教程第22篇:整合elk,搭建实时日志平台
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot教程第22篇:整合elk,搭建实时日志平台相关的知识,希望对你有一定的参考价值。
参考技术A 这篇文章主要介绍springboot整合elk.elk 简介
elk下载安装
elk下载地址:https://www.elastic.co/downloads/
建议在 linux上运行,elk在windows上支持得不好,另外需要jdk1.8 的支持,需要提前安装好jdk.
下载完之后: 安装,以logstash为栗子:
配置、启动 Elasticsearch
打开Elasticsearch的配置文件:
修改配置:
network.host=localhost
network.port=9200
它默认就是这个配置,没有特殊要求,在本地不需要修改。
启动Elasticsearch
启动成功,访问localhost:9200,网页显示:
配置、启动 logstash
在 logstash的主目录下:
修改 log4j_to_es.conf 如下:
input
log4j
mode => "server"
host => "localhost"
port => 4560
filter
#Only matched data are send to output.
output
elasticsearch
action => "index" #The operation on ES
hosts => "localhost:9200" #ElasticSearch host, can be array.
index => "applog" #The index to write data to.
修改完配置后启动:
./bin/logstash -f config/log4j_to_es.conf
终端显示如下:
访问localhost:9600
证明logstash启动成功。
配置、启动kibana
到kibana的安装目录:
默认配置即可。
访问localhost:5601,网页显示:
证明启动成功。
创建springboot工程
起步依赖如下:
log4j的配置,/src/resources/log4j.properties如下:
log4j.rootLogger=INFO,console
# for package com.demo.elk, log would be sent to socket appender.
log4j.logger.com.forezp=DEBUG, socket
# appender socket
log4j.appender.socket=org.apache.log4j.net.SocketAppender
log4j.appender.socket.Port=4560
log4j.appender.socket.RemoteHost=localhost
log4j.appender.socket.layout=org.apache.log4j.PatternLayout
log4j.appender.socket.layout.ConversionPattern=%d [%-5p] [%l] %m%n
log4j.appender.socket.ReconnectionDelay=10000
# appender console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d [%-5p] [%l] %m%n
打印log测试:
在kibana 实时监控日志
打开localhost:5601:
Management=>index pattrns=>add new:
点击discovery:
全网最新Spring Boot2.5.1整合Activiti5.22.0企业实战教程<流程挂起与激活篇>
文章目录
前言
某些情况可能由于流程变更需要将当前运行的流程暂停而不是直接删除,流程暂停后将不会继续执行。默认当我们部署了一个流程,是激活状态:(SUSPENSION_STATE_ = 1)
流程定义数据表( act_re_procdef )
运行时任务节点表( act_ru_task )
一、单个流程实例挂起
操作流程实例对象,针对单个流程执行挂起操作,某个流程实例挂起则此流程不再继续执行,完成该流程实例的当前任务将报异常。
1.1 部署流程
1.2 启动流程
当我们开启了出差申请实例之后:
1.3 挂起流程(suspendProcessInstanceById)
runtimeService.suspendProcessInstanceById(instance.getId());
@PostMapping("setState")
public Map<String, Object> SuspendSingleProcessInstance(String processDefinitionId) {
Map<String, Object> map = new HashMap<>();
// 查询流程定义的对象
ProcessInstance instance = runtimeService.createProcessInstanceQuery().processDefinitionId(processDefinitionId)
.singleResult();
System.out.println("流程id:" + instance.getProcessDefinitionId());
System.out.println("流程状态:" + instance.isSuspended());
if(instance.isSuspended()) { // 为true则为暂停状态,可以设置激活
runtimeService.activateProcessInstanceById(instance.getId());
map.put("流程定义:"+instance.getId(),"已激活");
}else {
// 为false则为激活状态,可以设置暂停
runtimeService.suspendProcessInstanceById(instance.getId());
map.put("流程定义:"+instance.getId(),"已挂起");
}
return map;
}
1.4 执行任务
1.5 激活流程(activateProcessInstanceById)
runtimeService.activateProcessInstanceById(instance.getId());
当然走到这步我们再去挂起流程,不让李四去审批:
二、全部流程实例挂起
操作流程定义为挂起状态,该流程定义下边所有的流程实例全部暂停:
流程定义为挂起状态该流程定义将不允许启动新的流程实例,同时该流程定义下所有的流程实例将全部挂起暂停执行。
1.1 激活
repositoryService.activateProcessDefinitionById(instance.getId(),true,null)
参数1 :流程定义id ,参数2:是否暂停,参数3:暂停时间
1.2 挂起
repositoryService.suspendProcessDefinitionById(instance.getId(),true,null)
参数1 :流程定义id ,参数2:是否暂停,参数3:暂停时间
1.3 代码
@PostMapping("setStates")
public Map<String, Object> SuspendSingleProcessInstances(String processDefinitionKey) {
Map<String, Object> map = new HashMap<>();
// 查询流程定义的对象
ProcessInstance instance = runtimeService.createProcessInstanceQuery().processDefinitionKey(processDefinitionKey)
.singleResult();
System.out.println("流程id:" + instance.getProcessDefinitionId());
System.out.println("流程状态:" + instance.isSuspended());
if(instance.isSuspended()) {
//为true则为暂停状态,可以执行激活操作 ,参数1 :流程定义id ,参数2:是否激活,参数3:激活时间
repositoryService.activateProcessDefinitionById(instance.getId(),
true,
null
);
map.put("流程定义:"+instance.getId(),"已激活");
}else {
//为false则为激活状态,可以暂停,参数1 :流程定义id ,参数2:是否暂停,参数3:暂停时间
repositoryService.suspendProcessDefinitionById(instance.getId(),
true,
null);
map.put("流程定义:"+instance.getId(),"已挂起");
}
return map;
}
总结
关于Activiti的东西很多,需要进下心来,慢慢品尝,下一篇马上到进阶篇,关注吧!关注吧!关注吧!关注吧!关注吧!关注吧!关注吧!关注吧!。
熬夜干货,创作不易,动动小手点赞吧!!!!后面会继续输出更多干货给大家,喜欢的请关注小编CSDN:https://blog.csdn.net/qq_41107231 以及掘金:https://juejin.cn/user/3940246036699848
以上是关于Spring Boot教程第22篇:整合elk,搭建实时日志平台的主要内容,如果未能解决你的问题,请参考以下文章
全网最新Spring Boot2.5.1整合Activiti5.22.0企业实战教程<网关篇>
全网最新Spring Boot2.5.1整合Activiti5.22.0企业实战教程<基础篇>