https://collectd.org/
A CollectD é um pequeno daemon que coleta informações do sistema periodicamente e fornece mecanismos para armazenar e monitorar os valores de várias maneiras.
A COLLECTD é capaz de coletar os seguintes dados:
Utilização do servidor Apache Apache: número de bytes transferidos, número de solicitações manipuladas e estatísticas detalhadas do placar
APCUPS APC UPS Daemon: UPS Charge, Carga, Tensão de entrada/saída/bateria, etc.
Apple_sensors Sensores em Macs executando o Mac OS X / Darwin: temperatura, velocidade do ventilador e sensores de tensão.
Aquaero Vários sensores na placa de resfriamento de água Aquaero 5 feita pelo Aquacomputer.
Estatísticas de subida sobre ascensão, um servidor gratuito para o jogo "World of Warcraft".
O barômetro lê pressão barométrica absoluta, pressão do ar reduzida ao nível e temperatura do mar. Os sensores suportados são MPL115A2 e MPL3115 da Freescale e BMP085 da Bosch.
Charge da bateria, corrente e tensão das baterias de laptop baseadas em ACPI e PMU.
Estatísticas do servidor de nomes de ligação e resolvedor da interface statistics-channel de Bind 9.5, 9,6 e posterior.
Estatísticas de Buddyinfo do arquivo buddyinfo sobre fragmentação da memória.
Recursos de capacidades Recursos de plataforma decodificados de subsistemas de hardware, por exemplo, do SMBIOS usando o DMIDecode. https://www.nongnu.org/dmidecode/
Estatísticas do CEPH do sistema de armazenamento distribuído CEPH.
CGROUPS Informações contábeis da CPU para grupos de processo em Linux.
Estatísticas de daemon Chrony Chrony: Drift de relógio local, deslocamento para colegas, etc.
Status da interface baseada em eventos de conectividade.
Número da conexão de entradas NF_Conntrack.
Contextwitch Número de comutadores de contexto feitos pelo sistema operacional.
Utilização da CPU CPU: tempo gasto no sistema, usuário, bom, ocioso e estados relacionados.
Frequência da CPU da CPUFREQ (para laptops com etapa de velocidade ou uma tecnologia semelhante)
CPUSleep CPU Sleep: tempo gasto em suspensão (para dispositivos móveis que entram em suspensão automaticamente)
Curl Parse Statistics de sites usando expressões regulares.
Curl_json recupera os dados JSON via Curl e o analisa de acordo com a configuração do usuário.
Curl_XML recupera dados XML via Curl e o analisa de acordo com a configuração do usuário.
O DBI executa instruções SQL em vários bancos de dados e interpreta os dados retornados.
O DCPMM coleta o desempenho da Intel Optane DC Presistent Memory (DCPMM) e as estatísticas de saúde.
Uso do DF MountPoint (basicamente os valores df(1) entrega)
Utilização do disco de disco: Setores Read/escritos, número de ações de leitura/gravação, tempo médio que uma operação de IO levou para concluir.
DNS DNS Tráfego: tipos de consultas, códigos de resposta, códigos de operação e tráfego/octetos transferidos.
DPDKSTAT Colete estatísticas da interface DPDK. Consulte Docs/Build.dpdkstat.md para obter instruções de construção detalhadas.
Este plug -in deve ser compilado com as defesas do compilador ativadas, por exemplo -Fstack -Protector.
DPDK_Telemetria coleta interface DPDK, aplicação e estatísticas globais. Este plug -in pode ser usado como substituto para o plug -in DPDKSTAT.
Este plug -in depende da versão DPDK 19.08 e deve ser usado junto com o aplicativo DPDK.
Além disso, este plugin depende da biblioteca Jansson.
Drbd coleta estatísticas individuais de recursos drbd.
Estatísticas de e -mail de email: contagem, tráfego, pontuações de spam e cheques. Veja Collectd-E-Eail (5).
quantidade de entropia de entropia disponível para o sistema.
Os épicos coletam dados do barramento de mensagens da Epics. https://epics-controls.org
Estatísticas do cartão de interface de rede ETHSTAT.
Valores executivos coletados por um programa ou script personalizado. Veja Collectd-Exec (5).
O arquivo do FHCount lida com estatísticas.
FileCount Count o número de arquivos nos diretórios.
FSCACE Linux Sistema de Arquivo de Arquivo Estatísticas da Estrutura de Cache.
O GMOND recebe tráfego multicast das instâncias dos gânglios.
Os GPS monitoram dados relacionados ao GPS através do GPSD.
GPU_NVIDIA MONITOR NVIDIA GPU Estatísticas disponíveis através do NVML.
HDDTEMP Temperaturas de disco rígido usando HDDTEMPD.
O enormePages relata o número de imensas usadas e gratuitas. Mais informações sobre enormes podem ser encontradas aqui: https://www.kernel.org/doc/documentation/vm/hugetlbpage.txt.
Este plug -in deve ser compilado com as defesas do compilador ativadas, por exemplo -Fstack -Protector.
Atributos e contadores Infiniband para cada porta em cada dispositivo IB.
Intel_pmu O plug -in Intel_PMU lê contadores de desempenho fornecidos pela interface Linux Kernel Perf. O plug -in usa a biblioteca Jevents para resolver eventos nomeados para eventos e acessar a interface Perf.
Intel_rdt O plug -in Intel_RDT coleta informações fornecidas por monitoramento de recursos da tecnologia do Diretor de Recursos da Intel (Intel (RDT), como a Tecnologia de Monitoramento de Cache (CMT), Memory Bandwidth Monitoring (MBM). Esses recursos fornecem informações sobre a utilização de recursos compartilhados, como ocupação de cache de último nível, uso de largura de banda de memória local, uso de largura de banda de memória remota, instruções por relógio. https://01.org/packet-processing/cache-monitoring-technology-memory-bandwidth-monitoring-cache-alocation-technology-code-and-data
Tráfego da interface da interface: número de octetos, pacotes e erros para cada interface.
Contadores IPC IPC: Semáforos utilizados, número de segmentos alocados na memória compartilhada e muito mais.
IPMI IPMI (Intelligent Platform Management Interface) Informações dos sensores.
ipstats ipv4 e ipv6; Contadores de entrada, saída, saída. Apenas FreeBSD.
Os contadores iptables iptables: número de bytes que foram correspondidos por uma certa regra iptables.
Estatísticas de conexão IPVs IPVs (número de conexões, octetos e pacotes para cada serviço e destino). Consulte http://www.linuxvirtualserver.org/software/index.html.
Contadores de IRQ IRQ: Frequência na qual ocorrem certas interrupções.
O Java integra uma máquina virtual Java (JVM) para executar plugins no Java Bytecode. Consulte Docs/Build.java.md para obter instruções de construção detalhadas.
Carregar o sistema de carga média nos últimos 1, 5 e 15 minutos.
A LPAR detalhou as estatísticas da CPU da técnica de virtualização “Partições lógicas” incorporada aos processadores de energia da IBM.
Lua, o plug -in Lua, implementa um intérprete Lua no colecionamento. Isso torna possível escrever plugins em Lua, que são executados pela CollectD sem a necessidade de iniciar um intérprete pesado a cada intervalo. Consulte Collectd-Lua (5) para obter detalhes.
O Madwifi consulta estatísticas de uso muito detalhadas de adaptadores e interfaces sem fio da LAN que usam o chipset atheros e o motorista Madwifi.
Sensores da placa -mãe MBMON: temperatura, velocidade do ventilador e informações de tensão, usando o MBMON (1).
MCELOG Monitor Machine Verifique as exceções (erros de hardware detectados por hardware e relatados no software) relatados pelo McElog e geram notificações apropriadas quando as exceções da verificação da máquina são detectadas.
MD Linux Informações do dispositivo de ataque de software (número de discos ativos, falhados, sobressalentes e ausentes).
Consulta de memcachec e dados de análise de um daemon de memcache (memcached).
Estatísticas de memcached do sistema de cache distribuído em memcached. http://www.danga.com/memcached/
Utilização da memória da memória: memória ocupada por processos de execução, cache de página, cache de buffer e grátis.
O MIC coleta o uso da CPU, o uso da memória, as temperaturas e o consumo de energia da Intel, muitas CPUs integradas do núcleo (MIC).
O MMC lê as estimativas de tempo de vida relatadas pelos dispositivos EMMC 5.0+ e algumas métricas de saúde mais detalhadas, como contagens de bloqueio e apagamento ou ciclos de energia, para Micron e Sandisk EMMCs e alguns cartões MMC do suíço (Manfid = 0x5d oemid = 0x5342).
O Modbus lê valores de dispositivos habilitados para Modbus/TCP. Suporta os valores de leitura de vários "escravos" para que os dispositivos de gateway possam ser usados.
Informações multímetro fornecidas por multímetros em série, como o Metex M-4650CR .
Estatísticas do MySQL Mariadb e MySQL Server: Comandos emitidos, manipuladores acionados, uso de threads, utilização de cache de consulta e tráfego/octetos enviados e recebidos.
O plug -in NetApp para consultar valores de desempenho de um sistema de armazenamento NetApp usando o SDK "Gerenciar ONTAP" fornecido pelo NetApp.
Interface de rede Linux muito detalhada e estatísticas de roteamento. Você pode obter informações (detalhadas) sobre interfaces, qdiscs, classes e, se puder usá -las, filtros.
Rede de recebimento de valores coletados por outros hosts. As grandes configurações desejam coletar os dados em uma máquina dedicada, e este é o plug -in escolhido para isso.
Procedimentos NFS NFS: quais comando NFS eram chamados com que frequência.
O nginx coleta estatísticas do nginx (fale: mecanismo x), um servidor/proxy HTTP e de email.
Estatísticas do daemon NTPD NTP: desvio local do relógio, deslocamento para colegas, etc.
Informações da NUMA sobre acesso a memória não uniforme (NUMA).
Ferramentas para UPS de rede de porca: UPS CTRINUAL, TONTAGEM, POWER, CARGA, Utilização, temperatura, etc. Consulte UPSD (8).
OLSRD Consultas Informações de roteamento do daemon "Otimized Link State Routing".
OneWire (Experimental!) Leia sensores OneWire usando a biblioteca Owcapu do projeto OWFS. Leia em coleciond.conf (5) Por que este plug -in é experimental.
Informações de monitoramento de leitura do OpenLDAP da subárvore CN = Monitor do OpenLDAP.
OpenVPN RX e TX de cada cliente no OpenVPN-status.log (VERIÇÃO DE STATUS 2). http://openvpn.net/index.php/documentation/howto.html
Oracle consulta dados de um banco de dados Oracle.
OVS_EVENTS O plug -in monitora o status do link de interfaces conectadas do Open VSwitch (OVS), despacha os valores para coletar e envia a notificação sempre que a alteração do estado de link ocorre no banco de dados OVS. Requer que a biblioteca Yajl seja instalada. Instruções detalhadas para instalar e configurar o VSWitch aberto, consulte a documentação do OVS. http://openvswitch.org/support/dist-docs/install.rst.html
OVS_STATS O plug -in coleta as estatísticas de OVS conectadas pontes e interfaces. Requer que a biblioteca Yajl seja instalada. Instruções detalhadas para instalar e configurar o VSWitch aberto, consulte a documentação do OVS. http://openvswitch.org/support/dist-docs/install.rst.html
PCIE_Errors leem erros do status do dispositivo PCI Express e dos recursos estendidos da AER. https://www.design-reuse.com/articles/38374/pcie-error-logging-andhandling-on-a-typical-soc.html
Perl O plug-in Perl implementa um interpretador Perl no colecionamento. Você pode escrever seus próprios plugins no Perl e retornar valores arbitrários usando esta API. Veja Collectd-Perl (5).
Estatísticas de consulta PF do filtro de pacote da BSD "PF".
Valores de tempo de recebimento e despacho PINBA do PINBA, uma extensão de perfil para PHP.
Latência na rede de ping: tempo para alcançar o gateway padrão ou outro host.
PostgreSQL PostgreSQL Database Statistics: Conexões de servidor ativo, números de transações, Bloco IO, manipulações de linha da tabela.
PowerDNS PowerDNS Nome Server Statistics.
Contagem de processos de processos: número de processos de corrida, sono, zumbi, ...
O Procevent ouve o processo de processo e sai via NetLink.
Os protocolos contam vários aspectos dos protocolos de rede, como IP, TCP, UDP, etc.
Python O plug -in Python implementa um intérprete Python no CollectD. Isso torna possível escrever plugins no Python, que são executados pela CollectD sem a necessidade de iniciar um intérprete pesado a cada intervalo. Consulte Collectd-Python (5) para obter detalhes.
Ras O plug -in Ras reúne e contam erros fornecidos pela Rasdaemon
Redis O plug -in Redis reúne informações de um servidor Redis, incluindo: tempo de atividade, memória usada, conexões totais etc.
Interface de consulta de roteos e estatísticas de registro sem fio a partir de routeros.
RRDCACHED RRDTOOL CACHING Daemon (RRDCACHED) Estatísticas.
Sensores Sistemas Sistemas, acessados usando LM_SENSORS: Tensões, temperaturas e velocidades de rotação do ventilador.
Rx e TX serial de interfaces seriais. Apenas Linux; precisa de privilégios de raiz.
Sigrok usa o Lbsigrok como back-end, permitindo que qualquer dispositivo suportado por Sigrok tenha suas medidas alimentadas para coletar. Isso inclui multímetros, medidores de nível de som, termômetros e muito mais.
O Slurm reúne o nó por parte e as informações do estado de trabalho usando o Libslurm, bem como estatísticas internas de saúde.
Smart coleta estatísticas inteligentes, principalmente a contagem de ciclo de carga, a temperatura e os setores ruins.
Os valores de leitura do SNMP do SNMP (protocolo simples de gerenciamento de rede) ativaram dispositivos de rede, como interruptores, roteadores, termômetros, servidores de monitoramento de rack, etc. Consulte Collectd-Snmp (5).
O STATSD atua como um servidor STATSD, os valores de leitura enviados pela rede de clientes da STATSD e calcula as taxas e outros agregados desses valores.
Sysevent ouve eventos do RSYSLog e envia valores correspondentes.
As páginas de troca trocadas para o disco rígido ou o que for chamado swap pelo sistema operacional.
tabela arquivos estruturados semelhantes à tabela parse.
A cauda segue os arquivos de log (Tails), os analisa por linhas e envia valores correspondentes.
Tail_CSV segue os arquivos (Tails) no formato CSV, analisa cada linha e envia valores extraídos.
Bytes de fita e operações lidas e escritas em dispositivos de fita. Apenas Solaris.
TCPCONNS Número de conexões TCP para portas locais e remotas específicas.
Teamspeak2 estatísticas do servidor TeamSpeak2.
TED Plugin para ler valores de "The Energy Detective" (TED).
Informações térmicas da zona térmica Linux ACPI.
O Tokyotyrant lê o número de registros e o tamanho do arquivo de um servidor Tokyo Tyrant.
O Turbostat lê a frequência da CPU e a residência do estado C nos modernos processadores com capacidades turbo da Intel.
O UBI lê a contagem de más blocos de apagamento físico e o valor do contador de apagamento máximo atual nos volumes UBI.
Estatísticas de tempo de atividade do sistema de tempo de atividade.
Usuários usuários atualmente efetuaram login.
Varnish várias estatísticas do verniz, um acelerador HTTP.
Virt CPU, memória, disco e estatísticas de E/S de rede de máquinas virtuais.
Estatísticas de memória virtual do VMEM, por exemplo, o número de Page-Ins/-outs ou o número de PageFaults.
Recursos do sistema vServer usados pelo Linux vServers. Veja http://linux-vserver.org/.
Qualidade de link sem fio das placas sem fio. Somente Linux.
XENCPU Xen Hypervisor CPU STATS.
Taxa de bits XMMS e frequência de música tocada com XMMS.
Estatísticas do ZFS_ARC para o “cache de substituição adaptável” do ZFS (ARC).
A zona mede a porcentagem de carga de CPU por recipiente (zona) sob Solaris 10 e superior
Zookeeper Leia os dados do comando MNTR do Zookeeper.
A saída pode ser gravada ou enviada para vários destinos pelos seguintes plugins:
O AMQP envia dados codificados por JSON para um servidor AMQP (Avançado de fila de mensagens (AMQP) 0.9.1, como o RabbitMQ.
O AMQP1 envia dados codificados por JSON para um servidor AMQP 1.0, como roteador de despacho QPID (AMQP), como roteador de despacho QPID ou corretor Apache Artemis.
CSV gravar arquivos de valores separados por vírgula (CSV). Isso precisa de muito espaço de discos, mas é extremamente portátil e pode ser analisado com quase todos os programas que podem analisar qualquer coisa. Até o Excel da Microsoft.
GRPC Envie e recebem valores pela rede usando a estrutura GRPC.
Lua é possível implementar plugins de gravação no Lua usando o plug -in Lua. Consulte Collectd-Lua (5) para obter detalhes.
O MQTT publica e assina os tópicos do MQTT.
A rede envia os dados para um host remoto para salvar os dados de alguma forma. Isso é útil para grandes configurações em que os dados devem ser salvos por uma máquina dedicada.
Perl, é claro, os valores são propagados para plugins escritos em Perl também, para que você possa facilmente fazer coisas estranhas com os plug-ins em que não ousamos pensar;) Veja Collectd-Perl (5).
Python É possível implementar plugins de gravação no Python usando o plug -in Python. Consulte Collectd-Python (5) para obter detalhes.
Saída RRDCached para arquivos redondos-robin-dados (RRD) usando o daemon de cache RRDTOOL (RRDCACHED)-consulte rrdcached(1) . Esse Daemon fornece uma implementação geral do cache feito pelo plug -in rrdtool .
saída RRDTOOL para arquivos redondos-robin-Database (RRD) usando o LIBRRD. Veja RrdTool (1). Este é provavelmente o destino mais popular para esses valores. Como as atualizações do RRD-Files são um pouco caras, esse plug-in pode abrigar atualizações dos arquivos e escrever várias atualizações de uma só vez, o que diminui muito o sistema.
O SNMP_AGENT recebe e lida com consultas do SNMP Master Agent e retorna os dados coletados por plugins de leitura. Lida com solicitações apenas para OIDs especificados no arquivo de configuração. Para lidar com consultas SNMP, o plug -in recebe dados do CollectD e traduz valores solicitados do formato interno do CollectD para o formato SNMP.
UNIXSOCK, pode -se consultar os valores do plug -in UnixSock sempre que forem necessários. Leia o CollectD-UNIXSOCK (5) para uma descrição sobre como isso é feito.
write_graphite envia dados para carbono, a camada de armazenamento de grafite usando TCP ou UDP. Ele pode ser configurado para evitar erros de envio de log (especialmente útil ao usar o UDP).
write_http envia os valores coletados pelo CollectD para um servidor da Web usando solicitações de postagem HTTP. Os dados transmitidos são de uma forma entendida pelo plug -in EXEC ou formatados em JSON.
write_kafka envia dados para o Apache Kafka, uma fila distribuída.
write_log escreve dados no log
write_mongodb envia dados para o MongoDB, um banco de dados NoSQL.
write_prometheus Publique valores usando um servidor HTTP incorporado, em um formato compatível com o Prometheus 'Collectd_exporter.
write_redis envia os valores para um servidor de banco de dados de valor-chave Redis.
Write_riemann envia dados para Riemann, um sistema de processamento e monitoramento de fluxo.
write_sensu envia dados para o Sensu, um sistema de processamento e monitoramento de fluxo, através do soquete TCP local do cliente Sensu.
write_syslog envia dados no formato syslog, usando TCP, onde a mensagem contém a métrica no formato humano ou json.
write_tsdb envia dados OPENTSDB, um banco de dados escalável e sem mestre, nenhum banco de dados de séries temporais de estado compartilhado.
O registro é, como tudo no CollectD, fornecido por plugins. Os seguintes plugins mantêm -nos informados sobre o que está acontecendo:
O LogFile grava mensagens de log em um arquivo ou stdout/stderr.
As mensagens de log Perl também são propagadas para os plugins escritos no Perl. Veja Collectd-Perl (5).
Python É possível implementar plugins de log no Python usando o plug -in Python. Consulte Collectd-Python (5) para obter detalhes.
Syslog logs para o mecanismo de log do Unix padrão, syslog.
Log_logstash grava mensagens de log formatadas como eventos Logstash JSON.
As notificações podem ser tratadas pelos seguintes plugins:
notify_desktop Envie uma notificação de desktop para um daemon de notificação, conforme definido na especificação de notificação da área de trabalho. Para realmente exibir as notificações, é necessária notificação-daemon. Consulte http://www.galago-project.org/specs/notification/.
notify_email Envie um e-mail com a mensagem de notificação para os destinatários configurados.
notify_nagios envia notificações como resultados passivos de verificação para uma instância local do NAGIOS.
Exec execute um programa ou script para lidar com a notificação. Veja Collectd-Exec (5).
O LogFile grava a mensagem de notificação em um arquivo ou stdout/stderr.
A rede Envie a notificação para um host remoto para lidar com isso de alguma forma.
As notificações Perl também são propagadas para plugins escritos em Perl. Veja Collectd-Perl (5).
Python É possível implementar plugins de notificação no Python usando o plug -in Python. Consulte Collectd-Python (5) para obter detalhes.
O processamento de valor pode ser controlado usando a infraestrutura da "cadeia de filtro" e "correspondências" e "alvos". Os seguintes plugins estão disponíveis:
Match_Empty_Counter corresponde valores de contador que atualmente são zero.
Match_Hashed Match Values usando uma função de hash do nome do host.
Match_regex corresponde aos valores do identificador com base em expressões regulares.
Match_timediff corresponde valores com um registro de data e hora inválidos.
Match_value Selecione valores pelos valores de suas fontes de dados.
Target_Notification Crie e Despacha uma notificação.
Target_Replace Substitua as partes de um identificador usando expressões regulares.
Valores da escala Target_Scale (multiplicar) por um valor arbitrário.
Target_set Set (Substituir) partes inteiras de um identificador.
Plugins diversos:
A agregação seleciona várias listas de valor com base em padrões ou expressões regulares e cria novas listas de valores agregados a partir delas.
O limite verifica os valores nos limiares configurados e cria notificações se os valores estiverem fora dos limites. Consulte o limite de colecionamento (5) para obter detalhes.
O UUID define o nome do host para um identificador exclusivo. Isso se destina a configurações em que cada cliente pode migrar para outro host físico, possivelmente passando por uma ou mais alterações de nome no processo.
Desempenho: Como o CollectD está em execução como daemon, ele não gasta muito tempo iniciando de novo e de novo. Com exceção do plug -in EXEC, nenhum processo é bifurcado. Cache nos plug -ins de saída, como o RRDTool e os plug -ins de rede, garante que seus recursos sejam usados com eficiência. Além disso, como o CollectD é programado multithread, ele se beneficia dos processadores hiper-threading e multicore e garante que o daemon não esteja ocioso se apenas um plug-in aguardar a conclusão de uma operação de IO.
Uma vez configurado, quase nenhuma manutenção é necessária. A configuração é mantida o mais fácil possível e os valores padrão devem ser bons para a maioria dos usuários.
O arquivo de configuração do CollectD pode ser encontrado em sysconfdir/collectd.conf . Run collectd -h para uma lista de padrões internos. Consulte collectd.conf(5) para obter uma lista de opções e uma descrição de sintaxe.
Quando os plugins csv ou rrdtool forem carregados, eles escreverão os valores nos arquivos. O local usual para esses arquivos está abaixo /var/lib/collectd .
Ao usar alguns dos plug -ins, o CollectD precisa ser executado como root do usuário, pois apenas a root pode fazer certas coisas, como os pacotes de ICMP de artesanato necessários para ping em outros hosts. O CollectD não deve ser instalado seto -root, pois pode ser usado para substituir arquivos valiosos!
Os scripts de amostra para gerar gráficos residem em contrib/ no pacote de origem ou em algum lugar próximo /usr/share/doc/collectd na maioria das distribuições. Esteja ciente de que esses scripts são um ponto de partida para seus próprios experimentos. Alguns deles exigem o módulo RRDs Perl. ( librrds-perl no Debian) Se você escreveu uma solução mais sofisticada, compartilhe-a conosco.
Os RRAs dos arquivos RRD criados automaticamente dependem das configurações step e heartbeat fornecidos. Se alterar essas configurações, pode ser necessário recriar os arquivos, perdendo todos os dados. Esteja ciente disso ao alterar os valores e leia completamente a mangueira RRDTool (1).
Se você estiver usando o plug -in dns , chkrootkit(1) relatará collectd como um sniffer de pacote ( <iface>: PACKET SNIFFER(/usr/sbin/collectd[<pid>]) ). O plug -in captura todos os pacotes UDP na porta 53 para analisar o tráfego DNS. Nesse caso, o CollectD é um sniffer legítimo e o relatório deve ser considerado um falso positivo. No entanto, você pode querer verificar se isso realmente é colecionado e não algum outro sniffer ilegítimo.
Para compilar o colecionamento da fonte, você precisará:
Suspeitos usuais: C Compilador, Linker, Processador, Make, ...
A CollectD faz uso de alguns recursos C99 comuns, por exemplo, literais compostos e declarações mistas e, portanto, requer um compilador compatível com C99.
No Debian e Ubuntu, o pacote "essencial de construção" deve atrair tudo o que é necessário.
Uma implementação POSIX-THREADS (PTHREAD). Como a coleta de algumas estatísticas é lenta (conexões de rede, dispositivos lentos, etc), o colecionamento é paralelo. A interface do POSIX Threads está sendo usada e deve ser encontrada em várias implementações para todas as plataformas.
Ao construir a partir do repositório Git, são necessários Flex (Tokenizer) e Bison (gerador de pastores). Tarballs de liberação incluem os arquivos gerados - você não precisa desses pacotes nesse caso.
Aerotools-NG (opcional) usado pelo plug-in aquaero . Atualmente, a biblioteca libaquaero5 , usada pelo kit de ferramentas aerotools-ng , não é compilada como um objeto compartilhado nem apresenta uma rotina de instalação. Portanto, você precisa apontar o script de configuração do Collectd no diretório de origem do projeto aerotools-ng . https://github.com/lynix/aerotools-ng
CoreFoundation.Framework e Iokit.Framework (Opcional) para compilar em Darwin em geral e o plug -in apple_sensors em particular. http://developer.apple.com/corefoundation/
CUDA (Opcional) usado pelo plugin gpu_nvidia https://developer.nvidia.com/cuda-ownloads
Libatasmart (opcional) usado pelo plug -in smart . http://git.0pointer.de/?p=libatasast.git
Libcap (Opcional) O plug -in turbostat pode opcionalmente criar suporte ao Linux Support, o que evita o requisito de privilégios completos (também conhecido como executado como root) para ler valores. http://sites.google.com/site/lycycapable/
libclntsh (opcional) usado pelo plug -in oracle .
Libhiredis (opcional) usado pelo plug -in redis . Observe que você precisa de uma versão 0.10.0 ou superior. https://github.com/redis/hiredis
libcurl (opcional) Se você deseja usar o plug -in apache , ascent , bind , curl , curl_json , curl_xml , nginx ou write_http . http://curl.haxx.se/
libdbi (opcional) usado pelo plug -in dbi para conectar -se a vários bancos de dados. http://libdbi.sourceforge.net/
libesmtp (opcional) para o plugin notify_email . http://www.stafford.uklinux.net/libesmtp/
Libganglia (opcional) usada pelo plug -in gmond para processar dados recebidos dos gânglios. http://ganglia.info/
libgrpc (opcional) usado pelo plug -in grpc . O GRPC requer um compilador C ++ que suporta o padrão C ++ 11. https://grpc.io/
libgcrypt (opcional) usado pelo plug -in network para criptografia e autenticação. http://www.gnupg.org/
libgps (opcional) usado pelo plug -in gps . http://developer.berlios.de/projects/gpsd/
Libi2c-dev (opcional) usado para o barometer do plug-in, fornece apenas o arquivo de cabeçalho i2c-dev.h para o desenvolvimento do espaço do usuário I2C.
Libiptc (opcional) para consultar contadores de iptables. http://netfilter.org/
Libjansson (opcional) Parse JSON Data. Isso é usado para os plugins capabilities e dpdk_telemetry . http://www.digip.org/jansson/
Libjevents (Opcional) A biblioteca Jevents é usada pelo plug -in intel_pmu para acessar a interface perfecil do kernel Linux. Nota: A biblioteca deve ser construída com o sinalizador -fPIC para estar vinculado ao objeto compartilhado Intel_PMU corretamente. https://github.com/andikleen/pmu-tools
Biblioteca LibJVM (Opcional) que encapsula a Java Virtual Machine (JVM). Esta biblioteca é usada pelo plug -in java para executar o Java ByteCode. Consulte Docs/Build.java.md para obter instruções de construção detalhadas. http://openjdk.java.net/ (e outros)
LIBLDAP (Opcional) usado pelo plug -in openldap . http://www.openldap.org/
Liblua (opcional) usado pelo plug -in lua . Atualmente, Lua 5.1 e posterior é suportado. https://www.lua.org/
LibMemcached (Opcional) usado pelo plug -in memcachec para conectar -se a um daemon de memcache. http://tangent.org/552/libmemcached.html
libmicrohttpd (opcional) usado pelo plug -in write_prometheus para executar um daemon http. http://www.gnu.org/software/libmicrohttpd/
libmnl (opcional) usado pelo plug -in netlink . http://www.netfilter.org/projects/libmnl/
Libmodbus (Opcional) usado pelo plug -in modbus para se comunicar com os dispositivos MODBUS/TCP. O plug -in modbus funciona com a versão 2.0.3 da biblioteca - devido a alterações frequentes de API, outras versões podem ou não compilar de maneira limpa. http://www.libmodbus.org/
libmysqlclient (opcional) sem surpresa usada pelo plug -in mysql . http://dev.mysql.com/
Libnetapp (opcional) necessário para o plug -in netapp . Esta biblioteca faz parte do "Gerencie ONTAP SDK" publicado pela NetApp.
libnetsnmp (opcional) para os plugins snmp e snmp_agent . http://www.net-snmp.org/
libnetsnmpagent (opcional) necessário para o plug -in snmp_agent . http://www.net-snmp.org/
libnotify (opcional) para o plugin notify_desktop . http://www.galago-project.org/
libopenipmi (opcional) usado pelo plug -in ipmi para provar dispositivos IPMI. http://openipmi.sourceforge.net/
Liboping (Opcional) usado pelo plug -in ping para enviar e receber pacotes ICMP. http://octo.it/liboping/
Libowcapi (opcional) usado pelo plug -in onewire para ler valores de sensores OneWire (ou o daemon (1) damon). http://www.owfs.org/
libpcap (opcional) usado para capturar pacotes pelo plug -in dns . http://www.tcpdump.org/
libperfstat (opcional) usado por vários plugins para coletar estatísticas no AIX.
Libperl (opcional) obviamente usado pelo plug -in perl . A biblioteca deve ser compilada com o Ithread Support (introduzido no Perl 5.6.0). http://www.perl.org/
libpmwapi (opcional) usado pelo plug -in dcpmm . A biblioteca Github: https://github.com/intel/intel-pmwatch Siga as instruções de construção do PMWatch mencionadas para o plug-in DCPMM e use o caminho de instalação para resolver a dependência aqui.
libpq (opcional) A biblioteca de clientes PostgreSQL C usada pelo plug -in postgresql . http://www.postgresql.org/
libpqos (opcional) A Tecnologia do Diretor de Recursos do PQOS para Intel (R) Usado pelo plug -in intel_rdt . https://github.com/01org/intel-cmt-cat
LibProtoBuf, Protoc 3.0+ (Opcional) usado pelo plug-in grpc para gerar stubs e código de serviço para lidar com pacotes de rede do protocolo de rede baseado em Protobuf da CollectD. https://developers.google.com/protocol-buffers/
LibProtobuf-C, Protoc-C (Opcional) usado pelo plug-in pinba para gerar um analisador para os pacotes de rede enviados pela extensão PINBA PHP. http://code.google.com/p/protobuf-c/
Libpython (opcional) usado pelo plug -in python . Atualmente, o Python 2.6 e mais tarde e o Python 3 são suportados. http://www.python.org/
libqpid-proton (opcional) usado pelo plug-in amqp1 para conexões AMQP 1.0, por exemplo, ao QDROUTERD. http://qpid.apache.org/
LibrabbitMQ (Opcional; também chamado de "RabbitMQ-C") usado pelo plug-in amqp para conexões AMQP 0.9.1, por exemplo, ao RabbitMQ. http://hg.rabbitmq.com/rabbitmq-c/
Librdkafka (opcional; também chamado de "rdkafka") usado pelo plug -in write_kafka para produzir mensagens e enviá -las para um corretor Kafka. https://github.com/edenhill/librdkafka
Librouteros (Opcional) usado pelo plug -in routeros para conectar -se a um dispositivo executando roteteros . http://octo.it/librouteros/
Librrd (Opcional) usado pelos plugins rrdtool e rrdcached . Este último exige suporte ao cliente RRDTool, que foi adicionado após a versão 1.3 do RRDTOOL. Sabe -se que as versões 1.0, 1.2 e 1.3 trabalham com o plug -in rrdtool . http://oss.oetiker.ch/rrdtool/
Librt, Libsocket, Libkstat, libdevinfo (opcional) várias bibliotecas Solaris padrão que fornecem funções do sistema. http://developers.sun.com/solaris/
Libensors (opcional) Para ler do lm_sensors , consulte o plug -in sensors . http://www.lm-sensors.org/
Libsigrok (opcional) usado pelo plug -in sigrok . Além disso, libsigrok depende de glib , libzip e, opcionalmente (dependendo de quais drivers estão ativados) do libusb , libftdi e libudev .
Libslurm (Opcional) usado pelo plug -in slurm . https://slurm.schedmd.com/
libsqlite3 (opcional) usado pelo plug -in ras . https://sqlite.org/
LibStatGrab (Opcional) usado por vários plugins para coletar estatísticas sobre sistemas que não sejam Linux e/ou Solaris. http://www.i-scream.org/libstatgrab/
Libtokyotyrant (Opcional) usado pelo plug -in tokyotyrant . http://1978th.net/tokyotyrant/
LibupSclient/porca (opcional) para o plug -in nut , que consulta upsd da Nut. http://networkupstools.org/
LibVirt (Opcional) Coleta estatísticas de máquinas virtuais. http://libvirt.org/
libxml2 (opcional) analisar dados XML. Isso é necessário para os plugins ascent , bind , curl_xml e virt . http://xmlsoft.org/
Libxen (Opcional) usado pelo plug -in xencpu . http://xenbits.xensource.com/
libxmms (opcional) http://www.xmms.org/
Libyajl (opcional) Parse JSON Data. Isso é necessário para os plugins ceph , curl_json , ovs_events , ovs_stats e log_logstash . http://github.com/lloyd/yajl
Libvarnish (opcional) busca estatísticas de uma instância de verniz. Isso é necessário para o plug -in varnish . http://varnish-cache.org
Riemann-C-client (opcional) para o plug-in write_riemann . https://github.com/algernon/riemann-c-client
To configure, build and install collectd with the default settings, run ./configure && make && make install . For a complete list of configure options and their description, run ./configure --help .
By default, the configure script will check for all build dependencies and disable all plugins whose requirements cannot be fulfilled (any other plugin will be enabled). To enable a plugin, install missing dependencies (see section Prerequisites above) and rerun configure . If you specify the --enable-<plugin> configure option, the script will fail if the depen- dencies for the specified plugin are not met. In that case you can force the plugin to be built using the --enable-<plugin>=force configure option. This will most likely fail though unless you're working in a very unusual setup and you really know what you're doing. If you specify the --disable-<plugin> configure option, the plugin will not be built. If you specify the --enable-all-plugins or --disable-all-plugins configure options, all plugins will be enabled or disabled respectively by default. Explicitly enabling or disabling a plugin overwrites the default for the specified plugin. These options are meant for package maintainers and should not be used in everyday situations.
By default, collectd will be installed into /opt/collectd . You can adjust this setting by specifying the --prefix configure option - see INSTALL for details. If you pass DESTDIR=<path> to make install , <path> will be prefixed to all installation directories. This might be useful when creating packages for collectd.
Collectd ships with a build.sh script to generate the configure script shipped with releases.
To generate the configure script, you'll need the following dependencies:
The build.sh script takes no arguments.
Collectd can be built on Windows using Cygwin, and the result is a binary that runs natively on Windows. That is, Cygwin is only needed for building, not running, collectd.
You will need to install the following Cygwin packages:
To build, just run the build.sh script in your Cygwin terminal. By default, it installs to "C:/Program Files/collectd". You can change the location by setting the INSTALL_DIR variable:
$ export INSTALL_DIR="C:/some/other/install/directory" $ ./build.sh
ou:
$ INSTALL_DIR="C:/some/other/install/directory" ./build.sh
To compile correctly collectd needs to be able to initialize static variables to NAN (Not A Number). Some C libraries, especially the GNU libc, have a problem with that.
Luckily, with GCC it's possible to work around that problem: One can define NAN as being (0.0 / 0.0) and isnan as f != f . However, to test this "implementation" the configure script needs to compile and run a short test program. Obviously running a test program when doing a cross- compilation is, well, challenging.
If you run into this problem, you can use the --with-nan-emulation configure option to force the use of this implementation. We can't promise that the compiled binary actually behaves as it should, but since NANs are likely never passed to the libm you have a good chance to be lucky.
Likewise, collectd needs to know the layout of doubles in memory, in order to craft uniform network packets over different architectures. For this, it needs to know how to convert doubles into the memory layout used by x86. The configure script tries to figure this out by compiling and running a few small test programs. This is of course not possible when cross-compiling. You can use the --with-fp-layout option to tell the configure script which conversion method to assume. Valid arguments are:
* `nothing` (12345678 -> 12345678)
* `endianflip` (12345678 -> 87654321)
* `intswap` (12345678 -> 56781234)
Please use GitHub to report bugs and submit pull requests: https://github.com/collectd/collectd/. See CONTRIBUTING.md for details.
For questions, development information and basically all other concerns please send an email to collectd's mailing list at (list at collectd.org).
For live discussion and more personal contact visit us in IRC, we're in channel #collectd on freenode.
Florian octo Forster (octo at collectd.org), Sebastian tokkee Harl (sh at tokkee.org), and many other authors and contributors.