Spec-Zone.ru › Chef 17

Сбор данных

[править на GitHub]

Матрица совместимости кулинарной книги аудита + InSpec + Automate 2

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

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

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

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

    • Создать новый токен 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 или клиентах Chef Infra. Для повторного использования существующего токена сборщика данных из вашей установки Chef Automate 1 вам необходимо выполнить указанную здесь настройку.

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

Создайте файл (в этом примере 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 Client сервером Chef Infra Server необходимо установить атрибут прокси-сервера сбора данных на 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 Client для отправки данных сканирования соответствия через сервер Chef Infra Server в Chef Automate

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

на ваших клиентах Chef Infra Client через кулинарную книгу аудита.

  • Установите следующие атрибуты для кулинарной книги аудита:
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. Подробный список конфигурационных опций см. в кулинарной книге аудита по ссылке .

Дополнительные параметры конфигурации сбора данных сервера 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, превысившие свой http_max_age, указанная как 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 на использование конечной точки сборщика данных и токена 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, чтобы скопировать загруженные файлы сертификата из директории .chef/trusted_certs в директорию /etc/chef/trusted_certs на узлах вашей инфраструктуры, которые будут отправлять данные напрямую на сервер Chef Automate.

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

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

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

Функциональность сборщика данных используется клиентом Chef Infra Client для отправки данных узла и слияния в Chef Automate. Эта функция работает как для клиента Chef Infra Client, так и для режимов по умолчанию и устаревшего режима 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 Client настроен для сбора данных, вы также можете включить сканирование соответствия на нём через кулинарную книгу аудита.

  • Установите следующие атрибуты для кулинарной книги аудита:
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