웹사이트 검색

Netdata를 사용하여 Ubuntu 성능을 모니터링하는 방법


Netdata는 클라우드 서버, 컨테이너, 애플리케이션 및 온프레미스 IT 인프라를 위한 무료 오픈소스 실시간 모니터링 및 문제 해결 도구입니다. CPU 성능, RAM 및 디스크 활용도, 대역폭 통계 등 고도로 세분화된 실시간 시스템 측정항목을 제공합니다.

또한 Netdata는 시스템 오류 문제 해결에 도움이 되는 지능형 경보와 함께 웹 브라우저에서 액세스할 수 있는 대화형 메트릭 시각화도 제공합니다.

Netdata의 최첨단 기술과 인기 덕분에 Netdata는 2020년 Forbes 클라우드 100대 떠오르는 스타에 선정되었습니다. 이는 결코 대단한 성과가 아닙니다. 실제로 이 가이드를 작성할 당시 거의 50,000개의 Github 별을 받았습니다.

Netdata를 설치하는 데 사용할 수 있는 두 가지 방법이 있습니다. BASH 셸에서 자동화된 스크립트를 즉시 실행할 수 있습니다. 이렇게 하면 시스템이 업데이트되고 Netdata 설치가 시작됩니다. 또는 Netdata의 Git 저장소를 복제한 후 자동화된 스크립트를 실행할 수도 있습니다. 첫 번째 방법은 간단하고 간단하며 이 가이드에서 중점적으로 다룰 내용입니다.

이 기사에서는 UbuntuNetdata를 설치하여 서버와 애플리케이션의 실시간, 성능 및 상태 모니터링을 모니터링하는 방법을 살펴보겠습니다.

지원되는 플랫폼

Netdata는 다음 Ubuntu LTS 배포판을 지원합니다.

  • 우분투 20.04
  • 우분투 18.04
  • 우분투 16.04

Ubuntu Linux에 Netdata를 설치하는 방법

설치를 시작하려면 bash 터미널에서 아래 명령을 실행하여 스크립트를 다운로드하고 실행하십시오.

bash <(curl -Ss https://my-netdata.io/kickstart.sh)

스크립트를 실행하는 동안 다음이 수행됩니다.

  • 스크립트는 자동으로 Linux 배포판을 검색하고, 패키지 목록을 업데이트하고, 모든 필수 소프트웨어 패키지를 설치합니다.
  • 최신 넷데이터 소스 트리는 /usr/src/netdata.git 경로에 다운로드됩니다.
  • 이 스크립트는 소스 트리에서 ./netdata-installer.sh 스크립트를 실행하여 netdata를 설치합니다.
  • 순데이터가 매일 업데이트되도록 cron.daily가 업데이트됩니다.

스크립트가 실행되면 브라우저에서 넷데이터에 액세스하는 방법과 이를 시스템 서비스로 관리하는 방법에 대한 팁이 제공됩니다.

설치에는 시간이 좀 걸리므로 10분 정도 시간을 두고 다시 돌아오세요. 마지막으로 스크립트가 설치를 마무리하면서 아래 출력이 표시됩니다.

설치가 완료되면 표시된 대로 Netdata의 상태를 시작, 활성화 및 확인합니다.

sudo systemctl start netdata
sudo systemctl enable netdata
sudo systemctl status netdata

기본적으로 Netdata19999 포트에서 수신 대기하며 이는 표시된 대로 netstat 명령을 사용하여 확인할 수 있습니다.

sudo netstat -pnltu | grep netdata

UFW가 실행 중인 경우 브라우저에서 Netdata에 액세스할 때 필요하므로 포트 19999를 열려고 노력하세요.

sudo ufw allow 19999/tcp
sudo ufw reload

마지막으로 Netdata에 액세스하려면 브라우저로 전환하여 다음 URL을 탐색하세요.

http://server-ip:19999/

URL을 탐색하면 인사하는 내용입니다. 실제로 로그인이 필요하지 않다는 것을 알게 될 것입니다. 시스템의 모든 측정 항목이 그림과 같이 표시됩니다.

대시보드 오른쪽 사이드바에서 원하는 측정항목을 클릭하면 다양한 그래프를 살펴볼 수 있습니다. 예를 들어, 네트워크 인터페이스 통계를 확인하려면 '네트워크 인터페이스' 옵션을 클릭하세요.

Ubuntu에서 기본 인증으로 Netdata 보호

이 시점까지는 누구나 넷데이터 대시보드에 액세스하여 다양한 시스템 측정항목을 살펴볼 수 있습니다. 이는 보안 침해에 해당하므로 우리는 이를 반드시 피하고 싶습니다.

이를 염두에 두고 기본 HTTP 인증을 구성하겠습니다. 사용자의 사용자 이름과 비밀번호를 구성하는 데 사용되는 htpasswd 프로그램을 제공하는 apache2-utils 패키지를 설치해야 합니다. 또한 역방향 프록시 역할을 하는 Nginx 웹 서버를 설치합니다.

Nginx 웹 서버 및 apache2-utils 패키지를 설치하려면 명령을 실행합니다.


sudo apt install nginx apache2-utils

Nginxapache2-utils가 설치된 상태에서 /etc/nginx/conf.d 디렉터리 내에 구성 파일을 생성하겠습니다. 그러나 Netdata 이외의 다른 목적으로 Nginx를 사용하는 경우 sites-available 디렉토리를 자유롭게 사용하세요.


sudo vim /etc/nginx/conf.d/default.conf

구성 파일 내에서 먼저 NginxNetdata 대시보드에 대한 수신 요청을 프록시하도록 지시합니다. 그런 다음 사용자 이름/비밀번호 인증을 사용하여 승인된 사용자에게만 넷데이터 대시보드에 대한 액세스 권한을 부여하는 몇 가지 기본 인증 프롬프트를 추가합니다.

전체 구성은 다음과 같습니다. server_ipexample.com 지시어를 자신의 서버 IP 주소 및 서버 이름으로 바꾸도록 주의하세요.


upstream netdata-backend {
    server 127.0.0.1:19999;
    keepalive 64;
}

server {
    listen server_ip:80;
    server_name example.com;

    auth_basic "Authentication Required";
    auth_basic_user_file netdata-access;

    location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://netdata-backend;
        proxy_http_version 1.1;
        proxy_pass_request_headers on;
        proxy_set_header Connection "keep-alive";
        proxy_store off;
    }
}

