FreeIPA Health Check – утилита для диагностики работоспособности сервера FreeIPA. Её основное назначение – автоматическая проверка корректности настроек, безопасности, доступности репликации и работы сервисов FreeIPA. Программа предназначена для администраторов, требующих быстрой диагностики и своевременного обнаружения неисправностей.
Цели использования:
Обеспечение устойчивости работы серверов FreeIPA.
Выявление потенциальных ошибок в настройке.
Контроль состояния репликации и конфигурации Kerberos.
Своевременное оповещение о сбоях и нарушениях в системе.
Описание стенда
Запуск утилиты производится на настроенном контроллере ЕПП FreeIPA. Порядок установки см. в статье:
Пакет freeipa-healthcheck входит в репозитории Astra Linux. Установить необходимый пакет можно используяГрафический менеджер пакетов synaptic, или из командной строки:
shell
sudo apt install freeipa-healthcheck
После установки будут созданы конфигурационный файл /etc/ipahealthcheck/ipahealthcheck.conf и служба ipa-healthcheck.service в systemd.
Настройка. Конфигурация и интеграция
Файл конфигурации разделён как минимум на два раздела:
Раздел [default]. В этом разделе задаются значения параметров, влияющих на работу инструмента проверки состояния (healthcheck).
Раздел [excludes]. Этот раздел используется для фильтрации или подавления определённых результатов по имени источника, имени проверки или конкретному ключу результата. Это особенно полезно для игнорирования известных незначительных проблем в окружении.
Параметры в разделе [default]:
cert_expiration_days: Задает порог в днях до истечения срока действия сертификата, после которого начинает выдаваться предупреждение (например, если установить значение 7, то предупреждение появится за 7 дней до истечения). Значение по умолчанию: 28.
timeout: Устанавливает максимальное время (в секундах) для выполнения каждой проверки. Если проверка выполняется дольше указанного времени, она считается прерванной с ошибкой. Значение по умолчанию: 10.
output_type: Определяет формат вывода результатов. Допустимые значения: – json (по умолчанию, машиночитаемый формат), – human (удобочитаемый формат для пользователей), – prometheus (формат для экспозиции метрик Prometheus).
output_file: Указывает путь к файлу, в который будет записываться вывод вместо стандартного вывода (stdout).
indent: При использовании JSON-вывода задаёт уровень отступов для форматирования результата.
verbose: Активирует подробное логирование для получения дополнительной информации о работе инструмента. Эта опция полезна для диагностики, однако при автоматических запусках она может создавать избыточный вывод.
debug: Активирует режим отладки, при котором в выводе появляются дополнительные подробности, что полезно для диагностики проблем.
severity: Позволяет фильтровать вывод по уровню серьезности, чтобы отображались только результаты с заданными уровнями. Допустимые значения: – SUCCESS (успешно), – WARNING (предупреждение), – ERROR (ошибка), – CRITICAL (критическая ошибка).
Параметры в разделе [excludes]:
source: Позволяет подавлять результаты, поступающие из определённого источника (например, ipahealthcheck.ipa.certs).
check: Позволяет подавлять конкретные имена проверок (например, IPADNSSystemRecordsCheck).
key: Позволяет подавлять результаты по конкретному ключу (обычно это уникальный идентификатор, например, ID запроса на сертификат).
Также все параметры конфигурации поддерживаются в виде аргументов командой строки.
Аргументы командной строки:
--list-sources: Выводит список доступных источников (sources) и проверок (checks), что помогает определить, какие группы тестов доступны в вашей установке.
--config=FILE: Задает файл конфигурации, который будет использоваться при запуске. Если указать пустую строку, то файл конфигурации не загружается. По умолчанию используется /etc/ipahealthcheck/ipahealthcheck.conf.
--source=SOURCE: Позволяет подавлять результаты, поступающие из определённого источника (например, ipahealthcheck.ipa.certs).
--check=CHECK: Позволяет подавлять конкретные имена проверок (например, IPADNSSystemRecordsCheck).
--output-type=TYPE: Определяет формат вывода результатов. Допустимые значения: – json (по умолчанию, машиночитаемый формат), – human (удобочитаемый формат для пользователей), – prometheus (формат для экспозиции метрик Prometheus).
--failures-only: При активном использовании этого параметра в вывод будут включены только проверки, завершившиеся предупреждениями, ошибками или критическими сбоями (WARNING, ERROR, CRITICAL). По умолчанию включена.
--all: Выводит все результаты проверок, независимо от их уровня. Этот параметр отменяет действие --failures-only.
--severity=SEVERITY: Позволяет фильтровать вывод по уровню серьезности, чтобы отображались только результаты с заданными уровнями. Допустимые значения: – SUCCESS – WARNING – ERROR – CRITICAL
--verbose: Активирует подробное логирование для получения дополнительной информации о работе инструмента. Эта опция полезна для диагностики, однако при автоматических запусках она может создавать избыточный вывод.
--debug: Активирует режим отладки, при котором в выводе появляются дополнительные подробности, что полезно для диагностики проблем.
--output-file=FILENAME: Указывает путь к файлу, в который будет записываться вывод вместо стандартного вывода (stdout).
--input-file=FILENAME: Позволяет прочитать результаты предыдущего запуска (обычно в формате JSON) и отобразить их в другом формате или просто повторно показать сохранённые данные.
--indent=INDENT: При использовании JSON-вывода задаёт уровень отступов для форматирования результата.
--metric-prefix=PREFIX: При использовании формата вывода prometheus задает префикс, который будет добавляться к именам метрик.
Пример готовых команд может выглядеть так:
Выполнение конкретной проверки сертификатов с фильтрацией по уровню серьезности и показом только ошибок: