diff --git a/.DS_Store b/.DS_Store index 5236c20..e997064 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/ec2-user@54.116.37.146/docker-compose.yml b/ec2-user@54.116.37.146/docker-compose.yml new file mode 100644 index 0000000..0502de3 --- /dev/null +++ b/ec2-user@54.116.37.146/docker-compose.yml @@ -0,0 +1,88 @@ +services: + local-mysql: + image: mysql + container_name: techup-mysql + environment: + MYSQL_ROOT_PASSWORD: 1234 + MYSQL_DATABASE: shopping + ports: + - "3306:3306" + platform: linux/arm64 + + local-redis: + image: redis + container_name: techup-redis + ports: + - "6379:6379" + platform: linux/arm64 + command: ["redis-server", "--ignore-warnings", "ARM64-COW-BUG"] + + local-prometheus: + image: prom/prometheus:latest + container_name: my-prometheus-container + ports: + - "9091:9090" + volumes: + - ./prometheus.yml:/etc/prometheus/prometheus.yml + local-grafana: + image: grafana/grafana:latest + container_name: my-grafana-container + ports: + - "3001:3000" + depends_on: + - local-prometheus + + elasticsearch: + image: docker.elastic.co/elasticsearch/elasticsearch:9.2.2 + container_name: elasticsearch + environment: + - discovery.type=single-node + - ES_JAVA_OPTS=-Xms1g -Xmx1g -XX:UseSVE=0 + - xpack.security.enabled=false + - JAVA_TOOL_OPTIONS=-XX:UseSVE=0 + - CLI_JAVA_OPTS=-XX:UseSVE=0 + ports: + - "9200:9200" + volumes: + - es-data:/usr/share/elasticsearch/data + - ./elk/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro + networks: + - elk + + logstash: + image: docker.elastic.co/logstash/logstash:9.2.2 + container_name: logstash + environment: + - LS_JAVA_OPTS=-Xms512m -Xmx512m -Djava.io.tmpdir=/usr/share/logstash/tmp + - ENVIRONMENT=local + volumes: + - ./elk/logstash/tmp:/usr/share/logstash/tmp + - ./elk/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml:ro + - ./elk/logstash/pipeline:/usr/share/logstash/pipeline:ro + ports: + - "9601:9601" + depends_on: + - elasticsearch + networks: + - elk + + kibana: + image: docker.elastic.co/kibana/kibana:9.2.2 + container_name: kibana + depends_on: + - elasticsearch + environment: + - ELASTICSEARCH_HOSTS=http://elasticsearch:9200 + ports: + - "5601:5601" + volumes: + - ./elk/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml:ro + networks: + - elk + +networks: + elk: + driver: bridge + +volumes: + es-data: \ No newline at end of file diff --git a/ec2-user@54.116.37.146/elasticsearch/config/elasticsearch.yml b/ec2-user@54.116.37.146/elasticsearch/config/elasticsearch.yml new file mode 100644 index 0000000..2896ec1 --- /dev/null +++ b/ec2-user@54.116.37.146/elasticsearch/config/elasticsearch.yml @@ -0,0 +1,3 @@ +cluster.name: "docker-cluster" +network.host: 0.0.0.0 +discovery.type: single-node \ No newline at end of file diff --git a/ec2-user@54.116.37.146/elk/elasticsearch/config/elasticsearch.yml b/ec2-user@54.116.37.146/elk/elasticsearch/config/elasticsearch.yml new file mode 100644 index 0000000..2896ec1 --- /dev/null +++ b/ec2-user@54.116.37.146/elk/elasticsearch/config/elasticsearch.yml @@ -0,0 +1,3 @@ +cluster.name: "docker-cluster" +network.host: 0.0.0.0 +discovery.type: single-node \ No newline at end of file diff --git a/ec2-user@54.116.37.146/elk/kibana/config/kibana.yml b/ec2-user@54.116.37.146/elk/kibana/config/kibana.yml new file mode 100644 index 0000000..5b5d496 --- /dev/null +++ b/ec2-user@54.116.37.146/elk/kibana/config/kibana.yml @@ -0,0 +1,3 @@ +server.name: kibana +server.host: "0.0.0.0" +elasticsearch.hosts: [ "http://elasticsearch:9200" ] \ No newline at end of file diff --git a/ec2-user@54.116.37.146/elk/logstash/config/logstash.yml b/ec2-user@54.116.37.146/elk/logstash/config/logstash.yml new file mode 100644 index 0000000..3d2b63e --- /dev/null +++ b/ec2-user@54.116.37.146/elk/logstash/config/logstash.yml @@ -0,0 +1,2 @@ +#http.host: "0.0.0.0" +xpack.monitoring.enabled: false \ No newline at end of file diff --git a/ec2-user@54.116.37.146/elk/logstash/pipeline/logstash.conf b/ec2-user@54.116.37.146/elk/logstash/pipeline/logstash.conf new file mode 100644 index 0000000..14983df --- /dev/null +++ b/ec2-user@54.116.37.146/elk/logstash/pipeline/logstash.conf @@ -0,0 +1,21 @@ +input { + tcp { + port => 9601 # docker-compose 에서 열어둔 포트 + mode => "server" + codec => json_lines # LogstashEncoder 기본 포맷과 잘 맞음 + } +} + +filter { + mutate { + add_field => { "app" => "techup-shopping" } + add_field => { "env" => "${ENVIRONMENT}" } + } +} + +output { + elasticsearch { + hosts => ["http://elasticsearch:9200"] + index => "ep-logs-%{+YYYY.MM.dd}" + } +} \ No newline at end of file diff --git a/ec2-user@54.116.37.146/kibana/config/kibana.yml b/ec2-user@54.116.37.146/kibana/config/kibana.yml new file mode 100644 index 0000000..5b5d496 --- /dev/null +++ b/ec2-user@54.116.37.146/kibana/config/kibana.yml @@ -0,0 +1,3 @@ +server.name: kibana +server.host: "0.0.0.0" +elasticsearch.hosts: [ "http://elasticsearch:9200" ] \ No newline at end of file diff --git a/ec2-user@54.116.37.146/logstash/config/logstash.yml b/ec2-user@54.116.37.146/logstash/config/logstash.yml new file mode 100644 index 0000000..3d2b63e --- /dev/null +++ b/ec2-user@54.116.37.146/logstash/config/logstash.yml @@ -0,0 +1,2 @@ +#http.host: "0.0.0.0" +xpack.monitoring.enabled: false \ No newline at end of file diff --git a/ec2-user@54.116.37.146/logstash/pipeline/logstash.conf b/ec2-user@54.116.37.146/logstash/pipeline/logstash.conf new file mode 100644 index 0000000..14983df --- /dev/null +++ b/ec2-user@54.116.37.146/logstash/pipeline/logstash.conf @@ -0,0 +1,21 @@ +input { + tcp { + port => 9601 # docker-compose 에서 열어둔 포트 + mode => "server" + codec => json_lines # LogstashEncoder 기본 포맷과 잘 맞음 + } +} + +filter { + mutate { + add_field => { "app" => "techup-shopping" } + add_field => { "env" => "${ENVIRONMENT}" } + } +} + +output { + elasticsearch { + hosts => ["http://elasticsearch:9200"] + index => "ep-logs-%{+YYYY.MM.dd}" + } +} \ No newline at end of file diff --git a/src/main/java/com/kt/common/health/HealthCheckController.java b/src/main/java/com/kt/common/health/HealthCheckController.java new file mode 100644 index 0000000..1f4da1b --- /dev/null +++ b/src/main/java/com/kt/common/health/HealthCheckController.java @@ -0,0 +1,18 @@ +package com.kt.common.health; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import lombok.RequiredArgsConstructor; + +@RestController +@RequestMapping("/api/health") +@RequiredArgsConstructor +public class HealthCheckController { + + @GetMapping + public String healthCheck() { + return "test success"; + } +} diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index fba8a18..5f05f91 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -17,6 +17,11 @@ spring: cluster: nodes: ${redis.host} max-redirects: 3 + mail: + host: smtp.gmail.com + port: 587 + username: ${mail-username} + password: ${mail-password} jwt: secret: ${kt.jwt.secret} diff --git a/src/main/resources/application-integration.yml b/src/main/resources/application-integration.yml index cdffce6..cfa6086 100644 --- a/src/main/resources/application-integration.yml +++ b/src/main/resources/application-integration.yml @@ -10,6 +10,11 @@ spring: format_sql: true show_sql: true show-sql: true + mail: + host: smtp.gmail.com + port: 587 + username: ${mail-username} + password: ${mail-password} # data: # redis: # ssl: diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index ac0cfbb..cfb6ea0 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -17,6 +17,11 @@ spring: cluster: nodes: ${redis.host} max-redirects: 3 + mail: + host: smtp.gmail.com + port: 587 + username: ${mail-username} + password: ${mail-password} jwt: secret: ${kt.jwt.secret} @@ -28,10 +33,10 @@ slack: log-channel: ${slack.channel} server: - port: ${shopping.server.port} + port: ${server.port} toss: payments: client-key: ${payment.client.key} secret-key: ${payments.secret-key} - api-url: ${payments.api-url} \ No newline at end of file + api-url: ${payments.api-url} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index b95c160..4dc09b4 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -14,3 +14,10 @@ logstash: host: ${logstashhost:localhost} port: ${logstashport:9601} + +slack: + bot-token: ${slack.token} + log-channel: ${slack.channel} + +server: + port: 8080 \ No newline at end of file