[개발] stack driver로그를 이용한 API사용 현황 모니터링 부분 개발
[개발] stack driver로그를 이용한 API사용 현황 모니터링 개발
stack driver란?
목적
- 실제 운영환경에서는 다양한 로그들이 엄청나게 많이 나옴
- 이러한 로그를 적절하게 분석하기 위한 환경을 마련한 후 리포트나 시각화(DataStudio)를 통해여 보여주는 것
API인증
- 스택 드라이버를 사용하기 위해서는 로그 API에 대한 인증이 필요
- 인증에는 여러가지 방법이 있는데 사용이 쉬운 방법 2가지를 아래에 설명
1. local 환경 또는 타 환경에서 인증
- 로컬 개발환경이나 클라우드에서 인증을 하는 방법은 서비스 어카운트(Service Account)를 사용하는 방법이 있다.
- Service Account는 구글 클라우드 콘솔에서 IAM 메뉴에서 생성할 수 있다
- 햄버거 메뉴(콘솔 왼쪽 위)를 누른후 IAM & admin -> Service accounts클릭
- 위쪽에 있는 CREATE SERVICE ACCOUNT클릭
- Service account name에 원하는 name입력 후 CREATE클릭
- Select a role클릭 후 Logging -> logs Writer클릭
- 여기서 권한을 설정할 수 있는데, Project Owner로 설정하면 모든 권한을 다 가질수 있고, 여기서는 로깅 권한만을 줄것이기 때문에, Logs Writer권한만을 지정함.
- logs Writer클릭 후 Continue클릭
- Create KEY클릭
- JSON파일로 KEY만들기
- 계정을 생성하면 json파일이 다운로드가 됨
- 이 파일을 환경 변수 GOOGLE_APPLICATION_CREDENTIALS에 파일 경로를 지정해주면 됨
- ex) export GOOGLE_APPLICATION_CREDENTIALS=/User/Anderson/keys/gcptest-21960~~~.json
2. 구글 클라우드 VM내에서 인증
- 구글 클라우드 VM내에서 자바 코드를 실행할 경우 VM자체에 API접근 권한을 부여 할 수 있다.
- 보통 운영환경에서는 이 방법이 권장된다.
- 햄버거 클릭 -> Compute Engine 클릭 -> VM instances 클릭
- Identity and API access에서 access scopes에서 접근 권한 설정
- Allow full acces to all Cloud APIs를 클릭해서 전체 API에 대한 권한을 줄수도 있음
- Set access for each API클릭해서 Logging write권한만을 줄 수도 있음
SLF4J를 이용한 로깅
- SLF4J를 이용한 로깅은, 기존의 SLF4J 로거를 그대로 사용하기 때문에 코드 변환이 거의 없음
- 단지, maven에서 라이브러리 의존성을 스택드라이버 로거로만 변경해주면 되기 때문에 별도의 학습이 필요없고 사용법이 단순함
mvn compile exec:java -Dexec.mainClass=com.mycompany.app.App
메이븐 실행 명령어
gcloud config set project gcptest-219600
구글 클라우드 프로젝트 설정 명령어
gcloud auth application-default login
구글 클라우드 디폴트 로그인 버전 변경 명령어
API&Service -> Dashboard에서 API가 Disable인지 Enabled인지 확인
BigQuery로 log보낼때 만들어놓고 다시 로그를 보내야 보내진다. 이전에 만들어진 로그는 잘 안보내지는것으로 확인
BigQuery에서 스트리밍으로 받는 데이터가 있을 경우에는 preview에 바로 안 나올수도 있으므로 쿼리문을 날려보는게 더 빠를수도 있음
BigQuery에 옆에 export눌러서 datastudio로 보내면 됨
출처
- http://bcho.tistory.com/1214
댓글
댓글 쓰기