엔지니어링

Filebeat와 Elastic Observability를 사용하여 Azure 인프라 모니터링

애플리케이션을 최적화하고 사용자 경험을 개선하려면 애플리케이션 에코시스템의 내부 상태에 액세스할 수 있는 기능이 매우 중요합니다. Microsoft Azure 기반 Elastic Cloud에서는 Elastic Observability에 액세스할 수 있으므로 몇 분 만에 배포할 수 있는 다양한 리소스를 활용하여 인프라를 모니터링하고 모든 신호가 서로 어떻게 연관되어 있는지 파악할 수 있습니다.

Azure에서 Elasticsearch 관리형 서비스를 사용하면 원클릭 업그레이드, 기본 제공되는 보안, 그리고 IT 운영을 간소화하는 다양한 기능을 마음껏 활용할 수 있습니다. 또한 Elastic Observability를 사용하면 대규모로 로그, 메트릭 및 APM 추적을 통합할 수 있으므로 시스템의 현재 상태를 평가하는 작업이 간단해집니다. 머신 러닝이 이상 징후를 탐지하고 경보 기능이 잘못된 부분을 알려주므로 환경에서 발생하는 이벤트에 신속하게 대응할 수 있습니다.

Azure 모니터링 측면에서 Elastic Observability는 다음을 수행할 수 있습니다.

  • Filebeat Azure 모듈과 Azure Event Hub를 사용하여 활동, 로그인 및 감사 로그 모니터링
  • Metricbeat Azure 모듈을 사용하여 컴퓨팅, 컨테이너, 데이터베이스 스토리지, 결제 및 애플리케이션 인사이트 메트릭 분석

이 블로그 게시물에서는 Elastic Stack을 이용한 Azure 통합 가시성을 살펴보겠습니다. 사용하고 계신 배포에서 직접 따라 해보시기를 권장해 드립니다. 기존 배포가 없는 경우 Microsoft Azure에서 Elastic Cloud 시작하기 블로그를 확인해 보세요. Azure Marketplace에서 Elastic Cloud(Elasticsearch 관리형 서비스)에 등록하는 방법은 간단하고, 뛰어난 유연성을 제공하며, 통합 결제를 지원합니다.

Elastic을 이용한 Azure 통합 가시성

Elastic Observability는 Azure 모니터링을 위한 턴키 솔루션을 제공합니다. Filebeat는 기본 제공 Azure 모듈이 함께 제공되므로 이러한 경량 데이터 수집기를 에코시스템에 신속하게 추가할 수 있습니다. 설치가 완료되면 로그 이벤트를 수집하고 ElasticsearchLogstash로 전달하여 색인 작업을 진행할 수 있습니다. 그 후에는 사전 구축된 강력한 Kibana 시각화 및 대시보드에서 데이터를 분석하고 시각화할 수 있으므로 시작하는 데 걸리는 시간과 노력을 줄일 수 있습니다.

그럼, 직접 사용해 보겠습니다.

Azure 로그 수집

Filebeat 설치 지침은 Kibana에서 바로 찾을 수 있습니다. 이 단계별 지침을 사용하여 Filebeat를 배포하고 앞에서 언급한 Azure 활동, 로그인 및/또는 감사 로그를 수집하겠습니다.

Filebeat 다운로드 및 설치

배포 버전 7.10부터는 Kibana 홈페이지에서 Filebeat 설치를 클릭합니다.

배포 버전을 7.10으로 아직 업그레이드하지 않은 경우 잠시 시간을 내어 버전 업그레이드 설명서를 살펴보시기 바랍니다. 업그레이드는 계획에 없던 가동 중단 시간을 완화하면서 자동으로 수행되도록 설계되어 있습니다.

시작하려면 탐색 메뉴를 클릭한 다음 을 클릭합니다.

데이터 추가를 클릭합니다.

그러면 데이터 추가 메뉴로 이동하게 됩니다. Azure 로그를 선택합니다.

단계에 따라 시스템에 Filebeat를 설치합니다. 내보낸 필드 보기자세히 보기 링크를 클릭하면 추가적인 Filebeat 정보를 확인할 수 있습니다.

나중에 다시 이 페이지로 돌아오게 되니 다음 구성을 완료한 후 이 페이지를 그대로 열어두셔도 됩니다.

Filebeat 구성

사용하고 계신 시스템에 Filebeat를 다운로드하고 설치한 후에는 filebeat.yml 파일을 수정해야 합니다. Linux 시스템에서는 이 파일이 보통 /etc/filebeat 아래에 있습니다.

Kibana에서 이 프로세스를 실행할 때 좋은 점은 Elastic Cloud 배포와 통신하기 위해 필요한 항목을 해당 파일에 추가하는 방법을 알려준다는 것입니다. 수정해야 할 두 변수는 cloud.idcloud.auth입니다.

