TIL | [부하테스트] Kibana 그리고 Artillery

bubblegum·2024년 4월 7일
0

Today I learn(TIL)

목록 보기
56/84
post-thumbnail

Artillery와 Kibana 연동 방법

Artillery 부하 테스트 결과를 Kibana에서 시각화하려면, 먼저 Artillery 테스트 결과를 Elasticsearch에 저장하는 과정이 필요합니다. 직접적으로 Artillery에서 Elasticsearch를 지원하는 플러그인이 없다면, Node.js 스크립트를 사용하여 Artillery 테스트 결과를 Elasticsearch로 전송하는 방법을 고려할 수 있습니다. 이 과정은 몇 가지 단계로 구성됩니다.

1. Artillery 테스트 결과 JSON 파일 생성

Artillery 테스트 실행 시, 결과를 JSON 파일로 출력하도록 합니다. 아래와 같이 Artillery 명령어를 사용하여 테스트를 실행하고 결과를 result.json 파일에 저장할 수 있습니다.

artillery run -o result.json your-test-script.yml

2. Node.js 스크립트 준비

Elasticsearch 클라이언트를 사용하여 result.json 파일의 내용을 Elasticsearch에 저장하는 Node.js 스크립트를 작성합니다.

// saveResultsToElasticsearch.js
const fs = require('fs');
const { Client } = require('@elastic/elasticsearch');
const esClient = new Client({ node: 'http://localhost:9200' });

const indexName = 'artillery-results';

async function createIndex(indexName) {
  const { body: exists } = await esClient.indices.exists({ index: indexName });
  if (!exists) {
    await esClient.indices.create({ index: indexName });
  }
}

async function saveResults() {
  await createIndex(indexName);

  const results = JSON.parse(fs.readFileSync('result.json', 'utf8'));

  for (let entry of results.aggregate.scenariosCreated) {
    // 여기에 Elasticsearch에 저장할 데이터 형식을 정의합니다.
    await esClient.index({
      index: indexName,
      body: entry,
    });
  }
}

saveResults().catch(console.log);

3. 스크립트 실행

작성한 스크립트를 실행하여 Artillery 테스트 결과를 Elasticsearch에 저장합니다.

node saveResultsToElasticsearch.js

4. Kibana에서 시각화 구성

이제 Elasticsearch에 저장된 데이터를 기반으로 Kibana에서 시각화를 구성할 수 있습니다. Kibana에 접속하여 다음 단계를 따릅니다.

  1. Index Pattern 생성: Kibana의 "Management" > "Index Patterns"에서 artillery-results 인덱스 패턴을 생성합니다.
  2. Discover 사용: "Discover" 탭에서 새로운 인덱스 패턴을 사용하여 데이터를 탐색합니다.
  3. Visualize 생성: "Visualize" 탭에서 다양한 시각화 도구를 사용하여 데이터를 시각화합니다. 예를 들어, 시나리오별 성공률, 응답 시간 분포 등을 시각화할 수 있습니다.
  4. Dashboard 구성: 여러 시각화를 조합하여 Dashboard를 구성하여 전체적인 테스트 결과를 한눈에 볼 수 있게 합니다.

이 과정을 통해 Artillery 부하 테스트 결과를 Elasticsearch에 저장하고, Kibana에서 시각화하여 분석할 수 있습니다.

뤼튼 사용하러 가기 > https://agent.wrtn.ai/5xb91l

Elasticsearch 설정 방법

Elasticsearch를 사용하기 위해서는 먼저 설치 과정을 거쳐야 합니다. Elasticsearch는 단순히 "열 수 있는" 서비스가 아니라, 로컬 컴퓨터나 서버에 설치해야 하는 소프트웨어입니다. 설치 후에는 설정에 따라 서비스를 시작하고 관리할 수 있습니다. 다음은 Elasticsearch를 사용하기 위한 기본적인 단계입니다:

1. Elasticsearch 설치

  • 공식 웹사이트 다운로드: Elasticsearch의 최신 버전은 Elastic의 공식 웹사이트에서 다운로드할 수 있습니다.

  • 패키지 매니저를 통한 설치: 일부 운영 체제(예: Ubuntu, CentOS)에서는 패키지 매니저를 사용하여 Elasticsearch를 설치할 수 있습니다. 이 방법은 운영 체제에 따라 다르므로, Elastic의 공식 문서에서 해당 운영 체제에 맞는 설치 지침을 참조하는 것이 좋습니다.

