Spec-Zone.ru › Chef 16

Сбор данных

[изменить на GitHub]

Матрица поддержки версий Audit Cookbook + Inspec + Automate 2

Обратитесь к следующему списку поддерживаемых версий, чтобы подтвердить полный набор рабочих версий для вашего chef-client, Audit cookbook, Inspec и Automate 2. Если эти версии не совпадают, могут возникнуть проблемы с импортом данных, поскольку сообщения не будут отображаться в ожидаемом формате.

Сбор данных о выполнении узла и аудита

Узлы могут отправлять свои данные о выполнении в Chef Automate. Для запуска сбора данных в Chef Automate необходимо выполнить два шага:

  1. Сначала вам необходимо получить токен API. У вас есть два варианта:

    • Создайте новый токен API и добавьте его в политику импорта, желательно во время создания.
    • Или вы можете использовать свой существующий токен сборщика данных, если вы переходите с Chef Automate 1.
  2. После получения токена API вы можете:

    • Настроить ваш сервер Chef Infra Server для отправки данных в Chef Automate. Если вы используете Chef Infra Server, это рекомендуемый способ отправки данных в Chef Automate.
    • Или вы можете настроить Chef Infra Client для отправки данных непосредственно в Chef Automate.

Настройка существующего токена сборщика данных Chef Automate 1 в Chef Automate 2

Перенос существующего токена сборщика данных Chef Automate 1 в Chef Automate 2

Если вы переходите с Chef Automate 1, вы, вероятно, уже развернули токен сборщика данных на ваших серверах Chef Infra Server или клиентах Chef Infra Client. Чтобы повторно использовать существующий токен сборщика данных из вашей установки Chef Automate 1, вам необходимо выполнить описанные здесь изменения конфигурации.

Для этого процесса вам потребуется существующий токен (назовем его A1_DC_TOKEN) и доступ к машине, на которой запущен клиент CLI chef-automate.

Создайте файл (в этом примере, data-collector-token.toml) со своим существующим токеном:

[auth_n.v1.sys.service]
a1_data_collector_token = "<A1_DC_TOKEN>"

Теперь примените эту конфигурацию к вашему развертыванию Chef Automate 2:

# chef-automate config patch data-collector-token.toml

[...output omitted...]

Success: Configuration patched

Система заметит это изменение конфигурации через короткий интервал. С этого момента запросы с заголовком x-data-collector-token: <A1_DC_TOKEN> будут приниматься. При входе в систему с правами администратора вы также найдете добавленный токен в https://automate.example.com/admin/tokens, под именем

Устаревший токен сборщика данных, перенесенный из A1

Теперь, когда у вас есть действительный токен API, вам нужно обновить конфигурацию сборщика данных вашего сервера Chef Infra Server, если вы используете сервер Chef Infra Server. В противном случае, вы должны настроить ваши клиенты Chef Infra Client для отправки данных непосредственно в Chef Automate.

Настройка сервера Chef Infra Server для отправки данных в Chef Automate

Примечание

Несколько серверов Chef Infra Server могут отправлять данные на один сервер Chef Automate.

В дополнение к пересылке данных о выполнении Chef в Chef Automate, сервер Chef Infra Server будет отправлять сообщения в Chef Automate всякий раз, когда выполняется действие над объектом сервера Chef Infra Server, например, когда кулинарная книга загружается на сервер Chef Infra Server или когда пользователь редактирует роль.

Для того, чтобы сервер Chef Infra Server отправлял данные о выполнении от подключенных клиентов Chef Infra Client, установите атрибут прокси сбора данных в true.

Настройка сбора данных на сервере Chef Infra Server, развернутом с помощью установщика Chef Automate

Этот шаг настраивает сбор данных со автономного сервера Chef Infra Server, развернутого с помощью установщика Chef Automate, на отдельный сервер Chef Automate.

Откройте файл config.toml и включите параметры внешней конфигурации automate:

[global.v1.external.automate]
  enable = true
  node = "https://<automate server url>"
[global.v1.external.automate.auth]
  token = "<data-collector token>"
[global.v1.external.automate.ssl]
  server_name = "<server name from the automate server ssl cert>"
  root_cert = """<pem format root CA cert>
"""
[auth_n.v1.sys.service]
  a1_data_collector_token = "<data-collector token>"
[erchef.v1.sys.data_collector]
   enabled = true

Затем выполните chef-automate config patch config.toml.

Настройка сбора данных на серверах Chef Infra Server версии 12.14 и выше

