Eigene Erweiterungen

Die Standard-Methode für die Integration eigener Erweiterungen sind neue Plugins. Neben der bevorzugten Programmiersprache C können sie auch Perl und Python sowie Java verwenden. Wie alles in Collectd ist auch die Unterstützung hierfür in Plugins implementiert. So bettet beispielsweise das Perl-Plugin, ähnlich dem »mod_perl«-Modul von Apache, einen Perl-Interpreter in den Daemon ein. Der Vorteil gegenüber dem periodischen Ausführen eines Skriptes liegt darin, dass der Code nur einmalig interpretiert und in Zwischencode übersetzt werden muss und dann im Speicher bleibt. Listing 5 zeigt ein in Perl geschriebenes Beispiel-Plugin. Es registriert einen Lese-Callback, der dann vom Daemon pro Intervall einmal aufgerufen wird. Innerhalb der Callback-Funktion ist beliebiger Code möglich, der die gewünschten Werte abfragt. Eine Übersicht über die allgemeine Architektur von Plugins findet sich im Wiki auf der Seite „Plugin architecture“ [13]. Details zu der genauen API findet sich in den entsprechenden Handbuchseiten zu den dazugehörigen Plugins. Weiter gibt es die Möglichkeit, mit externen Programmen zu interagieren. Mit dem ExecPlugin lassen sich Skripte oder Anwendungen ausführen, die über ihre Standardausgabe und ein einfaches Text-Protokoll mit dem Daemon kommunizieren. Details dazu auf [14]. Daneben bietet das Unixsock-Plugin einen UNIX Domain Socket an, über den der Anwender mit dem gleichen Protokoll ebenfalls mit dem Daemon kommunizieren kann. Letzteres wird beispielsweise von dem Programm »collectd‑nagios« genutzt. Es dient als Schnittstelle zu Nagios [15]. Es fragt von Collectd gesammelte Werte ab, interpretiert diese an Hand von Schwellwerten, die von Nagios übergeben werden und liefert einen Rückgabewert, den Nagios deuten kann. (jcb/ofr)

Listing 5: Beispiel-Plugin in Perl

package Collectd::Plugin::Magic;
use Collectd qw( :all );
sub magic_read
{
  my $vl = { plugin => 'magic', type => 'gauge', type_instance => 'magic_level',  values => [Magic‑>getCurrentLevel()]
  };
  plugin_dispatch_values($vl);
}
plugin_register(TYPE_READ, 'magic','magic_read');

Der Autor

Sebastian Harl ist Diplom-Informatikerund arbeitet am Department Informatik an der UniversitätErlangen-Nürnberg. Er ist seit mehreren Jahren im Open-Source-Umfeld tätig. Neben der aktiven Unterstützung zahlreicher Veranstaltungen ist er als Entwickler für Debian und Collectd aktiv und wirkt an einigen anderen Open-Source-Projekten mit (etwaRRDtool, liboping).

Infos

[1] Collectd: http://collectd.org

[2] Collectd Plugins: http://collectd.org/wiki/index.php/Table_of_Plugins

[3] Überblick über die Installation von und erste Schritte mit Collectd: http://collectd.org/wiki/index.php/First_steps

[4] Download-Seite für Collectd: http://collectd.org/download.shtml

[5] RRDtool: http://oss.oetiker.ch/rrdtool/

[6] Handbuchseite zu der Konfigurationsdatei undden zur Verfügung stehenden Konfigurationsparameter von Collectd: http://collectd.org/documentation/­manpages/collectd.conf.5.shtml

[7] Übersicht über das Netzwerk-Plugin: http://collectd.org/wiki/index.php/Networking_introduction

[8] Handbuchseite zur Datei »types.db«: http://collectd.org/documentation/­manpages/types.db.5.shtml

[9] Handbuchseite des „snmp“ Plugins: http://collectd.org/documentation/­manpages/collectd‑snmp.5.shtml

[10] Beispielkonfigurationen für das „snmp“ Plugin: http://collectd.org/wiki/index.php/­Plugin:SNMP/Config

[11] Handbuchseite des „tail“ Plugins: http://­collectd.org/documentation/manpages/collectd.conf.5.shtml#plugin_tail

[12] Beispielkonfigurationen für das „tail“ Plugin: http://collectd.org/wiki/index.php/Plugin:Tail/Config

[13] Überblick über die Architektur von CollectdPlugins: http://collectd.org/wiki/index.php/Plugin_architecture

[14] Handbuchseite des „exec“ Plugins: http://collectd.org/documentation/­manpages/collectd‑exec.5.shtml

[15] Nagios: http://www.nagios.org

comments powered by Disqus
Mehr zum Thema

Monitoring und Alerting mit Open Source

Monitoringwerkzeuge versorgen den Administrator mit einer Übersicht zum Zustand der aktiven Dienste, Komponenten und Server. Doch bunte Graphen alleine warnen noch nicht vor drohenden Problemen. Der Workshop erklärt, wie Sie mit den Open-Source-Tools Telegraf, InfluxDB und Grafana wichtige Metriken auslesen und zumindest grundlegende Alarmfunktionen einrichten.
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023