Kafka、Elasticsearch、Logstash、Kibana环境搭建见这里
Logstash如何消费Kafka中的JSON输出给Elasticsearch见这里
Maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
application.properties
spring.kafka.bootstrap-servers=192.168.184.134:9092
spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer
spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer
spring.kafka.template.default-topic=kafka-test #默认topic名称可以与logstash的input的名称一致
LogBean.java (日志记录对象)
public class LogBean {
// 这些字段与Elasticsearch模板创建的字段一致
private String ip; //请求ip
private int code; //响应码
private String url; //请求url
private String args; //请求参数
private String msg; //响应信息
private Date startTime; //响应开始时间
private long runTime; //响应耗时(毫秒)
// Getter ... Setter ...
}
ApiResult.java (Controller返回对象)
public class ApiResult {
private static final int SUCCESS = 200;
private static final int FAIL = 504;
private final int code;
private final String msg;
@JsonInclude(JsonInclude.Include.NON_NULL)
private final Object data;
public ApiResult(int code, String msg, Object data) {
this.code = code;
this.msg = msg;
this.data = data;
}
public static ApiResult success(){
return new ApiResult(SUCCESS

最低0.47元/天 解锁文章
3364





