# 설치 및 파라미터 설정

PG Agent를 설치하는 과정은 다음과 같다. **단, 반드시 관제 데이터베이스를 설치한 계정과 동일한 OS 계정으로 진행해야 한다.**

### 1. **설치 파일 배포**

관제 데이터베이스가 위치한 서버에 "pgagent\_dist\_{*version*}.tar.gz" 압축 파일을 배포한 후 압축을 해제한다.

```
tar -zxvf java_pgagent_dist_{version}.tar.gz
```

{% hint style="info" %}
**참고**

설치 파일 압축 해제 시 150MB 정도이다. 해당 공간만큼 확보한 이후에 압축 해제를 해야 한다. 이후 운영 시에는 로그 로테이션 설정에 따라 용량을 확보해야 한다.

로그 파일 로테이션이란 기존에 로그를 적재하던 로그 파일을 아카이빙하고 새로운 로그 파일을 생성하여 적재하는 것이다. 기본적으로 매 24시간 또는 한 파일의 사이즈가 50MB를 넘었을 때 새 로그 파일을 생성한다. 또한 로그 파일을 최대 7개까지 저장하는 것이 기본 설정이며, 7개가 넘어가게 되면 오래된 로그 파일부터 삭제된다. 따라서 기본 설정인 상태에서 시간 트리거만 발생했을 때는 약 1주일 분량의 로그를 보관하며, 파일 사이즈 트리거만 발생했을 때 약 350MB 분량의 로그를 보관한다. 그러므로 기본 설정인 상태에서 모든 로그를 보관하기 위해서는 실행 파일과 로그 파일을 합쳐 약 500MB 이상의 공간을 확보해야 한다.
{% endhint %}

***

### 2. application.yml 파일 설정

"java\_pgagent\_dist\_{version}.tar.gz" 압축 파일을 해제한 디렉터리에 application.yml 파일을 아래와 같이 작성하여 설정을 적용한다.\
\
yml 문법에 맞게 각 파라미터들의 값을 조정하여 설정한다.

```
agent-config:
  id: "AAA1"
  ip: "192.1.3.225"
  port: 8292
  freq: 1000
  charset: utf-8
  cpu-mem-proc-freq: 1000
  sessioninfo-freq: 1000
  disk-freq: 1000
  local-monitoring-target-db-port: 5432

log:
  level: INFO # [FATAL, ERROR, WARN, INFO, DEBUG, TRACE]
  rotate-time-interval: 24
  rotate-file-size: 50MB
  max-log-file-number: 7
  path: logs/
  file-name: pgagent
  namespace: pgagent
```

해당 과정에서 설정하는 파라미터에 대한 설명은 다음과 같다.

