통합로그-어플리케이션설정

2020. 2. 8. 22:07Spring Micro Services/통합로그

반응형

어플리케이션설정

로그통합을 위한 프로그램들을 설치 하였으니 이제 어플리케이션설정을 해보도록 하자. 전체소스는 아래 사이트에서 내려 받으면 됩니다.

 

Github :  https://github.com/roopy1210/spring-msa-with-logging

 

roopy1210/spring-msa-with-logging

This project integration with Logstash and ELK. Contribute to roopy1210/spring-msa-with-logging development by creating an account on GitHub.

github.com

 

현재 소스는 이전의 Hystrix 소스에서 추가를 하였다. 따라서 추가된 부분만 알아보도록 하자.

 

 

01. pom.xml 수정


스프링 클라우드 슬루스 라이브러리 추가

슬루스 라이브러리를 사용한 이유는 MVC 구조에서는 Controller -> Service -> Repository 의 구조를 갖게 되는데 키바나에서 트레이스와 스팬ID가 추가 되면서 동일한 ID번호가 생성이 된다. 이렇게 되면 로그 추적시 사용자의 요청에대한 처음과 끝의 추적이 무척 용이 해지는 장점이 있게 된다. 

 

별도의 설정없이 아래와 같이 의존성 추가만 하여주면 된다.

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>

 

 

02. logback-spring.xml


<configuration>
	<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
		<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
			<level>INFO</level>
		</filter>
		<encoder>
			<pattern>%d{HH:mm:ss.SSS} %-5level %msg%n</pattern>
			<charset>utf8</charset>
		</encoder>
	</appender>
	<appender name="FILE"
		class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>logs/order.log</file>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>order.%d{yyyy-MM-dd}.log</fileNamePattern>
			<maxHistory>10</maxHistory>
			<totalSizeCap>1GB</totalSizeCap>
		</rollingPolicy>
		<encoder>
			<pattern>%d{HH:mm:ss.SSS} %-5level %msg%n</pattern>
		</encoder>
	</appender>
	<appender name="STASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
		<destination>localhost:5000</destination>
		<encoder
			class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
			<providers>
				<mdc />
				<context />
				<logLevel />
				<loggerName />
				<pattern>
					<pattern>
						{
						"appName": "order-service"
						}
					</pattern>
				</pattern>
				<threadName />
				<message />
				<logstashMarkers />
				<stackTrace />
			</providers>
		</encoder>
	</appender>
	<root level="INFO">
		<appender-ref ref="CONSOLE" />
		<appender-ref ref="FILE" />
		<appender-ref ref="STASH" />
	</root>
</configuration>

 

주요 태그 정보를 살펴 보자

 

1. destination

   - logstash.conf의 input 포트가 5000번으로 설정 되어 있을 것이다. 어플리케이션에서 발생한 로그 정보를 logstash에

     전송하기 위한 서버 정보이다.

 

2. appName

   - logstash.conf에 설정된 output의 index 설정을 기억할 것이다. 이 app-name은

     index => "micro-%{appName}"  {appName} 에 생성 될 것이다.

 

3. encodeer

   - log는 json 형태로 생성 될 것이다.

 

프로그램설정

1. order-service, payment-service, product-service 프로젝트에 pom.xml 에

    슬루스(sluth) dependency 설정

2. order-service, payment-service, product-service 프로젝트에 resources/logback-spring.xml

    작성

 

다음에는 마지막으로 프로그램 실행 후 kibana 에서 로그 확인 하는 법을 알아보자.

 

 

반응형

'Spring Micro Services > 통합로그' 카테고리의 다른 글

통합로그-키바나 로그 확인  (0) 2020.02.10
통합로그 - 프로그램설정  (0) 2020.02.04