beats
АРХИВ
Этот проект больше не поддерживается. Для альтернативных способов начала работы вы можете попробовать один из следующих вариантов:
- Начните бесплатную пробную версию на Elastic Cloud, нашем хостинговом сервисе.
- Ознакомьтесь с Elastic Cloud на Kubernetes (ECK) для запуска стека через Kubernetes.
- Прочитайте наш Гид по запуску Elastic Stack на Docker.
- Посмотрите Elastic Stack Terraform провайдер.
ansible-beats
Эта роль предоставляет общий способ установки Elastic поддерживаемых Beats.
Проверенные Beats
- Filebeat
- MetricBeat (TopBeat в версии 1.x)
- Packetbeat
Проверенные версии
- 7.x
- 6.x
Проверенные платформы
- Ubuntu 16.04
- Ubuntu 18.04
- Ubuntu 20.04
- Debian 8
- Debian 9
- Debian 10
- CentOS 7
- Amazon Linux 2
Использование
Создайте свой Ansible плейбук с вашими задачами и включите роль beats. Вам нужно, чтобы этот репозиторий был доступен в контексте плейбука.
ansible-galaxy install elastic.beats,v7.17.0
Затем создайте ваш плейбук yaml, добавив роль beats. Применение роли beats в результате устанавливает узел на хосте.
Самая простая конфигурация состоит из:
hosts: localhost
roles:
- role: elastic.beats
vars:
beats_version: 7.17.0
beat: filebeat
beat_conf:
filebeat:
inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
Вышеуказанное устанавливает Filebeat 7.17.0 на хосте 'localhost'.
Заметки:
- Значение по умолчанию для версии Beats описано в
beats_version
. Вы можете переопределить эту переменную в вашем плейбуке, чтобы установить другую версию. Хотя мы тестируем эту роль только с одной версией 7.x и одной 6.x (соответственно 7.17.0 и 6.8.23 на момент написания), эта роль должна работать и с другими версиями в большинстве случаев. - Продукт Beat описан в переменной
beat
. Хотя в настоящее время тестируемыми Beats являются Filebeat, Metricbeat и Packetbeat, эта роль должна также работать с другими участниками Семьи Beats в большинстве случаев.
Тестирование
Этот плейбук использует Kitchen для CI и локального тестирования.
Требования
- Ruby
- Bundler
- Docker
- Make
Запуск тестов
Чтобы собрать хост Ubuntu 18.04
$ make converge
Чтобы запустить тесты
$ make verify
Чтобы перечислить все различные тестовые наборы
$ make list
Тестовый набор по умолчанию — Ubuntu 18.04. Если вы хотите протестировать другой набор, вы можете переопределить это с помощью переменной PATTERN
$ make converge PATTERN=standard-centos-7
PATTERN
— это шаблон для kitchen, который может соответствовать нескольким наборам. Чтобы запустить все тесты для CentOS
$ make converge PATTERN=centos-7
Когда вы закончите тестирование, вы можете очистить все с помощью
$ make destroy-all
Основная конфигурация Beats
Поддерживаются все параметры конфигурации Beats. Это достигается с помощью параметра конфигурационной карты beat_conf
, который сериализуется в файл ${beat}.yml
.
Использование карты гарантирует, что плейбук Ansible не нужно обновлять, чтобы отразить новые/устаревшие/плагинные параметры конфигурации.
В дополнение к карте beat_conf
поддерживается несколько других параметров для выполнения дополнительных функций, например, установка скриптов. Эти параметры можно найти в файле defaults/main.yml
роли.
Следующее иллюстрирует применение параметров конфигурации к экземпляру Packetbeat.
- name: Пример плейбука для установки packetbeat
hosts: localhost
roles:
- { role: beats, beat: "packetbeat",
beat_conf: {
"interfaces": {"device":"any"},
"protocols": {
"dns": {
"ports": [53],
"include_authorities":true
},
"http": {
"ports": [80, 8080, 8000, 5000, 8002]
},
"memcache": {
"ports": [11211]
},
"mysql": {
"ports": [3306]
},
"pgsql": {
"ports": [5432]
},
"redis": {
"ports": [6379]
},
"thrift": {
"ports": [9090]
},
"mongodb": {
"ports": [27017]
}
}
},
output_conf : {
"elasticsearch": {
"hosts": ["localhost:9200"]
}
}
}
vars:
use_repository: "true"
Дополнительная конфигурация
Поддерживаются следующие переменные:
- beat (ОБЯЗАТЕЛЬНО): Продукт Beat. Поддерживаемые значения: "filebeat", "metricbeat" и "packetbeat" (другие Beats из Семьи Beats должны работать в большинстве случаев, но в настоящее время не тестируются).
- beat_conf (ОБЯЗАТЕЛЬНО): Конфигурация Beat. Должна быть определена как карта.
- beats_version (По умолчанию
7.17.0
): Версия Beats. - version_lock (По умолчанию
false
): Блокирует установленную версию, если установлено значение true, тем самым предотвращая обновление другими процессами. Это не повлияет на способность ролей обновлять beat при последующих запусках (он разблокируется и снова блокируется при необходимости). - use_repository (По умолчанию
true
): Использовать репозиторий elastic для yum или apt, если true. Если false, необходимо указать пользовательский custom_package_url. - beats_add_repository (По умолчанию
{use_repository}
): Установить репозиторий elastic для yum или apt, если true. Если false, будут использоваться существующие репозитории. Полезно, если в вашем репозитории уже имеются пакеты beats. - start_service (По умолчанию
true
): сервис будет запущен, если true, или нет, если false. - restart_on_change (По умолчанию
true
): Изменения в конфигурации или установленных версиях приведут к перезапуску, если true. - daemon_args (Применимо к версии 1.x beats): Позволяет передавать параметры времени выполнения в beats.
- logging_conf (По умолчанию
{"files":{"rotateeverybytes":10485760}}
): Конфигурация журналирования. Должна быть определена как карта. Карта сериализуется в раздел журналирования конфигурации beat. - shipper_conf (Применимо к версии 1.x beats): Конфигурация отправителя. Должна быть определена как карта. Карта сериализуется в разделе отправителя конфигурации beat.
- output_conf (По умолчанию
{"elasticsearch":{"hosts":["localhost:9200"]}}
): Конфигурация вывода. Карта сериализуется в выходной раздел конфигурации beat. - beats_pid_dir (По умолчанию
/var/run
): Местоположение файла pid beats. - beats_conf_dir (По умолчанию
/etc/{beat}
): Местоположение каталога конфигурации для конфигурационного файла beats. - default_ilm_policy (По умолчанию не определен): локальный путь к политике по умолчанию, если определена какая-либо пользовательская.
Фокус на ILM
По умолчанию, beat создаст политику по умолчанию, определённую как часть развертываемого beat. Вы можете переопределить настройку ILM по умолчанию, определив конфигурацию ILM как часть beat_conf. Например:
- role: ansible-beats
beat: metricbeat
beat_conf:
setup:
ilm:
policy_file: /etc/filebeat/policies/my-default-metricbeat.json
overwrite: true
metricbeat.modules:
...
default_ilm_policy: conf/my-default-metricbeat.json
become: yes
Это скопирует conf/my-default-filebeat.json в /etc/filebeat/policies/my-default-filebeat.json. Эта политика будет использоваться как политика по умолчанию для этого beat.
Лицензия
Apache 2.0
Ограничения
Невозможно установить несколько экземпляров одного beat на одном целевом сервере.
Вопросы по использованию
Мы приветствуем вопросы о том, как использовать роль. Однако, чтобы сосредоточить список проблем GitHub на "проблемах", мы просим сообщество задавать вопросы на https://discuss.elastic.co/c/beats. Это отслеживается поддержкой.
Сообщество всегда ценится и приветствуется! Пожалуйста, убедитесь, что все взносы включают соответствующие тесты.
ansible-galaxy install elastic/ansible-beats