StackState Monitoring – NGINX편
오늘날에는 기존 애플리케이션은 monolith structure에서 마이크로서비스 지향 아키텍처로 전통적인 애플리케이션을 현대화할 필요성이 커지고 있습니다. 컨테이너화 기술은 auto scaling, 배포 빈도 증가 등과 같은 많은 이점을 가져다줍니다. 이와 동시에 완전한 IT 스택을 관리하는 것이 더욱 중요해졌습니다. 80개 이상의 인기 있는 DevOps 도구와 기술과의 통합을 지원하는 StackState 는 NGINX 를 IT 스택의 나머지 부분과 관련하여 모니터링할 수 있게 해줍니다.
애플리케이션 가용성과 성능은 비즈니스 생존의 핵심입니다. IT는 더 이상 “백 오피스”가 아니라 경쟁 우위를 얻는 핵심 요소이며 시장에서 공격적인 파괴자를 상쇄하는 핵심 도구입니다. 셰익스피어가 “To be or not to be”라고 했지만, 이제는 “파괴하거나 파괴당하거나”입니다.
그래서 기업들은 더 빠르게 움직이고 민첩한 DevOps 작업 방식을 채택할 필요성을 느끼고 있습니다. 선택의 여지가 없습니다! 팀들은 더욱 자립적이 되고, 자신들이 최선으로 도움이 될 것으로 생각하는 도구를 선택할 수 있는 자유를 갖게 됩니다. 이것이 중요한데, 이것 없이는 그들이 올바르게 업무를 수행할 수 없을 것입니다.
하지만 이러한 많은 도구들의 다양성은 비즈니스에 중요한 문제의 근본 원인을 찾는 것을 더욱 어렵게 만듭니다: ” 도와주세요! 내 결제 서비스가 더 이상 작동하지 않아요! 무엇이 잘못되었고, 언제, 어디서 문제가 발생했을까요?”. 이는 보통 복구하는 데 걸리는 평균 시간이 길다는 것을 의미하며, 이는 아무도 더 이상 감당할 수 없다는 것입니다.
목차
1. NGINX를 사용하여 DevOps 문제 해결
2. StackState가 도움이 되는 방법
3. StackState로 500 오류 조사
1. NGINX 를 사용하여 DevOps 문제 해결
DevOps 중심의 팀들이 선택하기 좋은 예시로 NGINX가 있습니다. NGINX는 점점 더 많은 다양한 종류의 회사에서 사용되고 있습니다. 그리고 이에는 매우 좋은 이유가 있습니다. NGINX는 매우 안정적이고 가벼운 웹 서버 및 리버스 프록시로, 컨테이너 내에서 실행할 수 있습니다. 배포하기 쉽고 최소한의 리소스를 소비하며, 앞서 언급한 대로 매우 안정적입니다. Apache와 같은 대체 제품과 비교해 NGINX는 구성하기 쉽습니다. NGINX Plus는 분당 호출 횟수 및 응답 시간과 같은 중요한 메트릭에 대한 훌륭한 통찰력을 제공합니다.
하지만 스택 내에서 문제가 발생하면 비즈니스 서비스에 영향을 줄 수 있습니다. 개발자들은 빠르게 근본 원인을 파악할 수 있어야 합니다.
예를 들어, NGINX 로그 파일에서 갑자기 많은 500 에러가 보고하고 있고, NGINX가 문제의 근원이 아니라고 가정해 보겠습니다. 대신 NGINX와 그의 하부 인프라 및 애플리케이션에 의존하는 비즈니스 서비스가 문제를 겪고 있을 가능성이 높으며, 가능한 빨리 정상 상태로 복원돼야 합니다.
따라서 비즈니스 서비스를 구성하는 모든 구성 요소 간의 관계를 이해해야 합니다. 프로세스 단계부터 하드웨어 랙까지 그 사이에 있는 모든 것들을 포함시킵니다. 그런 다음 모델에 모든 가능한 메트릭 스트림을 추가해야 합니다.
2. StackState 가 도움이 되는 방법
StackState 의 알고리즘 기반 IT 운영은 웹 서버 모니터링을 기본 메트릭을 넘어서 확장합니다. 단일 에이전트를 기반으로 StackState 는 시스템 프로세스를 확인하고 모든 실행 중인 NGINX 인스턴스를 자동으로 감지할 수 있습니다. NGINX 웹 서버를 시각화하고 중요한 의존성을 포함한 랜드스케이프 토폴로지(landscape topology)의 전체 모습을 볼 수 있습니다.

