본문 바로가기

분류 전체보기176

Prometheus와 Grafana 연동 - Web UI Dashboard Kafka Web UI Dashboard를 위해 prometheus와 grafana를 연동해야 합니다. 1. Prometheus와 Grafana 연동 1. 데이터 소스 연결 메인화면에서 Add data source를 선택하면 아래와 같이 추가할 수 있는 목록이 나열됩니다. 프로메테우스를 선택하면 아래와 같이 프로메테우스와 연결하기 위한 세팅이 나타납니다. 여기서 중요한 것은 URL입니다. 이 URL에는 프로메테우스 서버의 URL이 기재되어야 하며, 프로메테우스 서버는 내부 IP를 가지고 있는 서비스로 노출되어 있기 때문에 이를 조회해야 합니다. kubectl get svc -n {네임스페이스명} 해당 클러스터IP와 내부 Port를 기재하고, 필요한 기능을 체크하여 저장합니다. 2. Template을 이용.. 2020. 10. 14.
Grafana installation - Web UI Dashboard Grafana는 모니터링을 시각화하기 위한 도구입니다. helm을 이용하여 설치하므로, helm이 설치되어 있다는 것을 전제로 합니다. 1. 설치 방법 1. helm으로 grafana 설치 helm install --name air-grafana --namespace monitoring -f values.yaml stable/grafana 이때 사용한 values.yaml에서 가장 중요한 것은 외부 포트 오픈을 위해, service: NodePort를 지정해주었다는 것입니다. 또한 adminUser와 adminPassword를 지정해주어야 합니다. 더보기 rbac: create: true pspEnabled: true pspUseAppArmor: true namespaced: false extraRole.. 2020. 10. 14.
Prometheus install - Web UI Dashboard Prometheus는 Kafka Monitoring을 위한 도구입니다. helm을 이용하여 설치했으므로, helm이 설치되어 있는 것을 전제로 합니다. 1. 설치방법 1.helm으로 prometheus 설치 helm install --name air-kube-monitoring --namespace monitoring -f values.yaml stable/prometheus 이때 사용한 values.yaml에서 가장 중요한 것은 외부 포트 오픈을 위해, server: service: type: NodePort를 지정하고, 이를 위한 nodePort를 지정해주었다는 것입니다. 또한 데이터 유지기간을 길게 잡기 위해서 retention을 365d로 주었습니다. 더보기 rbac: create: true po.. 2020. 10. 14.
Authentication Server - Outer Architecture Authentication Server는 User 정보를 입력받아, 유효한 User인 경우 JWT Token을 발급해줍니다. pom.xml user 정보를 mariadb에서 관리합니다. 따라서 air-mariadb-starter를 상속받습니다. 따라서 authentication을 위해 2개의 library를 추가해 주어야 합니다. spring-boot-starter-security spring-security-oauth2-autoconfigure 4.0.0 kr.sys4u.lab air-mariadb-starter 0.0.1-SNAPSHOT kr.sys4u.lab air-auth 0.0.1-SNAPSHOT air-auth Demo project for Spring Boot 0.9.1 org.springf.. 2020. 10. 14.
Api-gateway Server - Outer Architecture pom.xml gateway-server로 spring-cloud-start-gateway를 사용할 예정입니다. 그리고 air-gateway도 eureka-server에 등록될 eureka-client이기 때문에 air-eureka-client를 상속받으려 했습니다. 하지만 의존성 관계를 보면, air-eureka-client가 spring-boot-starter-web을 의존하고 있고 spring-cloud-start-gateway는 spring-boot-starter-webflux를 의존하고 있어서 서로 충돌하는 결과가 발생했습니다. 따라서 air-gateway에서는 spring-boot-starter-parent를 직접 상속받아서 필요한 library를 dependency에 추가하였습니다. 4.0... 2020. 10. 14.
Eureka Server(standalone) - Outer Architecture pom.xml air-starter를 상속받고, netflix가 제공하는 eureka-server를 dependency에 추가합니다. 4.0.0 kr.sys4u.lab air-starter 0.0.1-SNAPSHOT kr.sys4u.lab air-eureka-server-starter 0.0.1-SNAPSHOT air-eureka-server-starter Demo project for Spring Boot org.springframework.cloud spring-cloud-starter-netflix-eureka-server application.yml application.yml에 eureka-server에 대한 세팅을 해주어야 합니다. server: port: 7979 spring: applica.. 2020. 10. 14.
MongoDB based Prototype - Inner Architecture air-mariadb-starter를 의존하는 비즈니스 애플리케이션 프로토타입으로, 이 포스트에서는 Controller, Service, Repo, Dto에 대한 코드는 다루지 않습니다. MariaDB based Prototype과 거의 유사하므로 아래 설정 정보만 기재하겠습니다. application.yml 몽고디비 설정은 아래와 같습니다. ...중략 spring: data: mongodb: host: {IP} port: {포트} database: {데이터베이스명} username: {유저명} password: {패스워드} ...중략 2020. 10. 14.
MariaDB based Prototype - Inner Architecture air-mariadb-starter를 의존하는 비즈니스 애플리케이션 프로토타입으로, 이 포스트에서는 Controller, Service, Model, Mapper에 대한 코드는 다루지 않습니다. application.yml MariaDb와 Mybatis, log4jdbc 의존성을 가지고 있기 때문에 각각에 대한 yml 설정 필요합니다. ...중략 logging: level: root: INFO spring: datasource: driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy url: jdbc:log4jdbc:mariadb://{서버IP:포트}/{데이터베이스명} username: {유저명} password: {패스워드} ...중략 mybatis: mapp.. 2020. 10. 14.
Common Lib Stub - Inner Architecture Inner Architecture에 속하는 애플리케이션으로, Kafka Management를 수행하는 프로젝트입니다. ManagementTopicListener 비즈니스 어플리케이션명으로 시작하는 카프카 토픽을 구독합니다. [KafkaListener] @Component class ManagementTopicListener { @KafkaListener(topics = ["\${spring.application.name}.management.topic"]) fun listen(message: ManagedMessage) { println("received : $message") } 자식 어플리케이션에서 설정 (1) yml 설정 어플리케이션명을 기준으로 토픽을 구독하기 때문에 yml 설정에서 애플리케이션명.. 2020. 10. 14.
Application Dependency Declaration 아래는 Application Dependency Declaration입니다. 1. Starter - 0 depth 0 depth dependencies를 의존하고 있는 프로젝트로, 아키텍처의 최상위 부모 프로젝트. 하위 Eureka-Client Starter와 MongoDB Starter, MariaDB Starter를 모듈로 가지고 있습니다. spring-boot-starter-parent를 부모로 의존하고 있으며, 해당 프로젝트를 maven install 후 pom에서 아래와 같이 parent로 지정하여 사용할 수 있습니다. kr.kellis.air air-starter {latest version} 2. Eureka-Server - 1 depth 1 depth dependencies에서 Eureka.. 2020. 10. 14.