Inflearn brand logo image

인프런 커뮤니티 질문&답변

ms.kim님의 프로필 이미지
ms.kim

작성한 질문수

GZS - 우리도 자빅스(Zabbix) - 그라파나, 슬랙 연동

[실습] 인프라 담당자가 보는 대시보드

ZABBIX와 Grafana 연동

해결된 질문

작성

·

37

0

몇 달 사용하다보면 select query가 무거워져서 grafana service 때문에 server가 중단될 수 있다고 하셨는데 이 말은 실습 기준으로 zabbix server가 다운될 수 있다는 말인가요? 여기서 select query가 무거워진다는 의미를 좀 더 정확히 알고 싶습니다. 또한 저는 여러 서버의 모든 메트릭 값을 수집하면서 부하 테스트를 진행하려고 하는데, 어쨌든 query를 날리게 되면 db에 읽기 작업이 있을텐데 db server에는 영향이 없을지도 궁금합니다.

공식 문서에는 db로 direct 연결을 진행할 수도 있다고 하는데 왜 선생님은 db direct 연결을 안 하셨는지도 궁금합니다.

답변 2

0

안녕하세요 좋은 질문입니다!

아마 지금쯤이면 모두 이해하셨을 것 같은데 답변이 늦어서 죄송합니다.

 

예를 들어본다면 만약 아래와 같이 대쉬보드를 구성했다고 가정해보겠습니다.

25년도 7월 한 달만 조회한다면 트래픽은 전체 사용률을 나타내고 아래 CPU, MEM 테이블은 한 달 중 최근 값(last)을 테이블에 표시할겁니다.

이때 특정 사용자가 2년치의 트래픽 그래프가 보고 싶어서 무심결에 기간을 늘렸다고 해보겠습니다.

image.png

 

그럼 트래픽 뿐만이 아니라 CPU, MEM 테이블에서 2년 치의 select query가 뽑힌 다음에 거기서 최근값(last)를 보여줍니다. 이때 실제 서버 메모리 사용률을 보면 grafana-server 프로세스가 100%까지 차버립니다. 그랬을 때 만약 zabbix 서버에 grafana 서비스를 같이 올렸다면 서버가 hang이 걸려버리고 재부팅을 해야만 하는 상황이 발생합니다.

image.png

 

여기서 만약 API 로 zabbix와 grafana 간의 통신이 아닌 DB Direct로 연결하면 훨씬 빠른 통신이 가능하여 위와 같은 이슈 상황을 피할 수 있습니다. 다만 DB Direct로 실습을 진행하지 않은 이유는 인터넷의 쉽게 찾을 수 있는 레퍼런스에서는 대다수 API로 되어있기 때문입니다. 해당 강의를 수강하시는 분들이 차후에 Zabbix 운영 중에 몇 년뒤에 이슈가 발생했을 때 쉽게 자료를 찾을 수 있도록 강의 구성을 고민했던 것 같습니다.

 

추가 질문 있으시면 말씀 부탁 드립니다!

 

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. ms.kim님.

Zabbix와 Grafana의 연동 문제에 대해 질문을 주셨군요. 여러 서버의 메트릭을 수집하는 동안 시스템이 과부화되는 경우와 관련한 우려를 이해합니다. Zabbix와 Grafana를 사용하는 실무에서는 대량의 데이터를 처리할 때 항상 데이터베이스의 성능과 리소스 관리에 주의를 기울여야 합니다.

Select Query와 성능 문제

  • Select Query가 무거워진다는 것: 일반적으로 메트릭 데이터가 많아질수록 데이터베이스에 대한 SELECT 쿼리의 복잡성과 양이 증가하여 성능 부하가 걸릴 수 있습니다. 특히 데이터 사용이 증가할수록 쿼리가 더 많은 데이터를 조회하게 되며, 이는 데이터베이스 서버의 CPU 및 I/O 자원을 많이 사용하게 만들 수 있습니다.

  • Zabbix 서버의 잠재적 다운타임: 쿼리로 인해 데이터베이스의 부하가 커지면 응답 시간이 느려지거나 서버가 일시적으로 다운될 수 있습니다. 이는 특히 이벤트와 메트릭이 폭증하는 부하 테스트 환경에서 발생할 수 있는 문제입니다.

데이터베이스 서버의 영향

  • 여러 서버에서 모든 메트릭을 수집하고 부하 테스트를 수행하는 경우, DB 서버는 실제로 상당한 읽기 작업을 수용해야 합니다. 이는 CPU, 메모리, 스토리지 I/O에 부하를 줄 수 있으며, 쿼리 최적화가 잘 되어 있지 않다면 더 큰 문제가 될 수 있습니다.

DB Direct 연결

  • DB Direct 연결을 수행하지 않은 이유로는, 직접적인 연결이 보안상 위험을 증가시킬 수 있고, Zabbix의 API를 사용하여 필요한 데이터를 더 안전하고 효율적으로 가져올 수 있기 때문입니다. 직접 연결은 데이터베이스를 외부로부터 추가적인 공격에 노출시킬 수 있으며, API를 통한 접근이 더 권장되는 방식입니다.

질문자님의 필요에 맞춘 최적의 Zabbix 및 Grafana 설정을 고려할 때, Zabbix의 proxy를 사용하거나 데이터베이스 성능을 개선하기 위한 인덱스 최적화 등을 통해 쿼리 성능을 향상하는 방법을 함께 검토해 보시는 것을 추천드립니다.

관련된 강의나 정보를 참조하시면 도움이 될 것이며, 더 자세한 자료는 zabbix agent avaliability 아이템 수집에 대해 문의 드립니다.에서 확인하실 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

ms.kim님의 프로필 이미지
ms.kim

작성한 질문수

질문하기