Netdata의 숨겨진 인프라 문제 해결

로부터의 그래픽

Netdata 블로그 Netdata의 숨겨진 인프라 문제 해결


개발자로서 우리는 매일 버그를 복구하는 문제를 처리한다.만약 당신의 잘못된 소식이 매우 분명하다면, 통상적으로 이 문제들을 쉽게 해결할 수 있을 것입니다.단일 응용 프로그램의 문제를 해결하는 것도 세계에서 가장 어려운 일이 아니다.너는 오류가 발생할 수 있는 유한한 수량의 운동 부품을 추적해야 한다.그러나 여러 서비스로 구성된 전체 플랫폼을 개발할 때 어떤 일이 일어날까요?당신은 어떻게 그들 사이의 잠재적인 문제를 대규모로 추적합니까?만약 서로 다른 서비스가 여러 노드에 분포되어 있다면, 당신은 어떻게 발견 문제를 처리합니까?
대형 인프라를 처리할 때 반복 가능한 절차를 사용하여 여러 노드에 쉽게 배치할 수 있는 좋은 모니터링 솔루션이 필요합니다.Netdata는 이 설명에 부합되는 모니터링 솔루션 중 하나입니다.
이 글에서 나는 왜 Netdata가 좋은 인프라 시설 모니터링 옵션인지, 그리고 인프라 시설을 일부 서버에 설치하는 첫 시간 안에 인프라 시설의 주요 문제를 해결하는 데 도움을 주었는지 설명할 것이다.

Netdata란 무엇입니까?


Netdata는 서버의 모니터링 소프트웨어이지만 실제로는 Linux를 실행하는 모든 소프트웨어입니다.따라서 워크스테이션에 설치하고 Netdata (top이나 htop 대신) 를 사용하여 시스템 자원을 추적할 수 있습니다.Netdata에는 로컬 시스템 을 통해 액세스할 수 있는 내장 대시보드가 포함되어 있으며 필요한 모든 시스템 정보를 볼 수 있습니다.그러나 여러 노드에 배치할 때 이 데이터를 Netdata Cloud에 전송하고 모든 데이터를 대시보드에 전송할 수 있습니다.전체 인프라 시설의 모든 자원 사용 상황을 한눈에 볼 수 있습니다.
https://localhost:19999 여러 서버를 갖춘 Netdata 클라우드 대시보드

Netdata를 선택해야 하는 이유


Netdata 설치는 매우 간단하고 좋은 기능을 추가하여 인프라 시설 모니터링에 매우 적합하다.장치(인프라 시설의 모든 노드 포함)에 Netdata 클라이언트를 설치하고 하나의 대시보드에 연결할 수 있습니다: Netdata Cloud.이것은 서버와 건강 상태에 대한 명확한 설명을 만들기 위해 모든 노드의 정보를 입력할 수 있는 무료 대시보드입니다.이 대시보드는 CPU 사용률, RAM 사용률, 인바운드/아웃바운드 대역폭, 노드의 건강 상태를 계산하는 데 사용할 수 있는 더 많은 정보를 보여 줍니다.
정보는 모두 좋지만 Netdata를 모든 서버에 자동으로 배치할 수 없다면 충분하지 않다.다행히도 bash 스크립트를 사용하여 Netdata를 설치할 수 있습니다. 모든 노드를 Netdata 클라우드 대시보드에 추가하는 것도 bash 스크립트입니다.이것은 Ansible를 사용하여 이 프로세스를 자동화할 수 있다는 것을 의미합니다. 이것은 당신이 원하는 것입니다.Ansible은 여러 노드에서 동일한 스크립트를 복제 가능한 방식으로 자동으로 실행할 수 있도록 도와줍니다.설치가 간단하고 반복 가능하기 때문에 Netdata와 완벽하게 일치합니다.Netdata의 설치 스크립트를 Ansible에 추가하여 노드가 시작된 후에도 상태를 계속 감시할 수 있도록 합니다.
인터넷에서 bash 스크립트를 실행할 때 무엇을 실행하고 있는지 확인하려면 몇 개의 bash 스크립트를 실행하는 것이 매우 간단합니다.
설치 클라이언트는 단일 행으로 대상 노드(서버)에서 실행해야 합니다.
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
에 계정을 만든 후 Netdata 클라이언트를 클라우드 계정에 연결하려면 대상 노드에서 이와 유사한 스크립트를 실행하십시오.
sudo netdata-claim.sh -token=your_token -rooms=your_room -url=https://app.netdata.cloud
Netdata Cloud는 영패와 방 식별자를 제공하기 때문에 위의 줄을 복사하거나 붙여넣을 염려가 없습니다.이제 서버가 Netdata Cloud에 자동으로 연결되어 다양한 지표를 볼 수 있습니다.다음은 대시보드에서 볼 수 있는 지표입니다.
Netdata Cloud Netdata 시스템 개요
데이터 전송은 SSH 터널을 통해 이루어지므로 안심하셔도 됩니다.

