Конфигурация агента (minion)

На машине, на которой установлен агент (minion), задайте настройки его конфигурации, следуя инструкции ниже.

По умолчанию агент (minion) настраивается через главный файл конфигурации — /etc/salt/minion.

Также поддерживается создание файлов конфигураций в каталоге /etc/salt/minion.d/, что позволяет группировать логически параметры конфигурации.

Подробную информацию о настройке главного файла конфигурации агента см. в официальной документации.

  1. Cоздайте файл конфигурации агента (minion) /etc/salt/minion.d/master.conf.

  2. Задайте параметры для подключения к серверу управления (master).

  3. Задайте интервал в минутах, через который агент будет отправлять ping-запрос на сервер управления (master). Рекомендуемое значение — 10 минут.

    Выбор оптимального значения для параметра определяется количеством агентов, пропускной способностью сети и требованиями к актуальности данных.

    При задании параметра следует учитывать следующие факторы:

    • чем меньше значение параметра, тем больший объем данных будет передаваться в единицу времени, увеличивая нагрузку на сеть;

    • увеличение значения приводит к увеличению интервала обновления данных, что может привести к их неактуальности.

    Пример файла:

    master:
      - <адрес сервера управления (master)>
    ping_interval: 10
  4. (Опционально) для организации подключения в отказоустойчивом режиме мульти-мастер с автоматическим переключением (failover) внесите соответствующие настройки в файл /etc/salt/minion.d/master.conf. Ниже представлены минимальные настройки для работы с типом конфигурации failover:

    master:
      - <адрес 1-ого сервера управления (master)>
      - <адрес 2-ого сервера управления (master)>
      - ...
      - <адрес N-ого сервера управления (master)>
    
    master_type: failover
    master_alive_interval: 60
    master_failback: True
    master_failback_interval: 30
    random_master: true

    Где:

    • master_type — используемый способ подключения к серверам управления (master) (режим failover);

    • master_alive_interval — таймаут проверки серверов на предмет доступности, используемый для переключения между серверами;

    • master_failback — сценарий повторного подключения к серверам при их недоступности (значение True позволяет выполнить попытку подключения к серверам, которые были ранее недоступны);

    • master_failback_interval — таймаут проверки серверов при их повторной недоступности;

    • random_master — сценарий выбора сервера управления (master) из списка (значение True указывает, что будет выбираться случайный сервер из списка).

      Подробнее о настройке режима мульти-мастер с автоматическим переключением (failover) см. в одноименном разделе.
  1. (Опционально) создайте файл конфигурации агента (minion) /etc/salt/minion.d/sudo_user.conf и задайте в нем пользователя, от имени которого будут запускаться процессы SaltStack.

    Пример файла:

    user: user
    sudo_user: root

    Где:

    • user — пользователь, от имени которого будут запускаться процессы SaltStack (значение по умолчанию: root);

    • sudo_user — пользователь, с правами которого будут выполняться удаленные команды SaltStack от имени активного пользователя (заданного в параметре user)

      Обычно для параметра sudo_user указывается значение root. В этом случае в параметре user не может быть указан пользователь root.

      Если вы используете параметр sudo_user, дополнительно выполните следующие настройки:

      1. Добавьте нового пользователя в файл sudoers и укажите, что от имени этого пользователя может запускаться агент (minion).

      2. Очистите кэш агента (minion).

      3. Укажите нового пользователя в качестве владельца каталога minion pki: sudo_user: root.

Настройка журналирования

Для настройки журналирования агента (minion) cоздайте файл конфигурации /etc/salt/minion.d/logging.conf и задайте в нем необходимые значения параметров, следуя примеру:

log_level: info
log_file: /app/inno-osmax/logs/salt-minion/minion
log_level_logfile: info

Где:

  • log_level — настройка уровня журналирования для сообщений, отправляемых на консоль; возможные значения:

    • all —  все сообщения будут записываться в лог-файл;

    • warning — сообщения, содержащие предупреждение о потенциальной проблеме или необычном состоянии, которое не является ошибкой, но требует внимания;

    • info — информационные сообщения о ходе работы модуля;

    • profile — профильная информация о производительности модуля координации (SaltStack);

    • debug — сообщения, содержащие отладочную информацию;

    • trace — сообщения, содержащие детальную отладочную информацию;

    • garbage — сообщения, содержащие более детальную (чем trace) отладочную информацию;

    • error — сообщения об ошибке, которая привела к некритическому сбою;

    • critical — сообщения об ошибке, которая привела к критическому сбою;

    • quiet — сообщения в лог-файл записываться не будут;

  • log_file — лог-файл; локальный путь к лог-файлу агента (minion);

  • log_level_logfile — уровень журналирования для сообщений, отправляемых в лог-файл.

    Возможные значения аналогичны значениям параметра log_level.

Настройка ротации и архивирования

Для настройки ротации и архивирования используется служба logrotate, которая обеспечивает автоматическую ротацию, сжатие, удаление и отправку лог-файлов по почте. Обычно служба logrotate запускается как ежедневное задание cron. В зависимости от настроек каждый лог-файл может обрабатываться ежедневно, еженедельно, ежемесячно или при достижении определенного размера.

Чтобы задать необходимые настройки, создайте файл конфигурации /etc/logrotate.d/salt-common.

Пример c минимальными настройками:

/app/osmax/logs/salt-minion/minion {
daily
missingok
rotate 45
compress
notifempty
}

Где:

  • /app/osmax/logs/<модуль SaltStack>/<имя лог-файла> — путь до лог-файла;

  • daily — период ротации лог-файла (ежедневно);

  • missingok — если лог-файл отсутствует, будет выполняться переход к следующему файлу без вывода сообщения об ошибке;

  • rotate 45 — лог-файл будет проходить 45 ежедневных ротаций, перед тем как будет удален;

  • compress — файл будет сжат после ротации;

  • notifempty — если лог-файл пустой, ротация выполняться не будет.