Azure 계정에서 자체 관리형 Elastic Stack을 실행하고 계신 사용자는 Elastic Stack Filebeat에 연결하기 빠른 시작 안내서를 참조하세요.

유용한 팁: 이 값을 어디에서 얻을 수 있는지 잘 모르시겠나요? Elastic 설명서에서 자세히 알아보세요.

이벤트 허브 생성

이 솔루션에는 활동, 로그인 및/또는 감사 로그를 내보낼 Azure Event Hub가 필요하며 Storage Blob에 액세스할 수도 있어야 합니다. 이러한 이벤트 허브가 구성되어 있지 않은 경우 빠른 시작: Azure Portal을 사용하여 이벤트 허브 만들기 설명서에서 자세한 내용을 참조하시기 바랍니다. 그런 다음 활동 로그를 이벤트 허브로 보내는 방법을 참조하면 됩니다.

네임스페이스가 이미 있는 경우 이벤트 허브를 생성할 때 이를 기존 네임스페이스에 추가할 수 있습니다. 아니면 다음과 같이 새로운 네임스페이스를 생성해도 좋습니다.

Azure Portal의 Event Hubs 서비스에서 추가를 클릭합니다.

리소스 그룹을 선택한 다음 예를 들어 elastic-eventhub와 같은 이름을 지정해야 합니다.

위치와 요금 티어를 선택한 다음 계속 진행합니다. 원하는 경우 선택 사항인 태그를 추가하고 생성을 클릭합니다.

공유 액세스 정책을 클릭합니다.

표시되는 기본 정책인 RootManageSharedAccessKey를 클릭한 다음 다시 클릭하여 연결 스트링을 복사합니다. 나중에 Filebeat Azure 모듈 구성 파일인 azure.yml을 구성할 때 사용되므로 안전한 곳에 붙여넣습니다.

활동 로그로 이동한 다음 진단 설정을 클릭합니다.

진단 설정 추가를 클릭하고 이름을 elastic-diag로 지정합니다.

원하는 로그를 선택한 다음 이벤트 허브로 스트리밍을 선택합니다.

elastic-eventhub 네임스페이스를 선택하고, 이벤트 허브 이름에서 (선택한 네임스페이스에 생성) 옵션을 선택한 다음, RootManageShareAccessKey 정책을 선택합니다.

insights-activity-logs라는 이름의 이벤트 허브가 생성되어 elastic-eventhub 네임스페이스 아래에 표시되며 나중에 azure.yml 구성 파일에서 사용하게 됩니다.

저장을 클릭한 다음 원하는 경우 elastic-eventhub로 다시 이동하여 이벤트 메트릭이 수신되고 있는지 확인합니다.

Azure 모듈 활성화

명령 하나만 실행하면 Azure 모듈을 활성화할 수 있습니다. 방법은 이 데모를 시작한 Kibana 페이지의 3단계에 설명되어 있습니다.

이를 통해 azure.yml 구성 파일이 활성화되어 Azure 구독과 통신할 수 있습니다.

Linux에서 모듈을 활성화하는 명령:

sudo filebeat modules enable azure

모든 모듈을 나열하고 활성화된 모듈을 맨 위에 표시하는 명령:

sudo filebeat modules list

모듈을 비활성화하는 명령:

sudo filebeat modules disable azure

Azure 모듈 구성

모듈을 활성화한 후에는 azure.yml 파일을 구성해야 합니다. Linux에서는 이 파일이 일반적으로 /etc/filebeat/modules.d 디렉터리 밑에 있습니다. 모듈이 활성화되지 않은 경우 해당 디렉터리에 .disabled 확장자가 붙어있습니다.

Azure 모듈에서 기본적으로 활성화되어 있는 항목은 activitylogs뿐이며 enabled: true로 표시됩니다.

auditlogssigninlogs를 구성할 수 있으려면 Azure 계정의 글로벌 관리자 또는 보안 관리자여야 합니다. 자세한 내용은 이벤트 허브로 감사 및 로그인 로그 내보내는 방법에 대한 지침을 참조하시기 바랍니다. 그런 다음 enabled: falsetrue로 변경하여 이를 활성화합니다.

중요: 감사 로그와 로그인 로그를 구성할 수 있는 권한이 없는 경우 azure.yml 파일의 해당 모듈은 비활성화 상태로 유지되어야 합니다.

이제 azure.yml 구성 파일에 정보를 추가하겠습니다. 앞에서 저장한 eventhubconnection_string 항목 세부 정보와 스토리지 계정 세부 정보만 추가하면 됩니다.

