Files
datasaker-agent-ansible/README_en.md
2023-08-02 11:04:04 +09:00

12 KiB

Ansible Datasaker Role

The Ansible Datasaker role installs and configures the Datasaker Agent and integrations.

Setup

Requirements

  • Requires Ansible v2.6+.
  • Supports most Debian Linux distributions.
  • Supports most RedHat Linux distributions.
  • Supports Amazon Linux 2 distributions.

Installation

Install the [Datasaker role] from Ansible Galaxy on your Ansible server:

ansible-galaxy install dsk_bot.datasaker

To deploy the Datasaker Agent on hosts, add the Datasaker role and your API key to your playbook:

*** When installing dsk-log-agent, fluent-bit is automatically installed. ***

In this example:

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

Base Role variables

Variable Description Default
datasaker_api_key Your Datasaker API key.
datasaker_agents Set to Datasaker Host Agent.
dsk-node-agent dsk-trace-agent dsk-log-agent dsk-postgres-agent dsk-plan-postgres-agent
dsk-node-agent
datasaker_docker_agents Set to Datasaker Docker Agent.
dsk-docker-node-agent dsk-docker-trace-agent dsk-docker-log-agent dsk-docker-postgres-agent
dsk-docker-node-agent

Docker Agent Role variables

Variable Description Default
datasaker_docker_config_path Override the datasaker global config path.
~/.datasaker
datasaker_docker_global_config Override the datasaker global config file name.
~/.datasaker/config.yml
docker_default_path Override the docker containers path.
/var/lib/docker/containers/
datasaker_docker_path Override the datasaker docker agent containers path.
/var/datasaker
container_agent_restart_policy Override the restart policy for a dsk-container-agent container
always
node_agent_restart_policy Override the restart policy for a dsk-node-agent container
always
trace_agent_restart_policy Override the restart policy for a dsk-trace-agent container
always
log_agent_restart_policy Override the restart policy for a dsk-log-agent container
always
postgres_agent_restart_policy Override the restart policy for a dsk-postgres-agent container
always
plan_postgres_agent_restart_policy Override the restart policy for a dsk-plan-postgres-agent container
always
container_agent_log_level Override the dsk-container-agent log level
INFO
node_agent_log_level Override the dsk-node-agent log level
INFO
trace_agent_log_level Override the dsk-trace-agent log level
INFO
log_agent_log_level Override the dsk-log-agent log level
INFO
postgres_agent_log_level Override the dsk-postgres-agent log level
INFO
plan_postgres_agent_log_level Override the dsk-plan-postgres-agent log level
INFO

Agents Setting Role variables

Variable Description Default
trace_sampling_rate Override The dsk-trace-agent sampling rate applied to the collector.
- When set to 100 or higher, all data is collected.
10
logs[*].service Defines the service name of the log collection target. default
logs[*].tag Sets the tag of the log collection target. None
logs[*].keyword Sets the keyword for log collection. Only logs that include the keyword are collected. None
logs[*].multiline.format Sets the multiline log format (e.g.: go, java, ruby, python). None
logs[*].multiline.pattern Sets the multiline log pattern. (e.g.: ^\d{4}-\d{2}-\d{2}). None
logs[*].masking[*].pattern Sets the log pattern to be masked. (e.g.: ^\d{4}-\d{2}-\d{2}) User-defined regular expression patterns are possible. None
logs[*].masking[*].replace Sets the string that the masking pattern will be replaced with. (e.g.: *****). None
logs[*].collect.type Sets the method of log collection (Choose one from file, driver). file
logs[*].collect.category Sets the service category (Choose one from app, database, syslog, etc). etc
logs[*].collect.address Sets the database host and port information (required if service category is database). None
logs[*].collect.file.paths Sets the paths for log collection. Example: /var/log/sample/.log. ['/var/log/*.log']
logs[*].collect.file.exclude_paths Sets the paths to be excluded from log collection. None
postgres_user_name Enter the Postgres user ID.
None
postgres_user_password Enter the Postgres user password.
None
postgres_database_address Enter the Postgres address.
None
postgres_database_port Enter the Postgres port.
None
plan_postgres_user_name Enter the Plan Postgres user ID.
None
plan_postgres_user_password Enter the Plan Postgres user password.
None
plan_postgres_database_address Enter the Plan Postgres address.
None
plan_postgres_database_port Enter the Plan Postgres port.
None
plan_postgres_database_name Enter the Plan Postgres database.
None
plan_postgres_scrape_interval Override the Plan Postgres scrape interval
30s
plan_postgres_scrape_timeout Override the Plan Postgres scrape timeout
5s
plan_postgres_slow_query_standard Override the Plan Postgres slow query standard
5s
plan_postgres_executor_number Override the Plan Postgres executor number
10
plan_postgres_sender_number Override the Plan Postgres sender number
10
plan_postgres_activity_query_buffer Override the Plan Postgres activity query buffer
50
plan_postgres_plan_sender_buffer Override the Plan Postgres plan sender buffer
50

In this example:

Ansible Playbook Setting Example (Linux)
- hosts: servers
  become: true
  roles:
    - role: dsk_bot.datasaker
  vars:
    datasaker_api_key: "<YOUR_API_KEY>"
    datasaker_docker_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
              - /datasaker/log/*.log
Ansible Playbook Setting 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
              - /datasaker/log/*.log

Uninstallation

Datasaker Agent can be uninstalled. For this, datasaker_clean should be set to True.

Variable Description Default
uninstall Only removes the agents specified in datasaker_agents or datasaker_docker_agents.
False
datasaker_clean Removes the agents specified in datasaker_agents or datasaker_docker_agents along with any generated folders and configuration files.
False

In this example:

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