https://collectd.org/
CollectD est un petit démon qui collecte périodiquement les informations du système et fournit des mécanismes pour stocker et surveiller les valeurs de diverses manières.
CollectD est en mesure de collecter les données suivantes:
Utilisation du serveur Apache Apache: nombre d'octets transférés, nombre de demandes gérées et statistiques détaillées du tableau de bord
APCUPS APC UPS DAEMON: Charge UPS, charge, entrée / sortie / batterie Tension, etc.
Capteurs Apple_Sensors dans Mac exécutant Mac OS X / Darwin: température, vitesse du ventilateur et capteurs de tension.
Aquaero divers capteurs de la planche de refroidissement aquaero 5 fabriquée par aquacomputer.
Statistiques de montée sur Ascent, un serveur gratuit pour le jeu "World of Warcraft".
Le baromètre lit la pression barométrique absolue, la pression de l'air réduite au niveau de la mer et à la température. Les capteurs pris en charge sont MPL115A2 et MPL3115 de Freescale et BMP085 de Bosch.
Battery Charge, -Current et tension des batteries d'ordinateurs portables ACPI et PMU.
Bind Name Server and Resolver Statistics à partir de l'interface statistics-channel de Bind 9.5, 9,6 et ultérieurement.
Statistiques Buddyinfo du fichier buddyinfo sur la fragmentation de la mémoire.
Capacités Capitaires Capacités Décodées à partir de sous-systèmes matériels, par exemple à partir de SMBIOS à l'aide de DMIDECODE. https://www.nongnu.org/dmidecode/
Statistiques CEPH du système de stockage distribué CEPH.
CGROUPS CPU Informations comptables pour les groupes de processus sous Linux.
Chrony Chrony Daemon Statistics: Local Clock Drift, décalage des pairs, etc.
État de l'interface basée sur les événements de connectivité.
Conntrack Numéro des entrées NF_CONNTRACK.
Nombre de contextes de contextes de commutateurs de contexte effectués par le système d'exploitation.
CPU Utilisation du processeur: temps passé dans le système, utilisateur, gentil, inactif et états connexes.
Fréquence CPUFREQ CPU (pour les ordinateurs portables avec une étape de vitesse ou une technologie similaire)
Cpusleep CPU Sleep: Temps passé en suspension (pour les appareils mobiles qui entrent automatiquement en suspension)
Curl analyser les statistiques des sites Web utilisant des expressions régulières.
Curl_json récupère les données JSON via Curl et l'analyse en fonction de la configuration de l'utilisateur.
CURL_XML récupère les données XML via CURL et l'analyse en fonction de la configuration de l'utilisateur.
DBI exécute des instructions SQL sur diverses bases de données et interprète les données renvoyées.
DCPMM recueille des performances et des statistiques de santé Intel Optane DC Présistent Memory (DCPMM).
Utilisation de DF MountPoint (essentiellement les valeurs df(1) offre)
Utilisation du disque de disque: secteurs lus / écrits, nombre d'actions de lecture / écriture, temps moyen qu'une IO-Opération a pris à terminer.
Trafic DNS DNS: Types de requête, codes de réponse, opcodes et trafic / octets transférés.
DPDKSTAT Collecte les statistiques de l'interface DPDK. Voir docs / build.dpdkstat.md pour des instructions de construction détaillées.
Ce plugin doit être compilé avec les défenses du compilateur activées, par exemple -fstack-protecteur.
DPDK_telemetry Collecte l'interface DPDK, l'application et les statistiques globales. Ce plugin peut être utilisé comme substitut au plugin DPDKSTAT.
Ce plugin dépend de la version DPDK 19.08 et doit être utilisé avec l'application DPDK.
De plus, ce plugin dépend de la bibliothèque Jansson.
DRBD collectionne des statistiques de ressources DRBD individuelles.
Email Statistiques par e-mail: compter, trafic, scores et chèques de spam. Voir Collectd-Email (5).
Entropie quantité d'entropie disponible pour le système.
Epics Collecte les données de Epics Message Bus. https://epics-controls.org
Statistiques des cartes d'interface du réseau ethstat.
Valeurs d'exec recueillies par un programme ou un script personnalisé. Voir CollectD-Exec (5).
Le fichier FHCount gère les statistiques.
FileCount compte le nombre de fichiers dans les répertoires.
Statistiques du cadre de mise en cache basées sur le système de fichiers FSCCache Linux.
Gmond reçoit le trafic de multidiffusion à partir des instances de ganglions.
Le GPS surveille les données liées au GPS via GPSD.
GPU_NVIDIA Monitor NVIDIA GPU Statistiques disponibles via NVML.
Températures du disque dur HDDTemps Utilisation du HDDTempd.
ÉNORME PAGES Signale le nombre d'énormes pages d'occasion et gratuites. Plus d'informations sur les pages d'énormes peuvent être trouvées ici: https://www.kernel.org/doc/documentation/vm/hugetlbpage.txt.
Ce plugin doit être compilé avec les défenses du compilateur activées, par exemple -fstack-protecteur.
Attributs et compteurs Infiniband pour chaque port sur chaque périphérique IB.
Intel_pmu Le plugin Intel_PMU lit les compteurs de performances fournis par l'interface Linux Kernel Perf. Le plugin utilise la bibliothèque Jevents pour résoudre les événements nommés sur les événements perf et accéder à l'interface perf.
Intel_RDT Le plugin Intel_RDT collecte les informations fournies par la surveillance des fonctionnalités de la technologie Intel Resource Director (Intel (R) RDT) comme la technologie de surveillance de Cache (CMT), la surveillance de la bande passante mémoire (MBM). Ces fonctionnalités fournissent des informations sur l'utilisation de ressources partagées comme l'occupation du cache de dernier niveau, l'utilisation de la bande passante de mémoire locale, l'utilisation de la bande passante à distance, les instructions par horloge. https://01.org/packet-processing/cache-monitoring-technology-memory-bandwidth-monitoring-cache-allocation-technology-code-and-data
Interface Interface Traffic: Nombre d'octets, paquets et erreurs pour chaque interface.
IPC IPC Compters: Semaphores utilisés, nombre de segments alloués dans la mémoire partagée et plus encore.
Informations sur les capteurs IPMI IPMI (Intelligent Platform Management Interface).
ipstats ipv4 et ipv6; Des compteurs entrants, sortants et transmis. FreeBSD uniquement.
Compteurs iptables iptables: nombre d'octets qui ont été appariés par une certaine règle iptables.
Statistiques de connexion IPV IPV (nombre de connexions, octets et paquets pour chaque service et destination). Voir http://www.linuxvirtualserver.org/software/index.html.
IRQ IRQ Compteurs: fréquence dans laquelle certaines interruptions se produisent.
Java intègre une machine virtuelle Java (JVM) pour exécuter des plugins dans Java bytecode. Voir docs / build.java.md pour des instructions de construction détaillées.
charge du système de chargement de charge au cours des 1, 5 et 15 dernières minutes.
LPAR détaillé des statistiques CPU de la technique de virtualisation des «partitions logiques» intégrée aux processeurs d'alimentation d'IBM.
LUA Le plugin LUA implémente un interprète LUA dans Collectd. Cela permet d'écrire des plugins dans Lua qui sont exécutés par CollectD sans avoir besoin de démarrer un interprète lourd à chaque intervalle. Voir Collectd-Lua (5) pour plus de détails.
Madwifi demande des statistiques d'utilisation très détaillées des adaptateurs et des interfaces LAN sans fil qui utilisent le chipset Atheros et le pilote Madwifi.
Capteurs de la carte mère MBMON: température, vitesse du ventilateur et informations de tension, en utilisant MBMON (1).
Exceptions de vérification de la machine McElog Monitor (erreurs matérielles détectées par matériel et signalées au logiciel) rapportées par Mcelog et générer des notifications appropriées lorsque des exceptions de vérification de la machine sont détectées.
Informations sur les périphériques de raid logiciel MD Linux (nombre de disques actifs, défaillants, de rechange et manquants).
Données de requête Memcachec et d'analyse d'un démon de Memcache (Memcached).
Statistiques Memcached du système de mise en cache distribué Memcached. http://www.danga.com/memcached/
Utilisation de la mémoire de la mémoire: mémoire occupée par les processus en cours d'exécution, le cache de page, le cache tampon et gratuit.
MIC recueille l'utilisation du processeur, l'utilisation de la mémoire, les températures et la consommation d'énergie à partir de nombreux processeurs de noyau intégré (MIC).
MMC lit les estimations de durée de vie rapportées par les appareils EMMC 5.0+ et certaines mesures de santé plus détaillées, comme les mauvais dénombrements de blocs et d'effacement ou les cycles de puissance, pour les EMMC micron et SanDisk et certaines cartes MMC Swissbit (manfid = 0x5d omid = 0x5342).
Modbus lit les valeurs des périphériques activés Modbus / TCP. Prend en charge les valeurs de lecture de plusieurs "esclaves" afin que les périphériques de passerelle puissent être utilisés.
Informations multimètres fournies par les multimètres en série, tels que le Metex M-4650CR .
MySQL MARIADB et MySQL Server Statistiques: Commandes émises, gestionnaires déclenchés, utilisation du thread, utilisation du cache de requête et trafic / octets envoyés et reçus.
Plugin NetApp pour interroger les valeurs de performances à partir d'un système de stockage NetApp à l'aide du SDK «Gérer ONTAP» fourni par NetApp.
Interface réseau Linux NetLink et statistiques de routage très détaillées. Vous pouvez obtenir des informations (détaillées) sur les interfaces, les QDiscs, les classes et, si vous pouvez en utiliser, filtres.
Le réseau reçoit des valeurs qui ont été collectées par d'autres hôtes. De grandes configurations voudront collecter les données sur une machine dédiée, et c'est le plugin de choix pour cela.
Procédures NFS NFS: quelle commande NFS a été appelée à quelle fréquence.
Nginx collecte des statistiques de nginx (SPEAD: Engine X), un HTTP et un serveur de messagerie / proxy.
Statistiques du démon NTPD NTP: dérive locale d'horloge, décalage des pairs, etc.
Informations NUMA sur l'accès à la mémoire non uniforme (NUMA).
Outils UPS du réseau de noix: Courant UPS, tension, puissance, charge, utilisation, température, etc. Voir UPSD (8).
OLSRD interroge les informations de routage du démon «Optimized Link State Routing».
Onewire (expérimental!) Lisez des capteurs Onewire à l'aide de la bibliothèque OWCAPU du projet OWFS. Veuillez lire dans collectiond.conf (5) Pourquoi ce plugin est expérimental.
OpenLDAP LIRE Les informations de surveillance de CN = MONITEUR d'OpenLDAP.
OpenVPN RX et TX de chaque client dans OpenVPN-status.log (Status-Version 2). http://openvpn.net/index.php/documentation/howto.html
Données de requête Oracle d'une base de données Oracle.
OVS_EVENTS Le plugin surveille l'état de liaison des interfaces connectées VSWitch (OVS) Open (OVS), envoie les valeurs à CollectD et envoie la notification chaque fois que le changement d'état de liaison se produit dans la base de données OVS. Il nécessite que la bibliothèque YAJL soit installée. Instructions détaillées pour installer et configurer Open VSwitch, voir la documentation OVS. http://openvswitch.org/support/dist-docs/install.rst.html
OVS_STATS Le plugin collecte les statistiques des ponts et interfaces connectés OVS. Il nécessite que la bibliothèque YAJL soit installée. Instructions détaillées pour installer et configurer Open VSwitch, voir la documentation OVS. http://openvswitch.org/support/dist-docs/install.rst.html
PCIE_ERRORS lient les erreurs de PCI Express Device Status et AER Capacités étendues. https://www.design-reuse.com/articles/38374/pcie-error-logging-and-handling-on-a-ypical-soc.html
Perl Le plugin Perl implémente un interpréter Perl dans CollectD. Vous pouvez écrire vos propres plugins dans Perl et retourner des valeurs arbitraires à l'aide de cette API. Voir Collectd-Perl (5).
PF Requête Statistiques du filtre de paquets de BSD "PF".
PINBA Recevoir et répartir les valeurs de synchronisation de Pinba, une extension de profilage pour PHP.
Ping Network Latence: Il est temps d'atteindre la passerelle par défaut ou un autre hôte donné.
Statistiques de la base de données PostgreSQL PostgreSQL: connexions de serveur actifs, numéros de transaction, bloc IO, manipulations de lignes de table.
PowerDNS PowerDNS Name Server Statistics.
Processus Nombre de processus: Nombre de cours d'exécution, de sommeil, de zombie, ... processus.
Procevent écoute les démarrages du processus et quitte via NetLink.
Les protocoles comptent divers aspects des protocoles de réseau tels que IP, TCP, UDP, etc.
Python Le plugin Python implémente un interprète Python dans collectiond. Cela permet d'écrire des plugins dans Python qui sont exécutés par CollectD sans avoir besoin de démarrer un interprète lourd à chaque intervalle. Voir collectiond-python (5) pour plus de détails.
RAS Le plugin RAS rassemble et compte les erreurs fournies par Rasdaemon
Redis le plugin redis rassemble des informations à partir d'un serveur Redis, y compris: la disponibilité, la mémoire utilisée, les connexions totales, etc.
Interface de requête Routeros et statistiques d'enregistrement sans fil de Routeros.
Statistiques de démon de mise en cache RRDCached RRDTOOL (RRDCACHED).
Capteurs du système des capteurs, accessibles à l'aide de LM_SENSORS: tensions, températures et vitesses de rotation des ventilateurs.
Rx série et TX des interfaces série. Linux uniquement; a besoin de privilèges racine.
Sigrok utilise Libsigrok comme backend, permettant à tout appareil soutenu par Sigrok d'avoir ses mesures alimentées à CollectD. Cela comprend les multimètres, les compteurs de niveau sonore, les thermomètres et bien plus encore.
Slurm rassemble le nœud par partition et les informations sur l'état de l'emploi à l'aide de libslurm, ainsi que des statistiques de santé internes.
Smart Collectionne les statistiques intelligentes, notamment le nombre de cycles de charge, la température et les mauvaises secteurs.
Les valeurs de lecture SNMP de SNMP (simple protocole de gestion du réseau) ont activé des périphériques de réseau tels que les commutateurs, les routeurs, les thermomètres, les serveurs de surveillance des racks, etc. Voir CollectD-SNMP (5).
STATSD agit comme un serveur STATSD, la lecture des valeurs envoyées sur le réseau à partir des clients STATSD et le calcul des taux et d'autres agrégats de ces valeurs.
Sysevent écoute les événements RSYSLOG et soumet des valeurs correspondantes.
Des pages d'échange échangées sur un disque dur ou ce qui est appelé swap par le système d'exploitation.
Table Analyser les fichiers structurés de type table.
La queue suit (Tails) les fichiers journaux, les analyse par les lignes et soumet les valeurs correspondantes.
tail_csv suit les fichiers (tails) au format CSV, analyse chaque ligne et soumet des valeurs extraites.
octets et opérations de bande lus et écrits sur des périphériques de bande. Solaris uniquement.
TCPCONNS Nombre de connexions TCP à des ports locaux et distants spécifiques.
Statistiques du serveur TeamSpeak2 TeamSpeak2.
Plugin TED pour lire les valeurs de "The Energy Detective" (TED).
Informations sur la zone thermique thermique Linux ACPI.
Tokyotyrant lit le nombre d'enregistrements et la taille du fichier à partir d'un serveur Tyrant en cours d'exécution.
Le turbostat lit la fréquence du processeur et la résidence à l'état C sur les processeurs modernes de turbo-turbo-capables.
UBI lit le nombre de mauvais blocs physiques et la valeur de compteur d'effacement maximale actuelle sur les volumes UBI.
Statistiques de disponibilité du système de disponibilité.
Les utilisateurs des utilisateurs se sont actuellement connectés.
Vernis diverses statistiques du vernis, un accélérateur HTTP.
Virat CPU, mémoire, disque et statistiques d'E / S de réseau à partir de machines virtuelles.
Statistiques de mémoire virtuelle VMEM, par exemple, le nombre de pages / inins ou le nombre de pages.
VServer Ressources système utilisées par Linux VServers. Voir http://linux-vserver.org/.
Qualité de liaison sans fil des cartes sans fil. Linux uniquement.
Xencpu Xen Hypervisor CPU Statistiques.
Débit binaire XMMS et fréquence de musique jouée avec XMMS.
Statistiques ZFS_ARC pour le «cache de remplacement adaptatif» de ZFS (ARC).
La zone mesure le pourcentage de charge CPU par conteneur (zone) sous Solaris 10 et plus
Zookeeper a lu les données de la commande MNTR de Zookeeper.
La sortie peut être écrite ou envoyée à diverses destinations par les plugins suivants:
AMQP envoie des données codées JSON à un serveur avancé de file d'attente de messages (AMQP) 0.9.1, comme Rabbitmq.
AMQP1 envoie des données codées JSON à un serveur avancé de mise en file d'attente de messages (AMQP) 1.0, tels que QPID Dispatch Router ou Apache Artemis Broker.
CSV Écrivez dans les fichiers de valeurs séparés par les virgules (CSV). Cela nécessite beaucoup d'espace de disque, mais est extrêmement portable et peut être analysé avec presque tous les programmes qui peuvent analyser n'importe quoi. Même Microsoft's Excel.
GRPC Envoie et reçoit des valeurs sur le réseau à l'aide du framework GRPC.
LUA Il est possible d'implémenter les plugins d'écriture dans LUA à l'aide du plugin LUA. Voir Collectd-Lua (5) pour plus de détails.
MQTT publie et souscrit aux sujets MQTT.
Le réseau envoie les données à un hôte distant pour enregistrer les données d'une manière ou d'une autre. Ceci est utile pour les grandes configurations où les données doivent être enregistrées par une machine dédiée.
Perl Bien sûr, les valeurs se propagent également aux plugins écrits en perl, vous pouvez donc facilement faire des trucs étranges avec les plugins auxquels nous n'avons pas pensé;) Voir Collectd-Perl (5).
Python Il est possible d'implémenter les plugins d'écriture dans Python à l'aide du plugin Python. Voir collectiond-python (5) pour plus de détails.
Sortie RRDCached vers les fichiers de la database ronde (RRD) à l'aide du démon de mise en cache RRDTool (RRDCached) - Voir rrdcached(1) . Ce démon fournit une implémentation générale de la mise en cache effectuée par le plugin rrdtool .
Sortie RRDTOOL vers les fichiers de la database ronde (RRD) à l'aide de Librrd. Voir rrdtool (1). C'est probablement la destination la plus populaire pour de telles valeurs. Étant donné que les mises à jour des fichiers RRD sont quelque peu coûteuses, ce plugin peut mettre en cache les mises à jour des fichiers et écrire un tas de mises à jour à la fois, ce qui réduit beaucoup le système.
SNMP_AGENT reçoit et gère les requêtes de SNMP Master Agent et renvoie les données collectées par des plugins de lecture. Gère les demandes uniquement pour les OID spécifiées dans le fichier de configuration. Pour gérer les requêtes SNMP, le plugin obtient des données de CollectD et traduit les valeurs demandées au format interne de CollectD au format SNMP.
Unixsock One peut interroger les valeurs du plugin Unixsock chaque fois qu'ils sont nécessaires. Veuillez lire Collectd-Unixsock (5) pour une description de la façon dont cela se fait.
write_graphite envoie des données au carbone, la couche de stockage de graphite à l'aide de TCP ou UDP. Il peut être configuré pour éviter les erreurs d'envoi de journalisation (particulièrement utiles lors de l'utilisation de UDP).
write_http envoie les valeurs collectées par collectiond à un serveur Web à l'aide de demandes de post HTTP. Les données transmises sont soit sous une forme comprise par le plugin Exec, soit formatée dans JSON.
Write_kafka envoie des données à Apache Kafka, une file d'attente distribuée.
write_log écrit des données dans le journal
write_mongodb envoie des données à MongoDB, une base de données NoSQL.
Write_Prometheus Publier des valeurs à l'aide d'un serveur HTTP intégré, dans un format compatible avec Prometheus 'Collectd_Exporter.
Write_redis envoie les valeurs à un serveur de base de données de valeur clé redis.
Write_Riemann envoie des données à Riemann, un système de traitement et de surveillance de flux.
Write_Sensu envoie des données à sensu, un système de traitement et de surveillance de flux, via le socket TCP local du client sensu.
write_syslog envoie des données au format syslog, en utilisant TCP, où le message contient la métrique au format humain ou JSON.
Write_TSDB envoie des données OpenSDB, une base de données de séries chronologiques à l'état de l'état partagé.
La journalisation est, comme tout dans CollectD, fourni par les plugins. Les plugins suivants nous tiennent informés de ce qui se passe:
LogFile écrit des messages de journal dans un fichier ou stdout / stderr.
Les messages de journal Perl sont également propagés aux plugins écrits en perl. Voir Collectd-Perl (5).
Python Il est possible d'implémenter les plugins de journal dans Python à l'aide du plugin Python. Voir collectiond-python (5) pour plus de détails.
Syslog se connecte au mécanisme de journalisation UNIX standard, syslog.
LOG_LOGSTASH écrit des messages de journal formatés sous forme d'événements JSON Logstash.
Les notifications peuvent être traitées par les plugins suivants:
notify_desktop Envoyez une notification de bureau à un démon de notification, tel que défini dans la spécification de notification de bureau. Pour afficher réellement les notifications, la notification-daemon est requise. Voir http://www.galago-project.org/specs/notification/.
notify_email Envoyez un e-mail avec le message de notification aux destinataires configurés.
notify_nagios soumettre les notifications comme résultats de vérification passive à une instance Nagios locale.
EXEC Execute un programme ou un script pour gérer la notification. Voir CollectD-Exec (5).
LogFile écrit le message de notification à un fichier ou stdout / stderr.
Le réseau envoie la notification à un hôte distant pour le gérer d'une manière ou d'une autre.
Les notifications Perl sont également propagées aux plugins écrits en perl. Voir Collectd-Perl (5).
Python Il est possible d'implémenter les plugins de notification dans Python à l'aide du plugin Python. Voir collectiond-python (5) pour plus de détails.
Le traitement de la valeur peut être contrôlé à l'aide de l'infrastructure "filtre" et des «correspondances» et des «cibles». Les plugins suivants sont disponibles:
Match_empty_counter Match Counter Valers qui sont actuellement nuls.
MATCH_HASHED MATCH VALEURS À l'aide d'une fonction de hachage du nom d'hôte.
Match_regex correspond aux valeurs par leur identifiant en fonction des expressions régulières.
Match_timediff correspond aux valeurs avec un horodatage non valide.
Match_value SELECT VALEURS par les valeurs de leurs sources de données.
Target_Notification Créer et expédier une notification.
Target_replace Remplacez les pièces d'un identifiant en utilisant des expressions régulières.
Valeurs Target_Scale (Multiply) par une valeur arbitraire.
Target_set set (écraser) parties entières d'un identifiant.
Plugins divers:
L'agrégation sélectionne plusieurs listes de valeurs en fonction des modèles ou des expressions régulières et crée de nouvelles listes de valeurs agrégées à partir de celles-ci.
Le seuil vérifie les valeurs par rapport aux seuils configurés et crée des notifications si les valeurs sont hors limites. Voir CollectD-Threshold (5) pour plus de détails.
UUID définit le nom d'hôte sur un identifiant unique. Ceci est destiné aux configurations où chaque client peut migrer vers un autre hôte physique, en passant par un ou plusieurs changements de nom dans le processus.
Performances: Étant donné que Collectd fonctionne comme un démon, il ne passe pas beaucoup de temps à démarrer encore et encore. À l'exception du plugin EXEC, aucun processus n'est prévu. La mise en cache dans les plugins de sortie, telles que le RRDTool et les plugins réseau, s'assure que vos ressources sont utilisées efficacement. De plus, puisque CollectD est programmé multithread, il bénéficie des processeurs hyper-threading et multicore et s'assure que le démon n'est pas inactif si un seul plugin attend qu'une Io-Operation se termine.
Une fois configuré, presque aucune entretien n'est nécessaire. La configuration est maintenue aussi simple que possible et les valeurs par défaut devraient être correctes pour la plupart des utilisateurs.
Le fichier de configuration de CollectD peut être trouvé sur sysconfdir/collectd.conf . Exécutez collectd -h pour une liste de défauts intégrés. Voir collectd.conf(5) pour une liste d'options et une description de syntaxe.
Lorsque les plugins csv ou rrdtool sont chargés, ils écriront les valeurs dans les fichiers. L'endroit habituel pour ces fichiers est sous /var/lib/collectd .
Lorsque vous utilisez certains plugins, CollectD doit s'exécuter en tant que racine de l'utilisateur, car seule la racine peut faire certaines choses, telles que les packages ICMP Craft nécessaires pour cingler les autres hôtes. CollectD ne doit pas être installé la racine setuid car elle peut être utilisée pour écraser les fichiers précieux!
Les exemples de scripts pour générer des graphiques résident dans contrib/ dans le package source ou quelque part près /usr/share/doc/collectd dans la plupart des distributions. Veuillez noter que ces scripts sont destinés à un point de départ pour vos propres expériences. Certains d'entre eux ont besoin du module RRDs Perl. ( librrds-perl sur Debian) Si vous avez écrit une solution plus sophistiquée, veuillez la partager avec nous.
Les RRA des fichiers RRD créés automatiquement dépendent des paramètres step et heartbeat donnés. Si vous modifiez ces paramètres, vous devrez peut-être recréer les fichiers, perdant toutes les données. Veuillez être conscient de cela lorsque vous modifiez les valeurs et lisez soigneusement le RRDTool (1) ManPage.
Si vous utilisez le plugin dns , chkrootkit(1) rapportera collectd sous le nom d'un sniffer de paquets ( <iface>: PACKET SNIFFER(/usr/sbin/collectd[<pid>]) ). Le plugin capture tous les paquets UDP sur le port 53 pour analyser le trafic DNS. Dans ce cas, Collectd est un renifleur légitime et le rapport doit être considéré comme un faux positif. Cependant, vous voudrez peut-être vérifier que c'est vraiment Collectd et non un autre renifleur illégitime.
Pour compiler Collectd auprès de Source, vous aurez besoin:
SUPPROSSIONS habituels: C compilateur, linker, préprocesseur, marque, ...
CollectD utilise certaines caractéristiques C99 courantes, par exemple des littéraux composés et des déclarations mixtes, et nécessite donc un compilateur compatible C99.
Sur Debian et Ubuntu, le package "Build-Essential" devrait attirer tout ce qui est nécessaire.
Une implémentation POSIX-threads (pthread). Étant donné que la collecte de statistiques est lente (connexions réseau, dispositifs lents, etc.) CollectD est parallélisée. L'interface des threads POSIX est en cours et doit être trouvée dans diverses implémentations pour, espérons-le, toutes les plates-formes.
Lors de la construction du référentiel GIT, Flex (tokenizer) et bison (générateur d'analyseur) sont nécessaires. La libération de tarball inclut les fichiers générés - vous n'avez pas besoin de ces packages dans ce cas.
Aerotools-NG (facultatif) utilisé par le plugin aquaero . Actuellement, la bibliothèque libaquaero5 , qui est utilisée par la boîte à outils aerotools-ng , n'est pas compilée en tant qu'objet partagé et ne comporte pas une routine d'installation. Par conséquent, vous devez indiquer le script de configuration de CollectD dans le répertoire source du projet aerotools-ng . https://github.com/lynix/aerotools-ng
CoreFoundation.Framework et iokit.framework (facultatif) pour compiller sur Darwin en général et le plugin apple_sensors en particulier. http://developer.apple.com/corefoundation/
CUDA (facultatif) utilisé par le plugin gpu_nvidia https://developer.nvidia.com/cuda-downloads
libatasmart (facultatif) utilisé par le plugin smart . http://git.0pointer.de/?p=libatasmart.git
LIBCAP (Facultatif) Le plugin turbostat peut éventuellement créer une prise en charge des capacités Linux, ce qui évite les exigences complètes de privilèges (alias. Exécution en tant que racine) pour lire les valeurs. http://sites.google.com/site/lycapable/
libclnsh (facultatif) utilisé par le plugin oracle .
libhiredis (facultatif) utilisé par le plugin redis . Veuillez noter que vous avez besoin d'une version 0.10.0 ou supérieure. https://github.com/redis/hiredis
libcurl (facultatif) Si vous souhaitez utiliser l' apache , ascent , bind , curl , curl_json , curl_xml , nginx ou write_http . http://curl.haxx.se/
libdbi (facultatif) utilisé par le plugin dbi pour se connecter à diverses bases de données. http://libdbi.sourceforge.net/
libesmtp (facultatif) pour le plugin notify_email . http://www.stafford.uklinux.net/libesmtp/
Libganglia (facultatif) utilisé par le plugin gmond pour traiter les données reçues des ganglions. http://ganglia.info/
libgrpc (facultatif) utilisé par le plugin grpc . GRPC nécessite un compilateur C ++ prenant en charge la norme C ++ 11. https://grpc.io/
libgCrypt (facultatif) utilisé par le plugin network pour le chiffrement et l'authentification. http://www.gnupg.org/
libgps (facultatif) utilisé par le plugin gps . http://developer.berlios.de/projects/gpsd/
LIBI2C-DEV (Facultatif) utilisé pour le barometer du plugin, fournit uniquement le fichier d'en-tête i2c-dev.h pour l'espace utilisateur I2C Development.
libiptc (facultatif) pour interroger les compteurs iptables. http://netfilter.org/
libjansson (facultatif) analyse les données JSON. Ceci est utilisé pour les capabilities et les plugins dpdk_telemetry . http://www.digip.org/jansson/
libjevents (facultatif) La bibliothèque Jevents est utilisée par le plugin intel_pmu pour accéder à l'interface perf du noyau Linux. Remarque: La bibliothèque doit être construite avec un drapeau -fPIC pour être lié correctement à l'objet partagé Intel_PMU. https://github.com/andikleen/pmu-tools
Library libjvm (Facultatif) qui résume la machine virtuelle Java (JVM). Cette bibliothèque est utilisée par le plugin java pour exécuter Java Bytecode. Voir docs / build.java.md pour des instructions de construction détaillées. http://openjdk.java.net/ (et autres)
libldap (facultatif) utilisé par le plugin openldap . http://www.openldap.org/
Liblua (facultatif) utilisé par le plugin lua . Actuellement, LUA 5.1 et ultérieurement sont pris en charge. https://www.lua.org/
libmemcached (facultatif) utilisé par le plugin memcachec pour se connecter à un démon memcache. http://tangent.org/552/libmemcached.html
libmicrohttpd (facultatif) utilisé par le plugin write_prometheus pour exécuter un démon http. http://www.gnu.org/software/libmicrohttpd/
libmnl (facultatif) utilisé par le plugin netlink . http://www.netfilter.org/projects/libmnl/
libmodbus (facultatif) utilisé par le plugin modbus pour communiquer avec les périphériques MODBUS / TCP. Le plugin modbus fonctionne avec la version 2.0.3 de la bibliothèque - en raison des modifications de l'API fréquentes, d'autres versions peuvent ou non se compiler proprement. http://www.libmodbus.org/
libmysqlclient (facultatif) sans surprise utilisé par le plugin mysql . http://dev.mysql.com/
libnetApp (facultatif) requis pour le plugin netapp . Cette bibliothèque fait partie du «Gérer le SDK ONTAP» publié par NetApp.
libnetsnmp (facultatif) pour les plugins snmp et snmp_agent . http://www.net-snmp.org/
libnetsnmpagent (facultatif) requis pour le plugin snmp_agent . http://www.net-snmp.org/
libnotify (facultatif) pour le plugin notify_desktop . http://www.galago-project.org/
libopenipmi (facultatif) utilisé par le plugin ipmi pour prouver les périphériques IPMI. http://openipmi.sourceforge.net/
Liboping (facultatif) utilisé par le plugin ping pour envoyer et recevoir des paquets ICMP. http://octo.it/liboping/
LibowCapi (facultatif) utilisé par le plugin onewire pour lire les valeurs à partir de capteurs Onewire (ou le démon OwServer (1)). http://www.owfs.org/
libpcap (facultatif) utilisé pour capturer des paquets par le plugin dns . http://www.tcpdump.org/
libperfstat (facultatif) utilisé par divers plugins pour rassembler des statistiques sous AIX.
libperl (facultatif) évidemment utilisé par le plugin perl . La bibliothèque doit être compilée avec le support Ithread (introduit dans Perl 5.6.0). http://www.perl.org/
libpmwapi (facultatif) utilisé par le plugin dcpmm . La bibliothèque GitHub: https://github.com/intel/intel-pmwatch Suivez les instructions de construction PMWatch mentionnées pour le plugin DCPMM et utilisez le chemin d'installation pour résoudre la dépendance ici.
libpq (facultatif) La bibliothèque client PostgreSQL C utilisée par le plugin postgresql . http://www.postgresql.org/
libpqos (facultatif) La bibliothèque PQOS pour la technologie Intel (R) Resource Director utilisée par le plugin intel_rdt . https://github.com/01org/intel-cmt-cat
LibProtobuf, Protoc 3.0+ (facultatif) utilisé par le plugin grpc pour générer des talons de service et du code pour gérer les paquets réseau du protocole réseau basé sur Protobuf de CollectD. https://developers.google.com/protocol-buffers/
libprotobuf-c, protoC-C (facultatif) utilisé par le plugin pinba pour générer un analyseur pour les paquets de réseau envoyés par l'extension PINBA PHP. http://code.google.com/p/protobuf-c/
libpython (facultatif) utilisé par le plugin python . Actuellement, Python 2.6 et ultérieurement et Python 3 sont pris en charge. http://www.python.org/
libqpid-proton (facultatif) utilisé par le plugin amqp1 pour les connexions AMQP 1.0, par exemple à qdrouterd. http://qpid.apache.org/
Librabbitmq (facultatif; également appelé «Rabbitmq-C») utilisé par le plugin amqp pour les connexions AMQP 0.9.1, par exemple à RabbitMQ. http://hg.rabbitmq.com/rabbitmq-c/
Librdkafka (facultatif; également appelé «rdkafka») utilisé par le plugin write_kafka pour produire des messages et les envoyer à un courtier Kafka. https://github.com/edenhill/libdkafka
Librouteros (facultatif) utilisé par le plugin routeros pour se connecter à un appareil exécutant Routeros . http://octo.it/Librouteros/
Librrd (facultatif) utilisé par les plugins rrdtool et rrdcached . Ce dernier nécessite un support client RRDTool qui a été ajouté après la version 1.3 de RRDTool. Les versions 1.0, 1.2 et 1.3 sont connues pour fonctionner avec le plugin rrdtool . http://oss.oetiker.ch/rrdtool/
Librt, Libsocket, LibkStat, Libdevinfo (Facultatif) Diverses bibliothèques Solaris standard qui fournissent des fonctions système. http://developers.sun.com/solaris/
LibSensors (facultatif) à lire à partir de lm_sensors , voir le plugin sensors . http://www.lm-sensors.org/
libsigrok (facultatif) utilisé par le plugin sigrok . De plus, libsigrok dépend de glib , libzip et éventuellement (selon les conducteurs activés) sur libusb , libftdi et libudev .
libslurm (facultatif) utilisé par le plugin slurm . https://slurm.schedmd.com/
libsqlite3 (facultatif) utilisé par le plugin ras . https://sqlite.org/
libstatgrab (facultatif) utilisé par divers plugins pour collecter des statistiques sur des systèmes autres que Linux et / ou Solaris. http://www.i-scream.org/libstatgrab/
libtokyotyrant (facultatif) utilisé par le plugin tokyotyrant . http://1978th.net/tokyotyrant/
libupsclient / noix (facultatif) pour le plugin nut qui interroge upsd de Nut. http://networkupstools.org/
LibVirt (facultatif) Collectez des statistiques à partir de machines virtuelles. http://libvirt.org/
LIBXML2 (Facultatif) Parse XML Data. Ceci est nécessaire pour les plugins ascent , bind , curl_xml et virt . http://xmlsoft.org/
libxen (facultatif) utilisé par le plugin xencpu . http://xenbits.xensource.com/
libxmms (facultatif) http://www.xmms.org/
libyajl (facultatif) analyse des données JSON. Ceci est nécessaire pour les plugins ceph , curl_json , ovs_events , ovs_stats et log_logstash . http://github.com/lloyd/yajl
libvarnish (facultatif) récupére les statistiques à partir d'une instance de vernis. Ceci est nécessaire pour le plugin varnish . http://varnish-cache.org
Riemann-C-Client (facultatif) pour le plugin 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.