2. Elasticsearch 실행

  • 설치가 완료되면, Elasticsearch 서비스를 시작해야 합니다. 대부분의 설치 방법에서는 서비스를 시작하기 위한 명령어가 제공됩니다.

  • 예를 들어, tar.gz 파일로 Elasticsearch를 설치한 경우, 설치 디렉토리에서 ./bin/elasticsearch 명령어를 실행하여 서비스를 시작할 수 있습니다.

  • 만약 명령어를 실행했을 때 다음과 같은 메시지 ‘jdk’은(는) Apple에서 악성 소프트웨어가 있는지 확인할 수 없기 때문에 열 수 없습니다. 가 뜨면, 시스템 환경 설정에서 Gatekeeper의 설정을 변경해야 한다. 설정 > 개인정보 보호 및 보안 으로 이동해서 다음과 같은 메시지가 뜨면 그래도 열기 버튼을 클릭한다. https://support.apple.com/ko-kr/102445 참조. 그리고 elasticsearch가 설치된 경로에 따라서 다음과 같이 명령어를 입력한다. sudo xattr -r -d com.apple.quarantine ~/Documents/elasticsearch-8.13.1/jdk.

  • elasticsearch를 성공적으로 실행하면

✅ Elasticsearch security features have been automatically configured!
✅ Authentication is enabled and cluster connections are encrypted.

ℹ️  Password for the elastic user (reset with `bin/elasticsearch-reset-password -u elastic`):
  elastic 사용자의 비밀번호

ℹ️  HTTP CA certificate SHA-256 fingerprint:
	HTTP CA 인증서 SHA-256 지문

ℹ️  Configure Kibana to use this cluster:
• Run Kibana and click the configuration link in the terminal when Kibana starts.
• Copy the following enrollment token and paste it into Kibana in your browser (valid for the next 30 minutes):
Elasticsearch 클러스터와 Kibana를 연동하기 위한 등록 토큰


ℹ️  Configure other nodes to join this cluster:
• On this node:
  ⁃ Create an enrollment token with `bin/elasticsearch-create-enrollment-token -s node`.
  ⁃ Uncomment the transport.host setting at the end of config/elasticsearch.yml.
  ⁃ Restart Elasticsearch.
• On other nodes:
  ⁃ Start Elasticsearch with `bin/elasticsearch --enrollment-token <token>`, using the enrollment token that you generated.
  • elastic 사용자 비밀번호: Elasticsearch에 접속하거나 API를 통해 클러스터와 상호 작용할 때 사용됩니다.

  • HTTP CA 인증서 SHA-256 지문: 클라이언트가 서버와 안전하게 통신할 수 있도록 인증서의 신뢰성을 확인하는 데 사용됩니다.

  • Kibana 연동: Elasticsearch 클러스터와 Kibana를 연동하기 위한 등록 토큰이 제공됩니다. Kibana를 시작한 후, 등록 토큰을 사용하여 Kibana가 Elasticsearch 클러스터와 안전하게 통신하고 인증할 수 있도록 구성합니다.

  • 노드 등록 토큰 생성: 다른 노드를 클러스터에 추가하기 위해 bin/elasticsearch-create-enrollment-token -s node 명령어를 사용하여 등록 토큰을 생성합니다. 이 토큰은 새로운 노드가 클러스터에 합류할 때 사용됩니다.

  • 기존 노드 구성: config/elasticsearch.yml 파일에서 transport.host 설정의 주석을 해제하고 Elasticsearch를 재시작하여 클러스터의 다른 노드와 통신할 수 있도록 합니다.

  • 새 노드 추가: 새 노드에서는 생성된 등록 토큰을 사용하여 bin/elasticsearch --enrollment-token <token> 명령어로 Elasticsearch를 시작함으로써 클러스터에 합류할 수 있습니다.

이 정보를 바탕으로 Elasticsearch 클러스터의 보안 설정을 관리하고, Kibana 및 추가 노드를 클러스터에 통합할 수 있습니다.

  • Elasticsearch는 기본적으로 9200 포트에서 HTTP 서비스를 제공합니다. 서비스가 정상적으로 시작되면, 웹 브라우저나 cURL과 같은 도구를 사용하여 http://localhost:9200에 접근하여 Elasticsearch가 정상적으로 작동하는지 확인할 수 있습니다.

3. 추가 설정 (선택 사항)

  • Elasticsearch는 기본 설정으로도 잘 작동하지만, 사용 환경에 맞게 몇 가지 설정을 조정할 수 있습니다. 예를 들어, 클러스터 이름, 노드 이름, 메모리 설정 등을 config/elasticsearch.yml 파일에서 변경할 수 있습니다.

  • 보안 설정, 인증 및 권한 부여 등의 고급 설정도 가능하지만, 이러한 설정은 사용 환경과 요구 사항에 따라 달라질 수 있습니다.

profile
황세민

0개의 댓글

관련 채용 정보