<table><thead><tr><th>카테고리</th><th>파라미터</th><th width="444">설명</th><th>필수 여부</th></tr></thead><tbody><tr><td>agent-config</td><td>id</td><td><p>인스턴스 ID<br></p><p><strong>[참고]</strong> 웹 UI에서 관제 데이터베이스 인스턴스 등록 시 입력한 INSTANCE ID 값과 동일해야 함. 잘못 입력시 잘못된 관제 DB 설치 머신 현황과 세션 목록 등을 모니터링하게 되므로 주의 요망.</p></td><td>O</td></tr><tr><td>agent-config</td><td>ip</td><td>SysMaster DB 서버에 접속할 수 있는 IP 주소</td><td>O</td></tr><tr><td>agent-config</td><td>port</td><td>PG Agent가 SysMaster DB 서버의 COLLECTOR_PORT로 연결하기 위한 포트 번호</td><td>O</td></tr><tr><td>agent-config</td><td>freq</td><td><p>수집 주기 (단위: msec).</p><p></p><p><strong>[참고]</strong> 설정하지 않으면 1000ms로 설정되므로 1초 주기로 수집.</p></td><td>X</td></tr><tr><td>agent-config</td><td>charset</td><td><p>관제 DB의 문자 집합 (NLS_CHARACTERSET 파라미터로 확인).</p><p></p><p><strong>[참고]</strong> 설정하지 않으면 utf-8 로 설정</p></td><td>X</td></tr><tr><td>agent-config</td><td>cpu-mem-proc-freq</td><td>CPU, 메모리, 프로세스 목록 정보를 가져오는 주기(단위: ms)<br><br><strong>[참고]</strong> 설정하지 않으면 "freq" 값으로 설정됨</td><td>X</td></tr><tr><td>agent-config</td><td>sessioninfo-freq</td><td><p>세션 정보를 가져오는 주기 (단위: ms) </p><p></p><p><strong>[참고]</strong> 설정하지 않으면 "freq" 값으로 설정됨</p></td><td>X</td></tr><tr><td>agent-config</td><td>disk-freq</td><td><p>디스크 정보를 가져오는 주기 (단위: ms) </p><p></p><p><strong>[참고]</strong> 설정하지 않으면 "freq × 60" 값으로 설정되며, 설정하면 설정한 주기로 수집을 진행</p></td><td>X</td></tr><tr><td>agent-config</td><td>local-monitoring-target-db-port</td><td>수집 대상 PostgreSQL DB 접속 포트<br><br><strong>[참고]</strong> 설정하지 않으면 instance 등록시 기입한 포트 값</td><td>X</td></tr><tr><td>log</td><td>level</td><td><p>로그 레벨로</p><ul><li> FATAL </li><li>ERROR</li><li>WARN</li><li>INFO</li><li>DEBUG</li><li>TRACE </li></ul><p></p><p><strong>[참고]</strong>설정하지 않으면 INFO 로 설정됨.</p><p><br>DEBUG 이상 설정을 할 경우 로그양이 많아져 PG Agent 에 설정한 주기 안에 수집을 하지 못하여 데이터 누락이 발생할 수 있음. 그로 인하여 실시간 데이터 모니터링 중 데이터가 조회되지 않는 현상이 있을 수 있음. 따라서 운영 환경에서는 해당 설정을 하지 않는 것을 권고하며, 이슈 분석을 위해서만 해당 로그 레벨을 설정.</p></td><td>X</td></tr><tr><td>log</td><td>rotate-time-interval</td><td><p>로그 파일이 아카이빙되는 주기 (단위: h)</p><p></p><p>적재 중인 로그 파일을 주기마다 아카이빙하고 새로운 로그 파일에 적재</p><p></p><p><strong>[참고]</strong> 설정하지 않으면 24로 설정되므로 하루 주기로 로그 파일 아카이빙</p></td><td>X</td></tr><tr><td>log</td><td>rotate-file-size</td><td><p>로그 파일이 아카이빙되는 파일 사이즈 (단위: MB) </p><p></p><p>적재 중인 로그 파일이 해당 파일 사이즈에 도달하면 적재 중인 로그 파일을 아카이빙하고 새로운 로그 파일에 적재</p><p></p><p><strong>[참고]</strong> 설정하지 않으면 50으로 설정되므로 적재 중인 로그 파일이 50MB에 도달하면 로그 파일 아카이빙</p></td><td>X</td></tr><tr><td>log</td><td>max-log-file-number</td><td><p>아카이빙되는 파일 최대 개수 (단위: 개수) </p><p></p><p>아카이빙한 파일 개수가 최대에 도달하면 가장 오래 된 로그 파일부터 삭제</p><p></p><p><strong>[참고]</strong> 설정하지 않으면 7로 설정되므로 최대 로그 파일 개수는 7개</p></td><td>X</td></tr><tr><td>log</td><td>path</td><td><p>로그 파일 생성 디렉터리</p><p></p><p><strong>[참고]</strong> 설정하지 않으면 pgagent.jar 경로에 logs/ 로 경로 설정</p></td><td>X</td></tr><tr><td>log</td><td>file-name</td><td>생성될 로그 파일명<br><br><strong>[참고]</strong> 설정하지 않으면 pgagent.log 로 파일 생성</td><td>X</td></tr><tr><td>log</td><td>namespace</td><td>기록될 로그의 식별자<br><br><strong>[참고]</strong> 설정하지 않으면 pgagent를 식별자로 사용</td><td>X</td></tr></tbody></table>

