Comments 7
А почему тогда не воспользоваться system.run?
Если мне не изменяет память, раньше он был ограничен 255 символами. А сейчас описано, что ограничен возврат данных в 512кб. Плюс его надо отдельно включать и тогда можно будет любую команду на сервере выполнить, а не только то что запланировано. Свободное выполнение команд, это точно к вопросам о безопасности.
AlexGluck написал основные моменты с использованием system.run, немного дополню. Ключ элемента данных ограничен в последних версиях 2048 символами. Так же сталкивались с тем, что не любую команду можно запихнуть в system.ru(возможно что-то недосмотрел, утверждать не буду). С безопасниками можно договориться на использовании system.run с ведением списка AllowKey, но это доставляет примерно туже головную боль, что и распространение UserParameter, а ввиду вышеописанных ограничений system run, то выбрали для себя использование UserParameter
А как же агент2 и плагины на Go?
Можно, конечно, сделать и плагин, но постоянно пересобирать агент, что бы добавить свой плагин как-то не очень хочется. Так же в нашем случае из-за отсутствии рута проще использовать скрипт, т.к. скрипт можно разлить своими руками, а обновлять агентов, надо напрягать админов, и этап распространения растянется надолго.
Если бы можно было написав плагин отдать его Zabbix, то это был бы интересный вариант, но тут нужно что бы сообщество поддержало соответствующий ZBX-NEXT.
Не совсем ясны некоторые моменты, например, зачем нужен каталог /etc/zabbix/zabbix_agentd.d/dyn_up
?
Это путь расположения динамических пользовательских параметров. Их можно расположить в удобном для Вас месте изменив в скрипте переменную dyn_up_dir
Если вопрос в том, почему используется отдельная от стандартных пользовательских параметров директория, то это надо для того, что бы агент zabbix не старался их загрузить при старте(отделить стандартные UP от динамических). Можно это сделать через иное расширение файлов, это уже дело удобства/привычки.
Учим zabbix-agent «есть» на ходу и не давиться пользовательскими параметрами (UserParameter)