Netdata는 첫 시간 내에 중요한 문제를 해결하는 데 어떻게 도움을 줍니까


이제 Netdata가 무엇인지 알게 되었고 보여줄 수 있는 내용에 대해 개괄적인 설명을 했습니다. 다음은 인프라 시설에 Netdata를 배치하는 첫 시간 안에 중대한 문제를 복구하는 데 도움을 주는 방법을 살펴보겠습니다.
작은 배경으로, 그 중 한 서버가 검색 엔진으로 아파치 솔러를 실행하고 있는데, 지난 몇 달 동안 속도가 상당히 느렸다.Apache Solr에는 Java를 사용하여 구축되었기 때문에 메모리 사용량과 JVM 메모리 사용량을 보여주는 좋은 대시보드가 있습니다.
Apache Solr 메모리 사용 개요
일반적으로 메모리의 약 90%를 차지하기 때문에 성능 문제는 RAM 제한과 관련이 있다고 생각합니다.이것은 나로 하여금 Solr 실례에 더 많은 메모리를 제공하기 위해 AWS에서 서버를 업그레이드하는 경로를 포기하게 했지만, 이것은 기대한 효과에 미치지 못했다.
이 서버에 Netdata를 설치한 후에 나는 CPU가 거의 100%의 사용률에 이르는 것을 보았다. 이것은 이상하다. 왜냐하면 당시 서버의 부하가 무겁지 않았기 때문이다.RAM 제한은 문제가 아닌 것 같지만 CPU는 한동안 유지됩니다.우리가 가장 좋아하는 검색엔진을 검색한 후에 나는 이것을 찾았다.이것은 우리가 실행 중인 버전 (7.7.1) 이 메모리 문제를 초래하고 다음 버전 (7.7.2) 에서 수정되었다는 것을 지적한다.따라서 Apache Solr 서버를 최신 7.7로 업그레이드한 후x 버전 (7.7.3) 문제가 해결되었습니다.부하가 무거운 상황에서도 검색 엔진의 속도는 적어도 3배 빠르고 대량의 문서를 인덱스했다.
만약 Netdata가 없다면, 나는 이 문제를 해결하는 데 더 많은 시간을 들일 것이다. 왜냐하면 Apache Solr 계기판의 메모리 통계 데이터는 오도성을 가지고 있기 때문이다. Netdata의 사용 통계 데이터는 문제의 진정한 원인을 나타낸다.이 문제를 top나 htop으로 해결할 수 있을 수도 있지만, 무엇을 찾고 있는지 알아야 합니다.내가 잘못 찾았어. Netdata가 정확한 방향을 알려줬어.

Jira 문제 결론


Netdata를 사용하여 여러 노드의 건강 상태를 시각화하면 이전에 숨겨진 문제를 찾을 수 있습니다.내가 사용할 수 있는 모니터링 솔루션은 모두 RAM 제한을 가리키고 Netdata는 CPU 제한을 가리킨다.이런 서로 다른 관점은 내가 소프트웨어를 설치한 첫 시간 안에 이미 몇 달 동안 존재한 중대한 문제를 발견하고 해결하는 데 도움을 주었다.그것은 플랫폼에서 더욱 안정적이고 빠른 검색 체험에 기여했다.

좋은 웹페이지 즐겨찾기