[개발] 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에서 라이브러리 의존성을 스택드라이버 로거로만 변경해주면 되기 때문에 별도의 학습이 필요없고 사용법이 단순함

터미널에서 로그를 찍을때
여기의 명령어를 잘보고 gcloud와 연동이 어느 계정으로 되어있는지 잘 확인해야한다...
이것때문에 고생 많이했다.ㅠㅠ

 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로 보내면 됨


출처
  1. http://bcho.tistory.com/1214

댓글

이 블로그의 인기 게시물

[소프트웨어공학] NS(Nassi-Schneiderman) 차트

[운영체제] 파일의 구조(순차 파일, 직접 파일, 색인 순차 파일)

[운영체제] MLQ & MFQ