• 2021. 3. 26.

    by. 윈썸지니

    반응형

    이번 포스팅은 성능 모니터링 시스템을 위한 성능 수집기인 metricbeat에 대한 설치 내용입니다.

    성능모니터링 예 : CPU 사용율

    elastic 에서 제공하는 오픈소스인 metricbeat를 사용하여 성능 모니터링 시스템을 쉽게 구축 할 수 있습니다.

    Linux, Windows, Mac 호스트에 등에 설치하여 Elasticsearch 등에 연동하면 시스템의 CPU 사용률과 메모리, 파일 시스템, 디스크 IO, 네트워크 IO에 대한 통계와 시스템에서 실행되는 모든 프로세스에 대한 모니터링 및 통계를 확인할 수 있는 모니터링 시스템을 구축 할 수 있습니다.

     

    이제 metricbeat를 설치하고 수집 구성하는 방법에 대한 설명 글 입니다.

     

    1. metricbeat 다운로드 사이트 접속

    아래 다운로드 사이트에 접속하여 설치 파일을 다운로드 합니다.

    설치 환경은 windows 로 설치하였습니다.

     

    다운로드 사이트 :   https://www.elastic.co/kr/beats/metricbeat

    metricbeat 다운 사이트

     

    2. metricbeat 파일 다운로드 - Windows zip 

    metricbeat download

    3. C:\Program Files 폴더에 압축을 풀어 줍니다.

    압축을 풀면 아래와 같이 좀 복잡한 이름으로 폴더가 생성되는데 이것을 간단하게 수정합니다.

    따로 설치가 필요하지는 않으면 압축을 푸는 것으로 설치가 됩니다.


       - metricbeat-<version>-windows 폴더 이름을 Metricbeat 로 변경합니다.

    4. metricbeat 서비스 등록

    Metricbeat를 Windows 서비스로 등록하기 위해 PowerShell을 관리자 권한으로 엽니다.

     

    - PowerShell을 관리자 권한으로 실행합니다.

    powershell 실행

    Metricbeat를 Windows 서비스로 등록합니다.

    3번에서 압축 파일을 푼 폴더를 확인하면 install-service-metricbeat.ps1 파일이 있습니다.

    이 파일을 아래와 같이 파워셀에서 실행 해 줍니다.

    Windows PowerShell
    Copyright (C) Microsoft Corporation. All rights reserved.

    PS C:\WINDOWS\system32> cd 'c:\Program Files\Metricbeat'
    PS C:\Program Files\Metricbeat> .\install-service-metricbeat.ps1
    .\install-service-metricbeat.ps1 : 이 시스템에서 스크립트를 실행할 수 없으므로 C:\Program Files\Metricbeat\install-serv
    ice-metricbeat.ps1 파일을 로드할 수 없습니다. 자세한 내용은 about_Execution_Policies(https://go.microsoft.com/fwlink/LinkID=135170)를 참조하십시오.
    위치 줄:1 문자:1
    + .\install-service-metricbeat.ps1
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : 보안 오류: (:) [], PSSecurityException
        + FullyQualifiedErrorId : UnauthorizedAccess
    PS C:\Program Files\Metricbeat>

    위와 같이 보안상의 문제로 실행이 되지 않는 다면 아래와 같이 cmd 창에서 실행 합니다.

    Powershell.exe -ExecutionPolicy UnRestricted -File .\install-service-metricbeat.ps1

     

    Windows 서비스를 확인해 보면 아래 화면과 같이 metricbeat 서비스가 생성 됨을 확인 할 수 있습니다.

     

    5. Metricbeat 서비스를 시작

    metricbeat 서비스 시작은 서비스 화면에서 오른쪽 마우스를 클릭하여 시작을 클릭 하거나 명령어로 시작 할 수 있습니다.

     

    명령어는 powershell 창에서  Start-Service metricbeat 하면 되는데 성공이면 결과값을 아무 것도 보여주지 않아서 현재 서비스 상태를 알고 싶으면 Get-Service 명령을 이용하시면 됩니다. 참고로 중지는 Stop-Service 입니다.

    PS C:\Program Files\Metricbeat> Start-Service metricbeat

    PS C:\Program Files\Metricbeat> Get-Service metricbeat

    Status   Name               DisplayName

    ------   ----               -----------

    Running  metricbeat         metricbeat

    PS C:\Program Files\Metricbeat>

     

    서비스 화면에서도 새로고침 하면 실행 중으로 바뀐 것을 확인 할 수 있습니다.

     

    만약 서비스에서 삭제하고 싶다면 uninstall-service-metricbeat.ps1 스크립트를 사용하면 됩니다.

    Powershell.exe -ExecutionPolicy UnRestricted -File .\uninstall-service-metricbeat.ps1

     

    PS C:\Program Files\Metricbeat> Powershell.exe -ExecutionPolicy UnRestricted -File .\uninstall-service-metricbeat.ps1

    __GENUS          : 2

    __CLASS          : __PARAMETERS

    __SUPERCLASS     :

    __DYNASTY        : __PARAMETERS

    __RELPATH        :

    __PROPERTY_COUNT : 1

    __DERIVATION     : {}

    __SERVER         :

    __NAMESPACE      :

    __PATH           :

    ReturnValue      : 0

    PSComputerName   :

    __GENUS          : 2

    __CLASS          : __PARAMETERS

    __SUPERCLASS     :

    __DYNASTY        : __PARAMETERS

    __RELPATH        :

    __PROPERTY_COUNT : 1

    __DERIVATION     : {}

    __SERVER         :

    __NAMESPACE      :

    __PATH           :

    ReturnValue      : 0

    PSComputerName   :


    PS C:\Program Files\
    Metricbeat>

    metricbeat에서 제공하는 성능 항목은 아래와 같이 수행하면 확인 할 수 있습니다.

    PS C:\Program Files\Metricbeat> .\metricbeat.exe modules list

    Enabled:
    system

    Disabled:
    activemq
    aerospike
    apache
    appsearch
    aws
    azure
    beat
    beat-xpack
    ceph

    ….

    PS C:\Program Files\Metricbeat>

     

    6. 시스템 수집 항목 추가

    수집 항목을 추가 또는 제거 하려면 아래 파일을 편집합니다.

     

    C:\Program Files\Metricbeat\modules.d\system.yml 파을을 메모장 등으로 열어서 추가하고자 하는 항목의 #을 제거해 주면 수집 항목이 추가 됩니다. 반대로 수집 항목을 제거하여면 #을 붙이고 저장합니다.

     

    아래는 예제 입니다.

    # Module: system

    # Docs: https://www.elastic.co/guide/en/beats/metricbeat/7.10/metricbeat-module-system.html

    - module: system

      period: 10s

      metricsets:

        - cpu

        #- load

        - memory

        - network

        - process

        - process_summary

        - socket_summary

        #- entropy

        #- core

        #- diskio

        #- socket

        #- service

        #- users

      process.include_top_n:

        by_cpu: 5      # include top 5 processes by CPU

        by_memory: 5   # include top 5 processes by memory

    - module: system

      period: 1m

      metricsets:

        - filesystem

        - fsstat

      processors:

      - drop_event.when.regexp:

          system.filesystem.mount_point: '^/(sys|cgroup|proc|dev|etc|host|lib|snap)($|/)'

    - module: system

      period: 15m

      metricsets:

        - uptime

    #- module: system

    #  period: 5m

    #  metricsets:

    #    - raid

    #  raid.mount_point: '/'

     

    7. 수집 설정

    수집된 성능을 elasticsearch 또는 logstash 등으로 보내는 설정을 합니다.

    여기서는 logstash로 보내는 설정을 작성해 보겠습니다.

     

    설치된 폴더에서 metricbeat.yml 파일을 편집합니다.

    파일의 아래 부분으로 이동하면 아래와 같은 부분이 보이는데 주석(#)을 풀고 실제 logstash로 보낼 IP 주소 및 port 번호를 입력합니다.

    기본 파일에는 Elasticsearch 으로 전송하는 것으로 되어 있어서 Elasticsearch 부분은 주석처리(#) 해 줍니다.

    metricbeat.yml 파일 수정 예시

    7. 설정 확인

    위의 설정이 맞는 지 확인 하기 위하여 아래 명령어를 입력합니다.

    cd <설치 폴더>.\metricbeat.exe -e -c metricbeat.yml

     

    Windows에서 기본 제공 되는 metricbeat 모듈이 있습니다. 이를 활성화 하기 위해서는 아래와 같은 명령어를 powershell 에서 실행합니다.

    PS > .\metricbeat.exe modules enable windows

     

    8. 성능 데이터 수집 시작

    데이터 수집을 시작합니다. (이미 시작이 되어 있으면 설정 파일을 변경하였으므로 다시 시작합니다.)

    PS> C:\Program Files\Metricbeat> Start-Service metricbeat

    windows 서비스 등록을 하였으므로 서비스에서 시작/종료 해도 됩니다.

     

    이상으로 metricbeat를 이용하여 성능 데이터를 수집하는 구축까지 해 보았습니다.

    반응형