Ansible을 사용한 설치 방법
Ansible Datasaker Role
Ansible을 이용하여 Datasaker Agent를 설치할 수 있습니다.
Requirements
- Ansible v2.6+가 필요합니다.
- 대부분의 Debian Linux 배포판을 지원합니다.
- 대부분의 Redhat Linux 배포판을 지원합니다.
- Amazon Linux 2 배포판을 지원합니다.
Installation
Ansible Galaxy에서 Datasaker role을 설치합니다.
ansible-galaxy install dsk_bot.datasaker
에이전트를 배포하기 위하여 Ansible playbook을 작성합니다.
*dsk-log-agent
설치 시 fluent-bit
이 자동으로 설치됩니다.
아래는 기본 설치에 대한 예시입니다.
Host Agent Default Install Example
- hosts: servers
become: true
roles:
- role: dsk_bot.datasaker
vars:
datasaker_api_key: "<YOUR_API_KEY>"
datasaker_agents: ["dsk-node-agent","dsk-log-agent"]
Docker Agent Default Install Example
- hosts: servers
become: true
roles:
- role: dsk_bot.datasaker
vars:
datasaker_api_key: "<YOUR_API_KEY>"
datasaker_docker_agents: ["dsk-docker-node-agent","dsk-docker-log-agent"]
필수 설정
변수명 | 설명 | Default |
---|---|---|
datasaker_api_key |
API Key를 입력합니다. | |
datasaker_agents |
각 호스트에 설치하고자 하는 Host Agent 리스트입니다. dsk-node-agent dsk-trace-agent dsk-log-agent dsk-postgres-agent dsk-plan-postgres-agent |
dsk-node-agent |
datasaker_docker_agents |
각 호스트에 설치하고자 하는 Docker Container Agent 리스트입니다. Docker Container Agents를 넣으면 Host Agent 설치는 자동으로 비활성화 됩니다. dsk-docker-node-agent dsk-docker-trace-agent dsk-docker-log-agent dsk-docker-postgres-agent |
dsk-docker-node-agent |
Docker Container Agent 설정
변수명 | 설명 | Default |
---|---|---|
datasaker_docker_config_path |
Datasaker Global Config 위치 설정. |
~/.datasaker |
datasaker_docker_global_config |
Datasaker Global Config 이름 설정. |
~/.datasaker/config.yml |
docker_default_path |
Datasaker Docker Log Agent에 마운트할 Docker Log 수집 위치 설정. |
/var/lib/docker/containers/ |
datasaker_docker_path |
Datasaker Docker Agent Container 위치 설정. |
/var/datasaker |
container_agent_restart_policy |
dsk-container-agent Container Restart Policy 설정. |
always |
node_agent_restart_policy |
dsk-node-agent Container Restart Policy 설정. |
always |
trace_agent_restart_policy |
dsk-trace-agent Container Restart Policy 설정. |
always |
log_agent_restart_policy |
dsk-log-agent Container Restart Policy 설정. |
always |
postgres_agent_restart_policy |
dsk-postgres-agent Container Restart Policy 설정. |
always |
plan_postgres_agent_restart_policy |
dsk-plan-postgres-agent Container Restart Policy 설정. |
always |
container_agent_log_level |
dsk-container-agent Log Level 설정. |
INFO |
node_agent_log_level |
dsk-node-agent Log Level 설정. |
INFO |
trace_agent_log_level |
dsk-trace-agent Log Level 설정. |
INFO |
log_agent_log_level |
dsk-log-agent Log Level 설정. |
INFO |
postgres_agent_log_level |
dsk-postgres-agent Log Level 설정. |
INFO |
plan_postgres_agent_log_level |
dsk-plan-postgres-agent Log Level 설정. |
INFO |
Datasaker Agent 상세 설정
- Host Agent 와 Docker Container Agent는 같은 설정값을 사용합니다.
변수명 | 설명 | Default |
---|---|---|
trace_sampling_rate |
dsk-trace-agent 에서 collector에 적용되는 샘플링 비율 설정.- 100 이상일 때 모든 데이터가 수집. |
10 |
logs[*].service |
로그 수집 대상의 서비스 이름 설정. | default |
logs[*].tag |
로그 수집 대상의 태그 설정. | None |
logs[*].keyword |
로그 수집 키워드 설정. 키워드가 포함된 로그만 수집. | None |
logs[*].multiline.format |
멀티라인 로그 포맷 설정 (예 : go, java, ruby, python). | None |
logs[*].multiline.pattern |
멀티라인 로그 패턴 설정. (예 : ^\d{4}-\d{2}-\d{2}). | None |
logs[*].masking[*].pattern |
마스킹할 로그 패턴 설정. (예 : ^\d{4}-\d{2}-\d{2}) 사용자 커스텀 정규식 패턴 사용 가능. | None |
logs[*].masking[*].replace |
마스킹 패턴이 대체될 문자열 설정. (예 : ******). | None |
logs[*].collect.type |
로그 수집 방법 설정 (file , driver 중 하나의 값을 작성). |
file |
logs[*].collect.category |
서비스 분류 설정 (app , database , syslog , etc 중 하나의 값을 작성). |
etc |
logs[*].collect.address |
데이터베이스 host 및 port 정보 설정 (서비스 분류가 database인 경우 설정). | None |
logs[*].collect.file.paths |
로그 수집 대상 경로 설정. 예 : /var/log/sample/*.log. | ['/var/log/*.log'] |
logs[*].collect.file.exclude_paths |
로그 수집 제외 대상 경로 설정. | None |
custom_log_volume |
Docker 사용 시 수집할 로그가 있는 경로 마운트. | /var/lib/docker/containers/ |
postgres_user_name |
dsk-postgres-agent 에 Postgres user ID 설정. |
None |
postgres_user_password |
dsk-postgres-agent 에 Postgres user password 설정. |
None |
postgres_database_address |
dsk-postgres-agent 에 Postgres address 설정. |
None |
postgres_database_port |
dsk-postgres-agent 에 Postgres port 설정. |
None |
plan_postgres_user_name |
dsk-plan-postgres-agent 에 Plan Postgres user ID 설정. |
None |
plan_postgres_user_password |
dsk-plan-postgres-agent 에 Plan Postgres user password 설정. |
None |
plan_postgres_database_address |
dsk-plan-postgres-agent 에 Plan Postgres address 설정. |
None |
plan_postgres_database_port |
dsk-plan-postgres-agent 에 Plan Postgres port 설정. |
None |
plan_postgres_database_name |
dsk-plan-postgres-agent 에 Plan Postgres database 설정. |
None |
plan_postgres_scrape_interval |
dsk-plan-postgres-agent 에 Plan Postgres scrape interval 설정. |
30s |
plan_postgres_scrape_timeout |
dsk-plan-postgres-agent 에 Plan Postgres scrape timeout 설정. |
5s |
plan_postgres_slow_query_standard |
dsk-plan-postgres-agent 에 Plan Postgres slow query standard 설정. |
5s |
plan_postgres_executor_number |
dsk-plan-postgres-agent 에 Plan Postgres executor number 설정. |
10 |
plan_postgres_sender_number |
dsk-plan-postgres-agent 에 Plan Postgres sender number 설정. |
10 |
plan_postgres_activity_query_buffer |
dsk-plan-postgres-agent 에 Plan Postgres activity query buffer 설정. |
50 |
plan_postgres_plan_sender_buffer |
dsk-plan-postgres-agent 에 Plan Postgres plan sender buffer 설정. |
50 |
Ansible Playbook 상세 설정 Example (Linux)
- hosts: servers
become: true
roles:
- role: dsk_bot.datasaker
vars:
datasaker_api_key: "<YOUR_API_KEY>"
datasaker_agents:
- "dsk-node-agent"
- "dsk-trace-agent"
- "dsk-log-agent"
- "dsk-postgres-agent"
postgres_user_name: sample
postgres_user_password: 1q2w3e4r
postgres_database_address: 0.0.0.0
postgres_database_port: 5432
plan_postgres_user_name: sample
plan_postgres_user_password: 1q2w3e4r
plan_postgres_database_address: 0.0.0.0
plan_postgres_database_name: sample
plan_postgres_database_port: 5432
logs:
- collect:
type: file
file:
paths:
- /var/log/*.log
Ansible Playbook 상세 설정 Example (Docker)
- hosts: servers
become: true
roles:
- role: dsk_bot.datasaker
vars:
datasaker_api_key: "<YOUR_API_KEY>"
datasaker_docker_agents:
- "dsk-docker-node-agent"
- "dsk-docker-trace-agent"
- "dsk-docker-log-agent"
- "dsk-docker-postgres-agent"
postgres_user_name: sample
postgres_user_password: 1q2w3e4r
postgres_database_address: 0.0.0.0
postgres_database_port: 5432
plan_postgres_user_name: sample
plan_postgres_user_password: 1q2w3e4r
plan_postgres_database_address: 0.0.0.0
plan_postgres_database_name: sample
plan_postgres_database_port: 5432
logs:
- collect:
type: file
file:
paths:
- /var/log/*.log
- /var/lib/docker/containers/*/*.log
custom_log_volume:
- /var/log/
- /var/lib/docker/containers
Uninstallation
Datasaker Agent를 제거 할 수 있습니다.
datasaker_clean은 uninstall이 True
로 설정되어야 합니다.
변수명 | 설명 | Default |
---|---|---|
uninstall |
datasaker_agents 또는 datasaker_docker_agents 에 작성된 Agent만 제거. |
False |
datasaker_clean |
datasaker_agents 또는 datasaker_docker_agents 에 작성된 Agent 와 생성 된 폴더 및 설정 파일까지 제거. |
False |
Datasaker Agents Uninstall Example
- hosts: servers
become: true
roles:
- role: dsk_bot.datasaker
vars:
datasaker_agents: ["<AGENT_NAME>"]
uninstall: True
datasaker_clean: True