유용한 팁: 필요한 스토리지 계정 이름과 키는 사용하려는 스토리지 계정에서 확인할 수 있습니다. 액세스 키를 클릭합니다. 자세한 내용은 Microsoft Azure 스토리지 계정 액세스 키 관리를 참조하세요.

활동 로그만 구성한다고 가정하면 구성 파일은 다음과 같은 형태가 됩니다.

- module: azure 
  # All logs 
  activitylogs: 
    enabled: true 
    var: 
      # eventhub name containing the activity logs 
      eventhub: "insights-activity-logs" 
      # consumer group name that has access to the event hub 
      consumer_group: "$Default" 
      # connection string required to communicate with Event Hubs       
      connection_string: "<your connection string key>" 
      # the storage account  
      storage_account: "<your storage name>" 
      # the storage account key 
      storage_account_key: "<your account key>"

이 구성에 대한 자세한 내용은 모듈 구성 설명서를 참조하세요. Filebeat 서비스가 중지된 경우 로그 시퀀스를 유지하려면 스토리지 계정/키가 필요합니다.

유용한 팁: eventhub는 이벤트 허브 네임스페이스가 아닌 인스턴스 이름입니다. 이벤트 허브 네임스페이스는 여러 이벤트 허브를 그룹화한 컨테이너이며 네임스페이스 수준에서 요금이 청구됩니다. 자세한 내용은 Microsoft 설명서 사이트에서 Event Hubs 질문과 대답을 참조하세요.

Filebeat 설정 및 시작

Filebeat, 이벤트 허브, 스토리지 계정이 구성되었으므로 이제 설정을 실행하고 Filebeat를 시작하여 본격적으로 가동을 시작해 보겠습니다. Filebeat를 다운로드하고 구성하기 시작했던 Kibana 페이지로 돌아가면 지금 필요한 다음 명령이 4단계에 간략하게 설명되어 있습니다.

RPM을 사용하여 Filebeat를 서비스형으로 설치했으므로 서비스형으로 실행하는 데도 RPM을 사용해야 합니다. 사용 중인 시스템 유형에 따라 약간 다를 수 있습니다. DEB 및 RPM 패키지에서 Filebeat를 서비스형으로 실행하는 방법에 대한 자세한 내용은 Filebeat 및 systemd를 참조하시고, 다른 플랫폼에서 실행 중인 경우 Filebeat 빠른 시작을 참조하세요.

먼저, setup 단계를 실행해야 합니다. 그래야 사전 구축된 Azure Cloud 대시보드에서 사용하는 사전 정의된 자산, 인덱스, 시각화 등이 로드됩니다. Elastic에서 Azure와의 통합을 기본적으로 제공하므로 별도로 개발할 필요 없이 간단하게 setup 명령을 사용할 수 있습니다. 물론 모든 항목이 완벽하게 사용자 정의 가능하며 커뮤니티에서 개발한 통합도 많이 있습니다.

설정 명령 실행:

sudo filebeat setup

setup 명령 뒤에 -e를 붙여 실행할 수도 있습니다. 그러면 로깅 데이터가 syslog가 아니라 화면으로 전송되어 어떤 단계를 수행하고 있는지 쉽게 확인할 수 있습니다.

sudo filebeat setup -e

서비스 시작:

sudo service filebeat start

상태 확인:

sudo service filebeat status

Filebeat 중지:

sudo service filebeat stop

실행 중인 대화 상자를 사용하여 서비스가 정상적으로 실행되고 있는 확인 및 검증:

sudo journalctl -u filebeat -f

Kibana에서 시각화

이벤트 허브에서 활동 로그를 수집하고, Filebeat에서 Elasticsearch로 전송하고 있으니 이제 Kibana에서 이를 시각화할 수 있습니다.

Filebeat 구성을 시작했던 페이지가 아직 열려있다면 데이터를 확인한 다음 마침내 Azure 로그 대시보드를 클릭하면 대시보드로 바로 이동하게 됩니다.

blog-azure-log-mon-11.jpg

모든 정보를 한눈에 볼 수 있습니다. 단 몇 단계만으로 수집, 분석 및 시각화됩니다.

결론

Filebeat를 시작하고, 이벤트 허브를 사용하여 Azure 활동 로그를 수집하고, 기본 제공 대시보드로 Azure 배포를 모니터링하는 데 유용한 리소스가 되었기를 바랍니다.

다음 단계는 Metricbeat Azure 모듈을 사용하여 Azure 컴퓨팅, 컨테이너, 데이터베이스 스토리지, 결제 및 애플리케이션 인사이트 메트릭을 수집하는 것입니다.

질문이 있으시거나 유익한 토론에 참여하고 싶으신가요? Elastic Observability 토론 그룹을 확인해 보세요. 또한 Elastic 학습 허브를 방문하면 다양한 시작하기 동영상과 교육 리소스를 활용하실 수 있습니다.