Skip to content

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.

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 template used. Will be suffixed with .conf.
      • Type: String.
    • raw:

      • Optional. Raw content that should be part of the config. Only used when template: 'raw'.
      • Type: String.
      • Default: unset
    • state:

      • Optional. Either present or absent.
      • Type: String.
      • Default: 'present'
    • template:

      • Mandatory. Which template to use for the config. Possible options: raw or graylog.
      • Type: String.
    • username:

      • Optional. Username. Set this to the Graylog access token when using template: 'graylog'.
      • Type: String.
      • Default: unset
    • 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'

License

The Unlicense

Author Information

Linuxfabrik GmbH, Zurich