본문 바로가기
개인 프로젝트/coin

[Project Coin] 모니터링 시스템 whatap

by _royJang 2022. 8. 15.

모니터링 시스템

 큰 기업이든 작은 기업이든 운영과 시스템 관리를 위해 모니터링 시스템은 필수적인 요소였다. 하지만 최근 클라우드를 사용하며 MSA 프로젝트를 더 많이 사용하게 되면서 모니터링 시스템에 대한 수요는 훨씬 더 필수적 요소가 돼 버렸다.

 또한 기존에 애플리케이션 성능 관측을 위한 APM, 서버 성능 관측을 위한 SMS 등 각각의 요소를 분리하여 모니터링 했다면 모든 서비스들이 작은 요소로 연결돼 있는 지금은 이를 통합하여 관측할 수 있는 통합 모니터링 시스템이 반드시 필요해 졌다. 그렇기에 이러한 변화를 받아들이고 사용법을 익히기 위해 작은 프로젝트인 Coin 프로젝트에도 통합 모니터링이 가능한 국산 SaaS솔루션인 Whatap을 붙여 보려한다. 

 비록 B2B 시스템이지만 15일 간 무료로 사용할 수 있다.

 


에이전트 설치 과정

에이전트 설치 방법과 환경 구성 방법은 whatap.io에 잘 나와있다.

 

 

사용 ec2 인스턴스

 

보안 그룹

필수적인 보안 그룹은 와탭 서비스가 TCP를 통해 자원을 수집하는 포트인 6600이고 그 외엔 나의 테스트용이다.

 

 

 

액세스 키 발급

와탭 서비스의 활성화를 위한 액세스 키를 발급받는다.

 

 

에이전트 설치

sudo rpm --import https://repo.whatap.io/centos/release.gpg
echo "[whatap]" | sudo tee /etc/yum.repos.d/whatap.repo > /dev/null
echo "name=whatap packages for enterprise linux" | sudo tee -a /etc/yum.repos.d/whatap.repo > /dev/null
echo "baseurl=https://repo.whatap.io/centos/latest/\$basearch" | sudo tee -a /etc/yum.repos.d/whatap.repo > /dev/null
echo "enabled=1" | sudo tee -a /etc/yum.repos.d/whatap.repo > /dev/null
echo "gpgcheck=0" | sudo tee -a /etc/yum.repos.d/whatap.repo > /dev/null
sudo yum install whatap-agent

 

서비스 환경 설정

$ echo "license={ACCESS KEY}" >> /usr/whatap/agent/whatap.conf
$ echo "whatap.server.host=xxx.xxx.xxx.xxx" >> /usr/whatap/agent/whatap.conf

이지만 permission error가 발생한다. 에이전트 설치 때와 마찬가지로 tee를 사용해 해결했다.

-->

$ echo "license={ACCESS KEY}" | sudo tee -a /usr/whatap/agent/whatap.conf
$ echo "whatap.server.host=xxx.xxx.xxx.xxx" | sudo tee -a /usr/whatap/agent/whatap.conf

 

 

 


모니터링 모습

잘 되긴 하지만 사용자가(나 밖에) 없는 정적인 프로젝트라 뭔가 눈에 띄는 건 보이지 않는다.

whatap

test

api에서 또 다른 api를 호출하게 하니 동시접속 사용자가 2명이 동시에 늘었다. 

 

ec2 두 개를 붙여보았다. 

 

그럼 agent란 것이 무엇일까. 시스템의 자원을 수집 서버에 보내주는 역할을 한다는 것은 알겠는데 이게 에이전트의 전부인지 잘 모르겠다.

 

나는 gin 프레임워크를 사용하고 있다. 여기서 whatap의 ginMiddleware를 붙이면 트랜잭션이 잘 수집되는 걸 볼 수 있었다. 하지만 Middleware를 제거하면 그렇지 않다. 그렇다면 api를 호출하면 동작하는 함수에 입력돼 있는 httpc는 어떤 역할을 하는 걸까? 로그를 남기는 역할일까? 그렇다기엔 로그를 활성화했지만 이에 대한 기록은 남아있지 않다. Beta 버전이기 때문인가?

 

 


Tip

 

문제 발생!

흠.. 정말 알 수 없군.. 잠깐 붙은것도 이해 안됨.. ㅡㅜ

뭔가.. conf 설정을 잘 못한 것일까?

Permission deny로 whatap.conf를 만들고 직접 입력을 했는데 이러면 안 되는 걸까? 저번엔 왜 됐지????

 

systemctl restart를 통해 에이전트를 재시작해주니 붙었다! 몇 시간 만이지...ㅠ ㅠ

 

새로 환경을 구축하면서 테스트해 보니 aws ec2 amazon이미지에서는 whatap.conf를 생성하고 systemctl restart를 통해 재시작을 해 주어야 잘 작동하는 것을 확인했다. 런타임 때에는 conf수정 값이 잘 안 먹히는가 보다.

 

 

그리고 위에도 언급했지만

$ echo "whatap.server.host=xxx.xxx.xxx.xxx" >> /usr/whatap/agent/whatap.conf

명령어를 입력했을 때  

-bash: /usr/whatap/agent/whatap.conf: Permission denied

에러가 발생했다.

 

이는 shell 이 리다이렉션을 수행할 때 sudo로 전환된 root 아닌 명령을 실행한 사용자로 실행해서 발생하는 일이라 한다.

 

내가 사용한 해결 방법은

$ echo "whatap.server.host=xxx.xxx.xxx.xxx" | sudo tee -a /usr/whatap/agent/whatap.conf

이다.

 

 


 

참조 

whatap : https://www.whatap.io/ko/

write permission error : https://www.lesstif.com/lpt/sudo-echo-permission-denied-89556053.html