...
FreeIPA Health Check – инструмент ipa-healthcheck, предназначенный для диагностики состояния серверов FreeIPA.
Инструмент предназначен для администраторов Используется администраторами доменов.
Запуск инструмента производится на настроенном контроллере ЕПП FreeIPA. Порядок установки и настройки контроллера см. в статье :Контроллер ЕПП FreeIPA в Astra Linux.
Также утилита инструмент может проверять корректность работы реплик, :
...
...
Установка пакета
Пакет Инструмент ipa-healthcheck предоставляется пакетом freeipa-healthcheck. Пакет входит в расширенный репозиторий Astra Linux. Установить пакет можно используяГрафический менеджер пакетов synaptic, или из командной строки:
...
После установки будут созданы:
...
- файл /etc/ipahealthcheck/ipahealthcheck.conf
...
- ,
- служба-юнит ipa-healthcheck.service
...
- в systemd,
- служба-таймер ipa-healthcheck.
...
...
Конфигурация и интеграция
...
Файл конфигурации разделён как минимум на два разделадве секции:
- Раздел Секция [default]. В этом разделе этой секции задаются значения параметров, влияющих на работу инструмента проверки состояния.
- Раздел Секция [excludes]. Этот раздел Эта секция используется для фильтрации или подавления определённых результатов по имени источникаимени источника, имени проверки или конкретному ключу результата. Это особенно полезно для игнорирования известных незначительных проблем в окружении.
| Раскрыть |
|---|
| title | Подробное описание параметров конфигурации... |
|---|
|
Параметры в разделе секции [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 (критическая ошибка). - source:
Исполняет проверки только из указанного источника или пространства имен. имен (например, ipahealthcheck.ipa.certs). Полный список источников см. Обзор источников и проверок для диагностики и мониторинга FreeIPA - check:
Позволяет запустить конкретную проверку внутри выбранного источника, этот параметр используется совместно с source . (например, IPADNSSystemRecordsCheck). Полный список проверок см. Обзор источников и проверок для диагностики и мониторинга FreeIPA
Параметры в разделе секции [excludes] |
...
| Блок кода |
|---|
| title | /etc/ipahealthcheck/ipahealthcheck.conf |
|---|
|
[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 |
Аргументы при запуске из командной строки
Также все параметры конфигурации поддерживаются в виде аргументов при запуске из командой строки.
| Раскрыть |
|---|
| title | Подробное описание аргументов при запуске из командной строки... |
|---|
|
Аргументы при Аргументы при запуске из командной строки- --list-sources:
Выводит список доступных источников (sources) и проверок (checks), что помогает определить, какие группы тестов доступны в вашей установке. - --config=FILE:
Задает файл конфигурации, который будет использоваться при запуске. Если указать пустую строку, то файл конфигурации не загружается. По умолчанию используется файл /etc/ipahealthcheck/ipahealthcheck.conf. - --source=SOURCE:
Исполняет проверки только из указанного источника или пространства имен . (например, ipahealthcheck.ipa.certs). Полный список источников см. Обзор источников и проверок для диагностики и мониторинга FreeIPA - --check=CHECK:
Позволяет запустить конкретную проверку внутри выбранного источника, этот параметр используется совместно с --source . (например, IPADNSSystemRecordsCheck). Полный список проверок см. Обзор источников и проверок для диагностики и мониторинга FreeIPA - --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 задает префикс, который будет добавляться к именам метрик.
|
Пример готовых команд может выглядеть так:
- Выполнение конкретной проверки сертификатов с фильтрацией по уровню серьезности и показом только ошибок:
| Блок кода |
|---|
|
sudo ipa-healthcheck --source=ipahealthcheck.ipa.certs --check=IPACertExpirationCheck --severity=ERROR --severity=CRITICAL --failures-only --output-type=human |
- Запуск с использованием собственного файла конфигурации, сохранением результата в файл, режимами подробного логирования и отладки:
| Блок кода |
|---|
|
sudo ipa-healthcheck --config=/etc/ipahealthcheck/myconfig.conf --output-file=/var/log/ipa/healthcheck/healthcheck.log --indent=4 --verbose --debug |
- Запуск проверки топологии с выводом в формате Prometheus и заданным префиксом для метрик:
| Блок кода |
|---|
|
sudo ipa-healthcheck --source=ipahealthcheck.ipa.topology --check=IPATopologyDomainCheck --output-type=prometheus --metric-prefix=ipa_health |
| Раскрыть |
|---|
| title | Возможные варианты вывода... |
|---|
|
Возможные варианты вывода варьируются от переданного аргумента в параметр значения параметра output-type. См. Конфигурация и интеграция - human
| Блок кода |
|---|
| $ sudo ipa-healthcheck --output-type=human
ERROR: ipahealthcheck.ipa.certs.IPACertTracking.cert-file=/var/lib/ipa/certs/kdc.crt, key-file=/var/lib/ipa/certs/kdc.key, ca-name=None, cert-postsave-command=/usr/lib/ipa/certmonger/renew_kdc_cert: Expected certmonger tracking is missing for cert-file=/var/lib/ipa/certs/kdc.crt, key-file=/var/lib/ipa/certs/kdc.key, ca-name=None, cert-postsave-command=/usr/lib/ipa/certmonger/renew_kdc_cert. Automated renewal will not happen for this certificate |
- json
| Блок кода |
|---|
| $ sudo ipa-healthcheck --output-type=json
[
{
"source": "ipahealthcheck.ipa.certs",
"check": "IPACertTracking",
"result": "ERROR",
"uuid": "37a2d931-44a5-4ceb-84c1-1da1ac4663f8",
"when": "20250421043329Z",
"duration": "0.071436",
"kw": {
"key": "cert-file=/var/lib/ipa/certs/kdc.crt, key-file=/var/lib/ipa/certs/kdc.key, ca-name=None, cert-postsave-command=/usr/lib/ipa/certmonger/renew_kdc_cert",
"msg": "Expected certmonger tracking is missing for {key}. Automated renewal will not happen for this certificate"
}
}
] |
- prometheus
| Блок кода |
|---|
| $ sudo ipa-healthcheck --output-type=prometheus
ipa_healthcheck{result="ERROR"} 1.0 |
|
| Предупреждение |
|---|
|
При запуске инструмент сначала загружает опции параметры из файла конфигурации, затем применяются опции параметры командной строки. Действуют следующие правила: Любой параметр, указанный в конфигурационном файле, считается уже установленным и не может быть переопределён опцией параметром командной строки. Только те опциипараметры, которых нет в конфигеконфигурационном файле, будут считаться и применены из командной строки. Исключение: если вы явно загружаете загружен другой конфигурационный файл (например, --config=myconf.conf) или отключаете загрузку конфига отключена загрузка конфигурационного файла совсем (--config=""), тогда логика «первым пришёл» пересчитывается относительно нового (или отсутствующего) файла, и ваши CLI‑параметры параметры командной строки смогут вступить в силу.
|
Интеграция ipa‑healthcheck с systemd
После установки пакета в systemd появятся При установке пакета создаются два системных юнита:
- ipa-healthcheck.service - основной юнит-служба, который запускает инструмент ipa‑healthcheck, выполняет проверки состояния установки FreeIPA и формирует отчёт об обнаруженных проблемах.
- ipa-healthcheck.timer - юнит-таймер, который по заданному интервалу инициирует запуск инициирующий запуск юнита-службы (ipa‑healthcheck.service. Он позволяет ) через заданные интервалы времени. Позволяет автоматизировать регулярное выполнение проверок , что особенно полезно для постоянного мониторинга системы.
Порядок настройки таймеров в Astra Linux см. в статье:статье Использование таймеров systemd вместо заданий cron.
Запуск таймера в системе производится так:
...
В файле /usr/libexec/ipa/ipa-healthcheck.sh можно указать, с какими параметрами командной строки будет запускаться служба ipa-healthcheck.service:
| Информация |
|---|
|
Файл /usr/libexec/ipa/ipa-healthcheck.sh создается при установке пакета freeipa-healthcheck. |
| Блок кода |
|---|
| title | /usr/libexec/ipa/ipa-healthcheck.sh |
|---|
|
#!/bin/sh
LOGDIR=/var/log/ipa/healthcheck
/usr/bin/ipa-healthcheck --output-file $LOGDIR/healthcheck.log --source=ipahealthcheck.ipa.certs --check=IPACertExpirationCheck --severity=ERROR --severity=CRITICAL |
...
| Предупреждение |
|---|
|
Запуск службы ipa‑healthcheck.service через systemd может завершиться статусом ошибкой (failed, ) если какая-либо тестовая проверка не выполнена. В этом случае утилита возвращает ненулевой код, а для диагностики стоит следует просмотреть журнал службы с помощью команды: | Блок кода |
|---|
| sudo journalctl -u ipa-healthcheck.service |
|
...