a892ef6a878a03dbb1750ab5807d49079735e6f2
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 |
custom_log_volume |
Volume mount in Docker Log Agent. | /var/lib/docker/containers |
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_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 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
- /var/lib/docker/containers/*/*.log
custom_log_volume:
- /var/log/
- /var/lib/docker/containers
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
Description
Languages
Jinja
100%