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 года.