https://collectd.org/
Collectd ist ein kleiner Daemon, der Systeminformationen regelmäßig sammelt und Mechanismen zur Speicherung und Überwachung der Werte auf verschiedene Weise bereitstellt.
Collectd kann die folgenden Daten sammeln:
Apache Apache Server -Auslastung: Anzahl der übertragenen Bytes, Anzahl der bearbeiteten Anforderungen und detaillierte Anzeigetafelstatistiken
APCUPS APC UPS Dämon: UPS -Ladung, Last, Eingang/Ausgang/Batteriespannung usw.
Apple_sensoren Sensoren in Macs mit Mac OS X / Darwin: Temperatur, Lüftergeschwindigkeit und Spannungssensoren.
Aquaero Verschiedene Sensoren im Aquaero 5 Wasserkühlbrett von Aquacomputer.
Ascent Statistics über Ascent, ein kostenloser Server für das Spiel "World of Warcraft".
Das Barometer liest absolute Barometriedruck, der Luftdruck auf den Meeresspiegel und die Temperatur reduziert. Stützte Sensoren stammen MPL115A2 und MPL3115 von Freescale und BMP085 von Bosch.
Batterie Batterie, -strahl und Spannung von Laptop -Batterien auf ACPI und PMU -Basis.
Binden Sie den Namen Server und Resolver-Statistiken von der statistics-channel Schnittstelle von Bind 9,5, 9,6 und später aus.
BuddyInfo -Statistiken aus der Buddyinfo -Datei zur Speicherfragmentierung.
Funktionen für die Funktionen der Fertigkeiten, die aus Hardware -Subsystemen dekodiert sind, beispielsweise von SMBIOS mit DMidecode. https://www.nongnu.org/dmidecode/
CEPH -Statistiken aus dem verteilten CEPH -Speichersystem.
CGGROUPS CPU -Rechnungslegungsinformationen für Prozessgruppen unter Linux.
Chrony Chrony Dämon Statistik: Lokale Uhr Drift, Versatz an Kollegen usw.
Konnektivitätsereignisereignisbasierter Schnittstellenstatus.
ConnTrack -Nummer von NF_ConnTrack -Einträgen.
Kontextschalter Anzahl der vom Betriebssystem durchgeführten Kontextschalter.
CPU -CPU -Auslastung: Zeit im System, Benutzer, Nizza, Leerlauf und verwandte Zustände.
CPUFREQ -CPU -Frequenz (für Laptops mit Geschwindigkeitsschritt oder ähnliche Technologie)
CPUSleep -CPU -Schlaf: Zeit in Suspend (für mobile Geräte, die automatisch Suspend eingeben)
Curl analysieren Statistiken von Websites mit regulären Ausdrücken.
curl_json ruft JSON -Daten über Curl ab und analysiert sie gemäß der Benutzerkonfiguration.
curl_xml ruft XML -Daten über Curl ab und analysiert sie gemäß der Benutzerkonfiguration.
DBI führt SQL -Anweisungen in verschiedenen Datenbanken aus und interpretiert die zurückgegebenen Daten.
DCPMM sammelt Intel Optane DC PressiSTent Memory (DCPMM) Leistung und Gesundheitsstatistik.
DF Mountpoint -Verwendung (im Grunde die Werte df(1) liefert)
Festplattennutzung: Sektoren lesen/geschrieben, Anzahl der Lese-/Schreibaktionen, durchschnittliche Zeit, die eine IO-Operation abgeschlossen hat.
DNS -DNS -Verkehr: Abfragetypen, Antwortcodes, Opcodes und Verkehr/Oktetten übertragen.
DPDKSTAT sammeln DPDK -Schnittstellenstatistiken. Weitere detaillierte Build -Anweisungen finden Sie unter docs/Build.dpdkstat.md.
Dieses Plugin sollte mit Aktivitäten der Compiler -Verteidigungen kompiliert werden, z.
DPDK_Telemetry sammeln DPDK -Schnittstelle, Anwendung und globale Statistiken. Dieses Plugin kann als Ersatz zum DPDKSTAT -Plugin verwendet werden.
Dieses Plugin ist abhängig von der DPDK 19.08 -Version und muss zusammen mit der DPDK -Anwendung verwendet werden.
Außerdem hat dieses Plugin die Abhängigkeit von der Jansson -Bibliothek.
DRBD sammeln einzelne DRBD -Ressourcenstatistiken.
E -Mail -E -Mail -Statistiken: Zählen, Verkehr, Spam -Ergebnisse und Schecks. Siehe Collectd-Email (5).
Entropiemenge der Entropie, die dem System zur Verfügung steht.
Epics sammeln Daten aus EPICS -Nachrichtenbus. https://epic-controls.org
EthStat Network Interface Card Statistics.
EXEC -Werte, die von einem benutzerdefinierten Programm oder Skript gesammelt werden. Siehe Collectd-Exec (5).
FHCOUNT -Datei behandelt Statistiken.
FileCount zählen Sie die Anzahl der Dateien in Verzeichnissen.
FSCACHE Linux-System-System-basierte Caching-Framework-Statistik.
Gmond erhält Multicast -Verkehr von Ganglia -Instanzen.
GPS -Monitor -GPS -verwandte Daten über GPSD.
GPU_NVIDIA -Überwachung NVIDIA GPU -Statistiken über NVML verfügbar.
Hddtemp Festplattentemperaturen unter Verwendung von HDDTempd.
Riesige Seite melden die Anzahl der gebrauchten und kostenlosen riesigen Seite. Weitere Informationen zu riesigen Seite finden Sie hier: https://www.kernel.org/doc/documentation/vm/hugetlbpage.txt.
Dieses Plugin sollte mit Aktivitäten der Compiler -Verteidigungen kompiliert werden, z.
InfiniBand -Attribute und Zähler für jeden Port auf jedem IB -Gerät.
Intel_PMU Das Intel_PMU -Plugin liest Leistungsschalter, die von der Linux -Kernel -Perf -Schnittstelle bereitgestellt werden. Das Plugin verwendet Jevents Library, um benannte Ereignisse auf Perf -Ereignisse zu beheben und auf die Perf -Schnittstelle zuzugreifen.
INSTEL_RDT Das Intel_RDT -Plugin sammelt Informationen, die durch Überwachung von Funktionen der Intel Resource Director Technology (Intel (R) RDT) wie Cache -Überwachungstechnologie (CMT), Speicherbandbreitenüberwachung (MBM) zur Überwachung der Cache -Überwachung bereitgestellt werden. Diese Funktionen liefern Informationen zur Nutzung gemeinsamer Ressourcen wie Cache -Belegung der letzten Ebene, der Verwendung der lokalen Speicherbandbreite, der Nutzung der Remote -Speicherbandbreite, Anweisungen pro Uhr. https://01.org/packet-processing/cache-monitoring-technology-memory-bandwidth-monitoring-cache-location-technology-code-anda
Schnittstellenschnittstellenverkehr: Anzahl der Oktetten, Pakete und Fehler für jede Schnittstelle.
IPC IPC -Zähler: Verwendete Semaphoren, Anzahl der zugewiesenen Segmente im gemeinsamen Speicher und mehr.
IPMI IPMI (Intelligent Platform Management Interface) Sensoren Informationen.
IPStats IPv4 und IPv6; Eingehende, ausgehende, weitergeleitete Zähler. Nur FreeBSD.
Iptables Iptables 'Zähler: Anzahl der Bytes, die von einer bestimmten Iptables -Regel übereinstimmen.
IPVS -IPVS -Verbindungsstatistik (Anzahl der Verbindungen, Oktetten und Pakete für jeden Dienst und jedes Ziel). Siehe http://www.linuxvirtualserver.org/software/index.html.
IRQ IRQ -Zähler: Häufigkeit, bei der bestimmte Interrupts auftreten.
Java integriert eine Java Virtual Machine (JVM), um Plugins in Java -Bytecode auszuführen. Weitere detaillierte Build -Anweisungen finden Sie unter docs/build.java.md.
Lastsystemlast durchschnittlich über die letzten 1, 5 und 15 Minuten.
LPAR detaillierte CPU -Statistiken der Virtualisierungstechnik „Logische Partitionen“, die in die Power -Prozessoren von IBM integriert sind.
LUA Das Lua -Plugin implementiert einen Lua -Dolmetscher in Collectd. Dies ermöglicht es, Plugins in Lua zu schreiben, die von Collectd ausgeführt werden, ohne dass jedes Intervall einen schweren Dolmetscher starten muss. Einzelheiten siehe Collectd-Lua (5).
Madwifi fragt sehr detaillierte Verwendungsstatistiken von drahtlosen LAN -Adaptern und Schnittstellen, die den Atheros -Chipsatz und den Madwifi -Fahrer verwenden.
MBMon -Motherboardsensoren: Temperatur-, Lüftergeschwindigkeits- und Spannungsinformationen unter Verwendung von MBMon (1).
McElog Monitor Machine Check -Ausnahmen (Hardwarefehler, die von Hardware erkannt und an Software gemeldet wurden) gemeldet von McElog und generieren geeignete Benachrichtigungen, wenn Maschinenprüfungsausnahmen erkannt werden.
MD Linux Software-RAID-Geräteinformationen (Anzahl der aktiven, fehlgeschlagenen, Ersatz- und fehlenden Festplatten).
Memcachec -Abfrage und analysieren Sie Daten aus einem Memcache -Daemon (Memcached).
Memcached -Statistik des verteilten Caching -Systems mit Memcached. http://www.danga.com/memcached/
Speicherspeicherauslastung: Speicher, das durch Ausführen von Prozessen, Seitencache, Puffercache und kostenlos besetzt ist.
MIC sammelt CPU -Verwendung, Speicherverbrauch, Temperaturen und Stromverbrauch von Intel vielen integrierten Core -CPUs (MIC).
MMC liest die Lebenszeitschätzungen, die von EMMC 5.0+ -Geräten und einigen detaillierteren Gesundheitsmetriken wie schlechten Block- und Löschzahlen oder Leistungszyklen gemeldet wurden, für Mikron- und Sandisk -EMMCs und einige Swissbit -MMC -Karten (Manfid = 0x5d OEMID = 0x5342).
Modbus liest Werte aus Modbus/TCP -fähigen Geräten. Unterstützt Lesewerte von mehreren "Sklaven", sodass Gateway -Geräte verwendet werden können.
Multimeterinformationen, die von seriellen Multimetern bereitgestellt werden, wie der Metex M-4650CR .
MySQL Mariadb und MySQL Server Statistics: Ausgegebene Befehle, Handler ausgelöst, Thread -Nutzung, Abfragestatistik und Datenverkehr/Oktetten gesendet und empfangen.
NetApp -Plugin zum Abfragen von Leistungswerten aus einem NetApp -Speichersystem mit dem von NetApp bereitgestellten SDK "ONTAP verwalten".
NetLink Sehr detaillierte Linux -Netzwerkschnittstelle und Routing -Statistiken. Sie können (detaillierte) Informationen zu Schnittstellen, Qdiscs, Klassen und, wenn Sie es verwenden können, Filter abrufen.
Netzwerk -Empfangswerte, die von anderen Hosts gesammelt wurden. Große Setups möchten die Daten auf einer speziellen Maschine sammeln, und dies ist das Plugin der Wahl dafür.
NFS -NFS -Verfahren: Welcher NFS -Befehl wurde als wie oft bezeichnet.
Nginx sammelt Statistiken von nginx (Speak: Engine X), einem HTTP- und Mailserver/Proxy.
NTPD NTP -Dämon -Statistik: Lokale Uhrendrift, Versatz an Kollegen usw.
NUMA-Informationen zum ungleichmäßigen Speicherzugriff (NUMA).
Nuss -Netzwerk -UPS -Tools: UPS -Strom, Spannung, Strom, Ladung, Auslastung, Temperatur usw. Siehe UPSD (8).
OLSRD -Abfragen Routing -Informationen aus dem Daemon „Optimierter Link -Status -Routing“.
OneWire (Experimental!) Lesen Sie OneWire -Sensoren mit der OWCAPU -Bibliothek des OWFS -Projekts. Bitte lesen Sie in CollectD.Conf (5) Warum dieses Plugin experimentell ist.
OpenLDAP -Überwachungsinformationen aus OpenLdaps CN = Monitor Subtree.
OpenVPN RX und TX jedes Clients in OpenVPN-status.log (Statusversion 2). http://openvpn.net/index.php/documentation/howto.html
Oracle -Abfragendaten aus einer Oracle -Datenbank.
OVS_EVENTS Das Plugin überwacht den Verbindungsstatus von Open Vswitch (OVS) verbundenen Schnittstellen, sendet die zu sammeligen Werte und sendet die Benachrichtigung, wenn die Änderung des Verbindungszustands in der OVS -Datenbank auftritt. Die YAJL -Bibliothek muss installiert werden. Detaillierte Anweisungen zum Installieren und Einrichten von Open Vswitch finden Sie unter OVS -Dokumentation. http://openvswitch.org/support/dist-docs/install.rst.html
OVS_Stats Das Plugin sammelt die Statistiken von OVS verbundenen Brücken und Schnittstellen. Die YAJL -Bibliothek muss installiert werden. Detaillierte Anweisungen zum Installieren und Einrichten von Open Vswitch finden Sie unter OVS -Dokumentation. http://openvswitch.org/support/dist-docs/install.rst.html
PCIE_Errors lesen Fehler aus dem PCI Express -Gerätestatus und der AER -erweiterten Funktionen. https://www.design-rese.com/articles/38374/pcie-error-logging-andling-on-a-typical-soc.html
Perl Das Perl-Plugin implementiert einen Perl-Interpreter in sammeln. Sie können Ihre eigenen Plugins in Perl schreiben und beliebige Werte mit dieser API zurückgeben. Siehe Collectd-Perl (5).
PF -Abfragestatistik aus dem Paketfilter von BSD "PF".
Pinba -Empfangs- und Versandsteuerwerte von Pinba, einer Profilerierungserweiterung für PHP.
Ping -Netzwerklatenz: Zeit, um das Standard -Gateway oder einen anderen gegebenen Host zu erreichen.
PostgreSQL PostgreSQL -Datenbankstatistik: Active Server -Verbindungen, Transaktionsnummern, Block -IO, Tabellenzeilenmanipulationen.
powerdns powerdns name server Statistiken.
Prozesse Prozesszählungen: Anzahl der Laufen, Schlafen, Zombie, ... Prozesse.
ProceEvent Havens for Process beginnt und beendet über NetLink.
Protokolle zählen verschiedene Aspekte von Netzwerkprotokollen wie IP, TCP, UDP usw.
Python Das Python -Plugin implementiert einen Python -Dolmetscher in Collectd. Dies ermöglicht es, Plugins in Python zu schreiben, die von Collectd ausgeführt werden, ohne dass jedes Intervall einen schweren Dolmetscher starten muss. Einzelheiten siehe Collectd-Python (5).
Ras Das RAS -Plugin sammelt und zählt Fehler von Rasdaemon
Redis Das Redis -Plugin sammelt Informationen von einem Redis -Server, einschließlich: Verfügbarkeit, Gebrauchsspeicher, Gesamtverbindungen usw.
Routeros Abfrageschnittstelle und drahtlose Registrierungsstatistiken von Routeros.
rrdcached rrdtool Caching Dämon (rrdcached) Statistik.
Sensoren -Systemsensoren, auf die mit LM_Sensoren zugegriffen wird: Spannungen, Temperaturen und Lüfterdrehzahlgeschwindigkeiten.
Serielle RX und TX von seriellen Schnittstellen. Nur Linux; Benötigt Wurzelprivilegien.
Sigrok verwendet LibSigrok als Backend, sodass ein Sigrok-unterstütztes Gerät seine Messungen zum Sammeln versehen kann. Dies umfasst Multimeter, Klangpegelmessgeräte, Thermometer und vieles mehr.
Slurm sammelt den Knoten und den Arbeitsplatzinformationen pro Teilnahme mithilfe von Libslurm sowie der internen Gesundheitsstatistik.
Smart sammeln intelligente Statistiken, insbesondere Lastzykluszahl, Temperatur und schlechte Sektoren.
SNMP-Lesewerte aus SNMP (Simple Network Management Protocol) aktiviert Netzwerkgeräte wie Switches, Router, Thermometer, Racküberwachungsserver usw. Siehe CollectD-Snmp (5).
STATSD fungiert als StatsD -Server, das Lesewerte über das Netzwerk von STATSD -Clients und Berechnung von Raten und anderen Aggregaten aus diesen Werten fungiert.
Sysevent hört auf Rsyslog -Ereignisse und stimmte übereinstimmende Werte ein.
Swap -Seiten auf Festplatte oder was auch immer vom swap genannt wird.
Tabelle analysieren tabellähnliche strukturierte Dateien.
Tail folgt (Tails) Protokolldateien, analysiert sie nach Zeilen und stellt übereinstimmende Werte ein.
Tail_csv folgt (Tails) -Dateien im CSV -Format, analysiert jede Zeile und legt extrahierte Werte ein.
Bandbytes und Operationen auf Bandvorrichtungen gelesen und geschrieben. Nur Solaris.
TCPConns Anzahl der TCP -Verbindungen zu bestimmten lokalen und entfernten Ports.
TeamSpeak2 TeamSpeak2 Server -Statistik.
TED -Plugin zum Lesen von Werten aus "The Energy Detective" (TED).
Wärme Linux -ACPI -Thermalzoneninformationen.
Tokyotyrant liest die Anzahl der Datensätze und die Dateigröße von einem laufenden Tokyo Tyrant -Server.
Turbostat liest CPU-Frequenz und C-State-Residenz auf modernen Turbo-fähigen Prozessoren.
UBI liest die Anzahl schlechter physikalischer Eraseblocke und den maximalen Strom -Zählerwert auf UBI -Volumina.
UPTIME -System -Laufzeitstatistik.
Benutzer Benutzer derzeit angemeldet.
Lack verschiedene Statistiken aus Lack, einem HTTP -Beschleuniger.
Virt CPU-, Speicher-, Festplatten- und Netzwerk -E/A -Statistiken von virtuellen Maschinen.
VMEM Virtual Memory Statistics, z. B. die Anzahl der Seite-Ins/-Outs oder die Anzahl der Seitenfault.
VSERVER -Systemressourcen, die von Linux vServers verwendet werden. Siehe http://linux-vserver.org/.
drahtlose Linkqualität von drahtlosen Karten. Nur Linux.
Xencpu Xen Hypervisor CPU -Statistiken.
XMMS -Bitrate und Musikfrequenz mit XMMs.
ZFS_ARC -Statistiken für ZFS '„Adaptive Ersatzcache“ (ARC).
Zone misst den Prozentsatz der CPU -Last pro Behälter (Zone) unter Solaris 10 und höher
Zookeeper las Daten aus dem MNTR -Befehl von Zookeeper.
Die Ausgabe kann von den folgenden Plugins geschrieben oder an verschiedene Ziele gesendet werden:
AMQP sendet JSON-kodierte Daten an ein erweitertes Message Queuing Protocol (AMQP) 0.9.1 Server wie Rabbitmq.
AMQP1 sendet JSON-kodierte Daten an einen erweiterten Meldungswarteschlangenprotokoll (AMQP) 1.0-Server, wie z. B. QPID Dispatch Router oder Apache Artemis Broker.
CSV -Dateien (an Comma Separated Values) schreiben. Dies braucht viel Diskspace, ist aber extrem tragbar und kann mit fast jedem Programm analysiert werden, das alles analysieren kann. Sogar Microsofts Excel.
GRPC senden und empfangen Werte über das Netzwerk mit dem GRPC -Framework.
LUA Es ist möglich, mit dem LUA -Plugin Write -Plugins in Lua zu implementieren. Einzelheiten siehe Collectd-Lua (5).
MQTT veröffentlicht und abonniert MQTT -Themen.
Netzwerk senden die Daten an einen Remote -Host, um die Daten irgendwie zu speichern. Dies ist nützlich für große Setups, bei denen die Daten von einer speziellen Maschine gespeichert werden sollten.
Perl natürlich werden die Werte auch an Plugins in Perl ausbreitet, sodass Sie leicht seltsame Dinge mit den Plugins machen können, an die wir nicht gedacht haben;) siehe Collectd-Perl (5).
Python Es ist möglich, mit dem Python -Plugin Plugins in Python zu implementieren. Einzelheiten siehe Collectd-Python (5).
RRDCACHED-Ausgabe zu RRD-Dateien (Rrd-Robin-Database) unter Verwendung des RRDTool Caching Dämones (RRDCACHED)-Siehe rrdcached(1) . Dieser Daemon bietet eine allgemeine Implementierung des Caching, der vom rrdtool -Plugin durchgeführt wird.
RRDTOOL-Ausgabe zu RRD-Dateien (Rund-Robin-Database) mit LIBRRD. Siehe rrdtool (1). Dies ist wahrscheinlich das beliebteste Ziel für solche Werte. Da Updates zu RRD-Files etwas teuer sind, kann dieses Plugin Updates für die Dateien zwischenspeichern und eine Reihe von Updates gleichzeitig schreiben, wodurch das Last von Systemen stark verringert wird.
SNMP_AGENT empfängt und behandelt Abfragen von SNMP Master Agent und gibt die von Lese -Plugins gesammelten Daten zurück. Bearbeitet Anfragen nur für in der Konfigurationsdatei angegebene OIDs. Um SNMP zu verarbeiten, wird das Plugin von Collectd Daten abgerufen und angeforderte Werte aus dem internen Format von CollectD in das SNMP -Format übersetzt.
Unixsock Man kann die Werte aus dem Unixsock -Plugin abfragen, wann immer sie benötigt werden. Bitte lesen Sie Collectd-Unixsock (5), um eine Beschreibung darüber zu erhalten, wie das fertig ist.
Write_Graphite sendet Daten an Carbon, die Speicherschicht von Graphit mit TCP oder UDP. Es kann konfiguriert werden, um die Protokollierungs -Send -Fehler zu vermeiden (besonders nützlich bei der Verwendung von UDP).
Write_HTTP sendet die von Collectd gesammelten Werte mithilfe von HTTP-Postanforderungen an einen Webserver. Die übertragenen Daten werden entweder in einer Form, die vom Exec -Plugin verstanden oder in JSON formatiert wird.
Write_Kafka sendet Daten an Apache Kafka, eine verteilte Warteschlange.
Write_log schreibt Daten an das Protokoll
Write_MongodB sendet Daten an MongoDB, eine NoSQL -Datenbank.
Write_prometheus veröffentlichen Werte mit einem eingebetteten HTTP -Server in einem Format, das mit Prometheus 'Collectd_exporter kompatibel ist.
write_redis sendet die Werte an einen Redis-Schlüsselwert-Datenbankserver.
Write_riemann sendet Daten an Riemann, ein Stream -Verarbeitungs- und Überwachungssystem.
Write_Sensu sendet Daten über den Sensu Client Local TCP -Socket an Sensu, ein Stream -Verarbeitungs- und Überwachungssystem.
Write_Syslog sendet Daten im Syslog -Format mit TCP, wobei die Nachricht die Metrik im menschlichen oder jSON -Format enthält.
Write_TSDB sendet Daten OpenETSDB, einen skalierbaren No Master, No Shared State Time Series -Datenbank.
Die Protokollierung ist wie alles in Collectd von Plugins bereitgestellt. Die folgenden Plugins halten uns über das, was los ist:
LogFile schreibt Protokollnachrichten in eine Datei oder StDout/Stderr.
Perl -Protokollmeldungen werden auch in PERL in Plugins ausgegeben. Siehe Collectd-Perl (5).
Python Es ist möglich, Log -Plugins in Python mit dem Python -Plugin zu implementieren. Einzelheiten siehe Collectd-Python (5).
Syslog -Protokolle für den Standard -Unix -Protokollierungsmechanismus Syslog.
log_logstash schreibt Protokollnachrichten, die als Logstash -JSON -Ereignisse formatiert sind.
Benachrichtigungen können von den folgenden Plugins behandelt werden:
Benachrichtigung_Desktop Senden Sie eine Desktop -Benachrichtigung an einen Benachrichtigungs -Daemon, wie in der Desktop -Benachrichtigungsspezifikation definiert. Um die Benachrichtigungen tatsächlich anzuzeigen, ist eine Benachrichtigungsproemon erforderlich. Siehe http://www.galago-project.org/specs/notification/.
Notify_email senden Sie eine E-Mail mit der Benachrichtigungsnachricht an die konfigurierten Empfänger.
Notify_Nagios senden Benachrichtigungen als passive Prüfungsergebnisse an eine lokale Nagios -Instanz.
Führen Sie ein Programm oder ein Skript aus, um die Benachrichtigung zu verarbeiten. Siehe Collectd-Exec (5).
LogFile schreibt die Benachrichtigungsnachricht in eine Datei oder StDout/Stderr.
Netzwerk senden die Benachrichtigung an einen Remote -Host, um sie irgendwie zu verarbeiten.
Perl -Benachrichtigungen werden ebenfalls an Plugins ausgebildet, die in Perl geschrieben wurden. Siehe Collectd-Perl (5).
Python Es ist möglich, Benachrichtigungs -Plugins in Python mit dem Python -Plugin zu implementieren. Einzelheiten siehe Collectd-Python (5).
Die Wertverarbeitung kann mit der Infrastruktur "Filterkette" und "Übereinstimmungen" und "Ziele" gesteuert werden. Die folgenden Plugins sind verfügbar:
Match_Empty_Counter Match -Zählerwerte, die derzeit Null sind.
Match_hashed Match -Werte mit einer Hash -Funktion des Hostnamens.
Match_regex entspricht den Werten nach ihrer Kennung, die auf regulären Ausdrücken basiert.
Match_Timediff Match -Werte mit einem ungültigen Zeitstempel.
MATCH_VALUE Wählen Sie Werte nach den Werten ihrer Datenquellen aus.
target_notification erstellen und versenden eine Benachrichtigung.
Target_Replace Ersetzen Sie Teile einer Kennung durch reguläre Ausdrücke.
target_scale scale (multiply) Werte mit einem willkürlichen Wert.
target_set set (überschreiben) ganze Teile einer Kennung.
Verschiedene Plugins:
Die Aggregation wählt mehrere Wertlisten basierend auf Mustern oder regulären Ausdrücken aus und erstellt neue aggregierte Wertelisten von diesen.
Der Schwellenwert überprüft die Werte mit konfigurierten Schwellenwerten und erstellt Benachrichtigungen, wenn die Werte nicht begrenzt sind. Weitere Informationen finden Sie unter CollectD-Schwelle (5).
UUID setzt den Hostnamen auf eine eindeutige Kennung. Dies ist für Setups gedacht, bei denen jeder Kunde auf einen anderen physischen Host migrieren kann und möglicherweise einen oder mehrere Namensänderungen im Prozess durchläuft.
Leistung: Da Collectd als Daemon läuft, fängt es nicht immer wieder an. Mit Ausnahme des Exec -Plugins werden keine Prozesse gegabelt. Das zwischengespeicherte Ausgangs -Plugins wie die RRDTool- und Netzwerk -Plugins stellt sicher, dass Ihre Ressourcen effizient verwendet werden. Da Collectd Multithread programmiert ist, profitiert es von Hyper-Threading- und Multicore-Prozessoren und stellt sicher, dass der Daemon nicht im Leerlauf ist, wenn nur ein Plugin darauf wartet, dass eine IO-Operation abgeschlossen ist.
Nach der Einrichtung ist kaum eine Wartung erforderlich. Das Setup ist so einfach wie möglich und die Standardwerte sollten für die meisten Benutzer in Ordnung sein.
Die Konfigurationsdatei von CollectD finden Sie unter sysconfdir/collectd.conf . Run collectd -h für eine Liste der integrierten Standardeinstellungen. In collectd.conf(5) finden Sie eine Liste von Optionen und eine Syntaxbeschreibung.
Wenn die csv oder rrdtool -Plugins geladen werden, schreiben sie die Werte in Dateien. Der übliche Ort für diese Dateien befindet sich unter /var/lib/collectd .
Bei der Verwendung einiger Plugins muss Collectd als Benutzerroot ausgeführt werden, da nur Root bestimmte Dinge tun kann, z. Collectd sollte nicht installiert werden, da es verwendet werden kann, um wertvolle Dateien zu überschreiben!
Beispielskripte zum Generieren von Diagrammen befinden sich im contrib/ oder in den meisten Verteilungen im Quellpaket oder irgendwo in der Nähe /usr/share/doc/collectd . Bitte beachten Sie, dass diese Skript als Ausgangspunkt für Ihre eigenen Experimente gedacht sind. Einige von ihnen benötigen das RRDs Perl -Modul. ( librrds-perl auf Debian) Wenn Sie eine ausgefeiltere Lösung geschrieben haben, teilen Sie sie uns bitte mit.
Die RRA der automatisch erstellten RRD -Dateien hängen von den angegebenen step und heartbeat ab. Wenn Sie diese Einstellungen ändern, müssen Sie möglicherweise die Dateien neu erstellen und alle Daten verlieren. Bitte beachten Sie das, wenn Sie die Werte ändern, und lesen Sie die RRDTool (1) Manpage gründlich.
Wenn Sie das dns -Plugin verwenden, meldet chkrootkit(1) collectd als Paket -Sniffer ( <iface>: PACKET SNIFFER(/usr/sbin/collectd[<pid>]) ). Das Plugin erfasst alle UDP -Pakete auf Port 53, um den DNS -Verkehr zu analysieren. In diesem Fall ist Collectd ein legitimer Sniffer und der Bericht sollte als falsch positiv angesehen werden. Möglicherweise möchten Sie jedoch überprüfen, ob dies wirklich Collectd und nicht ein anderer illegitimer Sniffer ist.
Um Collectd aus der Quelle zu kompilieren, benötigen Sie:
Übliche Verdächtige: C Compiler, Linker, Präprozessor, machen, ...
Collectd verwendet einige gemeinsame C99 -Merkmale, z. B. zusammengesetzte Literale und gemischte Erklärungen und benötigt daher einen C99 -kompatiblen Compiler.
Auf Debian und Ubuntu sollte das "Build-Ewise" -Paket alles, was notwendig ist, einbeziehen.
Eine POSIX-Threads-Implementierung (PThread). Da das Sammeln einiger Statistiken langsam ist (Netzwerkverbindungen, langsame Geräte usw.) wird parallelisiert. Die POSIX -Thread -Schnittstelle wird verwendet und sollte in verschiedenen Implementierungen für hoffentlich alle Plattformen gefunden werden.
Beim Bauen aus dem Git -Repository sind Flex (Tokenizer) und Bison (Parser -Generator) erforderlich. Beeinträchtigen Tarballs enthalten die generierten Dateien - Sie benötigen diese Pakete in diesem Fall nicht.
Aerotools-ng (optional) verwendet vom aquaero -Plugin. Derzeit wird die libaquaero5 Bibliothek, die vom aerotools-ng Toolkit verwendet wird, nicht als gemeinsam genutztes Objekt zusammengestellt und verfügt nicht über eine Installationsroutine. Daher müssen Sie das Konfigurationskript von CollectD im Quellverzeichnis des aerotools-ng Projekts angeben. https://github.com/lynix/aerotools-ng
CoreFoundation.framework und iokit.framework (optional) zum Kompilieren von Darwin im Allgemeinen und dem apple_sensors -Plugin im Besonderen. http://developer.apple.com/corefoundation/
CUDA (optional) verwendet vom gpu_nvidia -Plugin https://developer.nvidia.com/cuda-downloads
libatasmart (optional) verwendet vom smart -Plugin. http://git.0pointer.de/?p=libatasmart.git
LIBCAP (optional) Das turbostat -Plugin kann optional Unterstützung bei Linux -Funktionen erstellen, wodurch die vollständige Berechtigungsanforderung (alias. Auslauf als Root) zum Lesen von Werten vermieden werden. http://sites.google.com/site/filecapable/
libclntsh (optional) verwendet vom oracle -Plugin.
libhiredis (optional) verwendet vom redis -Plugin. Bitte beachten Sie, dass Sie eine 0,10.0 -Version oder höher benötigen. https://github.com/redis/hiredis
libcurl (optional) Wenn Sie den apache , ascent , bind , curl , curl_json , curl_xml , nginx oder write_http Plugin verwenden möchten. http://curl.haxx.se/
libdbi (optional) wird vom dbi -Plugin verwendet, um eine Verbindung zu verschiedenen Datenbanken herzustellen. http://libdbi.sourceforge.net/
libesmtp (optional) für das Plugin notify_email . http://www.stafford.ukllinux.net/libesmtp/
LibGanglia (optional), das vom gmond -Plugin verwendet wird, um Daten von Ganglien zu verarbeiten. http://ganglia.info/
libgrpc (optional) verwendet vom grpc -Plugin. GRPC benötigt einen C ++ - Compiler, der den C ++ 11 -Standard unterstützt. https://grpc.io/
libgcrypt (optional) verwendet vom network -Plugin zur Verschlüsselung und Authentifizierung. http://www.gnupg.org/
LIBGPS (optional) verwendet vom gps -Plugin. http://developer.berlios.de/projects/gpsd/
LIBI2C-dev (optional) für das Plugin- barometer enthält nur die i2c-dev.h Header-Datei für den Benutzerraum I2C-Entwicklung.
libiptc (optional) für Abfragen von Iptables -Zählern. http://netfilter.org/
libjansson (optional) JSON -Daten analysieren. Dies wird für die capabilities und dpdk_telemetry -Plugins verwendet. http://www.digip.org/jansson/
libjevents (optional) Die Jevents -Bibliothek wird vom intel_pmu -Plugin verwendet, um auf die Linux -Kernel -Perf -Schnittstelle zuzugreifen. HINWEIS: Die Bibliothek sollte mit -fPIC -Flag erstellt werden, um mit Intel_PMU -Shared -Objekt korrekt verknüpft zu werden. https://github.com/andikleen/pmu-tools
libjvm (optionale) Bibliothek, die die Java Virtual Machine (JVM) zusammenfasst. Diese Bibliothek wird vom java -Plugin verwendet, um Java -Bytecode auszuführen. Weitere detaillierte Build -Anweisungen finden Sie unter docs/build.java.md. http://openjdk.java.net/ (und andere)
LIBLDAP (optional) verwendet vom openldap -Plugin. http://www.openldap.org/
LIBLUA (optional) verwendet vom lua -Plugin. Derzeit werden Lua 5.1 und später unterstützt. https://www.lua.org/
libmemcached (optional), das vom memcachec -Plugin verwendet wird, um eine Verbindung zu einem Memcache -Daemon herzustellen. http://tangent.org/552/libmemcached.html
libmicrohttpd (optional) verwendet vom Write_prometheus -Plugin zum Ausführen eines HTTP -Daemons. http://www.gnu.org/software/libmicrohttpd/
libmnl (optional) verwendet vom netlink -Plugin. http://www.netfilter.org/projects/libmnl/
libmodbus (optional) verwendet vom modbus -Plugin zur Kommunikation mit Modbus/TCP -Geräten. Das modbus -Plugin funktioniert mit Version 2.0.3 der Bibliothek - aufgrund häufiger API -Änderungen können andere Versionen möglicherweise sauber kompiliert oder nicht. http://www.libmodbus.org/
libmysqlclient (optional) nicht überraschend vom mysql -Plugin verwendet. http://dev.mysql.com/
LibNetApp (optional) erforderlich für das netapp -Plugin. Diese Bibliothek ist Teil des von NetApp veröffentlichten „Verwalten von ONTAP SDK“.
libNetsnmp (optional) für die Plugins snmp und snmp_agent . http://www.net-nmp.org/
libNetsnmpagent (optional) Erforderlich für das snmp_agent -Plugin. http://www.net-nmp.org/
libnotify (optional) für das Plugin notify_desktop . http://www.galago-project.org/
libopenipmi (optional) verwendet vom ipmi -Plugin, um IPMI -Geräte zu beweisen. http://openipmi.sourceforge.net/
Liboping (optional) verwendet vom ping -Plugin zum Senden und Empfangen von ICMP -Paketen. http://octo.it/liboping/
Libowcapi (optional) verwendet vom onewire -Plugin zum Lesen von Werten aus OneWire -Sensoren (oder dem Owserver (1) -Dämon). http://www.owfs.org/
LIBPCAP (optional) zum Erfassen von Paketen durch das dns -Plugin. http://www.tcpdump.org/
libperfstat (optional) verwendet von verschiedenen Plugins, um Statistiken unter AIX zu sammeln.
libperl (optional) Offensichtlich vom perl -Plugin verwendet. Die Bibliothek muss mit iThread -Unterstützung zusammengestellt werden (eingeführt in Perl 5.6.0). http://www.perl.org/
libpmwapi (optional) verwendet vom dcpmm -Plugin. Die Bibliothek GitHub: https://github.com/intel/intel-pmwatch folgen den für das dcpmm-Plugin genannten PMWatch-Build-Anweisungen und verwenden den Installationspfad, um die Abhängigkeit hier zu beheben.
libpq (optional) Die PostgreSQL C -Client -Bibliothek, die vom postgresql -Plugin verwendet wird. http://www.postgresql.org/
LIBPQOS (optional) Die PQOS -Bibliothek für Intel (R) Ressourcendirektor -Technologie, die vom intel_rdt -Plugin verwendet wird. https://github.com/01org/intel-cmt-cat
libProtobuf, Protoc 3.0+ (optional), das vom grpc -Plugin verwendet wird, um Service-Stubs und Code für Netzwerkpakete des protobufbasierten Netzwerkprotokolls von CollectD zu erstellen. https://developers.google.com/protocol-buffers/
LibProtobuf-C, Protoc-C (optional), das vom pinba Plugin verwendet wird, um einen Parser für die von der Pinba-PHP-Erweiterung gesendeten Netzwerkpakete zu generieren. http://code.google.com/p/protobuf-c/
libpython (optional) verwendet vom python -Plugin. Derzeit werden Python 2.6 und später und Python 3 unterstützt. http://www.python.org/
libqpid-Proton (optional), das vom amqp1 Plugin für AMQP 1.0-Verbindungen verwendet wird, zum Beispiel zu Qdrouterd. http://qpid.apache.org/
Librabbitmq (optional; auch als „Rabbitmq-C“ bezeichnet) verwendet vom amqp Plugin für AMQP 0.9.1 Verbindungen, beispielsweise zu Rabbitmq. http://hg.rabbitmq.com/rabbitmq-c/
Librdkafka (optional; auch "rdkafka" genannt) verwendet vom write_kafka -Plugin zum Erstellen von Nachrichten und zum Senden an einen Kafka -Broker. https://github.com/edenhill/librdkafka
LIBOUTEROS (optional) wird vom routeros -Plugin verwendet, um eine Verbindung zu einem Gerät herzustellen, das Routeros ausführt. http://octo.it/librouteros/
LIBRRD (optional) verwendet von den Plugins rrdtool und rrdcached . Letzteres erfordert den RRDTool -Client -Support, der nach Version 1.3 von rrdtool hinzugefügt wurde. Versionen 1.0, 1.2 und 1.3 arbeiten mit dem rrdtool -Plugin. http://oss.oetiker.ch/rrdtool/
Librt, libsocket, libkstat, libdevinfo (optional) Verschiedene Standard -Solaris -Bibliotheken, die Systemfunktionen bereitstellen. http://developers.sun.com/Solaris/
Libsensoren (optional), um von lm_sensors zu lesen, siehe sensors -Plugin. http://www.lm-sensors.org/
libSigrok (optional) vom sigrok -Plugin verwendet. Darüber hinaus ist libsigrok auf glib , libzip und optional (je nachdem, welche Fahrer aktiviert sind) auf libusb , libftdi und libudev angewiesen.
libslurm (optional) verwendet vom slurm -Plugin. https://slurm.Schedmd.com/
libsqlite3 (optional) verwendet vom ras -Plugin. https://sqlite.org/
libstatgrab (optional) verwendet von verschiedenen Plugins, um Statistiken über andere Systeme als Linux und/oder Solaris zu sammeln. http://www.i-scream.org/libstatgrab/
Libtokyotyrant (optional), das vom tokyotyrant -Plugin verwendet wird. http://1978th.net/tokyotyrant/
libupsclient/mut (optional) für das nut -Plugin, das upsd der Nuss abfragt. http://networkupstools.org/
libvirt (optional) Erfassen Sie Statistiken von virtuellen Maschinen. http://libvirt.org/
libxml2 (optional) XML -Daten analysieren. Dies ist für den ascent , bind , curl_xml und virt -Plugins benötigt. http://xmlsoft.org/
libxen (optional) verwendet vom xencpu -Plugin. http://xenbits.xensource.com/
libxmms (optional) http://www.xmmms.org/
libyajl (optional) JSON -Daten analysieren. Dies ist für Plugins von ceph , curl_json , ovs_events , ovs_stats und log_logstash erforderlich. http://github.com/lloyd/yajl
libvarlish (optional) ruft Statistiken aus einer Lackinstanz ab. Dies ist für das varnish -Plugin erforderlich. http://varlish-cache.org
Riemann-C-Client (optional) für das Plugin write_riemann . https://github.com/algernon/riemann-client
So konfigurieren, erstellen und installieren Sie CollectD mit den Standardeinstellungen, leiten Sie ./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
oder:
$ 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.