StackState 는 전체 애플리케이션 스택에 대한 가시성을 제공합니다. 모든 가능한 데이터 source를 단일 통합된 개요로 결합함으로써 StackState 는 모든 구성 요소, 그들의 관계 및 모든 사용 가능한 텔레메트리를 StackState 모델에서 처리하기 때문에 순간적으로 올바른 결정을 내릴 수 있게 해줍니다. 이렇게 함으로써 문제의 근본 원인이 자동으로 발견되며 문제를 해결하는 것을 즉시 시작할 수 있습니다.
3. StackState 로 500 오류 조사
StackState 의 각 구성 요소는 상태를 나타냅니다. 내부 색상은 자체 건강 상태를 나타내고 외부 색상은 전파된 상태를 나타냅니다. 구성 요소는 녹색(정상 상태), 주황색(이탈 상태), 빨간색(비상 상태) 및 파란색 (알 수 없는 상태)로 변할 수 있습니다. 이러한 시각화 방식은 스택의 어떤 부분이 건강하고 어떤 부분이 그렇지 않은지 쉽게 이해할 수 있게 해줍니다.
우리의 IT 스택에서 문제가 발생하면 StackState 는 사용자 인터페이스 및 Slack과 같은 통합된 알림 도구를 통해 즉시 알려줍니다. 이 경우 “비즈니스 애플리케이션” 구성 요소의 전파된 상태가 빨간색 (비상 상태)임을 알림으로써 받게 됩니다.
사용자 인터페이스에서 우리는 이 보기 내에서 여러 구성 요소가 주황색(이탈 상태)으로 전환되었고 하나의 구성 요소가 빨간색(비상 상태)으로 변한 것을 볼 수 있습니다. “비즈니스 애플리케이션” 구성 요소 자체는 괜찮아 보이며 (내부의 녹색 상에 주목), 그럼에도 불구하고 어떤 일이 어디서 어떻게 발생하는지 조사하려고 합니다.
1. 우리는 비즈니스 애플리케이션과 가장 관련이 있는 구성 요소인 결제 서비스 구성 요소부터 조사를 시작합니다. 또한 이 구성 요소는 이탈 상태입니다. 결제 서비스 구성 요소를 클릭하면 사용자 인터페이스의 오른쪽 창이 열리고 가장 관련성 높은 메트릭이 자동으로 표시됩니다. 우리는 이상 탐지 알고리즘 중 하나가 비정상적인 동작을 감지했다는 것을 알 수 있습니다. 따라서 이 구성 요소는 주황색 이탈 상태에 있는 것입니다.

2. 스택을 더 아래로 내려가보면, NGINX 웹 서버도 이 문제에 영향을 받았으며 둘 다 이탈 상태에 있는 것을 볼 수 있습니다. 관련 메트릭을 조사하면 몇몇 요청에 대해 HTTP 500 오류와 느린 응답 시간과 관련된 문제를 다루고 있음을 알 수 있습니다.

3. 더 깊이 들어가보면, 데이터베이스가 빨간색으로 비상 상태임을 알 수 있습니다. 데이터베이스가 아마도 이 문제를 일으킨 것으로 보이며 비즈니스 애플리케이션에 영향을 미치는 것으로 판단됩니다. StackState 는 가장 관련성 높은 메트릭뿐만 아니라 로그 정보도 집계하고 해당 구성 요소에 스트림으로 배포할 수 있는 능력을 갖고 있습니다. 이 데이터베이스의 수집된 로그 정보에 따르면 ‘pixelpost_pixelpost’ 테이블에서 전체 테이블 스캔이 발생한 것으로 나타납니다.

4. IT 스택의 문제는 보통 변경으로 추적될 수 있습니다. 스택 내의 모든 것에 대한 완전한 변경 로그를 가지는 것이 중요합니다. StackState 에서 발생하는 모든 것은 이벤트에 의해 트리거됩니다. 사용자 인터페이스의 이벤트 탭을 통해 전체 스택을 거친 시간별 이벤트를 모두 볼 수 있습니다. 이 기능 덕분에 우리는 1:03 오후에 결제 서비스에 배포가 되었고, 이로 인해 데이터베이스가 전체 테이블 스캔을 수행했다는 것을 발견합니다. 배포의 롤 포워드 또는 롤 백을 수행하면 문제가 해결될 것입니다.

정보 수집의 몇 가지 예시(메트릭 및 로그 수집 및 집계를 통해 수집되는 정보):
- (마이크로) 서비스, NGINX 및 기타 (마이크로) 서비스 간의 종속성에 대한 중요한 요청/응답 시간
- 활성 클라이언트 연결 수(NGINX Plus)
- 허용되는 연결 수(NGINX Plus)
- 작업을 기다리는 keepalive 연결 수
- 서버가 비정상이 된 횟수(“unhealthy” 상태)
- 상태 코드가 5xx인 응답 수
NGINX에서 사용할 수 있는 모든 메트릭에 대한 개요는 docs.stackstate.com를 참조하세요.
이 포스트에서는 StackState 를 사용하여 NGINX를 모니터링하는 방법, 문제를 조사하고 해결하는 방법, 전체 IT 스택과 해당 종속성을 시각화하는 것이 왜 중요한지에 대해 안내해드렸습니다. 위에서 언급한대로 인기있는 DevOps 도구 및 기술과 80개 이상의 통합을 통해 StackState 는 NGINX를 다른 IT 스택과의 맥락에서 모니터링할 수 있게 해줍니다.
NGINX Plus를 직접 사용해 보시려면 30일 무료 평가판을 신청하거나 NGINX STORE에 연락하여 문의하십시오.
NGINX에 대한 최신 정보들을 빠르게 전달받고 싶으시다면, 아래의 뉴스레터를 구독하세요.
댓글을 달려면 로그인해야 합니다.