Введение
FreeIPA Health Check – утилита для диагностики работоспособности сервера FreeIPA.
Её основное назначение – автоматическая проверка корректности настроек, безопасности, доступности репликации и работы сервисов FreeIPA.
Программа предназначена для администраторов, требующих быстрой диагностики и своевременного обнаружения неисправностей.
Цели использования:
Обеспечение устойчивости работы серверов FreeIPA.
Выявление потенциальных ошибок в настройке.
Контроль состояния репликации и конфигурации Kerberos.
Своевременное оповещение о сбоях и нарушениях в системе.
Описание стенда
Запуск утилиты производится на настроенном контроллере ЕПП FreeIPA. Порядок установки см. в статье:
Никаких настроек более не требуется.
Установка пакета
Пакет freeipa-healthcheck входит в репозитории Astra Linux. Установить необходимый пакет можно используя Графический менеджер пакетов synaptic, или из командной строки:
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 запроса на сертификат).
|
Пример готовой конфигурации может выглядеть так:
[default]
cert_expiration_days = 7
timeout = 25
output_type = json
output_file = /var/log/ipa-health.log
indent = 2
verbose = True
severity = ERROR CRITICAL
debug = False
[excludes]
source = ipahealthcheck.ipa.certs
check = IPADNSSystemRecordsCheck |
Также все параметры конфигурации поддерживаются в виде аргументов командой строки.
Аргументы командной строки:- --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 задает префикс, который будет добавляться к именам метрик.
|
Пример готовых команд может выглядеть так:
- Выполнение конкретной проверки сертификатов с фильтрацией по уровню серьезности и показом только ошибок:
ipa-healthcheck --source=ipahealthcheck.ipa.certs --check=IPACertExpirationCheck --severity=ERROR --severity=CRITICAL --failures-only --output-type=human |
- Запуск с использованием собственного файла конфигурации, сохранением результата в файл, режимами подробного логирования и отладки:
ipa-healthcheck --config=/etc/ipahealthcheck/myconfig.conf --output-file=/var/log/ipa/healthcheck/healthcheck.log --indent=4 --verbose --debug |
- Запуск проверки топологии с выводом в формате Prometheus и заданным префиксом для метрик:
ipa-healthcheck --source=ipahealthcheck.ipa.topology --check=IPATopologyDomainCheck --output-type=prometheus --metric-prefix=ipa_health |
1111