Вместо того, чтобы устанавливать токен непосредственно в /etc/opscode/chef-server.rb, как это делалось в более старых версиях сервера Chef Infra Server, мы будем использовать команду set-secret, чтобы ваш токен API не хранился в виде открытого текста в файле:

sudo chef-server-ctl set-secret data_collector token '<API_TOKEN_FROM_STEP_1>'
sudo chef-server-ctl restart nginx
sudo chef-server-ctl restart opscode-erchef

Далее настройте сервер Chef Infra Server для пересылки сбора данных, добавив следующий параметр в /etc/opscode/chef-server.rb:

data_collector['root_url'] = 'https://automate.example.com/data-collector/v0/'
# Add for Chef Infra Client run forwarding
data_collector['proxy'] = true
# Add for compliance scanning
profiles['root_url'] = 'https://automate.example.com'
# Save and close the file

Чтобы применить изменения, выполните:

sudo chef-server-ctl reconfigure

Настройка сбора данных на серверах Chef Infra Server версий 12.11-12.13

Для версий сервера Chef Infra Server от 12.11 до 12.13 просто добавьте значения root_url и token в /etc/opscode/chef-server.rb:

data_collector['root_url'] = 'https://automate.example.com/data-collector/v0/'
data_collector['token'] = '<API_TOKEN_FROM_STEP_1>'
# Add for Chef Infra Client run forwarding
data_collector['proxy']= true
# Add for compliance scanning
profiles['root_url'] = 'https://automate.example.com'
# Save and close the file

Чтобы применить изменения, выполните:

chef-server-ctl reconfigure

Настройка Chef Infra Client для отправки данных сканирования соответствия через сервер Chef Infra Server в Chef Automate

Теперь, когда сервер Chef Infra Server настроен для сбора данных, вы также можете включить сканирование на соответствие

на ваших клиентах Chef Infra Client с помощью Audit Cookbook.

  • Установите следующие атрибуты для кулинарной книги audit:
default['audit']['reporter'] = 'chef-server-automate'
default['audit']['fetcher'] = 'chef-server'
default['audit']['profiles'].push(
  'name': 'cis-centos7-level2',
  'compliance': 'user-name/cis-centos7-level2' # in the ui for automate, this value is the identifier for the profile
)
default['audit']['interval'] = {
  'enabled': true
  'time': 1440  # once a day, the default value
}

Теперь любой узел с audit::default в своем списке выполнения будет получать и отправлять данные в Chef Automate через сервер Chef Infra Server. См. кулинарную книгу audit для исчерпывающего списка параметров конфигурации.

Дополнительные параметры конфигурации сбора данных сервера Chef Infra Server

Параметр Описание Значение по умолчанию
data_collector['proxy'] Если установлено в true, сервер Chef Infra Server будет проксировать все запросы, отправленные в /data-collector, на настроенный сервер Chef Automate data_collector['root_url']. Обратите внимание, что этот маршрут не проверяет подпись запроса и не добавляет правильный токен data_collector, а просто проксирует конечную точку Chef Automate без изменений. По умолчанию: nil
data_collector['timeout'] Таймаут в миллисекундах для прерывания попытки отправить сообщение на сервер Chef Automate. По умолчанию: 30000
data_collector['http_init_count'] Количество рабочих процессов HTTP Chef Automate, которые должен запустить сервер Chef Infra Server. По умолчанию: 25
data_collector['http_max_count'] Максимальное количество рабочих процессов HTTP Chef Automate, которые сервер Chef Infra Server должен разрешить существовать в любое время. По умолчанию: 100
data_collector['http_max_age'] Максимальный срок службы рабочего процесса HTTP Chef Automate, заданный как кортеж Erlang. По умолчанию: {70, sec}
data_collector['http_cull_interval'] Как часто сервер Chef Infra Server должен удалять устаревшие рабочие процессы HTTP Chef Automate, срок действия которых истек, указанный как кортеж Erlang. По умолчанию: {1, min}
data_collector['http_max_connection_duration'] Максимальная продолжительность существования HTTP-соединения до его завершения, заданная как кортеж Erlang. По умолчанию: {70, sec}

Настройка клиента Chef Infra Client для отправки данных в Chef Automate без сервера Chef Infra Server

Если вы не используете сервер Chef Infra Server в своей среде (например, если вы используете только chef-solo), вы

можете настроить ваши клиенты Chef Infra Client для отправки данных о выполнении непосредственно в Chef Automate, выполнив следующие действия:

  1. Добавьте сертификат SSL Chef Automate в каталог trusted_certs.

  2. Настройте Chef Infra Client для использования конечной точки Data Collector и токена API в Chef Automate.

