직접 설치
와탭 데이터베이스 모니터링 서비스 이용을 위한 기본 설치 방법을 안내합니다.
구성도 확인
DBX 에이전트는 별도 서버에 설치하거나 DB 서버에 설치할 수 있습니다. 설치할 방식을 선택하고 구성과 방화벽을 확인하세요.
| 별도 서버에 설치 | DB 서버에 같이 설치 |
|---|---|
|
|
계정 생성
-
권한을 가진 계정이 있다면 이 단계를 생략하고 다음 단계로 넘어가세요.
-
예시 코드에서
DB_User는 DB 사용자 계정 이름입니다. 사용자가 이용하는 사용자 계정 이름으로 변경하세요. -
예시 코드의
DB_Password에는 사용자 비밀번호를 입력하세요. -
권한이 없는 계정은 모니터링이 정상적으로 이루어지지 않을 수 있습니다.
-
리플리케이션 구조의 경우 계정 생성 및 권한 부여는 Master DB에서만 수행해야 합니다. (Slave DB에서 수행할 경우 복제가 깨질 수 있습니다.)
- MySQL
- MariaDB
create user DB_User identified by 'DB_PASSWORD'; # 원하는 password를 입력하세요.
grant process on *.* to DB_User;
grant select on performance_schema.* to DB_User;
grant show databases on *.* to DB_User;
MySQL 8.0 이상에서 락 정보를 모니터링하려면 다음 권한이 반드시 필요합니다.
grant select on `sys`.`sys_config` TO DB_User;
grant select on `sys`.`innodb_lock_waits` TO DB_User;
grant execute on function `sys`.`format_statement` TO DB_User;
grant execute on function `sys`.`quote_identifier` TO DB_User;
grant execute on function `sys`.`sys_get_config` TO DB_User;
기능 및 사용 환경에 따라 추가 권한을 부여하세요.
-
모든 테이블 정보를 수집할 경우
grant select on *.* to DB_User; -
특정 DB의 테이블만 모니터링하는 경우
grant select on {DB_NAME}.* to DB_User; -
Replication 사용할 경우
grant replication client on *.* to DB_User;
grant replication slave on *.* to DB_User; -
Kill session 기능을 사용할 경우
grant super on *.* to DB_User; -
AWS RDS 환경에서 kill session 기능을 사용할 경우
grant execute on procedure mysql.rds_kill to DB_User;
create user DB_User identified by 'DB_PASSWORD'; # 원하는 password를 입력하세요.
grant process on *.* to DB_User;
grant select on performance_schema.* to DB_User;
grant show databases on *.* to DB_User;
기능 및 사용 환경에 따라 추가 권한을 부여하세요.
-
모든 테이블 정보를 수집할 경우
grant select on *.* to DB_User; -
특정 DB의 테이블만 모니터링하는 경우
grant select on {DB_NAME}.* to DB_User; -
Replication 사용할 경우
below MariaDB 10.5.1grant replication client, replication slave on *.* to DB_User;MariaDB 10.5.2 ~ 10.5.8grant replication master admin, replication slave admin, binlog monitor on *.* to DB_User;MariaDB 10.5.9 or latergrant replication master admin, replica monitor, binlog monitor on *.* to DB_User;노트AWS RDS MariaDB의 경우 Replication 정보 조회는 10.5 버전 미만까지 지원합니다.
-
Kill session 기능을 사용할 경우
grant super on *.* to DB_User; -
AWS RDS 환경에서 kill session 기능 을 사용할 경우
grant execute on procedure mysql.rds_kill to DB_User;
권한에 따른 지원 기능 살펴보기
기본 권한 외의 권한은 사용자의 환경에 따라 부여하지 않아도 됩니다. 단, 일부 기능이 동작하지 않을 수 있습니다.
| 권한 | command | 메뉴 및 기능 | 상세 내역 |
|---|---|---|---|
| 기본 권한 | grant process on *.* to whatap; | 액티브 세션 수집 / 락 트리 / 데드락 | 다른 계정에 속한 스레드 정보 표시를 위한 권한, show engine 수행 |
grant select on performance_schema.* to whatap; | 액티브 세션 수집 / 락 트리 / MYSQL SQL 통계 | 개별 권한 부여 시 다음 표 내용 참조 | |
grant show databases on *.* to whatap; | 인스턴스 목록 등 | 데이터베이스 이름 표시 | |
| 상세 권한 | grant select on *.* to whatap;또는 grant select on {DB_NAME}.{TABLE_NAME} to whatap; | 데이터베이스 사이즈 / 테이블 사이즈 증감 / Object detail / 플랜 조회 | MySQL은 해당 테이블에 대한 SELECT 권한이 없으면 데이터베이스 사이즈, Object detail, 플랜 조회 기능을 지원하지 않습니다. |
| replication | grant replication client on *.* to whatap; | 인스턴스 목록 의 S 표시 / replication 정보 수집 | SHOW MASTER STATUS, SHOW SLAVE STATUS |
grant replication slave on *.* to whatap; | 인스턴스 목록의 M 표시 / replication 정보 수집 | SHOW SLAVE HOSTS | |
| 세션 킬 | grant super on *.* to whatap; | 액티브 세션 리스트에서 세션 킬 기능 | 다른 계정에 속한 스레드 종료 |
grant execute on procedure mysql.rds_kill to DB_User; | AWS RDS의 경우 세션 킬 기능 | - |
performance_schema.* 대신 다음 권한을 개별로 부여해도 됩니다.
| 권한 | command | 비고 |
|---|---|---|
| 액티브 세션 / 락 트리 | performance_schema.data_lock_waits | MySQL 8 버전부터 |
performance_schema.data_locks | ||
performance_schema.threads | - | |
performance_schema.metadata_locks | MariaDB 10.5 버전부터 | |
| Wait event 정보 | performance_schema.events_waits_summary_global_by_event_name | - |
| SQL 통계 정보 | performance_schema.events_statements_summary_by_digest | - |
| Wait 지표 이름 | performance_schema.setup_instruments | - |
IAM 인증으로 접속하기
IAM 인증 설정 방법 보기
AWS RDS·Aurora 환경에서는 DB 비밀번호 대신 AWS IAM 인증 토큰으로 접속할 수 있습니다. PostgreSQL, MySQL, MariaDB에서 사용할 수 있으며 Oracle, SQL Server, DB2는 지원하지 않습니다.
비밀번호 방식을 사용한다면 이 단계를 건너뛰세요.
1단계. 접속 계정 준비하기
IAM 인증으로 접속할 계정을 만들고 SSL 접속을 요구하도록 설정하세요.
CREATE USER 'DB_User'@'%' IDENTIFIED WITH AWSAuthenticationPlugin AS 'RDS';
ALTER USER 'DB_User'@'%' REQUIRE SSL;
다음 권한은 모니터링에 필요한 권한입니다. IAM 인증과는 무관하며, 비밀번호 방식에서도 동일하게 부여합니다.
GRANT SELECT, PROCESS, REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'DB_User'@'%';
2단계. whatap.conf 설정하기
whatap.conf 파일에 다음 옵션을 추가하세요.
aws_iam_auth=true
aws_region=ap-northeast-2
db_ssl=true
db_user={db_user} # 1단계에서 만든 계정
connect_option=?sslmode=require # PostgreSQL만 필수
AssumeRole 방식을 사용한다면 aws_arn 옵션을 추가하세요. EC2 Role 방식은 옵션을 추가하지 않습니다.
aws_arn=arn:aws:iam::{ACCOUNT}:role/{ROLE}
3단계. AWS 사전 설정하기
IAM 인증 활성화
RDS 콘솔에서 대상 DB를 선택하세요. 수정 > 데이터베이스 인증 메뉴에서 암호 및 IAM 데이터베이스 인증 옵션을 선택하고, 즉시 적용 옵션을 선택한 다음 저장 버튼을 클릭하세요.
IAM 정책 생성
IAM 콘솔에서 정책 > 정책 생성 > JSON 탭을 선택하고 다음 정책을 입력하세요. { } 부분은 사용하는 값으로 바꾸세요.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["rds-db:connect"],
"Resource": [
"arn:aws:rds-db:{REGION}:{ACCOUNT}:dbuser:db-{RESOURCE_ID}/{DB_USER}"
]
}
]
}
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["rds-db:connect"],
"Resource": [
"arn:aws:rds-db:{REGION}:{ACCOUNT}:dbuser:cluster-{RESOURCE_ID}/{DB_USER}"
]
}
]
}
여러 인스턴스를 한 번에 허용하려면 와일드카드를 사용 하세요.
"Resource": [
"arn:aws:rds-db:*:{ACCOUNT}:dbuser:db-*/{DB_USER}",
"arn:aws:rds-db:*:{ACCOUNT}:dbuser:cluster-*/{DB_USER}"
]
4단계. Role 설정하기
앞에서 만든 정책을 Role에 부착하고 에이전트에 연결합니다. 운영 환경에서는 EC2 Role 방식을 권장합니다. 액세스 키를 저장하지 않아도 됩니다.
- EC2 Role
- AssumeRole
-
신뢰할 수 있는 서비스를 EC2로 지정해 IAM Role을 만드세요.
-
앞에서 만든 정책을 Role에 부착하세요.
-
에이전트를 실행하는 EC2 인스턴스에 Role을 연결하세요. 자세한 방법은 AWS 문서를 참조하세요.
교차 계정 환경 등 위임이 필요한 경우에 사용합니다.
-
위임받을 Role을 만들고 앞에서 만든 정책을 부착하세요.
-
에이전트가 실행되는 EC2의 Role이
sts:AssumeRole을 수행할 수 있도록 신뢰 관계를 설정하세요. 자세한 방법은 AWS 문서를 참조하세요. -
whatap.conf의
aws_arn옵션에 이 Role의 ARN을 지정하세요.
DBX 에이전트 다운로드
DBX 에이전트 파일을 다운로드하세요. 다음 두 가지 방법을 이 용하세요.
-
wget명령어를 이용해 다운로드할 수 있습니다.BASHwget -O whatap.agent.database.tar.gz "https://service.whatap.io/download/dbx_agent?type=mysql&format=tar.gz" -
명령어로 다운로드할 수 없다면 와탭 모니터링 서비스 화면에서 다운로드 버튼을 선택하세요.
DBX 에이전트 파일을 다운로드한 다음 압축을 해제하세요.
tar -zxvf whatap.agent.database.tar.gz
보안 설정으로 인해 tar 형식의 파일을 다운로드할 수 없는 사용자를 위해 ZIP 형식의 파일도 함께 제공합니다. 설치 화면에서 .zip 다운로드 버튼을 선택하세요.
DBX 에이전트 설정
에이전트 설치 화면의 안내에 따라 에이전트를 설정하세요. 화면에 각 항목마다 필요한 정보를 입력하면 설정 내용 및 명령어를 자동 완성할 수 있습니다.
빠른 설정 가이드
setup.sh 스크립트로 간편하게 설정할 수 있습니다. [설정 가이드 보기]
whatap.conf 설정
압축을 해제한 폴더로 이동해 whatap.conf 파일을 확인하세요. whatap.conf 파일에 프로젝트 액세스 키 정보 및 와탭 서버 정보, db 접속 정보를 입력하세요.
기본 설정
license={AccessKey}
whatap.server.host=13.124.11.223/13.209.172.35 # WhaTap server information
dbms=mysql
db=mysql
db_ip={DB_Server_IP}
db_port={DB_Server_Port}

