JMeter - InfluxDB2 - Grafana 구성
구성 환경
- Window 11
- jmeter 5.6.3
- influxDB2 2.7.6
- grafana :
구성도
본 문서에서는 jmeter가 설치된 상황에서 influxDB와 grafana 설정에 대해 설명한다.
1. influxDB2 설치
InfluxDB는 Time Series Database(시계열 데이터베이스) 이다.
- window 버전 download
https://docs.influxdata.com/influxdb/v2/install/ 에서 window 버전 다운로드
다운로드한 파일을 원하는 디렉토리에 압축을 푼다.
본 문서에서는 "C:\Program Files\influxdb2-2.7.6-windows" 위치에 압축을 해제했다.
InfluxDB 기동
Powershell에서 C:\Program Files\InfluxData\influxdb로 이동하고 influxd 데몬을 실행하여 InfluxDB를 시작한다.
cd -Path 'C:\Program Files\InfluxData\influxdb'
./influxd
설치 후 정상적으로 DB가 기동되었으면
http://localhost:8086 에서 InfluxDB 를 볼 수 있으며, c:\Users\.influxdbv2 디렉토가 생성된다.
Windows 에서는 데이터가 c:\Users\.influxdbv2\engine\data\ 디렉토리에 저장된다.
브라우저로 http://localhost:8086 접속하면 아래와 같은 화면을 볼 수 있다.
"GET STARTED" 버튼을 클릭하면 초기사용자 생성에 관한 화면이 보여진다.
- Username : 계정명( InfluxDB 인스턴스의 모든 리소스에 대한 읽기-쓰기 권한 계정)
- Password : 패스워드
- Initial Organization Name : 조직명( InfluxDB를 사용하는 사용자 그룹을 위한 작업공간, 그룹 관리 기능 )
- Initial Bucket Name : 버킷명( 시계열 데이터가 저장되는 공간, 데이터베이스와 리텐션 폴리시의 조합 )
위 항목들을 입력한 후 "CONTINUE" 버튼을 클릭하면 아래와 같은 화면이 나오는데 여기에서
"QUICK START" 버튼을 클릭한다. API token은 따로 보관하는 것이 좋다. 물론, influxdb UI에서 다시 확인할 수도 있다.
이렇게 생성한 버킷에는 약 100 여개의 measurement( 테이블) 가 생성된다.
- linux 버전(rocky Linux 9.4) 설치
influxdb repository to your Rocky Linux system.
cat <<EOF | sudo tee /etc/yum.repos.d/influxdb.repo
[influxdb]
name = influxdb Repository - RHEL \$releasever
baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdata-arvhive_compat.key
EOF
verify the list of available repositories on your system
sudo dnf repolist
Installing InfluxDB
sudo dnf install influxdb2
After influxdb is installed, run the below systemctl command to start and enable the influxdb service.
sudo systemctl start influxdb
sudo systemctl enable influxdb
2. influx CLI 설치
InfluxDB 2.7과 상호작용하는 데 아래와 같이 여러 도구가 있다. 본 문서에서는 Influx CLI에 대해 설명한다.
- InfluxDB user interface (UI)
- Influx CLI
- InfluxDB HTTP API
Influx CLI를 사용하여 InfluxDB 를 관리한다. Influx CLI를 통해 데이터 쓰기 및 쿼리, InfluxDB 템플릿 생성, 데이터 내보내기 등을 수행한다.
https://docs.influxdata.com/influxdb/v2/tools/influx-cli/?t=Windows 에서 window 버전의 influx CLI 를 다운로드 한 후, 압축을 해제한 후 influxDB를 설치한 디렉토리에 influx.exe 파일을 복사한다.
Installing influxdb CLI for rocky Linux
sudo dnf install influxdb2-cli
2.1 influx CLI 설정
Provide required authentication credentials
InfluxDB 명령어 수행시 마다 호스트, API 토큰 및 조직을 전송하지 않으려면 influx CLI config에 저장한다. 자격 증명이 필요한 influx 명령은 config에서 자격 증명을 자동으로 검색한다.
influx CLI config를 생성하고 이를 활성화하기 위해 influx config create 명령을 사용한다.
influx CLI 명령어
influx config create --config-name CONFIG_NAME \
--host-url http://localhost:8086 \
--org ORG \
--token API_TOKEN \
--active
- CONFIG_NAME: 접속환경이름
- ORG: InfluxDB 조직명
- API_TOKEN: API_TOKEN(influxDB 계정 생성 시 생성된 token)
<예시>
influx config create --config-name ADMIN_CONFIG \
--host-url http://localhost:8086 \
--org ORG \
--token nLP1HFHoLmDd8fXzYUgo2BnQaTv6t9ENMvedHQUIKt-Ad72mYzNf45jQFz1gBIZwVXB463m4iUrmcW_R4EJw== \
--active
계정 생성
> influx user create -n user01 -p qwer1234% -o ORG
계정/패스워드 인증
influx CLI 2.4.0+를 사용하면 InfluxDB 에 로그인하는 데 사용자 이름과 비밀번호를 사용하여 InfluxDB OSS 2.4+로 인증하는 연결 구성을 생성할 수 있다. CLI는 세션 쿠키를 검색하여 암호화되지 않은 상태로 구성 경로에 저장합니다.
influx config create \
-n CONFIG_NAME \
-u http://localhost:8086 \
-p USERNAME:PASSWORD \
-o ORG
- CONFIG_NAME: 접속환경이름
- USERNAME:PASSWORD : InfluxDB 계정/패스워드
- ORG: InfluxDB 조직명
<예시>
influx config create \
-n CONFIG_NAME \
-u http://localhost:8086 \
-p USERNAME:PASSWORD \
-o ORG
위 명령어를 수행하면 윈도우의 경우 c:\users\사용자\.influxdb2\configs 라는 파일이 생성된다.
파일에는 url, token, org가 기록된다.
influx cli 명령어를 수행할 때 이 config 파일을 참조한다.
CLI로 DB 접속
influx v1 shell명령은 InfluxQL 셸(REPL)을 시작한다
show databases 명령어로 현재의 bucket(database)를 조회한다.
2. Jmeter 설정
- jmeter-plugins-influxdb2-listener-2.7.jar 파일을 jmeter가 설치된 lib/ext 폴더로 다운로드 한다.
- jmeter를 실행한다.
- Thread Group 에 Backend Listener를 선택한다.
Backend Listener 의 각 항목에 값을 입력한다.
- Backend Listener : implementation:org.apache.jmeter.visualizers.backend.influxdb.influxdbBackendListenerClient 선택
- influxdbUrl : http://127.0.0.1:8086/api/v2/write?org=ORG&bucket=jmeter(조직명과 버킷명을 입력한다)
- application : application명을 입력
- testTitle : 테스트 제목 입력
- influxdbPort : influxdbPort default port 인 8086 입력
- influxdbToken : influxDB 최초 접속 시 생성한 api token을 입력
본 문서에서는 web page를 단순 호출하는 Sampler를 작성해서 수행했다.
Test Plan를 수행한다.
Test Plan를 수행한 후 jmeter 버킷을 확인해 보면 위에서 설정한 measurement인 jmeter와 event measurement가 생성된 것을 확인할 수 있다.
<username>:<password> 구문을 통해 사용자 이름과 비밀번호를 제공하려면 --username-password, -p 옵션을 사용하세요. 암호가 제공되지 않으면 CLI는 인증이 필요한 각 명령 후에 암호를 묻는 메시지를 표시합니다.
JMeter InfluxDB v2.0 listener plugin 설치
- download 후 jmeter/lib/ext 폴더에 다운로드한 influxdb jar 파일을 넣는다.
2. grafana 설치
2. grafana 설치
https://grafana.com/grafana/download?platform=windows 에서 자신의 OS에 맞는 버전을 다운로드 한후, 설치한다.
설치 완료 후 설치된 디렉토리(Windows 는 C:\Program Files\GrafanaLabs\grafana 에 설치됨)에서 start grafana-server 명령어로 grafana 서버를 실행한다.
grafana-server 실행 후 브라우저로 http://localhost:3000/login 접속한다.
최초 접속 시 화면이고 계정은 admin 패스워드는 admin을 입력하여 Log in 한다.
admin 계정의 패스워드 변경화면이 뜨는데 원하는 패스워드로 변경한다.
Data Source 추가
"Go to connections" 버튼을 클릭한다. 또는 좌측의 "Connection" 메뉴
"Add data source" 버튼을 클릭한다.
InfluxDB 를 클릭한다.
설정 페이지가 나오면 각 항목을 입력한다.