설치 문제 해결
데이터베이스 에이전트 설치 시 발생할 수 있는 문제를 확인해 보세요.
방화벽 설정 확인
방화벽 차단을 해제하세요. 와탭 서버에 대한 TCP 아웃바운드 방화벽이 설정되어 있으면 모니터링 정보를 서버로 전송할 수 없습니다.
방화벽 확인 방법
telnet 명령어를 수행해 다음과 같은 접속 관련 정보가 표시되어야 정상입니다. (telnet [서버 IP] [서버 포트])
$ telnet 52.193.60.176 6600
Trying 52.193.60.176...
Connected to 52.193.60.176.
Escape character is '^]'.
와탭 수집 서버 정보는 관 리 > 에이전트 설치 메뉴에서 확인할 수 있습니다.
에이전트 로그 확인하기
에이전트가 데이터베이스에 접속하지 못하거나 일부 데이터가 수집되지 않으면 먼저 에이전트 로그를 확인하세요. 아래 항목은 로그에 남는 메시지를 기준으로 원인과 해결 방법을 안내합니다.
- logs/: 에이전트 설치 경로에 생성되는 에이전트 로그 폴더입니다.
- nohup.out: 에이전트 실행에 실패했을 때 먼저 확인할 표준 출력 기록입니다.
./startd.sh로 실행하면 에이전트 설치 경로에 생성됩니다.
설정 파일(whatap.conf)이나 JDBC 드라이버를 바꾼 뒤에는 에이전트를 다시 시작하세요.
./stop.sh
./startd.sh
데이터베이스에 접속할 수 없는 경우
JDBC 드라이버가 인증 방식을 지원하지 않는 경우
PSQLException: The authentication type 10 is not supported. Check that you have configured the pg_hba.conf file ...
PostgreSQL 14 이상은 기본 인증 방식으로 scram-sha-256을 사용합니다. jdbc/ 폴더에 드라이버가 없어 에이전트에 포함된 기본 드라이버로 접속하면 이 인증 방식을 지원하지 않아 접속에 실패합니다. jdbc/ 폴더에 PostgreSQL JDBC 42.2.0 이상 드라이버(.jar)를 넣고 에이전트를 다시 시작하세요. JDBC 다운로드
접속 허용 목록(pg_hba.conf)에 에이전트 IP가 없는 경우
FATAL: no pg_hba.conf entry for host "<에이전트 IP>", user "whatap", database "postgres", no encryption
데이터베이스 서버의 pg_hba.conf에 DBX 에이전트를 설치한 서버의 IP를 허용하는 행을 추가하고 설정을 다시 읽어 들이세요. 에이전트는 일부 정보를 수집하기 위해 기본 접속 데이터베이스 외의 데이터베이스에도 접속하므로, 데이터베이스 항목은 all로 설정하는 것을 권장합니다.
host all whatap {AGENT_IP}/32 scram-sha-256
SELECT pg_reload_conf();
데이터베이스 접속 권한이 없는 경우
FATAL: permission denied for database "postgres"
Detail: User does not have CONNECT privilege.
모니터링 계정에 로그에 표시된 데이터베이스의 CONNECT 권한을 부여하세요. whatap.conf에 db를 설정하지 않으면 postgres 데이터베이스에 접속합니다.
grant connect on database postgres to whatap;
비밀번호가 맞지 않는 경우
FATAL: password authentication failed for user "whatap"
에이전트는 종료되지 않고 계속 다시 접속을 시도합니다. uid.sh로 계정 정보를 다시 등록한 뒤 에이전트를 다시 시작하세요.
./uid.sh {DB_USER} {DB_PASSWORD}
일부 데이터가 수집되지 않는 경우
데이터베이스에는 접속했지만 권한이나 확장 모듈이 없으면 해당 데이터만 수집되지 않습니다.
| 증상 | 조치 | 수집되지 않는 데이터 |
|---|---|---|
에이전트 로그: permission denied for function pg_ls_waldir | grant pg_monitor to whatap; 후 에이전트 다시 시작 | WAL 파일 개수 |
에이전트 로그: pg_stat_statements must be loaded via shared_preload_libraries | shared_preload_libraries에 pg_stat_statements를 추가하고 데이터베이스 다시 시작 | PG SQL 통계 |
| 에이전트 로그에는 오류가 없고 PG SQL 통계 화면에 설정 안내가 표시됨 | 접속하는 데이터베이스에서 create extension pg_stat_statements; 실행 후 에이전트 다시 시작 | PG SQL 통계 |
pg_monitor 권한이 없으면 오류 로그 없이 다른 사용자 세션의 상태와 SQL이 <insufficient privilege>로 표시됩니다.
pg_stat_statements 설정 방법은 PG SQL 통계 문서를 참조하세요.
DB 권한 및 에이전트 설정
DB 권한 및 및 에이전트 설정에 따라 데이터가 조회되지 않는 메뉴가 있습니다. 다음 내용을 참고해 필요한 권한을 부여하고 에이전트 옵션을 설정하세요.
모니터링 계정을 whatap으로 생성한 경우의 예시입니다. create user whatap with password 'DBPassword’;
| 메뉴 | DB 옵션 및 권한 | 에이전트 설정 | 비고 |
|---|---|---|---|
| 기본 메뉴 | grant pg_monitor to whatap; | - | DBX 에이전트 v1.6.15 이상 |
| 대시보드 > 슬로우 쿼리 | DB 파라미터:log_min_duration_statement=500(ex. 500ms 이상 소요되는 SQL 기록) DB 권한 grant PG_READ_ALL_SETTINGS to whatap; | xos.confslow_query_interval=30 (기본값 30초)whatap.conf slow_query_log=ON | - |
| 인스턴스 모니터링 > 세션 킬 | grant pg_signal_backend to whatap | - | - |
| 분석 > Top 오브젝트 | grant select on all tables in schema {schema_name} to whatap; | whatap.confpg_object=true | DBX 에이전트 v1.6.15 이상 Bloating, Age 탭의 목록은 권한 및 에이전트 옵션이 설정되어 있어도 임계값(size, ratio)을 넘지 않는 경우 데이터가 조회되지 않을 수 있습니다. |
| 통계/보고서 > 데이터베이스 사이즈 | grant usage on schema {schema_name} to whatap; | whatap.conftables=true | 데이터베이스 사이즈 메뉴 화면 아래에 테이블 사이즈 조회를 위해 필요한 권한입니다. |
| 오브젝트 정보(Object detail) 모달 창 | grant select on all tables in schema {schema_name} to whatap; | - | Top 오브젝트, 데이 터베이스 사이즈, SQL 상세(Plan) 메뉴에서 테이블 이름 클릭 시 뜨는 팝업창입니다. 권한이 없을 경우 Column list가 조회되지 않습니다. |
슬로우 쿼리가 수집되지 않는 경우
PostgreSQL 슬로우 쿼리는 DB 서버에 설치한 XOS 에이전트가 PostgreSQL 로그 파일을 읽어 수집합니다. 설정 방법은 슬로우 쿼리 문서를 참조하세요. 설정 후에도 수집되지 않으면 DBX 에이전트 로그와 XOS 에이전트 로그에서 다음 내용을 확인하세요.
| 로그 | 원인 | 조치 |
|---|---|---|
DBX: whatap.conf: slow_query_log = ON 줄이 없음 | DBX 에이전트의 슬로우 쿼리 수집이 꺼져 있습니다. PostgreSQL의 기본값은 off입니다. | DBX whatap.conf에 slow_query_log=on을 설정하고 DBX 에이전트 다시 시작 |
DBX: log_min_duration_statement: -1 slowLog OFF | 데이터베이스에 슬로우 쿼리 기준값(log_min_duration_statement)이 설정되어 있지 않습니다. | 데이터베이스 설정에 log_min_duration_statement를 0보다 큰 값으로 설정하고 DBX 에이전트 다시 시작 |
DBX: slowLog ON 다음에 log_filename: 줄이 없음 | 모니터링 계정에 로그 경로를 조회할 권한이 없습니다. | grant pg_monitor to whatap; 또는 grant pg_read_all_settings to whatap; 후 DBX 에이전트 다시 시작 |
XOS: [slow_query_pg] stat (<로그 파일 경로>) failed. errno: 2 | 로그에 표시된 경로에 파일이 없습니다. PostgreSQL을 컨테이너로 실행하면 컨테이너 안의 경로가 전달되어 DB 서버(호스트)의 실제 경로와 다를 수 있습니다. | 호스트에서 같은 경로로 접근할 수 있도록 심볼릭 링크를 만드세요. 예: ln -s /data/postgres/data /var/lib/postgresql/data |
DBX: xos.conf slow_query_log ONXOS: ignored (set in xos.conf) | xos.conf에 slow_query= 경로가 설정되어 있으면 DBX 에이전트가 전달한 경로 대신 이 값을 사용합니다. | 경로가 실제 로그 파일과 다르면 경로를 고치거나 slow_query= 줄을 주석 처리하고 XOS 에이전트 다시 시작 |
제약 사항
복수 리전을 단일 프로젝트로 선택 불가
-
와탭 모니터링 서비스 사이트에서 프로젝트 생성 시 지역(Region)은 중복 선택할 수 없으며, 복수의 지역(Region)을 활용하는 경우 별도의 프로젝트를 생성해야 합니다.
-
클라우드 환경과 같이 복수의 지역(Region)에 서버가 존재하는 경우 네트워크 latency 등 성능 정보 수집상의 제약 사항을 회피하기 위해 지역(Region) 단위로 수집 서버를 위치시켜야 합니다.
-
와탭은 고객 요구 사항에 부응하기 위해 지역(Region)별로 수집 서버를 구축합니다.
에이전트 이름(ONAME) 중복 사용 불가
와탭 DBX 모니터링은 에이전트의 식별을 위해 에이전트의 IP 주소와 포트(Port) 정보를 이용합니다. 사용자 환경의 모니터링할 데이터베이스 서버가 동일 IP, 동일 포트(Port)를 사용한다면 와탭 서버에서 해당 서버 인스턴스를 구분할 수 없습니다.