Ansible Role linuxfabrik.lfops.telegraf¶
This role installs and configures Telegraf.
Available since LFOps 2.0.0.
Dependent Roles¶
Any LFOps playbook that installs this role runs these for you. Optional ones can be disabled via the playbook's skip variables.
- The official InfluxDB repository must be enabled (role: linuxfabrik.lfops.repo_influxdb).
Tags¶
telegraf
- Installs and configures telegraf server.
- Triggers: telegraf.service restart.
telegraf:state
- Manages the state of the telegraf server.
- Triggers: none.
Optional Role Variables¶
telegraf__agent_interval
- Default data collection interval for all inputs.
- Type: String.
- Default:
'10s'
telegraf__conf__host_var / telegraf__conf__group_var
- Configurations to deploy to
/etc/telegraf/telegraf.d/. - Type: List of dictionaries.
- Default:
[] -
Subkeys:
-
filename:- Mandatory. Destination filename. Normally equal to the name of the source
templateused. Will be suffixed with.conf. - Type: String.
- Mandatory. Destination filename. Normally equal to the name of the source
-
raw:- Optional. Raw content that should be part of the config. Only used when
template: 'raw'. - Type: String.
- Default: unset
- Optional. Raw content that should be part of the config. Only used when
-
state:- Optional. Either
presentorabsent. - Type: String.
- Default:
'present'
- Optional. Either
-
template:- Mandatory. Which template to use for the config. Possible options:
raworgraylog. - Type: String.
- Mandatory. Which template to use for the config. Possible options:
-
username:- Optional. Username. Set this to the Graylog access token when using
template: 'graylog'. - Type: String.
- Default: unset
- Optional. Username. Set this to the Graylog access token when using
-
by_role:- Optional. Name of the role that generated this config (for documentation purposes in the generated file).
- Type: String.
- Default: unset
-
telegraf__inputs_cpu_enable
- Read metrics about cpu usage.
- Type: Bool.
- Default:
true
telegraf__inputs_disk_enable
- Read metrics about disk usage by mount point.
- Type: Bool.
- Default:
true
telegraf__inputs_diskio_enable
- Read metrics about disk IO by device.
- Type: Bool.
- Default:
true
telegraf__inputs_kernel_enable
- Get kernel statistics from
/proc/stat. - Type: Bool.
- Default:
true
telegraf__inputs_mem_enable
- Read metrics about memory usage.
- Type: Bool.
- Default:
true
telegraf__inputs_net_enable
- Gather metrics about network interfaces.
- Type: Bool.
- Default:
false
telegraf__inputs_processes_enable
- Get the number of processes and group them by status.
- Type: Bool.
- Default:
true
telegraf__inputs_swap_enable
- Read metrics about swap memory usage.
- Type: Bool.
- Default:
true
telegraf__inputs_system_enable
- Read metrics about system load & uptime.
- Type: Bool.
- Default:
true
telegraf__inputs_vsphere_enable
- Read metrics from one or many vCenters.
- Type: Bool.
- Default:
false
telegraf__inputs_vsphere_password
- Password for vSphere authentication.
- Type: String.
- Default:
''
telegraf__inputs_vsphere_username
- Username for vSphere authentication.
- Type: String.
- Default:
''
telegraf__inputs_vsphere_vcenters
- vCenter URLs to be monitored.
- Type: List.
- Default:
[]
telegraf__outputs_influxdb_database
- The target database for metrics; will be created as needed. For UDP url endpoint database needs to be configured on server side.
- Type: String.
- Default:
''
telegraf__outputs_influxdb_password
- Password for HTTP Basic Auth to InfluxDB.
- Type: String.
- Default:
''
telegraf__outputs_influxdb_skip_database_creation
- Skip database creation (we assume the InfluxDB role creates the database).
- Type: Bool.
- Default:
true
telegraf__outputs_influxdb_urls
- The full HTTP or UDP URL for your InfluxDB instance. Multiple URLs can be specified for a single cluster, only ONE of the urls will be written to each interval.
- Type: List.
- Default:
['http://127.0.0.1:8086']
telegraf__outputs_influxdb_username
- Username for HTTP Basic Auth to InfluxDB.
- Type: String.
- Default:
''
telegraf__service_enabled
- Enables or disables the telegraf service, analogous to
systemctl enable/disable. - Type: Bool.
- Default:
true
telegraf__service_state
- Changes the state of the service, analogous to
systemctl start/stop/restart/reload. Possible options:started,stopped,restarted,reloaded. - Type: String.
- Default:
'started'
Example:
# optional
telegraf__agent_interval: '30s'
telegraf__conf__host_var:
- filename: 'graylog'
state: 'present'
template: 'graylog'
username: 'linuxfabrik' # graylog access token (needs to be sent as the username)
- filename: 'custom-input'
state: 'present'
template: 'raw'
raw: |
[[inputs.exec]]
commands = ["/usr/local/bin/my-custom-script.sh"]
data_format = "influx"
telegraf__inputs_cpu_enable: false
telegraf__inputs_disk_enable: false
telegraf__inputs_diskio_enable: false
telegraf__inputs_kernel_enable: false
telegraf__inputs_mem_enable: false
telegraf__inputs_net_enable: false
telegraf__inputs_processes_enable: false
telegraf__inputs_swap_enable: false
telegraf__inputs_system_enable: false
telegraf__inputs_vsphere_enable: true
telegraf__inputs_vsphere_password: 'password'
telegraf__inputs_vsphere_username: 'username'
telegraf__inputs_vsphere_vcenters:
- 'https://vsphere/sdk'
telegraf__outputs_influxdb_database: 'telegraf'
telegraf__outputs_influxdb_password: 'password'
telegraf__outputs_influxdb_skip_database_creation: true
telegraf__outputs_influxdb_urls:
- 'http://127.0.0.1:8086'
telegraf__outputs_influxdb_username: 'telegraf'
telegraf__service_enabled: true
telegraf__service_state: 'started'