Skip to content

Commit 15207b2

Browse files
authored
Merge pull request #2 from JosephHieu/develop
Develop
2 parents f1c1978 + 6a4ec47 commit 15207b2

5 files changed

Lines changed: 94 additions & 3 deletions

File tree

.github/workflows/ci-cd.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ name: Feedback Online System CI
22

33
on:
44
push:
5-
branches: ["main"]
5+
branches: ["main", "develop"]
66
pull_request:
7-
branches: ["main"]
7+
branches: ["main", "develop"]
88

99
jobs:
1010
# 1. JOB CHO BACKEND

01-backend/docker-compose-elk.yml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
version: '3.8'
2+
3+
services:
4+
backend-service:
5+
build: .
6+
container_name: feedback-backend
7+
ports:
8+
- "8080:8080"
9+
environment:
10+
- SPRING_PROFILES_ACTIVE=prod
11+
- SPRING_DATASOURCE_URL=${SPRING_DATASOURCE_URL}
12+
- SPRING_DATASOURCE_USERNAME=${SPRING_DATASOURCE_USERNAME}
13+
- SPRING_DATASOURCE_PASSWORD=${SPRING_DATASOURCE_PASSWORD}
14+
- JWT_SECRET_KEY=${JWT_SECRET_KEY}
15+
- LOGSTASH_HOST=logstash
16+
depends_on:
17+
- logstash
18+
19+
# Logstash nhận log từ Spring Boot
20+
logstash:
21+
image: docker.elastic.co/logstash/logstash:8.12.0
22+
container_name: feedback-logstash
23+
volumes:
24+
- ./logstash.conf:/usr/share/logstash/pipeline/logstash.conf:ro
25+
ports:
26+
- "5000:5000"
27+
depends_on:
28+
- elasticsearch
29+
30+
# Elasticsearch lưu trữ log
31+
elasticsearch:
32+
image: docker.elastic.co/elasticsearch/elasticsearch:8.12.0
33+
container_name: feedback-elasticsearch
34+
environment:
35+
- discovery.type=single-node
36+
- xpack.security.enabled=false
37+
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
38+
ports:
39+
- "9200:9200"
40+
41+
# Kibana giao diện xem log
42+
kibana:
43+
image: docker.elastic.co/kibana/kibana:8.12.0
44+
container_name: feedback-kibana
45+
ports:
46+
- "5601:5601"
47+
environment:
48+
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
49+
depends_on:
50+
- elasticsearch

01-backend/logstash.conf

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
input {
2+
tcp {
3+
port => 5000
4+
codec => json_lines
5+
}
6+
}
7+
8+
output {
9+
elasticsearch {
10+
hosts => ["http://elasticsearch:9200"]
11+
index => "feedback-online-logs-%{+YYYY.MM.dd}"
12+
}
13+
}

01-backend/src/main/java/com/josephhieu/feedbackonline/entity/CauHoi.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
import jakarta.persistence.*;
44
import lombok.*;
5+
import org.hibernate.annotations.JdbcTypeCode;
6+
import org.hibernate.type.SqlTypes;
7+
58
import java.util.UUID;
69

710
@Entity
@@ -19,7 +22,8 @@ public class CauHoi extends BaseEntity {
1922
@JoinColumn(name = "MaTemplate")
2023
private Template template;
2124

22-
@Column(name = "TenCauHoi", nullable = false, columnDefinition = "TEXT")
25+
@Column(name = "TenCauHoi", nullable = false)
26+
@JdbcTypeCode(SqlTypes.LONGVARCHAR)
2327
private String tenCauHoi;
2428

2529
@Column(name = "DiemToiThieu")
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<configuration>
3+
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
4+
5+
<!-- Appender 1: In log ra Console -->
6+
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
7+
<encoder>
8+
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%X{traceId}] %-5level %logger{36} - %msg%n</pattern>
9+
</encoder>
10+
</appender>
11+
12+
<!-- Appender 2: Gửi Log dạng JSON tới Logstash qua TCP -->
13+
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
14+
<destination>${LOGSTASH_HOST:-localhost}:${LOGSTASH_PORT:-5000}</destination>
15+
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
16+
<customFields>{"app_name":"feedback-online"}</customFields>
17+
</encoder>
18+
</appender>
19+
20+
<root level="INFO">
21+
<appender-ref ref="CONSOLE" />
22+
<appender-ref ref="LOGSTASH" />
23+
</root>
24+
</configuration>

0 commit comments

Comments
 (0)