# 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: ```shell 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 ```yml - hosts: servers become: true roles: - role: dsk_bot.datasaker vars: datasaker_api_key: "" datasaker_agents: ["dsk-node-agent","dsk-log-agent"] ``` ###### Docker Agent Default Install Example ```yml - hosts: servers become: true roles: - role: dsk_bot.datasaker vars: datasaker_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) ```yml - hosts: servers become: true roles: - role: dsk_bot.datasaker vars: datasaker_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) ```yml - hosts: servers become: true roles: - role: dsk_bot.datasaker vars: datasaker_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: ```yml - hosts: servers become: true roles: - role: dsk_bot.datasaker vars: datasaker_agents: [""] uninstall: True datasaker_clean: True ```