buluma.collectd

Rol de Ansible collectd

Instala y configura collectd en tu sistema.

GitHub Versión Problemas Solicitudes de extracción Descargas
github Version Issues PullRequests Ansible Role

Ejemplo de Playbook

Este ejemplo se toma de molecule/default/converge.yml y se prueba en cada empuje, solicitud de extracción y lanzamiento.

---
- nombre: converge
  hosts: all
  become: true
  gather_facts: true
  vars:
    collectd_plugin_logging: logfile
    collectd_basic_plugins:
      - cpu
      - interface
      - load
      - memory
    collectd_plugins:
      - name: df
        config: |
          MountPoint "/proc"
          MountPoint "/dev"
          MountPoint "/\/docker\/containers\//"
          MountPoint "/\/docker\/devicemapper\//"
          MountPoint "/\/docker\/plugins\//"
          MountPoint "/\/docker\/overlay\//"
          MountPoint "/\/docker\/overlay2\//"
          MountPoint "/\/docker\/netns\//"
          FSType "overlay"
          FSType "proc"
          FSType "tmpfs"
          IgnoreSelected true
          ReportInodes true
      - name: disk
        config: |
          Disk "/^hd"
          IgnoreSelected true
      - name: interface
        config: |
          Interface "lo"
          Interface "/veth.*/"
          IgnoreSelected true
      - name: swap
        config: |
          ReportByDevice false
          ReportBytes true
      - name: write_http
        config: |
          <Node "test">
            URL "127.0.0.1:8080/test.collectd"
            Format "JSON"
            StoreRates true
          </Node>
      - name: postgresql
        config: |
          <Query tickets>
            Statement "SELECT count(t.id) AS count FROM tickets t WHERE t.closed is null;"
            <Result>
              Type gauge
              InstancePrefix "tickets"
              ValuesFrom "count"
            </Result>
          </Query>
          <Database "test">
            Host "psql-database.hostname.com"
            Port "5432"
            User "my_psqladminuser"
            Password "my_passwd"
            SSLMode "prefer"
            Query tickets
          </Database>
  pre_tasks:
    - name: Actualizar caché de apt.
      apt: update_cache=true cache_valid_time=600
      when: ansible_os_family == 'Debian'
  roles:
    - role: buluma.collectd

La máquina necesita estar preparada. En CI esto se hace utilizando molecule/default/prepare.yml:

---
- nombre: prepare
  hosts: all
  become: true
  gather_facts: false

  roles:
    - role: buluma.bootstrap
    - role: buluma.epel

También ver una explicación completa y ejemplo sobre cómo usar estos roles.

Variables del Rol

Los valores predeterminados para las variables se establecen en defaults/main.yml:

---
# archivo de valores predeterminados para collectd

collectd_conf_hostname: "{{ ansible_hostname }}"
collectd_conf_fqdnlookup: "false"
collectd_conf_basedir: /var/lib/collectd
collectd_conf_pidfile: /var/run/collectd.pid
collectd_conf_typesdb: /usr/share/collectd/types.db

collectd_conf_autoloadplugin: "false"
collectd_conf_collectinternalstats: "false"

collectd_conf_interval: 10
collectd_conf_maxreadinterval: 86400
collectd_conf_timeout: 2
collectd_conf_readthreads: 5
collectd_conf_writethreads: 5

collectd_conf_include_dir: /etc/collectd.d
collectd_conf_fnmatch_filters:
  - "*.conf"

collectd_conf_extra: ~

#### Configuración de Registro

collectd_plugin_logging: syslog

collectd_plugin_logging_directory: "/var/log/collectd"

collectd_plugin_logfile_loglevel: "info"
collectd_plugin_logfile_file: "{{ collectd_plugin_logging_directory }}/collectd.log"
collectd_plugin_logfile_timestamp: "true"
collectd_plugin_logfile_printseverity: "false"

collectd_plugin_logstash_loglevel: "info"
collectd_plugin_logstash_file: "{{ collectd_plugin_logging_directory }}/collectd.json.log"

collectd_plugin_syslog_loglevel: "info"
# collectd_plugin_syslog_notifylevel: ""

