collectd — это демон Unix , который собирает, передает и хранит данные о производительности компьютеров и сетевого оборудования. Полученные данные призваны помочь системным администраторам следить за имеющимися ресурсами для обнаружения существующих или надвигающихся узких мест.
Первая версия демона была написана в 2005 году Флорианом Форстером и в дальнейшем развивалась как свободный проект с открытым исходным кодом . Другие разработчики написали улучшения и расширения для программного обеспечения, которые были включены в проект. [2] Большинство файлов исходного кода лицензированы в соответствии с условиями GNU General Public License , версии 2 (GPLv2), остальные файлы лицензированы в соответствии с другими лицензиями с открытым исходным кодом . [3]
collectd использует модульную конструкцию : сам демон реализует только инфраструктуру для фильтрации и ретрансляции данных, а также вспомогательных функций и требует очень мало ресурсов, он даже работает на встраиваемых устройствах на базе OpenWrt . Сбор и хранение данных осуществляется подключаемыми модулями в форме общих объектов . [4] Таким образом, код, специфичный для одной операционной системы , в основном хранится вне фактического демона. Подключаемые модули могут иметь свои собственные зависимости, например, конкретную операционную систему или библиотеки программного обеспечения . Другие задачи, выполняемые подключаемыми модулями, включают обработку «уведомлений» и сообщений журнала .
Плагины сбора данных, называемые в документации collectd «плагинами чтения», можно условно разделить на три категории:
Так называемые «плагины записи» предоставляют возможность сохранять собранные данные на диске с использованием файлов RRD или CSV или отправлять данные по сети на удаленный экземпляр демона.
В дистрибутив исходного кода collectd включен так называемый «сетевой» плагин, который может использоваться для отправки и получения данных от других экземпляров демона. В типичной сетевой установке демон будет работать на каждом контролируемом хосте (называемых «клиентами») с сетевым плагином, настроенным на отправку собранных данных на один или несколько сетевых адресов. На одном или нескольких так называемых «серверах» будет работать тот же демон, но с другой конфигурацией, так что сетевой плагин будет получать данные, а не отправлять их. Часто плагин RRDtool используется на серверах для хранения данных о производительности. [5]
Плагин использует бинарный сетевой протокол поверх UDP . Как IPv4 , так и IPv6 поддерживаются в качестве сетевого уровня . Возможно использование одноадресной (точка-точка) и многоадресной (точка-группа) адресации. Аутентификация и шифрование были добавлены в протокол с версии 4.7.0, выпущенной в мае 2009 года.