После включения обязательного TLS PSK графики PostgreSQL в Zabbix перестали обновляться. Сама база работает, Mamonsu продолжает опрашивать плагины, но сервер мониторинга больше не принимает незашифрованные данные.
Задача администратора — вернуть метрики и не открывать старый канал. Для этого проверьте поддержку PSK в установленной сборке Mamonsu, создайте ключ и задайте одинаковую пару identity–PSK на обеих сторонах.
Mamonsu собирает около 90 показателей PostgreSQL и 40 показателей операционной системы. Получается примерно 130 метрик: 90 + 40. По описанию репозитория Postgres Professional плагины запускают сбор каждые 60 секунд, после чего активный агент отправляет значения в Zabbix.
Настройка обычного Zabbix Agent здесь не поможет. Mamonsu сам выступает активным агентом, поэтому поддержку TLS должен содержать именно его код.
Проверьте, умеет ли ваша сборка Mamonsu работать с PSK
Сначала отделите проблему версии от ошибки настройки. Ранние сборки Mamonsu передавали данные без TLS PSK. Позднее для агента подготовили доработку с поддержкой PSK и сертификатов, совместимую со старыми и новыми версиями Python.
Авторы отправили изменения разработчикам Mamonsu в upstream. Публикация описывает передачу кода разработчикам, но не подтверждает его включение в конкретный релиз. Поэтому нельзя считать, что PSK работает в любом пакете из репозитория.
Проверьте происхождение установленного пакета и документацию именно к своей сборке. Официальный репозиторий Postgres Professional публикует готовые пакеты Mamonsu, но наличие пакета ещё не подтверждает поддержку TLS PSK.
| Что проверить | Что означает результат | Что делать |
|---|---|---|
| В документации сборки описан TLS PSK | Сборка содержит нужный интерфейс настройки | Использовать названия параметров из этой документации |
| Параметров TLS в документации нет | Поддержка PSK не подтверждена | Уточнить состав пакета или перейти на сборку с доработкой |
| Mamonsu установлен из собственного пакета | Код мог отличаться от официального репозитория | Проверить версию, commit и изменения сборщика |
| Используется старый Python | Штатного PSK API в модуле ssl может не быть | Проверить, какой совместимый механизм применяет сборка |
| Версия Zabbix выходит за заявленный диапазон Mamonsu | Ошибка может возникнуть не только на TLS | Проверить совместимость до изменения шифрования |
Вывод: отсутствие метрик после запрета незашифрованных соединений ещё не указывает на неверный ключ. Возможно, установленный Mamonsu вообще не умеет открыть PSK-соединение.
Репозиторий Mamonsu указывает поддержку Python 3.3 и новее, PostgreSQL 12–18 и Zabbix 4.0.44–6.4.13. Эти границы относятся к опубликованному состоянию проекта. Для другого пакета или более нового Zabbix совместимость нужно подтверждать отдельно.
Не переносите в Mamonsu параметры обычного Zabbix Agent вслепую. В документации Zabbix используются TLSConnect, TLSPSKIdentity и TLSPSKFile, но имена параметров Mamonsu зависят от реализации доработки. Совпадение назначения не гарантирует совпадение синтаксиса.
Если параметров TLS в установленной сборке нет, дальнейшая правка Zabbix бесполезна. Сначала нужен пакет Mamonsu с поддержкой PSK либо подтверждённый патч для вашей версии.
Создайте ключ и отдельную identity
В Zabbix один PSK состоит из двух частей. Первая — непустая строка identity, по которой сервер находит ключ. Вторая — секретное значение из шестнадцатеричных знаков.
Identity не считается секретом и передаётся открыто. Сам ключ не публикуйте в журналах, переписке и системе управления задачами.
Документация Zabbix предлагает создать 256-битный ключ такой командой:
openssl rand -hex 32
Команда генерирует 32 случайных байта. Один байт содержит 8 бит, поэтому длина ключа равна 32 × 8 = 256 бит. В шестнадцатеричной записи каждый байт занимает два знака, поэтому результат содержит 32 × 2 = 64 знака.
Сохраните вывод в отдельный файл. Первая строка должна содержать только значение PSK: без identity, двоеточия, комментария и поясняющей подписи.
Identity задайте отдельно, например по принятой у вас схеме имён узлов. Она должна однозначно указывать на этот экземпляр агента. Не используйте одну identity с разными ключами.
Интерфейс Zabbix принимает identity длиной до 128 символов. Предел зависит и от криптографической библиотеки: OpenSSL 1.0.x и 1.1.0 принимают до 127 байт, а GnuTLS — до 128 байт. Короткое имя узла не упирается в эти ограничения, и его легче сверять при диагностике.
Внесите одну пару на обеих сторонах
На стороне Zabbix откройте Data collection → Hosts → Encryption. Выберите подключение через PSK, затем укажите identity и значение ключа.
На стороне Mamonsu задайте ту же пару средствами своей сборки. Точные названия полей возьмите из её документации или описания патча. Опубликованные материалы подтверждают наличие доработки, но не задают общий синтаксис для всех пакетов Mamonsu.
Совпасть должны оба значения, посимвольно:
- identity в Mamonsu и карточке узла Zabbix;
- PSK в файле Mamonsu и настройках узла;
- регистр букв в identity;
- шестнадцатеричная строка ключа;
- отсутствие пробелов и дополнительных строк в файле.
Zabbix ищет пару identity–PSK в кэше конфигурации. Соединение проходит, когда обе стороны используют одинаковую identity и одинаковый ключ. Одинаковая identity с разными ключами приводит к непредсказуемым разрывам связи.
Не создавайте новый ключ отдельно на каждой стороне. Сгенерируйте один PSK, затем перенесите его в Mamonsu и Zabbix. Два независимо созданных ключа не совпадут.
После сохранения настроек дождитесь синхронизации кэша конфигурации Zabbix. До неё сервер может продолжать проверять соединение по прежним данным.
Ограничьте доступ к PSK и конфигурации Mamonsu
Документация Zabbix требует, чтобы файл PSK обычного агента читал только пользователь Zabbix. Для Mamonsu настройте права по документации установленной сборки: секрет должен читать только тот пользователь, от которого запущен агент.
Проверьте владельца файла и права штатными средствами своей операционной системы. Не копируйте режим доступа механически: имя пользователя и путь зависят от способа установки Mamonsu.
Такой же защиты требует /etc/mamonsu/agent.conf. Документация проекта предупреждает, что пароль PostgreSQL хранится там открытым текстом. Читать и изменять файл должен только пользователь Mamonsu.
После переноса удалите временные копии из общих каталогов. Проверьте также резервные копии конфигурации: файл agent.conf.bak с широкими правами раскрывает тот же пароль, что и основной конфигурационный файл.
Четыре ошибки, из-за которых Zabbix отклоняет соединение
Большая часть ошибок PSK сводится к несовпадению пары или неверному формату файла. Проверяйте их в фиксированном порядке — от identity к содержимому ключа.
| Ошибка | Что видно | Как исправить |
|---|---|---|
| Identity различается на сторонах | Сервер не находит нужную пару в кэше | Скопировать одну строку identity без пробелов и смены регистра |
| Одна identity связана с двумя ключами | Соединение то проходит, то обрывается | Назначить уникальную identity каждому ключу |
В PSK-файле есть identity: или комментарий | Библиотека читает неверное значение ключа | Оставить в первой строке только шестнадцатеричную строку |
| Ключи сгенерированы отдельно | Длина и формат верны, но проверка не проходит | Создать один ключ и перенести его на обе стороны |
| Ключ длиннее предела библиотеки | Zabbix принимает настройку, соединение не устанавливается | Использовать 256-битный ключ из openssl rand -hex 32 |
| Zabbix ещё держит старую конфигурацию | После правки ошибка сохраняется некоторое время | Дождаться синхронизации конфигурационного кэша |
| Mamonsu не поддерживает PSK | В конфигурации нет подтверждённых параметров TLS | Установить сборку с доработкой или применить совместимый патч |
Вывод: сначала сравните identity, затем PSK-файл. Только после этого ищите проблему в криптографической библиотеке.
Документация Zabbix задаёт минимальную длину PSK в 128 бит. Верхний предел интерфейса — 2048 бит, но отдельные версии библиотек ограничивают ключ строже. Например, OpenSSL 1.1.1 принимает PSK до 512 бит, тогда как OpenSSL 1.1.1a и новее — до 2048 бит.
Для этой настройки достаточно 256 бит. Такой ключ превышает минимум Zabbix и укладывается в перечисленные ограничения библиотек. Увеличение длины до предела интерфейса не даёт практической пользы, зато добавляет риск несовместимости.
Проверяйте поступление данных, а не только отсутствие ошибки
Успешный запуск процесса Mamonsu ещё не доказывает передачу метрик. Решающий признак — новые значения с актуальным временем в карточке узла Zabbix.
Mamonsu работает как активный агент. Он собирает данные и сам отправляет их серверу. Поэтому отдельная проверка PSK через zabbix_get не гарантирует, что метрики Mamonsu доходят до Zabbix.
Утилита zabbix_get поддерживает параметры --tls-connect=psk, --tls-psk-identity и --tls-psk-file. Ею можно проверить PSK-соединение с обычным агентом Zabbix. Доставку метрик Mamonsu подтверждают только свежие значения нужного узла.
После изменения настроек выполните такую проверку:
- Убедитесь, что процесс Mamonsu запущен без ошибок TLS.
- Дождитесь синхронизации конфигурационного кэша Zabbix.
- Подождите очередной 60-секундный цикл плагинов.
- Откройте последние данные нужного узла.
- Проверьте время новых значений PostgreSQL и операционной системы.
Если соединение принято, но новых значений нет, проверьте привязку шаблона Mamonsu к узлу. Репозиторий проекта прямо указывает: без связанного шаблона Zabbix не получает и не показывает метрики агента.
Не обновляйте шаблон только ради проверки TLS. Документация Mamonsu предупреждает: после обновления шаблона и перезапуска агента прежняя история данных теряется. Сначала восстановите канал на текущем шаблоне.
Если новые системные показатели приходят, а данные PostgreSQL отсутствуют, TLS уже работает. Тогда проверьте подключение Mamonsu к базе, права пользователя мониторинга и плагины PostgreSQL. Системные показатели Mamonsu собирает локально, а метрики PostgreSQL — через единое соединение с базой.
Если Zabbix принимает весь поток, но вам не хватает контроля серверных процессов 1С, продолжите с единым контуром наблюдения за Linux, PostgreSQL и 1С. Там метрики хоста связаны с сеансами, блокировками, WAL и autovacuum.
Рабочий порядок перехода на TLS PSK
Не закрывайте незашифрованный приём до проверки совместимости установленного Mamonsu. Иначе вы одновременно меняете политику Zabbix и способ отправки данных, а точку отказа приходится искать между ними.
Проходите переход в таком порядке:
- Подтвердите поддержку TLS PSK в своей сборке Mamonsu.
- Сверьте её совместимость с Python и версией Zabbix.
- Создайте один ключ командой
openssl rand -hex 32. - Назначьте ключу уникальную identity.
- Сохраните PSK в отдельном файле с доступом по правилам своей сборки Mamonsu.
- Внесите одну пару identity–PSK в Mamonsu и Zabbix.
- Дождитесь синхронизации кэша Zabbix и нового цикла сбора.
- Проверьте свежие значения, а не только состояние процесса.
- После успешной проверки запретите незашифрованные подключения.
Если Zabbix отклоняет соединение, сравните identity и PSK посимвольно. Если параметров TLS нет в Mamonsu, ищите сборку с доработкой, а не меняйте конфигурацию обычного Zabbix Agent. Если соединение установлено, но графики стоят, проверьте шаблон и доступ Mamonsu к PostgreSQL.
Рабочий критерий один: после очередного цикла в Zabbix появляются новые метрики PostgreSQL и системы, а узел больше не принимает незашифрованное соединение.