Files
datasaker-agent-ansible/README.md
havelight-ee 50a628b587 update
2023-06-23 11:38:35 +09:00

12 KiB

Ansible Datasaker Role

Ansible을 이용하여 Datasaker Agent를 설치할 수 있습니다.

Requirements

  • Ansible v2.6+가 필요합니다.
  • 대부분의 데비안 리눅스 배포판을 지원합니다.
  • Amazon Linux 2 배포판을 지원합니다.

Installation

Ansible Galaxy에서 Datasaker role을 설치합니다.

ansible-galaxy install dsk_bot.datasaker

에이전트를 배포하기 위하여 Ansible playbook을 작성합니다.

아래는 기본 설치에 대한 예시입니다.

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"] 

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"]

필수 설정

변수명 설명
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
(Default) 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
(Default) dsk-docker-node-agent

Docker Container Agent 설정

변수명 설명
datasaker_docker_config_path Datasaker Global Config 위치 설정.
(Default) ~/.datasaker
datasaker_docker_global_config Datasaker Global Config 이름 설정.
(Default) ~/.datasaker/config.yml
docker_default_path Datasaker Docker Log Agent에 마운트할 Docker Log 수집 위치 설정.
(Default) /var/lib/docker/containers/
datasaker_docker_path Datasaker Docker Agent Container 위치 설정.
(Default) /var/datasaker
container_agent_restart_policy dsk-container-agent Container Restart Policy 설정.
(Default) always
node_agent_restart_policy dsk-node-agent Container Restart Policy 설정.
(Default) always
trace_agent_restart_policy dsk-trace-agent Container Restart Policy 설정.
(Default) always
log_agent_restart_policy dsk-log-agent Container Restart Policy 설정.
(Default) always
postgres_agent_restart_policy dsk-postgres-agent Container Restart Policy 설정.
(Default) always
plan_postgres_agent_restart_policy dsk-plan-postgres-agent Container Restart Policy 설정.
(Default) always
container_agent_log_level dsk-container-agent Log Level 설정.
(Default) INFO
node_agent_log_level dsk-node-agent Log Level 설정.
(Default) INFO
trace_agent_log_level dsk-trace-agent Log Level 설정.
(Default) INFO
log_agent_log_level dsk-log-agent Log Level 설정.
(Default) INFO
postgres_agent_log_level dsk-postgres-agent Log Level 설정.
(Default) INFO
plan_postgres_agent_log_level dsk-plan-postgres-agent Log Level 설정.
(Default) INFO

Datasaker Agent 상세 설정

  • Host Agent 와 Docker Container Agent는 같은 설정값을 사용합니다.
변수명 설명
trace_sampling_rate dsk-trace-agent 에서 collector에 적용되는 샘플링 비율 설정.
- 100 이상일 때 모든 데이터가 수집.
(Default) 10
log_collects dsk-log-agent 에서 로그 수집 컬렉션 구성 설정. 리스트의 각 항목에는 아래 항목들이 포함.
log_collects[*].paths dsk-log-agent 에서 로그 수집을 위한 경로 설정.
(Default) [host-agent]=/var/log/*.log, [docker-agent]=/var/log/sample/*/*.log
log_collects[*].exclude_paths dsk-log-agent 에서 로그 컬렉션에서 제외할 경로 설정. 값을 지정하지 않으면 수집 경로에 설정한 모든 로그 수집.
(Default) None
log_collects[*].keywords dsk-log-agent 에서 로그를 필터링하기 위한 키워드 설정. 값을 지정하지 않으면 모든 로그 수집.
(Default) None
log_collects[*].tag dsk-log-agent 에서 사용자 설정 태그.
(Default) Default
log_collects[*].service.name dsk-log-agent 에서 수집하는 서비스명 설정.
(Default) default
log_collects[*].service.category dsk-log-agent 에서 수집하는 서비스 분류값 설정.
app database syslog etc (Default) etc
log_collects[*].service.type dsk-log-agent 에서 수집하는 서비스 타입 설정.
postgres mysql java etc (Default) etc
log_collects[*].service.address dsk-log-agent 에서 수집하는 서비스 타입이 Database인 경우에 작성
- 데이터베이스 host 및 port 정보
postgres_user_name dsk-postgres-agent에 Postgres user ID 설정.
(Default) None
postgres_user_password dsk-postgres-agent에 Postgres user password 설정.
(Default) None
postgres_database_address dsk-postgres-agent에 Postgres address 설정.
(Default) None
postgres_database_port dsk-postgres-agent에 Postgres port 설정.
(Default) None
plan_postgres_user_name dsk-plan-postgres-agent에 Plan Postgres user ID 설정.
(Default) None
plan_postgres_user_password dsk-plan-postgres-agent에 Plan Postgres user password 설정.
(Default) None
plan_postgres_database_address dsk-plan-postgres-agent에 Plan Postgres address 설정.
(Default) None
plan_postgres_database_port dsk-plan-postgres-agent에 Plan Postgres port 설정.
(Default) None
plan_postgres_database_name dsk-plan-postgres-agent에 Plan Postgres database 설정.
(Default) None
plan_postgres_scrape_interval dsk-plan-postgres-agent에 Plan Postgres scrape interval 설정.
(Default) 30s
plan_postgres_scrape_timeout dsk-plan-postgres-agent에 Plan Postgres scrape timeout 설정.
(Default) 5s
plan_postgres_slow_query_standard dsk-plan-postgres-agent에 Plan Postgres slow query standard 설정.
(Default) 5s
plan_postgres_executor_number dsk-plan-postgres-agent에 Plan Postgres executor number 설정.
(Default) 10
plan_postgres_sender_number dsk-plan-postgres-agent에 Plan Postgres sender number 설정.
(Default) 10
plan_postgres_activity_query_buffer dsk-plan-postgres-agent에 Plan Postgres activity query buffer 설정.
(Default) 50
plan_postgres_plan_sender_buffer dsk-plan-postgres-agent에 Plan Postgres plan sender buffer 설정.
(Default) 50

Ansible Playbook 상세 설정 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-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
    log_collects:
      - paths:
          - "/var/log/sample/*/*.log"
        exclude_paths: []
        keywords: []
        tag: "Default"
        service:
          name: "default"
          category: "etc"
          type: "etc"
      - paths:
          - "/var/log/sample/b4d5ac015a5a*/*.log"
        service:
          name: "docker-test"
          category: "database"
          type: "postgres"
          address: "0.0.0.0:5432"

Uninstallation

Datasaker Agent를 제거 할 수 있습니다. datasaker_clean은 uninstall이 True로 설정되어야 합니다.

변수명 설명
uninstall datasaker_agents 또는 datasaker_docker_agents 에 작성된 Agent만 제거.
(Default) False
datasaker_clean datasaker_agents 또는 datasaker_docker_agents 에 작성된 Agent 와 생성 된 폴더 및 설정 파일까지 제거.
(Default) False

Datasaker Agents Uninstall Example

- hosts: servers
  become: true
  roles:
    - role: dsk_bot.datasaker
  vars:
    datasaker_agents: ["<AGENT_NAME>"]
    uninstall: True
    datasaker_clean: True