O collectd é um daemon[a] do Unix que coleta, transfere e armazena dados de desempenho de computadores e equipamentos de rede. Os dados adquiridos destinam-se a ajudar os administradores de sistemas a manter uma visão geral dos recursos disponíveis para detectar gargalos existentes ou iminentes.
A primeira versão do daemon[a] foi escrita em 2005 por Florian Forster e foi desenvolvida como um projeto de código aberto livre. Outros desenvolvedores escreveram melhorias e extensões ao software que foram incorporadas ao projeto.[1] A maioria dos arquivos do código-fonte são licenciados sob os termos da Licença pública geral GNU, versão 2 (GPLv2), os arquivos restantes são licenciados sob outras licenças de código aberto.[2]
O collectd usa um esquema[b] modular [en]: o daemon[a] em si implementa apenas a infraestrutura para filtrar e retransmitir dados, bem como funções auxiliares, e requer pouquíssimos recursos, ele ainda é executado em dispositivos embarcados com o OpenWrt. A aquisição e o armazenamento de dados são tratados por plugues[c] na forma de objetos compartilhados.[3] Dessa forma, o código específico de um sistema operacional é mantido fora do daemon[a] real. Os plugues[c] podem ter suas próprias dependências, por exemplo, um sistema operacional específico ou bibliotecas de software. Outras tarefas executadas pelos plugues[c] incluem o processamento de "notificações" e mensagens de registro [en][d].
Os plugues[c] de aquisição de dados, chamados de "plugues[c] de leitura" na documentação do collectd, podem ser divididos em três categorias:
Os chamados "plugues[c] de gravação" oferecem a possibilidade de armazenar os dados coletados em disco usando arquivos RRD ou CSV, ou enviar dados pela rede para uma instância remota do daemon[a].
Incluído na distribuição do código-fonte do collectd está o chamado plugue[c] de "rede", que pode ser usado para enviar e receber dados de/para outras instâncias do daemon[a]. Em uma configuração de rede típica, o daemon[a] seria executado em cada máquina hospedeira[g] (chamada de "cliente") monitorada com o plugue[c] de rede configurado para enviar os dados coletados para um ou mais endereços de rede. Em um ou mais chamados "servidores", o mesmo daemon[a] seria executado, mas com uma configuração diferente, para que o plugue[c] de rede recebesse dados em vez de enviá-los. Muitas vezes, o plugue[c] RRDtool é usado em servidores para armazenar os dados de desempenho.[4]
O plugues[c] usa um protocolo de rede binário sobre o Protocolo de datagrama do usuário[h]. Ambos, o IPv4 e o IPv6 são suportados como camada de rede. É possível usar endereçamento unicast (ponto a ponto) e multicast (ponto a grupo). Autenticação e criptografia foram adicionadas ao protocolo com a versão 4.7.0, lançada em maio de 2009.