[GCP]Stackdriver logging/monitoring 기본

in google •  7 years ago 

안녕하세요 이정운 입니다.

어떤 이야기를 공유할까 고민하다가 이번에는 시스템을 운영할 경우에 많이 필요하지만 아직 제대로 활용되고 있지못하는 부분 중의 하나가 Google cloud 의 모니터링/로깅관련 컴포넌트인 Stackdriver 가 아닐까 하고 이를 시리즈 형태로 다뤄보려고 합니다. (이게 참 좋은데 어떻게 표현을 못하겠다는…) Stackdriver 는 아직 잘 안알려져 있지만 Google Cloud Platform 만이 아니라 Amazon Web Services 에서 실행되는 응용 프로그램에 대한 통찰력을 얻는 데 도움이되는 모니터링, 로깅 및 진단을위한 SaaS 패키지로서 심지어 On-premiss 솔루션도 모니터링 및 로깅이 가능합니다.

이런 막강한 솔루션이지만 기본적으로 모니터링/로깅에 관련된 기능을 full 로 활용하려면 Stackdriver agent 가 설치되고 premium plan 을 사용해야 하는데 그러면 자원당 비용이 발생되고 이런한 비용에 대한 부담과 어려움이 그간 Stackdriver 를 활용하는데 조금 주저함을 주지않았나 생각합니다. 그런데 이번에 공격적으로 가격 체계를 변화하면서 더 많은 개발자/운영자가 Stackdriver 를 활용할 길을 열어주었습니다.

아직은 조금 시간이 남았지만 이미 제가 한번 공유드린 것처럼 2018년 6월 30일 이후로 Stackdriver 가격체계에 큰 변화를 준비하고 있습니다. 가격 체계 자체를 단순화하여 premium plan 을 없애고 모든 GCP 고객은 원하는 기능을 사용가능하며 사용한 만큼만 비용을 지불할 수 있도록 라이센스 형태가 변화됩니다. Stackdriver logging 기본적으로 한달에 50 GB 까지 무상제공이 늘어날 예정이며 Stackdriver Monitoring 은 모든 GCP metrics 까지는 무상으로 제공될 예정입니다. 실제 서비스 운영하는 입장에서는 앞으로 굉장히 가격 절감 효과가 있을듯 하며 GCP 메뉴얼에서도 하단과 같이 가격표가 이미 오픈되어 있습니다.

https://cloudplatform.googleblog.com/2018/03/announcing-new-Stackdriver-pricing-visibility-for-less.html
img

이것 이외에도 exclusion filters 기능이 추가되어 로깅이 필요없는 컴포넌트는 원하는 형태와 비율로 제외시킬 수 있어서 유연하게 요금을 제어할 수 있습니다. 이러한 막강한 기능을 가진 Stackdriver 가 가격까지 저렴해진다니 더 기대가 되구요 기대만이 아니라 실제로 사용해 보면서 어떤 부분이 좋은지 확인해보는 시간을 가져보도록 하겠습니다.

늘 그렇지만 이번 이야기도 역시 다양한 자료를 참고하였습니다.

Quickstart for Google Compute Engine
https://cloud.google.com/monitoring/quickstart-lamp

Quickstart
https://cloud.google.com/logging/docs/quickstart-sdk


#1) Stackdriver Logging/Monitoring 간단 테스트

우선 가장 기본적으로 GCE 에 nginx 를 하나 설치한 후에 기본적으로 GCP 에서 제공하는 Stackdriver logging 과 monitoring 관련해서 기본 기능을 살펴보도록 하겠습니다.

하단의 명령을 통해서 간단하게 nginx 를 설치하고 임시 배정된 External IP 로 서비스가 가능한 것을 확인합니다. (GCE 인스턴스가 하나 있다고 가정, 없는 경우에는 하나 만드시면 됩니다. 이때 http 서비스는 외부 서비스가 가능하도록 설정해야 합니다.)

sudo apt-get install nginx
img

이렇게 서비스만 만들면 별도의 작업 없이도 기본적으로 하단과 같이 Stackdriver monitoring 이 가능합니다. (GCP 콘솔에서 Stackdriver monitoring 을 클릭한 후 Resources > instance > GCE 인스턴스 이름을 클릭) 보시면 아시겠지만 Overview 와 CPU, Disk I/O, Network traffic 등 간단한 모니터링 기능은 바로 사용 가능한 것을 확인 가능합니다.
img