구성을 섹션별로 살펴보겠습니다.

섹션 1:


upstream netdata-backend {
    server 127.0.0.1:19999;
    keepalive 64;
}

루프백 주소 127.0.0.1<을 사용하여 Netdata의 내장 웹 서버를 참조하는 netdata-backend라는 업스트림 모듈을 지정했습니다. 및 Netdata가 수신 대기하는 기본 포트인 포트 19999. keepalive 지시문은 열려 있을 수 있는 유휴 연결의 최대 수를 정의합니다.

섹션 2:


server {
    listen server_ip:80;
    server_name example.com;

    auth_basic "Authentication Required";
    auth_basic_user_file netdata-access;

이는 기본 Nginx 서버 블록 섹션입니다. 첫 번째 줄은 클라이언트가 요청을 보낼 때 Nginx가 수신 대기해야 하는 외부 IP 주소를 지정합니다. server_name 지시문은 서버의 도메인 이름을 지정하고 클라이언트가 외부 IP 주소 대신 도메인 이름을 호출할 때 Nginx에 서버 블록을 실행하도록 지시합니다.

마지막 두 줄은 사용자가 사용자 이름과 비밀번호를 사용하여 로그인해야 하는 단순 HTTP 인증을 나타냅니다. auth_basic 모듈은 제목에 "인증 필요"가 있는 사용자 이름/비밀번호 팝업을 브라우저에 표시하며 나중에 원하는 대로 사용자 정의할 수 있습니다.

auth_basic_user_file 모듈은 Netdata 대시보드에 액세스할 권한이 있는 사용자의 사용자 이름과 비밀번호가 포함된 파일 이름을 가리킵니다(이 경우 netdata-access). 나중에 이 파일을 만들겠습니다.

섹션 3:

마지막 섹션은 서버 블록 내에 포함된 location 블록입니다. 이는 Nginx 웹 서버로 들어오는 요청의 프록시 처리 및 전달을 처리합니다.


location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://netdata-backend;
        proxy_http_version 1.1;
        proxy_pass_request_headers on;
        proxy_set_header Connection "keep-alive";
        proxy_store off;
    }

인증을 위해 htpasswd 유틸리티를 사용하여 tecmint라는 사용자의 사용자 이름과 비밀번호를 생성하고 자격 증명을 netdata-access 파일에 저장합니다. .


sudo htpasswd -c /etc/nginx/netdata-access tecmint

비밀번호를 입력하고 확인하세요.

그런 다음 변경 사항을 적용하려면 Nginx 웹 서버를 다시 시작하세요.


sudo systemctl restart nginx

구성이 제대로 되었는지 테스트하려면 계속 진행하여 서버의 IP 주소를 찾아보세요.


http://server-ip

아래와 같이 인증 팝업이 나타납니다. 사용자 이름과 비밀번호를 입력하고 ENTER를 누르세요.

그러면 넷데이터 대시보드에 액세스할 수 있습니다.

이것으로 오늘의 주제를 마치겠습니다. 방금 Ubuntu에서 Netdata 모니터링 도구를 설치하고 기본 HTTP 인증을 구성하는 방법을 배웠습니다. 다양한 시스템 지표에 대한 다른 그래프를 자유롭게 확인해 보세요.