collectd

Ansible роль collectd

Установите и настройте collectd на вашей системе.

GitHub Версия Проблемы Запросы на слияние Загрузки
github Версия Проблемы Запросы Ansible Роль

Пример плейбука

Этот пример взят из molecule/default/converge.yml и тестируется при каждом пуше, запросе на слияние и релизе.

---
- name: 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: Обновить кеш apt.
      apt: update_cache=true cache_valid_time=600
      when: ansible_os_family == 'Debian'
  roles:
    - role: buluma.collectd

Машина должна быть подготовлена. В CI это делается с помощью molecule/default/prepare.yml:

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

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

Смотрите также подробное объяснение и пример о том, как использовать эти роли.

Переменные роли

Значения по умолчанию для переменных задаются в defaults/main.yml:

---
# файл значений по умолчанию для 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: ~

#### Конфигурация журналирования

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_basic_plugins' для включения плагинов, которые не требуют дополнительной
# конфигурации.
collectd_basic_plugins:
  - cpu
  - interface
  - load
  - memory

# Используйте 'collectd_plugins' для включения плагинов, требующих дополнительной конфигурации.
collectd_plugins: []

Требования

Состояние используемых ролей

Следующие роли используются для подготовки системы. Вы можете подготовить свою систему другим способом.

Требование GitHub Версия
buluma.bootstrap Ansible Molecule Версия
buluma.epel Ansible Molecule Версия

Контекст

Эта роль является частью многих совместимых ролей. Ознакомьтесь с документацией этих ролей для получения дополнительной информации.

Вот обзор связанных ролей:

dependencies

Совместимость

Эта роль была протестирована на следующих образах контейнеров:

контейнер теги
Alpine все
EL 8
Debian bullseye
Fedora все
opensuse все
Ubuntu focal, bionic

Минимальная версия Ansible, требуемая для работы, — 2.10, тесты проводятся для:

  • Предыдущей версии.
  • Текущей версии.
  • Разработческой версии.

Если вы обнаружите проблемы, пожалуйста, сообщите о них в GitHub.

История изменений

История роли

Лицензия

Apache-2.0

Информация об авторе

Shadow Walker

О проекте

Install and configure collectd on your system.

Установить
ansible-galaxy install buluma/ansible-role-collectd
Лицензия
apache-2.0
Загрузки
9156
Владелец
DevOps Engineer