설치 매뉴얼
개요
제니퍼 APM 앱은 제니퍼 관리 API(Open API)를 주기적으로 호출해 종료된 트랜잭션의 성능 정보를 수집합니다. 응답시간·CPU 사용시간·SQL 수행시간 등 구간별 소요시간과 오류 유형을 수집하며, 실행 중인 서비스 목록은 확장 명령어로 실시간 조회할 수 있습니다.
1.1.2610.0부터는 여기에 JENNIFER 콘솔이 더해집니다. JENNIFER 웹 콘솔과 같은 대시보드, 분석, 통계 화면을 로그프레소 소나 안에서 열고, 같은 콘솔 데이터를 쿼리 명령어로 조회해 성능 이상의 원인을 좁힐 수 있습니다. 그래서 앱은 서로 다른 자격증명을 쓰는 두 부분으로 나뉩니다.
| 구분 | 트랜잭션 수집 | 콘솔 화면과 콘솔 쿼리 명령어 |
|---|---|---|
| 앱 버전 | 1.0.2607.0 이상 | 1.1.2610.0 이상 |
| 자격증명 | 제니퍼 Open API 토큰 | JENNIFER 콘솔 계정 ID와 비밀번호 |
| 접속 프로파일 유형 | JENNIFER APM | JENNIFER 콘솔 |
| 제공 기능 | 수집 모델 제니퍼 APM 트랜잭션, 쿼리 명령어 jennifer-apm-transaction-time, jennifer-apm-active-service-list | 대시보드·분석·통계 메뉴, 쿼리 명령어 jennifer-instances 외 6개, AI 에이전트 원인 분석 |
적용 범위
필요한 설정 고르기
두 부분은 서로 독립적입니다. 쓰려는 기능에 맞춰 필요한 절만 진행하세요.
| 하려는 일 | 진행할 절 |
|---|---|
| 트랜잭션을 테이블에 수집만 | 요구 사항의 트랜잭션 수집, 제니퍼 APM 설정, 로그프레소 수집 설정, 설치 확인의 트랜잭션 수집 |
| 콘솔 화면과 콘솔 쿼리 명령어만 | 요구 사항의 콘솔 화면과 콘솔 쿼리 명령어, 콘솔 설정, 설치 확인의 콘솔 화면과 콘솔 쿼리 명령어 |
| 둘 다 | 위의 모든 절. 접속 프로파일을 유형별로 하나씩, 모두 두 개 만듭니다 |
요구 사항
트랜잭션 수집
| 항목 | 요구사항 | 비고 |
|---|---|---|
| 제니퍼 계정/권한 | 제니퍼 Open API 호출 권한 | 권한 부족 시 수집 누락 가능 |
| 발급 필요 자격증명 | 제니퍼 Open API 토큰 | 제니퍼 관리 콘솔에서 발급 |
| 사전 확인 정보 | 수집 대상 도메인 ID, 인스턴스 ID(선택) | 제니퍼 관리 콘솔에서 확인 |
| 네트워크 허용 | HTTPS/443 (소나 수집 노드 → 제니퍼 서버, Outbound) | 방화벽 정책 반영 필요 |
콘솔 화면과 콘솔 쿼리 명령어
| 항목 | 요구사항 | 비고 |
|---|---|---|
| 앱 버전 | 제니퍼 APM 1.1.2610.0 이상 | 이전 버전에는 콘솔 메뉴와 명령어가 없습니다 |
| 콘솔 계정 | JENNIFER 웹 콘솔에 로그인할 수 있는 계정 ID와 비밀번호 | 모니터링할 도메인을 볼 수 있어야 합니다. 전용 계정 권장 |
| 사전 확인 정보 | JENNIFER 뷰 서버(웹 콘솔) 주소. 예: https://jennifer.example.com:7900 | 브라우저로 콘솔에 접속할 때 쓰는 주소입니다 |
| 네트워크 허용 | 소나 서버 → JENNIFER 뷰 서버, 콘솔 포트의 HTTP(S)와 WebSocket (Outbound) | 방화벽·프록시 정책 반영 필요 |
제니퍼 APM 설정
트랜잭션 수집에 필요한 절차입니다.
단계 1: Open API 토큰 발급
제니퍼 관리 콘솔에서 Open API 호출에 사용할 토큰을 발급합니다. 발급한 토큰 문자열은 안전한 곳에 보관하고, 소나 접속 프로파일 등록 시 입력합니다.
단계 2: 도메인 ID 확인
수집 대상 도메인의 ID를 확인합니다. 도메인 ID는 수집기 설정의 필수 항목입니다.
단계 3: 인스턴스 ID 확인 (선택)
특정 인스턴스만 수집하려면 해당 인스턴스의 ID를 확인합니다. 인스턴스 ID를 지정하지 않으면 도메인에 속한 모든 인스턴스를 수집합니다.
로그프레소 수집 설정
단계 1: 접속 프로파일 추가
시스템 > 접속 프로파일에서 추가를 클릭하고 아래 값을 입력합니다.
| 구분 | 항목 | 설정 |
|---|---|---|
| 필수 | 이름 | 접속 프로파일을 식별할 고유한 이름 |
| 필수 | 식별자 | 로그프레소 쿼리 등에서 사용할 접속 프로파일의 고유 식별자. 예: jennifer_apm |
| 필수 | 유형 | JENNIFER APM 선택 |
| 필수 | Token | 제니퍼 APM 설정 단계 1에서 발급한 Open API 토큰 |
| 필수 | 엔드포인트 | 제니퍼 서버 URL. 예: https://example.com:7900 |
| 선택 | HTTP 프록시 | IP:포트 |
| 선택 | 접속 타임아웃 | 밀리초 단위. 기본값 30000 권장 |
단계 2: 수집기 추가
수집 > 수집기에서 추가를 클릭하고 아래 값을 입력합니다.
| 구분 | 항목 | 설정 |
|---|---|---|
| 필수 | 이름 | 수집기를 식별할 고유한 이름 |
| 필수 | 주기 | 60초 권장 |
| 필수 | 적재 위치/수집 위치 | 로그프레소 플랫폼 구성에 따라 적합한 노드 선택 |
| 필수 | 수집 모델 | 제니퍼 APM 트랜잭션 선택 |
| 필수 | 테이블 | 수집 데이터를 적재할 테이블 이름. 도메인별로 분리하려면 도메인 ID를 접미사로 사용 (예: APM_JENNIFER) |
| 필수 | 접속 프로파일 | 단계 1의 프로파일 식별자 |
| 필수 | 도메인 ID | 제니퍼 APM 설정 단계 2에서 확인한 도메인 ID |
| 선택 | 인스턴스 ID | 콤마로 구분해 여러 개 지정 가능. 예: 10000,10001. 미지정 시 전체 인스턴스 |
| 선택 | 모니터링 대상 일수 | 0~90일. 최초 수집 시 소급할 일수. 0이면 현재 시각부터 수집 (기본값) |
| 선택 | 수집 지연 시간 | 초 단위. 현재 시각에서 지연시켜 조회 (기본값 0) |
콘솔 설정
콘솔 화면과 콘솔 쿼리 명령어에 필요한 절차입니다. 앱은 콘솔 계정으로 JENNIFER 웹 콘솔에 로그인해 화면과 쿼리 명령어에 쓸 데이터를 받습니다.
단계 1: 앱 버전 확인
앱 스토어에서 제니퍼 APM 앱이 1.1.2610.0 이상인지 확인합니다. 이전 버전이 설치되어 있으면 업데이트합니다. 이미 만든 JENNIFER APM 접속 프로파일과 수집기는 그대로 유지됩니다.
단계 2: 콘솔 계정 준비
JENNIFER 콘솔에서 이 앱이 쓸 계정을 준비합니다.
- 모니터링할 도메인과 인스턴스를 콘솔에서 볼 수 있는 계정이어야 합니다. 계정이 콘솔에서 볼 수 없는 것은 화면과 쿼리 명령어에도 나오지 않습니다
- 사람이 쓰는 계정 대신 이 앱 전용 계정을 만드는 것을 권장합니다. 계정의 비밀번호를 바꾸면 접속 프로파일도 함께 고쳐야 합니다
- 화면의 일부 버튼은 계정에 권한이 있을 때만 나타납니다. 화면 용도에 맞는 권한만 주세요
JENNIFER 콘솔 접속 프로파일만 쓸 수 있고, 그 사용자의 요청을 프로파일의 콘솔 계정으로 보냅니다. 그래서 계정에 아래 권한이 있으면, 프로파일 사용 권한을 받은 소나 사용자가 화면에서 JENNIFER의 상태를 실제로 바꿀 수 있습니다. 이 동작들은 계정에 해당 권한이 있을 때만 화면에 나타납니다. 접속 프로파일의 사용 권한은 꼭 필요한 사용자에게만 주세요.
| 화면 | 동작 | JENNIFER에 일어나는 일 |
|---|---|---|
| 힙 메모리 차트 | GC 실행 | 대상 인스턴스의 JVM에 GC를 실행합니다 |
통계, X-View 분석 화면의 ⋯ 메뉴 | 시작 화면으로 설정 | 콘솔 계정의 시작 페이지를 바꿉니다 |
| 대시보드의 이벤트 차트 | 복구 처리 | 인스턴스의 이벤트를 복구 처리합니다 |
| X-View 트랜잭션 콜 트리 | 메서드·클래스·패키지 프로파일 설정 | JENNIFER의 메서드 프로파일 설정을 바꿉니다 |
| X-View 트랜잭션 | 백그라운드 내보내기(프로파일 텍스트, 스택트레이스) | 콘솔 계정의 백그라운드 작업을 만듭니다 |
| X-View 트랜잭션 | SQL 성능 상세 보기(Sherpa for Oracle 연계) | 콘솔에 SQL의 Sherpa for Oracle 연계 주소를 요청합니다 |
| X-View 트랜잭션 | 토크 공유 | 콘솔 토크 게시판에 콘솔 계정 이름으로 글을 씁니다 |
| X-View 분석 | X-View 패턴 등록 | 서버에 X-View 패턴을 등록합니다 |
쓰기 동작을 막으려면 이 권한이 없는 조회용 계정을 쓰세요. 쿼리 명령어는 이 권한과 상관없이 조회만 합니다.
단계 3: 네트워크 확인
앱은 사용자의 브라우저가 아니라 소나 서버에서 JENNIFER 뷰 서버로 접속합니다. 소나 서버에서 콘솔 주소의 포트로 나가는 연결을 허용합니다.
| 용도 | 경로 | 프로토콜 |
|---|---|---|
| 로그인, 통계·분석 데이터 | 콘솔 주소의 웹 경로 | HTTP(S) |
| 실시간 차트 | /ws/realtime | 같은 포트의 WebSocket |
| X-View 점 데이터, X-View 트랜잭션 | /ws/bigdata | 같은 포트의 WebSocket |
중간에 프록시나 보안 장비가 있으면 WebSocket 업그레이드를 허용하는지 확인하세요. HTTP만 통하면 통계 화면은 열리지만 실시간 차트와 X-View는 비어 있습니다.
단계 4: 접속 프로파일 추가
시스템 > 접속 프로파일에서 추가를 클릭하고 아래 값을 입력합니다.
| 구분 | 항목 | 설정 |
|---|---|---|
| 필수 | 이름 | 접속 프로파일을 식별할 고유한 이름. 콘솔 화면의 프로파일 목록과 쿼리 명령어의 profile 옵션에 쓰입니다 |
| 필수 | 식별자 | 접속 프로파일의 고유 식별자. 예: jennifer_console |
| 필수 | 유형 | JENNIFER 콘솔 선택 |
| 필수 | 엔드포인트 | JENNIFER 뷰 서버 URL. 예: https://jennifer.example.com:7900 |
| 필수 | 계정 ID | 단계 2에서 준비한 콘솔 계정 ID |
| 필수 | 계정 비밀번호 | 콘솔 계정 비밀번호. 보호 항목으로 저장됩니다 |
| 선택 | HTTP 프록시 | IP:포트 |
| 선택 | 접속 타임아웃 | 초 단위. 미지정 시 기본값 30 |
| 선택 | 읽기 타임아웃 | 초 단위. 미지정 시 기본값 30 |
JENNIFER APM 프로파일의 접속 타임아웃은 밀리초 단위이고, JENNIFER 콘솔 프로파일의 타임아웃은 초 단위입니다.
콘솔 화면과 쿼리 명령어는 프로파일의 계정으로 로그인한 상태를 함께 씁니다. 로그인이 만료되면 자동으로 다시 로그인합니다. 프로파일의 엔드포인트, 계정, 비밀번호, 프록시를 고치면 바뀐 값으로 새로 로그인합니다.
JENNIFER 콘솔이 여러 대라면 콘솔마다 프로파일을 하나씩 만듭니다.
단계 5: 메뉴 확인
앱이 1.1.2610.0 이상이면 좌측 메뉴의 제니퍼 APM 아래에 다음 메뉴가 나타납니다.
| 메뉴 | 화면 |
|---|---|
| 대시보드 | 시스템 관리자, 애플리케이션 인사이트, 메모리, 시스템 리소스 |
| 분석 | X-View, Stacktrace Flight Recorder (SFR) |
| 통계 | 일일 시스템 성능, 월별 시스템 성능 |
화면을 처음 열 때 JENNIFER 콘솔 프로파일이 하나면 바로 그 프로파일로 열립니다. 둘 이상이면 프로파일 이름과 엔드포인트 목록이 나오고, 고른 프로파일은 주소의 ?profile=에 남아 다른 화면으로 옮겨도 유지됩니다.
설치 확인
트랜잭션 수집
수집 > 수집기에서 추가한 수집기가 실행 중인지 확인하고, 한두 주기가 지난 뒤 테이블을 조회합니다. 테이블 이름은 수집기에 지정한 것으로 바꿉니다.
콘솔 화면과 콘솔 쿼리 명령어
화면 하나와 명령어 하나를 열어 보면 로그인, 실시간 연결, 데이터 조회를 모두 확인할 수 있습니다.
- 대시보드 > 시스템 관리자를 엽니다. 상단 도메인 바에 인스턴스 이름이 나오고 TPS, 응답시간 같은 차트가 몇 초마다 갱신되면 로그인과 실시간 연결이 된 것입니다
- 같은 화면의 X-View 차트에 점이 찍히는지 봅니다. 점이 보이면 X-View 데이터 연결도 된 것입니다
- 통계 > 일일 시스템 성능을 열고 어제 날짜를 조회합니다. 표와 차트가 채워지면 통계 조회가 되는 것입니다
- 쿼리 화면에서 아래 명령을 실행합니다. 도메인과 인스턴스 목록이 나오면 쿼리 명령어가 되는 것입니다
JENNIFER 콘솔 프로파일만 사용합니다. profile 옵션을 생략하면 그런 프로파일을 모두 사용하므로, 프로파일이 여럿이면 profile 옵션으로 하나를 지정하세요.
문제가 발생할 때
| 증상 | 원인 | 조치 |
|---|---|---|
| 좌측 메뉴에 대시보드, 분석, 통계가 없음 | 앱 버전이 1.1.2610.0 미만 | 앱을 업데이트합니다 |
| 화면에 "사용할 수 있는 JENNIFER 콘솔 접속 프로파일이 없습니다" | JENNIFER 콘솔 유형의 프로파일이 없거나, 사용자에게 프로파일 사용 권한이 없음 | 콘솔 설정 단계 4로 프로파일을 추가하거나 사용자에게 프로파일 권한을 줍니다. JENNIFER APM(토큰) 프로파일은 화면에서 쓰이지 않습니다 |
jennifer: login rejected, check account id and password | 계정 ID나 비밀번호가 틀림 | 콘솔에 같은 계정으로 직접 로그인해 보고, 프로파일의 계정 정보를 고칩니다 |
jennifer: login failed with status ... | 엔드포인트가 웹 콘솔 주소가 아님 | 브라우저로 콘솔 로그인 화면이 열리는 주소(스킴, 호스트, 포트)를 엔드포인트에 넣습니다 |
jennifer: unauthorized for ..., check account id and password | 다시 로그인한 뒤에도 콘솔이 요청을 거부함 | 콘솔에서 계정 상태와 비밀번호를 확인하고 프로파일을 고칩니다 |
| 화면이나 명령이 접속 시간 초과로 실패 | 소나 서버에서 콘솔로 연결되지 않음 | 방화벽, HTTP 프록시 설정을 확인합니다 |
| 통계는 열리는데 실시간 차트와 X-View가 비어 있음 | 중간 장비가 WebSocket을 막음 | /ws/realtime, /ws/bigdata의 WebSocket 업그레이드를 허용합니다 |
| 쿼리 오류 207910 (사용 가능한 JENNIFER 콘솔 프로파일 없음) | 프로파일이 없거나 실행한 사용자가 쓸 수 없음 | 프로파일을 추가하거나 사용자에게 프로파일 권한을 줍니다 |
쿼리 오류 207916 (profile 옵션에 프로파일 하나 지정) | domain_id를 줬는데 쓸 수 있는 프로파일이 여럿 | profile 옵션으로 프로파일 하나를 지정합니다 |
jennifer-apm-transaction-time에서 207902, 207903 | 기간을 지정하지 않음 | duration 또는 from, to를 지정합니다 |
참고 자료
설치가 끝났다면 사용 매뉴얼에서 화면과 쿼리 명령어 사용법을 확인하세요.


