buluma.collectd

Rola Ansible collectd

Instalacja i konfiguracja collectd na Twoim systemie.

GitHub Wersja Problemy Prośby o scalenie Pobrania
github Wersja Problemy Prośby o scalenie Rola Ansible

Przykładowy Playbook

Poniższy przykład pochodzi z molecule/default/converge.yml i jest testowany przy każdym pushu, prośbie o scalenie i wydaniu.

---
- name: konwergencja
  hosts: all
  become: true
  gather_facts: true
  vars:
    collectd_plugin_logging: logfile
    collectd_basic_plugins:
      - cpu
      - interfejs
      - obciążenie
      - pamięć
    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: dysk
        config: |
          Disk "/^hd"
          IgnoreSelected true
      - name: interfejs
        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: Aktualizacja pamięci podręcznej apt.
      apt: update_cache=true cache_valid_time=600
      when: ansible_os_family == 'Debian'
  roles:
    - role: buluma.collectd

Maszyna musi być przygotowana. W CI odbywa się to za pomocą molecule/default/prepare.yml:

---
- name: przygotowanie
  hosts: all
  become: true
  gather_facts: false

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

Zobacz także pełne wyjaśnienie i przykład dotyczące korzystania z tych ról.

Zmienne roli

Domyślne wartości zmiennych są ustawione w defaults/main.yml:

---
# plik domyślny dla 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: ~

#### Konfiguracja logowania

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: ""

# Użyj 'collectd_basic_plugins' aby włączyć wtyczki, które nie wymagają dodatkowej konfiguracji.
collectd_basic_plugins:
  - cpu
  - interfejs
  - obciążenie
  - pamięć
  # - agregacja
  # - amqp
  # - apache
  # - apcups
  # - czujniki_apple
  # - aquaero
  # - ascent
  # - barometr
  # - bateria
  # - bind
  # - ceph
  # - cgroups
  # - chrony
  # - conntrack
  # - contextswitch
  # - cpu
  # - cpufreq
  # - cpusleep
  # - csv
  # - curl
  # - curl_json
  # - curl_xml
  # - dbi
  # - df
  # - dysk
  # - dns
  # - dpdkevents
  # - dpdkstat
  # - drbd
  # - email
  # - entropy
  # - ethstat
  # - exec
  # - fhcount
  # - filecount
  # - fscache
  # - gmond
  # - gps
  # - grpc
  # - hddtemp
  # - hugepages
  # - intel_pmu
  # - intel_rdt
  # - interfejs
  # - ipc
  # - ipmi
  # - iptables
  # - ipvs
  # - irq
  # - java
  # - obciążenie
  # - lpar
  # - lua
  # - lvm
  # - madwifi
  # - mbmon
  # - mcelog
  # - md
  # - memcachec
  # - memcached
  # - pamięć
  # - mic
  # - modbus
  # - mqtt
  # - multimeter
  # - mysql
  # - netapp
  # - netlink
  # - sieć
  # - 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
  # - czujniki
  # - serial
  # - sigrok
  # - smart
  # - snmp
  # - snmp_agent
  # - statsd
  # - swap
  # - tabela
  # - tail
  # - tail_csv
  # - taśma
  # - tcpconns
  # - teamspeak2
  # - ted
  # - termal
  # - tokyotyrant
  # - turbostat
  # - unixsock
  # - uptime
  # - użytkownicy
  # - 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
  # - zona
  # - zookeeper

# Użyj 'collectd_plugins' aby włączyć wtyczki wymagające dodatkowej konfiguracji.
collectd_plugins: []
# przykłady:
#  - name: example
#    interval: 120 #sekundy
#    flush_interval: 600 #sekundy
#    flush_timeout:
#    config: |4
#      Coś: true
#      <Zagnieżdżony blok>
#        NestedKey: "value"
#      </Zagnieżdżony>
#  - 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>

Wymagania

Stan używanych ról

Poniższe role są używane do przygotowania systemu. Możesz przygotować swój system w inny sposób.

Wymaganie GitHub Wersja
buluma.bootstrap Ansible Molecule Wersja
buluma.epel Ansible Molecule Wersja

Kontekst

Ta rola jest częścią wielu kompatybilnych ról. Zobacz dokumentację tych ról po więcej informacji.

Oto przegląd powiązanych ról:

dependencies

Kompatybilność

Ta rola była testowana na tych obrazach kontenerów:

kontener tagi
Alpine wszystkie
EL 8
Debian bullseye
Fedora wszystkie
opensuse wszystkie
Ubuntu focal, bionic

Minimalna wymagana wersja Ansible to 2.10, testy były przeprowadzone na:

  • Wersji poprzedniej.
  • Wersji aktualnej.
  • Wersji deweloperskiej.

Jeśli znajdziesz problemy, zgłoś je na GitHubie

Dziennik zmian

Historia roli

Licencja

Apache-2.0

Informacje o autorze

Shadow Walker

O projekcie

Install and configure collectd on your system.

Zainstaluj
ansible-galaxy install buluma.collectd
Licencja
apache-2.0
Pobrania
9.2k
Właściciel
DevOps Engineer