Stackdriver logging 도 확인해보면(GCE VM 인스턴스 > 인스턴스명) 간단한 로깅정보가 확인 가능한 것을 알 수 있습니다. (단, 꼭 필요한 access log 나 error log 가 없죠)
img


#2) Stackdriver agent 설치 및 테스트

좀 더 강화된 로깅 및 모니터링을 위해서는 Stackdriver agent 를 GCE 에 설치해야 합니다.(GAE 의 경우에는 기본적으로 포함) 이 부분은 GCE 에서 아주 간단하게 가능하며 Stackdriver logging agent 와 Stackdriver monitoring agent 가 분리되어 있어서 필요에 따라서 원하는 것만 유연하게 설치 가능합니다.

하단의 명령을 이용해서 Stackdriver logging agent 를 설치합니다

curl -sSO “https://dl.google.com/cloudagents/install-logging-agent.sh"
sudo bash install-logging-agent.sh
img

설치할 때 나오는 출력을 잘 보시면 Stackdriver logging agent 는 그 유명한 fluentd 를 기반으로 함을 알 수 있습니다. 이제 바로 Stackdriver monitoring agent 도 동일한 방식으로 설치합니다.

curl -sSO https://dl.google.com/cloudagents/install-monitoring-agent.sh
sudo bash install-monitoring-agent.sh
img

참고로 Stackdriver monitoring agent 는 collectd 를 기반으로 만들어졌습니다. 이렇게만 하면 Stackdriver agent 를 문제 없이 설치한 것이고 그 결과를 한번 확인해보도록 하겠습니다.

GCP 관리콘솔에서 Stackdriver monitoring 에 가서 Resources > Instances 를 확인해보면 기본적으로 이전까지 안나오던 Memory Usage 가 표시되는 것을 확인 가능합니다.
img

img

뿐만 아니라 Instance 이름을 클릭해서 세부 모니터링 화면으로 들어가면 CPU Load, CPU Steal, Swap Usage, Open TCP connections 등 다양한 모니터링이 추가적으로 가능합니다. 거기다가 Overview 에는 Processes 탭이 추가되어 linux 의 top 명령을 수행한 것과 동일하게 해당 GCE instance 의 processes 를 모두다 확인 가능합니다.(저는 개인적으로 이게 좋더라구요 직접 GCE 에 ssh 로 들어갈 필요없이 대쉬보드에서 바로 프로세스 리스트와 자원 사용량을 볼 수 있습니다)
img

이외에 더 많은 모니터링 가능 항목은 하단의 링크를 참고하시면 됩니다.

Agent Metrics List
https://cloud.google.com/monitoring/api/metrics_agent

이번엔 Stackdriver logging 을 확인해봅니다. agent 설치 후에 가장 눈에 띄게 다른 점 중의 하나는 nginx 의 access log 를 바로 확인 가능 하다는 것 입니다. (사실 이외에도 syslog 나 error log 등도 별도의 설정 없이 확인 가능합니다.)
![img(https://cdn-images-1.medium.com/max/800/0*GLVxGU4raToxzm51.)

참고로 Stackdriver logging agent 설치후에 /etc/google-fluentd/config.d 폴더를 보시면 하단과 같이 fluentd 관련 설정 파일들을 확인 가능합니다. 이를 다시 말하면 필요한 경우 원하는 형태로 로그 포멧을 수정 가능하다는 것입니다.
img

Agent 설치 후에 추가적으로 더 가능한 Stackdriver logging 항목에 대해서 더 궁금하신 분은 하단의 링크를 참고하시기 바라겠습니다.

Logs from the Logging Agent
https://cloud.google.com/logging/docs/view/service/agent-logs
img

특히, 위의 링크를 보시면 아시겠지만 Apache, Nginx, Kafka 등 이미 다양한 오픈 소스에 대한 로깅 준비가 되어 있어서 별도의 큰 작업없이도 각 솔루션에 필요한 내용을 알아서 Stackdriver 를 활용해 로깅할 수 있습니다.

우선 기본적으로 Stackdriver logging 과 monitoring 을 살펴봤고 아주 간단하게 agent 를 설치한 후 추가적으로 어떤 부분을 더 monitoring 가능하고 logging 가능한지 확인해봤습니다. 이미 보셔서 아셨겠지만 Stackdriver logging 과 monitoring 은 복잡한 작업 없이도 GCP 환경위의 다양한 자원을 통합적으로 모니터링하거나 로그를 관리할 수 있게 해줄 수 있는 꽤 쓸만한 도구 입니다.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!