자습서: ELK를 사용한 Service Fabric 애플리케이션 모니터링
이 자습서는 시리즈의 4부입니다. 여기서는 ELK(Elasticsearch, Logstash 및 Kibana)를 사용하여 Azure에서 실행하는 Service Fabric 애플리케이션을 모니터링하는 방법을 설명합니다.
시리즈 4부에서는 다음 방법에 대해 알아봅니다.
- Azure에 ELK 서버 설정
- Event Hubs에서 로그를 수신할 Logstash 구성
- Kibana에서 플랫폼 및 애플리케이션 로그 시각화
이 자습서 시리즈에서는 다음 방법에 대해 알아봅니다.
- Java Service Fabric Reliable Services 애플리케이션 빌드
- 로컬 클러스터에서 애플리케이션 배포 및 디버그
- Azure 클러스터에 애플리케이션 배포
- 애플리케이션에 대한 모니터링 및 진단 설정
- CI/CD를 설정합니다.
필수 조건
이 자습서를 시작하기 전에:
- Azure 구독이 없는 경우 체험 계정 만들기
- 2부에서 지정된 위치로 로그를 내보내는 애플리케이션을 설정합니다.
- 3부를 완료하고 Event Hubs에 로그를 보내기 위해 실행 중인 Service Fabric 클러스터를 구성합니다.
- '수신 대기' 권한과 시리즈 3부에서 연결된 기본 키가 있는 Event Hubs 정책입니다.
투표 애플리케이션 예제 다운로드
이 자습서 시리즈의 1부에서 투표 예제 애플리케이션을 빌드하지 않은 경우 다운로드할 수 있습니다. 명령 창에서 다음 명령을 실행하여 로컬 컴퓨터에 샘플 앱 리포지토리를 복제합니다.
git clone https://github.com/Azure-Samples/service-fabric-java-quickstart
Azure에서 ELK 서버 만들기
이 자습서에 대해 미리 구성된 ELK 환경을 사용하되 이미 ELK 환경이 있는 경우 Logstash 설정 섹션을 건너뛸 수 있습니다. 그러나 없는 경우 다음 단계는 Azure에서 ELK 환경을 만듭니다.
Azure에서 Bitnami에 의해 인증된 ELK를 만듭니다. 이 자습서의 목적인 이 서버를 만드는 데 특별히 따라야 할 사양 같은 것은 없습니다.
Azure Portal에서 리소스로 이동하고 지원 + 문제 해결 섹션 아래의 부팅 진단 탭을 입력합니다. 다음으로 직렬 로그 탭을 클릭합니다.
Kibana 인스턴스에 액세스하기 위해 필요한 암호에 대한 로그 검색을 수행합니다. 다음 코드 조각과 유사합니다.
[ 25.932766] bitnami[1496]: ######################################################################### [ 25.948656] bitnami[1496]: # # [ 25.962448] bitnami[1496]: # Setting Bitnami application password to '[PASSWORD]' # [ 25.978137] bitnami[1496]: # (the default application username is 'user') # [ 26.004770] bitnami[1496]: # # [ 26.029413] bitnami[1496]: #########################################################################
로그인 정보를 가져오려면 Azure Portal에서 서버의 개요 페이지의 연결 단추를 누릅니다.
다음 명령을 사용하여 ELK 이미지를 호스팅하는 서버에 대한 SSH
ssh [USERNAME]@[CONNECTION-IP-OF-SERVER] Example: ssh testaccount@104.40.63.157
ELK 설정
첫 번째 단계는 ELK 환경을 로드하는 것임
sudo /opt/bitnami/use_elk
기존 환경을 사용 하는 경우 Logstash 서비스를 중지하려면 다음 명령을 실행
sudo /opt/bitnami/ctlscript.sh stop logstash
Event Hubs에 대한 Logstash 플러그인을 설치하려면 다음 명령을 실행합니다.
logstash-plugin install logstash-input-azureeventhub
다음 내용을 사용하여 기존 Logstash 구성 파일을 만들거나 수정합니다. 파일을 만들 때 Azure에서 ELK Bitnami 이미지를 사용하는 경우
/opt/bitnami/logstash/conf/access-log.conf
에서 만들어야 합니다.input { azureeventhub { key => "[RECEIVER-POLICY-KEY-FOR-EVENT-HUB]" username => "[RECEIVER-POLICY-NAME]" namespace => "[EVENTHUB-NAMESPACENAME]" eventhub => "[EVENTHUB-NAME]" partitions => 4 } } output { elasticsearch { hosts => [ "127.0.0.1:9200" ] } }
구성을 확인하려면 다음 명령을 실행합니다.
/opt/bitnami/logstash/bin/logstash -f /opt/bitnami/logstash/conf/ --config.test_and_exit
Logstash 서비스 시작
sudo /opt/bitnami/ctlscript.sh start logstash
데이터를 수신하고 있는지 확인하려면 Elasticsearch를 확인
curl 'localhost:9200/_cat/indices?v'
http://SERVER-IP에서 Kibana 대시보드에 액세스하고 Kibana에 대한 사용자 이름 및 암호를 입력합니다. Azure에서 ELK 이미지를 사용한 경우 기본 사용자 이름은 'user'가 되고 암호는 부팅 진단에서 가져옵니다.
다음 단계
이 자습서에서는 다음 작업 방법을 알아보았습니다.
- Azure에서 실행되는 ELK 서버 가져오기
- Service Fabric 클러스터에서 진단 정보를 수신하도록 서버 구성
다음 자습서를 진행합니다.