{% hint style="info" %}
**참고**

현재 Java PG Agent는 PostgreSQL jdbc Charset 을 동일하게 지원한다.
{% endhint %}

***

### Java PG Agent 지원 Charset

PostgreSQL 에서 지원하는 문자 집합은 다음과 같다. ([참고](https://www.postgresql.org/docs/14/multibyte.html))

| Name             | Description                       | Language                       | Aliases                                       |
| ---------------- | --------------------------------- | ------------------------------ | --------------------------------------------- |
| `BIG5`           | Big Five                          | Traditional Chinese            | `WIN950`, `Windows950`                        |
| `EUC_CN`         | Extended UNIX Code-CN             | Simplified Chinese             |                                               |
| `EUC_JP`         | Extended UNIX Code-JP             | Japanese                       |                                               |
| `EUC_JIS_2004`   | Extended UNIX Code-JP, JIS X 0213 | Japanese                       |                                               |
| `EUC_KR`         | Extended UNIX Code-KR             | Korean                         |                                               |
| `EUC_TW`         | Extended UNIX Code-TW             | Traditional Chinese, Taiwanese |                                               |
| `GB18030`        | National Standard                 | Chinese                        |                                               |
| `GBK`            | Extended National Standard        | Simplified Chinese             | `WIN936`, `Windows936`                        |
| `ISO_8859_5`     | ISO 8859-5, ECMA 113              | Latin/Cyrillic                 |                                               |
| `ISO_8859_6`     | ISO 8859-6, ECMA 114              | Latin/Arabic                   |                                               |
| `ISO_8859_7`     | ISO 8859-7, ECMA 118              | Latin/Greek                    |                                               |
| `ISO_8859_8`     | ISO 8859-8, ECMA 121              | Latin/Hebrew                   |                                               |
| `JOHAB`          | JOHAB                             | Korean (Hangul)                |                                               |
| `KOI8R`          | KOI8-R                            | Cyrillic (Russian)             | `KOI8`                                        |
| `KOI8U`          | KOI8-U                            | Cyrillic (Ukrainian)           |                                               |
| `LATIN1`         | ISO 8859-1, ECMA 94               | Western European               | `ISO88591`                                    |
| `LATIN2`         | ISO 8859-2, ECMA 94               | Central European               | `ISO88592`                                    |
| `LATIN3`         | ISO 8859-3, ECMA 94               | South European                 | `ISO88593`                                    |
| `LATIN4`         | ISO 8859-4, ECMA 94               | North European                 | `ISO88594`                                    |
| `LATIN5`         | ISO 8859-9, ECMA 128              | Turkish                        | `ISO88599`                                    |
| `LATIN6`         | ISO 8859-10, ECMA 144             | Nordic                         | `ISO885910`                                   |
| `LATIN7`         | ISO 8859-13                       | Baltic                         | `ISO885913`                                   |
| `LATIN8`         | ISO 8859-14                       | Celtic                         | `ISO885914`                                   |
| `LATIN9`         | ISO 8859-15                       | LATIN1 with Euro and accents   | `ISO885915`                                   |
| `LATIN10`        | ISO 8859-16, ASRO SR 14111        | Romanian                       | `ISO885916`                                   |
| `MULE_INTERNAL`  | Mule internal code                | Multilingual Emacs             |                                               |
| `SJIS`           | Shift JIS                         | Japanese                       | `Mskanji`, `ShiftJIS`, `WIN932`, `Windows932` |
| `SHIFT_JIS_2004` | Shift JIS, JIS X 0213             | Japanese                       |                                               |
| `SQL_ASCII`      | unspecified (see text)            | *any*                          |                                               |
| `UHC`            | Unified Hangul Code               | Korean                         | `WIN949`, `Windows949`                        |
| `UTF8`           | Unicode, 8-bit                    | *all*                          | `Unicode`                                     |
| `WIN866`         | Windows CP866                     | Cyrillic                       | `ALT`                                         |
| `WIN874`         | Windows CP874                     | Thai                           |                                               |
| `WIN1250`        | Windows CP1250                    | Central European               |                                               |
| `WIN1251`        | Windows CP1251                    | Cyrillic                       | `WIN`                                         |
| `WIN1252`        | Windows CP1252                    | Western European               |                                               |
| `WIN1253`        | Windows CP1253                    | Greek                          |                                               |
| `WIN1254`        | Windows CP1254                    | Turkish                        |                                               |
| `WIN1255`        | Windows CP1255                    | Hebrew                         |                                               |
| `WIN1256`        | Windows CP1256                    | Arabic                         |                                               |
| `WIN1257`        | Windows CP1257                    | Baltic                         |                                               |
| `WIN1258`        | Windows CP1258                    | Vietnamese                     | `ABC`, `TCVN`, `TCVN5712`, `VSCII`            |

***

### 환경 변수를 통한 설정

"java\_pgagent\_dist\_{version}.tar.gz" 압축 파일을 해제한 디렉터리에 set.sh 파일에 적용시킬 환경 변수들이 있으며, 아래와 같이 작성하여 설정한다.

```
export BOOT_WITH_AUTO_DOWN_CLEAN=true
export ENABLE_DEBUG=false
export ENABLE_GC_LOG=false
export JAVA_MIN_HEAP_SIZE=1000m
export JAVA_MAX_HEAP_SIZE=1000m
```

{% hint style="info" %}
**참고**

PG Agent는  PostgreSQL의 max connection 설정 값에 따라 필요한 max heap size가 달라질 수 있다.

현재 측정된 max connection 설정값에 대한 max heap size는 아래와 같다.

1. max connection: 100, max heap: 650MB
2. max connection: 200, max heap: 650MB
3. max connection: 400, max heap: 650MB
4. max connection: 800, max heap: 650MB
5. max connection: 1600, max heap: 650MB
6. max connection: 3200, max heap: 650MB
7. max connection: 6400, max heap: 900MB
   {% endhint %}

해당 과정에서 설정하는 환경변수에 대한 설명은 다음과 같다.

| 환경 변수                         | 설명                                                                                | 필수 여부 |
| ----------------------------- | --------------------------------------------------------------------------------- | ----- |
| BOOT\_WITH\_AUTO\_DOWN\_CLEAN | PG Agent 실행시 기존에 실행중인 process가 있으면 해당 프로세스 종료 후 실행할 것인가에 대한 환경 변수, default는 true  | X     |
| ENABLE\_DEBUG                 | PG Agent 실행시 debug port를 열 것인 지에 대한 환경 변수, default는 false                         | X     |
| ENABLE\_GC\_LOG               | PG Agent 실행시 jvm gc log를 파일로 생성할 것인가에 대한 환경 변수, default는 false                    | X     |
| JAVA\_MIN\_HEAP\_SIZE         | PG Agent 실행시 시작 heap 크기 설정에 대한 환경 변수, default는 각 jvm 구현체마다 다르며 보통 현재 머신 메모리의 1/64 | X     |
| JAVA\_MAX\_HEAP\_SIZE         | PG Agent 실행시 최대 heap 크기 설정에 대한 환경 변수, default는 각 jvm 구현체마다 다르며 보통 현재 머신 메모리의 1/4  | X     |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.tibero.com/sysmasterdb-for-postgresql1.0/8.3_manual/installation-guide/pg-agent/installation-parameters.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