# Usa 'collectd_basic_plugins' para habilitar plugins que no requieren configuración adicional.
collectd_basic_plugins:
  - cpu
  - interface
  - load
  - memory
  # - aggregation
  # - amqp
  # - apache
  # - apcups
  # - apple_sensors
  # - aquaero
  # - ascent
  # - barometer
  # - battery
  # - bind
  # - ceph
  # - cgroups
  # - chrony
  # - conntrack
  # - contextswitch
  # - cpu
  # - cpufreq
  # - cpusleep
  # - csv
  # - curl
  # - curl_json
  # - curl_xml
  # - dbi
  # - df
  # - disk
  # - dns
  # - dpdkevents
  # - dpdkstat
  # - drbd
  # - email
  # - entropy
  # - ethstat
  # - exec
  # - fhcount
  # - filecount
  # - fscache
  # - gmond
  # - gps
  # - grpc
  # - hddtemp
  # - hugepages
  # - intel_pmu
  # - intel_rdt
  # - interface
  # - ipc
  # - ipmi
  # - iptables
  # - ipvs
  # - irq
  # - java
  # - load
  # - lpar
  # - lua
  # - lvm
  # - madwifi
  # - mbmon
  # - mcelog
  # - md
  # - memcachec
  # - memcached
  # - memory
  # - mic
  # - modbus
  # - mqtt
  # - multimeter
  # - mysql
  # - netapp
  # - netlink
  # - network
  # - nfs
  # - nginx
  # - notify_desktop
  # - notify_email
  # - notify_nagios
  # - ntpd
  # - numa
  # - nut
  # - olsrd
  # - onewire
  # - openldap
  # - openvpn
  # - oracle
  # - ovs_events
  # - ovs_stats
  # - perl
  # - pinba
  # - ping
  # - postgresql
  # - powerdns
  # - processes
  # - protocols
  # - python
  # - redis
  # - routeros
  # - rrdcached
  # - rrdtool
  # - sensors
  # - serial
  # - sigrok
  # - smart
  # - snmp
  # - snmp_agent
  # - statsd
  # - swap
  # - table
  # - tail
  # - tail_csv
  # - tape
  # - tcpconns
  # - teamspeak2
  # - ted
  # - thermal
  # - tokyotyrant
  # - turbostat
  # - unixsock
  # - uptime
  # - users
  # - uuid
  # - varnish
  # - virt
  # - vmem
  # - vserver
  # - wireless
  # - write_graphite
  # - write_http
  # - write_kafka
  # - write_log
  # - write_mongodb
  # - write_prometheus
  # - write_redis
  # - write_riemann
  # - write_sensu
  # - write_tsdb
  # - xencpu
  # - xmms
  # - zfs_arc
  # - zone
  # - zookeeper

# Usa 'collectd_plugins' para habilitar plugins que requieren configuración adicional.
collectd_plugins: []
# ejemplos:
#  - name: example
#    interval: 120 #segundos
#    flush_interval: 600 #segundos
#    flush_timeout:
#    config: |4
#      Something: true
#      <Nested block>
#        NestedKey: "value"
#      </Nested>
#  - name: write_http
#    config: |4
#      <Node "oms">
#         URL "127.0.0.1:26000/oms.collectd"
#         Format "JSON"
#         StoreRates true
#      </Node>
#  - name: postgresql
#    config: |4
#      <Query tickets>
#          Statement "SELECT count(t.id) AS count FROM tickets t WHERE t.closed is null;"
#          <Result>
#            Type gauge
#            InstancePrefix "tickets"
#            ValuesFrom "count"
#          </Result>
#      </Query>
#      <Database "test">
#        Host "psql-database.hostname.com"
#        Port "5432"
#        User "my_psqladminuser"
#        Password "my_passwd"
#        SSLMode "prefer"
#        Query tickets
#      </Database>

Requisitos

Estado de los roles utilizados

Los siguientes roles se utilizan para preparar un sistema. Puedes preparar tu sistema de otra manera.

Requisito GitHub Versión
buluma.bootstrap Ansible Molecule Version
buluma.epel Ansible Molecule Version

Contexto

Este rol es parte de muchos roles compatibles. Consulta la documentación de estos roles para más información.

Aquí hay un resumen de roles relacionados:

dependencias

Compatibilidad

Este rol ha sido probado en estas imágenes de contenedor:

contenedor etiquetas
Alpine todas
EL 8
Debian bullseye
Fedora todas
opensuse todas
Ubuntu focal, bionic

La versión mínima de Ansible requerida es 2.10, se han realizado pruebas en:

  • La versión anterior.
  • La versión actual.
  • La versión de desarrollo.

Si encuentras problemas, por favor regístralos en GitHub.

Historial de cambios

Historia del rol

Licencia

Apache-2.0

Información del autor

Shadow Walker

Acerca del proyecto

Install and configure collectd on your system.

Instalar
ansible-galaxy install buluma.collectd
Licencia
apache-2.0
Descargas
9.2k
Propietario
DevOps Engineer