Добавление сертификата Chef Automate в каталог trusted_certs

Примечание: Этот шаг применим только к самозаверяющим SSL-сертификатам. Если вы используете SSL-сертификат, подписанный действительным центром сертификации, вы можете пропустить этот шаг.

Chef требует, чтобы самозаверяющий SSL-сертификат Chef Automate (HOSTNAME.crt) находился в каталоге /etc/chef/trusted_certs на любом узле, который хочет отправлять данные в Chef Automate. Этот каталог — это место, куда помещаются SSL-сертификаты, когда узел был загружен с помощью chef-client.

Чтобы получить сертификат на свою рабочую станцию, используйте knife ssl fetch и передайте URL-адрес сервера Chef Automate. Затем вы можете использовать такие утилиты, как scp или rsync, чтобы скопировать загруженные файлы cert из каталога .chef/trusted_certs в каталог /etc/chef/trusted_certs на узлах в вашей инфраструктуре, которые будут отправлять данные непосредственно на сервер Chef Automate.

Настройка Chef Infra Client для использования конечной точки Data Collector в Chef Automate

Предупреждение

Требуется версия Chef 12.12.15 или выше.

Функциональность сборщика данных используется клиентом Chef Infra Client для отправки данных узла и сходимости в Chef Automate. Эта функция работает для Chef Infra Client, а также для режимов по умолчанию и legacy chef-solo.

Чтобы отправлять данные узла, сходимости и соответствия в Chef Automate, измените свою конфигурацию Chef (то есть client.rb, solo.rb, или добавьте дополнительный конфигурационный файл в соответствующий каталог, например client.d) для включения следующей конфигурации:

data_collector.server_url "https://automate.example.com/data-collector/v0/"
data_collector.token '<API_TOKEN_FROM_STEP_1>'

Настройка Chef Infra Client для отправки данных сканирования соответствия непосредственно в Chef Automate

Теперь, когда клиент Chef Infra настроен для сбора данных, можно также включить сканирование соответствия через кулинарную книгу Audit Cookbook.

  • Установите следующие атрибуты для кулинарной книги аудита:
default['audit']['reporter'] = 'chef-automate'
default['audit']['fetcher'] = 'chef-automate'
default['audit']['token'] = '<API_TOKEN_FROM_STEP_1>'
default['audit']['profiles'].push(
  'name': 'cis-centos7-level2',
  'compliance': 'user-name/cis-centos7-level2' # in the ui for automate, this value is the identifier for the profile
)
default['audit']['interval'] = {
  'enabled': true
  'time': 1440  # once a day, the default value
}

Теперь любой узел с audit::default в его списке задач будет получать и передавать данные напрямую в Chef Automate. Пожалуйста, обратитесь к кулинарной книге аудита для полного списка параметров конфигурации.

Дополнительные параметры конфигурации сбора данных клиента Chef Infra

Конфигурация Описание Варианты По умолчанию
data_collector.mode Режим работы сборщика данных. Он может использоваться для запуска сборщика данных только при использовании Chef solo, но не при использовании Chef Infra Client. :solo, :client, или :both :both
data_collector.raise_on_failure Когда сборщик данных не может отправить сообщение «начало выполнения» серверу сборщика данных, сборщик данных будет отключен для этого выполнения. В некоторых ситуациях, например, в средах с жёсткими регулятивами, целесообразнее предотвратить сбор данных, когда сборщик данных не может отправить сообщение «начало выполнения» серверу сборщика данных. В таких ситуациях установка этого значения в true заставит выполнение Chef выдать исключение до начала конфигурационных действий. true, false false
data_collector.organization Строка организации, предоставляемая пользователем, которая может быть отправлена в полезной нагрузке, сгенерированной сборщиком данных, когда Chef запускается в режиме Solo. Это позволяет пользователям связывать свои узлы Solo с вымышленными организациями без подключения узлов к фактическому серверу Chef Infra. string none

Устранение неполадок: мои данные не отображаются в пользовательском интерфейсе

Организации без связанных узлов не будут отображаться на странице Chef Automate Узлы. Узел не ассоциируется с automate до завершения выполнения Chef Infra Client. Это также верно для ролей, кулинарных книг, рецептов, атрибутов, ресурсов, имён узлов и сред, но не выделяет их в пользовательском интерфейсе. Это сделано для того, чтобы пользовательский интерфейс был сфокусирован на узлах в вашем кластере.

© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/automate/data_collection/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API