소개
Jolokia는 Java 애플리케이션의 모니터링과 관리를 위한 엔터프라이즈급 엔드포인트입니다. Zabbix는 오픈 소스 모니터링 솔루션으로 널리 사용됩니다. Jolokia를 사용하여 Java 애플리케이션의 메트릭 및 정보를 Zabbix로 전송하는 방법을 알아보겠습니다.
단계 1: Jolokia 설치 및 구성
- Maven을 사용하여 Jolokia 종속성을 애플리케이션에 추가합니다.
<dependency>
<groupId>org.jolokia</groupId>
<artifactId>jolokia-core</artifactId>
<version>1.6.2</version>
</dependency>
- Jolokia JVM 에이전트를 애플리케이션에 적용합니다. 애플리케이션의 JVM 구동 옵션에 다음을 추가합니다.
-javaagent:/path/to/jolokia-jvm-agent.jar=port=8778,host=localhost
- 애플리케이션을 시작하고 Jolokia API 엔드포인트에 접속하여 동작을 확인합니다. 기본 엔드포인트는
http://localhost:8778/jolokia/
입니다.
단계 2: Zabbix 템플릿 추가
-
Zabbix 대시보드로 이동하여 관리자 권한으로 로그인합니다.
-
Configuration
메뉴에서Templates
을 선택한 다음Create template
을 클릭합니다. -
템플릿의 이름을 입력하고 필요한 경우 그룹 및 설명을 추가합니다. 그런 다음
Add
버튼을 클릭하여 필요한 항목을 템플릿에 추가합니다. -
Jolokia에서 수집하려는 메트릭과 정보를 선택합니다. 예를 들어 Java 메모리 사용량, 스레드 개수, GC 횟수 등을 선택할 수 있습니다.
-
Templates
을 저장하고 Zabbix에서 사용할 준비가 끝났습니다.
단계 3: Zabbix 서버 설정
-
Zabbix 서버에 접속하고
Administration
메뉴에서Media types
을 선택합니다. 다음으로Create media type
버튼을 클릭합니다. -
Type
을Script
로 선택하고Script name
에jolokia_request.sh
와 같은 이름을 지정합니다. -
다음은
/path/to/jolokia_request.sh
의 내용과 같은 셸 스크립트 파일을 생성합니다.
#!/bin/bash
URL="http://localhost:8778/jolokia/"
JSON="{\"type\":\"read\",\"mbean\":\"java.lang:type=Memory\",\"attribute\":\"HeapMemoryUsage\",\"target\":\"jdk.management.jfr:type=FlightRecorder\",\"uptime\":142179,\"timestamp\":1608699362611}"
RESPONSE=$(curl -s -X POST -H 'Content-type: application/json' --data "$JSON" "$URL")
VALUE=$(echo "$RESPONSE" | jq -r '.value')
echo "$VALUE"
-
생성한 스크립트 파일을 Zabbix 서버의 적절한 디렉토리에 복사합니다.
-
Actions
메뉴에서Create action
을 선택합니다.Operations
탭에서 새로운 작업을 만들고,Add
버튼을 클릭하여Script
타입의 작업을 추가합니다. -
작업에 필요한 설정을 추가하고
OK
를 클릭하여 작업을 저장합니다.
결론
Java Jolokia와 Zabbix를 연동하여 Java 애플리케이션의 메트릭과 정보를 모니터링할 수 있습니다. 이를 통해 애플리케이션의 성능 및 동작을 실시간으로 모니터링하고 필요한 조치를 취할 수 있습니다.
참고: