diff --git a/.github/workflows/prod-server-deployer.yml b/.github/workflows/prod-server-deployer.yml index 3e5aef78..8f61f467 100644 --- a/.github/workflows/prod-server-deployer.yml +++ b/.github/workflows/prod-server-deployer.yml @@ -3,7 +3,8 @@ name: prod-server-deployer on: push: branches: - - main + - chore/DDING-001 + jobs: build: runs-on: ubuntu-latest @@ -53,6 +54,7 @@ jobs: cp build/libs/*.jar deploy/application.jar cp Procfile deploy/Procfile cp -r promtail deploy/promtail + cp -r nodeexporter deploy/nodeexporter cp -r .ebextensions deploy/.ebextensions cp -r .platform deploy/.platform cd deploy && zip -r deploy.zip . @@ -72,9 +74,3 @@ jobs: - name: Test with Gradle run: ./gradlew test --no-daemon - - - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@v3 - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - file: ./build/reports/jacoco/test/jacocoTestReport.xml diff --git a/nodeexporter/node-exporter-docker-compose.yml b/nodeexporter/node-exporter-docker-compose.yml new file mode 100644 index 00000000..186ba1f8 --- /dev/null +++ b/nodeexporter/node-exporter-docker-compose.yml @@ -0,0 +1,13 @@ +version: '3.8' + +services: + node-exporter: + image: quay.io/prometheus/node-exporter:latest + container_name: node-exporter + restart: always + ports: + - "9100:9100" + volumes: + - "/:/host:ro,rslave" + command: + - '--path.rootfs=/host' diff --git a/src/main/java/ddingdong/ddingdongBE/common/config/SecurityConfig.java b/src/main/java/ddingdong/ddingdongBE/common/config/SecurityConfig.java index f8b0ad1a..e7d955d0 100644 --- a/src/main/java/ddingdong/ddingdongBE/common/config/SecurityConfig.java +++ b/src/main/java/ddingdong/ddingdongBE/common/config/SecurityConfig.java @@ -39,7 +39,7 @@ public SecurityFilterChain filterChain(HttpSecurity http, JwtAuthService authSer .permitAll() .requestMatchers(API_PREFIX + "/admin/**").hasRole("ADMIN") .requestMatchers(API_PREFIX + "/club/**").hasRole("CLUB") - .requestMatchers(actuatorPath).hasRole("ADMIN") + .requestMatchers(actuatorPath + "/**").permitAll() .requestMatchers(GET, API_PREFIX + "/clubs/**", API_PREFIX + "/notices/**", diff --git a/src/main/java/ddingdong/ddingdongBE/common/runner/PromtailDockerComposeRunner.java b/src/main/java/ddingdong/ddingdongBE/common/runner/MonitoringApplicationRunner.java similarity index 70% rename from src/main/java/ddingdong/ddingdongBE/common/runner/PromtailDockerComposeRunner.java rename to src/main/java/ddingdong/ddingdongBE/common/runner/MonitoringApplicationRunner.java index 432f1dde..cda657ce 100644 --- a/src/main/java/ddingdong/ddingdongBE/common/runner/PromtailDockerComposeRunner.java +++ b/src/main/java/ddingdong/ddingdongBE/common/runner/MonitoringApplicationRunner.java @@ -1,25 +1,30 @@ package ddingdong.ddingdongBE.common.runner; +import java.io.BufferedReader; +import java.io.InputStreamReader; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Component; -import java.io.BufferedReader; -import java.io.InputStreamReader; - @Component @Profile("prod") @Slf4j -public class PromtailDockerComposeRunner implements ApplicationRunner { +public class MonitoringApplicationRunner implements ApplicationRunner { @Override public void run(ApplicationArguments args) throws Exception { - log.info("Running PromtailDockerComposeRunner"); + log.info("Running Promtail & Node Exporter"); ProcessBuilder processBuilder = new ProcessBuilder(); - processBuilder.command("docker-compose", "-f", "/var/app/current/promtail/promtail-docker-compose.yml", "up", "-d"); + processBuilder.command( + "docker-compose", + "-f", "/var/app/current/promtail/promtail-docker-compose.yml", + "-f", "/var/app/current/nodeexporter/node-exporter-docker-compose.yml", + "up", + "-d" + ); Process process = processBuilder.start(); @@ -40,9 +45,9 @@ public void run(ApplicationArguments args) throws Exception { int exitCode = process.waitFor(); if (exitCode == 0) { log.info("Promtail started successfully using Docker Compose."); - log.info("promtial is tracking info level log"); - log.warn("promtial is tracking warn level log"); - log.error("promtial is tracking error level log"); + log.info("promtail is tracking info level log"); + log.warn("promtail is tracking warn level log"); + log.error("promtail is tracking error level log"); } else { log.error("Failed to start Promtail. Exit code: {}", exitCode); } diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index 1a1772ed..9470707f 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -47,6 +47,7 @@ server: management: endpoints: + enabled-by-default: false web: exposure: include: info, health @@ -58,3 +59,5 @@ management: enabled: true server: port: 9090 + security: + enabled: false