Wisse, was deine Elefanten machen

Ähnliche Dokumente
Wisse, was deine Rechner machen

Performance-Analyse in großen Umgebungen mit

Performance-Analyse in großen Umgebungen mit collectd

Wisse, was deine Rechner tun

Lass dir sagen, was deine Rechner machen

collectd in der großen weiten Welt

collectd in der großen weiten Welt

Wisse, was deine Rechner tun

Wisse, was deine Rechner tun

collectd the statistics collection & monitoring daemon

Monitoring Wissen, was passiert. Wissen, was zu tun ist. Thorsten Kramm SLAC 2011

Wie entgehe ich der I/O-Hölle

Netzwerk Monitoring in der Landesvermessung und Geobasisinformation Brandenburg (LGB) Der Klügste ist der, der weiß was er nicht weiß.

Kommunikationsübersicht XIMA FORMCYCLE Inhaltsverzeichnis

check_mk - Nagios ganz einfach

XINDICE. The Apache XML Project Name: J acqueline Langhorst blackyuriko@hotmail.de

Nagios. Jens Link September Jens Link () Nagios September / 1

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Stud.IP Performance Testing

Konfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung

Tanuki Service Wrapper 101. JVM Verwaltung mit der Community Edition. Alexander Pacnik Karlsruhe,

Linux Cluster in Theorie und Praxis

MUNIN - Langzeitmonitoring

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version Optional einen DHCP Server.

Prozesse und Logs Linux-Kurs der Unix-AG

Hinweise zur Installation von MySQL

1CONFIGURATION MANAGEMENT

Lokale Installation von DotNetNuke 4 ohne IIS

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Kopplung von Datenbanken

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Folie 1. Microsoft Office 365 Lösungen und Konzepte der EDV-BV GmbH

Nagios-Monitoring mit check_mk. D. Bucher - WWU Münster

Man liest sich: POP3/IMAP

Viele bunte Graphen. Sebastian. tokkee Harl FrOSCon August Daten mit RRDtool speichern und visualisieren

WEB-Dienste in GIS Umgebung

Lehrveranstaltung Grundlagen von Datenbanken

Cloud-Provider im Vergleich. Markus

Performance Tools. für alle Editionen

Im Kapitel Resourc Manager werden die verschiedenen Möglichkeiten der Überwachung von Messwerten eines Server oder Benutzers erläutert.

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

SolarWinds Engineer s Toolset

Systemvoraussetzungen CustomX. Customer Relationship Management

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, Java Forum Stuttgart 2007

Innovator 11 excellence. Import eines DB-Schemas mit Direktzugriff auf ein RDBMS via JDBC. HowTo. Udo Ende.

Verteiltes Monitoring. 23. Oktober 2014

Metadateneditoren für ArcGIS

Dynamic Ressource Management

-Bundle auf Ihrem virtuellen Server installieren.

seit Java 1.1 Bestandteil der API: packages java.sql, javax.sql

Version 4.0. service.monitor. Systemanforderungen

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Datenmanagement in Android-Apps. 16. Mai 2013

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL

Internet online Update (Mozilla Firefox)

WeMaD. Präsentation von. Thomas Hühn WeMaD 1

Abschlussbericht Kernkompetenz

Graphen in Apex von Thomas Hernando.

Benutzerinformation zum IP-Update: Wie aktualisiere ich meine IP-Adresse? Datenstand: / Version 1.0

Externe Authentifizierung. Externe Authentifizierung IACBOX.COM. Version Deutsch

BGP-Alarmsystem. Gunnar Bornemann Diplomarbeit Lehrstuhl für Netzwerkarchitekturen Technische Universität München

Performance Tuning & Scale-Out mit MySQL

Konfiguration des Novell GroupWise Connectors

NoSQL mit Postgres 15. Juni 2015

Synchronisations- Assistent

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper

ICINGA Open Source Monitoring in Web 2.0 Style

Zentraler Druckserver mit CUPS

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook ( ) Zentrum für Datenverarbeitung der Universität Tübingen

Interaktive Webseiten mit PHP und MySQL

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Datenbank-Service. RZ-Angebot zur Sicherstellung von Datenpersistenz. Thomas Eifert. Rechen- und Kommunikationszentrum (RZ)

Übung: Verwendung von Java-Threads

Gesicherte Prozeduren

MySQL Installation. AnPr

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

Bewertung der Methoden zur Sicherung von virtuellen Maschinen (VMware, Hyper-V) Ein Erfahrungsbericht

Monitoring mit Graphite

Oracle GridControl Tuning Pack. best Open Systems Day April Unterföhring. Marco Kühn best Systeme GmbH

EXCHANGE Neuerungen und Praxis

Update / Inbetriebnahme domovea Server. Update/Inbetriebnahme domovea Server Technische Änderungen vorbehalten

VMware VVOLs mit HP 3PAR

Daten mit RRDtool speichern und visualisieren. Viele bunte Graphen. tokkee Harl Debian RRDtool Team

Web Space Anbieter im Internet:

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

DataSpace 2.0 Die sichere Kommunikations-Plattform für Unternehmen und Organisationen. Your Data. Your Control

Firewalling. Michael Mayer IAV0608 Seite 1 von 6

Zur Konfiguration werden hierbei das Setup-Tool und die Shell verwendet.

Konfigurationsanleitung IGMP Multicast - Video Streaming Funkwerk / Bintec. Copyright 5. September 2008 Neo-One Stefan Dahler Version 1.

Anleitung Grundsetup C3 Mail & SMS Gateway V

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Es können nur Werte ausgelesen werden, Es kann -NICHT- geschaltet werden!!

Software Defined Networking. und seine Anwendbarkeit für die Steuerung von Videodaten im Internet

Inhaltsverzeichnis. Einleitung... 11

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

TimeMachine. Time CGI. Version 1.5. Stand Dokument: time.odt. Berger EDV Service Tulbeckstr München

Kernel Based Virtual Machine

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Transkript:

PostgreSQL Performance-Analyse mit collectd Sebastian tokkee Harl <sh@teamix.net> teamix GmbH / collectd core team PGConf.DE 2011 11. November 2011

U ber teamix gegru ndet 2001 Urspru nge: Open-Source und Netzwerke Debian Nagios Schulungen u.v.m. Heute auch: NetApp VMWare Riverbed (WAN-Beschleunigung) Juniper N-IX (Nu rnberger Internet-eXchange) Folie 2

Was ist collectd? U berblick Wichtige Eigenschaften Plugin-U berblick PostgreSQL Prozesse Statistiken von PostreSQL abfragen Performance-Daten in RDBMS speichern U ber den Tellerrand Folie 3

Was ist collectd? collectd sammelt Leistungsdaten von Rechnern Leistungsdaten sind zum Beispiel: CPU-Auslastung Speichernutzung Netzwerkverkehr Daten werden erhoben, verarbeitet und gespeichert Ha ufig: Darstellung als Graphen Performance-Analyse, Kapazita tsplanung Nicht verwechseln mit Monitoring! Homepage: http://collectd.org/ Folie 4

Wichtige Eigenschaften Daemon Freie Software (gro ßtenteils GPLv2) Portierbar (Linux, *BSD, Solaris,... ) Skalierbar (OpenWrt,..., Cluster / Cloud) Effizient (Default-Auflo sung: 10 Sekunden) Modular (u ber 100 Plugins in Version 5.0) Folie 5

Wichtige Eigenschaften Daemon Freie Software (gro ßtenteils GPLv2) Portierbar (Linux, *BSD, Solaris,... ) Skalierbar (OpenWrt,..., Cluster / Cloud) Effizient (Default-Auflo sung: 10 Sekunden) Modular (u ber 100 Plugins in Version 5.0) Folie 5

10-Sekunden-Auflo sung Folie 6

Wichtige Eigenschaften Daemon Freie Software (gro ßtenteils GPLv2) Portierbar (Linux, *BSD, Solaris,... ) Skalierbar (OpenWrt,..., Cluster / Cloud) Effizient (Default-Auflo sung: 10 Sekunden) Modular (u ber 100 Plugins in Version 5.0) Folie 7

Wichtige Eigenschaften Daemon Freie Software (gro ßtenteils GPLv2) Portierbar (Linux, *BSD, Solaris,... ) Skalierbar (OpenWrt,..., Cluster / Cloud) Effizient (Default-Auflo sung: 10 Sekunden) Modular (u ber 100 Plugins in Version 5.0) Folie 7

Verfu gbare Plugins (Auswahl) apache bind csv disk filecount interface java match regex Monitorus network nut oracle processes rrdtool syslog tcpconns unixsock vserver amqp conntrack curl dns fscache ipmi libvirt mbmon multimeter nfs olsrd perl protocols sensors table teamspeak2 uptime wireless apcups contextswitch curl json email GenericJMX iptables load memcachec mysql nginx onewire ping python serial tail ted users write http ascent cpu dbi entropy gmond ipvs logfile memcached netapp notify email openvpn postgresql routeros snmp tape thermal uuid xmms battery cpufreq df exec hddtemp irq madwifi memory netlink ntpd OpenVZ powerdns rrdcached swap target scale tokyotyrant vmem zfs arc Folie 8

Technische Details Aktuelle Version ist 5.0 (Release: Ma rz 2011) Pakete fu r diverse Distributionen vorhanden (Debian, RedHat, FreeBSD, OpenWrt, OpenSolaris [WIP],... ) Major-Version 4.x ist an einigen Stellen inkompatibel1 v5upgrade Target Geschrieben in C Versionsverwaltung mit Git git://git.verplant.org/collectd.git 1 http://collectd.org/wiki/index.php/v4_to_v5_migration_guide Folie 9

Verwendung Daemon la uft auf jedem Client (Ausnahme: SNMP o.a.) u blicherweise: ein oder mehrere zentrale Server, die Werte von Clients empfangen (Push-Modell) First steps: install; select plugins; start daemon; enjoy ;-) Folie 10

Darstellung: Collection 4 (C4) Grundidee: Daten u ber, z. B., JSON zur Verfu gung stellen verschiedene Frontends davor mo glich effiziente Handhabung von vielen Datensa tzen durch Caching flexible Konfiguration von Graphen Folie 11

Was ist collectd? Plugin-U berblick CPU, Speicher, Netzwerk-I/O Netzwerk-Plugin RRDtool-Plugin (U berblick) Generische Plugins (U berblick) Eigene Erweiterungen (U berblick) PostgreSQL Prozesse Statistiken von PostreSQL abfragen Performance-Daten in RDBMS speichern U ber den Tellerrand Folie 12

Plugin-U berblick Spezielle Lese-Plugins CPU, Speicher, Netzwerk-Schnittstellen Schreib- bzw. IO-Plugins Netzwerk-Plugin RRDtool, RRDCacheD Generische Plugins SNMP tail PostgreSQL Folie 13

CPU, Speicher, Netzwerk-I/O Synopsis LoadPlugin "cpu" LoadPlugin "memory" LoadPlugin "interface" Folie 14

CPU, Speicher, Netzwerk-I/O Synopsis LoadPlugin "cpu" LoadPlugin "memory" LoadPlugin "interface" <Plugin interface> Interface lo Interface sit0 IgnoreSelected true </Plugin> Folie 14

CPU, Speicher, Netzwerk-I/O Folie 15

CPU, Speicher, Netzwerk-I/O Folie 16

CPU, Speicher, Netzwerk-I/O Folie 17

Netzwerk-Plugin Betriebsarten Daten versenden ( Client ) Daten empfangen ( Server ) Weiterleiten ( Proxy ) Unicast ( Punkt-zu-Punkt ) Multicast ( Punkt-zu-Gruppe ) IPv4 und IPv6 Ein Daemon fu r alles Rolle des Daemon ha ngt von der Konfiguration ab. Folie 18

Netzwerk-Plugin: Unicast Folie 19

Netzwerk-Plugin: Multicast Folie 20

Netzwerk-Plugin: Server/Client Synopsis: Client LoadPlugin "network" <Plugin "network"> Server "collectd0.musterfirma.de" Server "collectd1.musterfirma.de" Server "ff18::efc0:4a42" </Plugin> Folie 21

Netzwerk-Plugin: Server/Client Synopsis: Server LoadPlugin "network" <Plugin "network"> Listen "collectd0.musterfirma.de" Listen "ff18::efc0:4a42" </Plugin> Folie 22

Netzwerk-Plugin: Proxy Folie 23

Netzwerk-Plugin: Proxy Synopsis: Proxy LoadPlugin "network" <Plugin "network"> Listen "collectgw.extern.musterfirma.de" Server "collectd1.intern.musterfirma.de" Forward true </Plugin> Folie 24

Netzwerk-Plugin Authentifizierung / Verschlu sselung (seit Version 4.7.0) Authentifizierung via HMAC-SHA-256 Verschlu sselung mit AES-256 (OFB) Folie 25

Netzwerk-Plugin Authentifizierung / Verschlu sselung Server Nichts AuthFile Sign Encrypt Nichts akzeptiert akzeptiert nicht akzeptiert nicht akzeptiert Client Sign akzeptiert akzeptiert akzeptiert nicht akzeptiert Encrypt nicht mo glich akzeptiert akzeptiert akzeptiert Folie 26

RRDtool-Plugin (U berblick) Schreibt Daten effizient in RRD-Dateien Caching Funktionalita t nun in RRDtool als RRD Caching Daemon verfu gbar Synopsis LoadPlugin "rrdtool" <Plugin "rrdtool"> DataDir "/var/lib/collectd/rrd" </Plugin> Folie 27

RRDtool-Plugin (Caching) Konfiguration <Plugin "rrdtool"> DataDir "/var/lib/collectd/rrd" CacheTimeout 3600 CacheFlush 86400 # 1 hour # 1 day WritesPerSecond 30 </Plugin> FLUSH ermo glicht dennoch die graphische Darstellung von aktuellen Daten Folie 28

Generische Plugins (U berblick) Idee: Generische Ansa tze, statt Speziallo sungen Benutzerkonfiguration bestimmt das Verhalten Unterstu tzung fu r neue Gera te braucht i.d.r. keine neue Version von collectd Beispiele: SNMP, tail, curl, DBI, PostgreSQL Folie 29

Eigene Erweiterungen (U berblick) collectd API: C, Perl, Python, Java Externe Programme mittels unixsock- oder exec-plugin Folie 30

Was ist collectd? Plugin-U berblick PostgreSQL Prozesse Statistiken von PostreSQL abfragen Performance-Daten in RDBMS speichern U ber den Tellerrand Folie 31

PostgreSQL Prozesse % ps ax grep postgres 20177? S 0:05 /usr/lib/postgresql/8.3/bin/postgres -D /var/lib/postgresql/8.3/main -c config_file=/etc/postgresql/8.3/main/postgresql.conf 20183? Ss 0:09 postgres: writer process 20184? Ss 0:05 postgres: wal writer process 20185? Ss 0:04 postgres: autovacuum launcher process 20186? Ss 0:13 postgres: stats collector process 20312? Ss 2:04 postgres: collectd mail 127.0.0.1(33027) idle Behandlung einer Client-Verbindung: postgres: user database host activity Folie 32

Das processes Plugin von collectd Das processes Plugin kann div. Informationen u ber einzelne Prozesse (oder Gruppen) RSS- und VM-Gro ße User- und System-Zeit Anzahl Page-Faults Scha tzwerte zum I/O Auswahl entweder an Hand des Prozessnamens oder Regex auf Kommandozeile Folie 33

Das processes Plugin: Konfiguration collectd.conf <Plugin "processes"> ProcessMatch pg_writer "postgres:.writer.process" ProcessMatch pg_wal_writer "postgres:.wal.writer.process" ProcessMatch pg_autovacuum "postgres:.*autovacuum" ProcessMatch pg_stats_collector \ "postgres:.stats.collector.process" # Datenbankverbindungen durch Benutzer user ProcessMatch pg_user_mail "postgres:.user" # Datenbankverbindungen auf DB mail ProcessMatch pg_db_mail "postgres:.[a-za-z0-9]+.mail" </Plugin> (vor 5.0.1 durften Regexen kein Whitespace enthalten) Folie 34

Was ist collectd? Plugin-U berblick PostgreSQL Prozesse Statistiken von PostreSQL abfragen Der PostgreSQL Statistik-Sammler Das postgresql Plugin von collectd Performance-Daten in RDBMS speichern U ber den Tellerrand Folie 36

Der PostgreSQL Statistik-Sammler postgresql.conf # Aktuell ausgefu hrtes Kommando track_activities = on # Tabellen- und Index-Zugriff track_counts = on # Benutzerdefinierte Funktionen track_functions = none # none, pl, all Ablegen der Statistiken, z.b. auf Flash-Speicher: stats_temp_directory = /mnt/flash/pg_stat_tmp Folie 37

Sammeln der Statistiken Server Prozesse u bermitteln Statistiken vor idle Reports werden vom Sammler minimal alle PGSTAT STAT INTERVAL Millisekunden erstellt Wa hrend einer Transaktion wird ein Snapshot des Reports verwendet siehe pg stat clear snapshot() Folie 38

Abfrage der Statistiken Einige vordefinierte Views pg stat bgwriter pg stat database pg stat all indexes pg statio all tables u.v.m. (Tabelle 27.1 in Doku) alternativ: Funktionen zur Abfrage der einzelnen Werte Folie 39

Das postgresql Plugin von collectd Generisches Plugin, welches beliebige (numerische) Werte u ber SQL abfragen kann Standardma ßig werden diverse Werte vom Statistik-Sammler abgefragt Konfiguration besteht aus zwei Teilen: SQL-Queries mit Spezifikation zur Interpretation der Werte Datenbankverbindungen Folie 40

Einschub: Namensschema von collectd jeder Datensatz hat einen eindeutigen Identifier Hostname Plugin Name Plugin Instanz (optional) Typ Typ Instanz (optional) hostname/plugin[-instanz]/typ[-instanz] Der Typ definiert, wie ein Datum interpretiert werden soll (angelehnt an RRDtools Datasource-Typen) Typen mu ssen vordefiniert sein (types.db(5)) Beispiel: server1.bsp.de/cpu-0/cpu-idle Folie 41

Das postgresql Plugin: Query-Definition collectd.conf <Plugin postgresql> <Query disk_usage> Statement "SELECT pg_database_size($1) AS size;" Param database <Result> Type pg_db_size ValuesFrom "size" </Result> </Query> </Plugin> Folie 42

Das postgresql Plugin: DB-Definition collectd.conf <Plugin postgresql> <Database mail> Host "db.bsp.de" User "user" Password "geheim" Query disk_usage Query disk_io </Database> </Plugin> Folie 43

Was ist collectd? Plugin-U berblick PostgreSQL Prozesse Statistiken von PostreSQL abfragen Performance-Daten in RDBMS speichern U ber den Tellerrand Folie 44

Performance-Daten in RDBMS speichern Traditionell: Speichern in RRDtool (konstanter Speicherverbrauch, Konsolidierung, schlechte Skalierbarkeit) Speicherung in RDBMS ermo glicht komplexe Auswertung und bessere Skalierung Probleme: Struktur der Datenbank (Komplexita t vs. unno tige Redundanz vs. Performance) Behandlung von alten Daten (Partitionierung?) Folie 45

Was ist collectd? Plugin-U berblick PostgreSQL Prozesse Statistiken von PostreSQL abfragen Performance-Daten in RDBMS speichern U ber den Tellerrand Folie 46

U ber den Tellerrand: Interaktion collectd-nagios Fragt Daten via unixsock-plugin ab und erzeugt Nagios-kompatible Ausgabe exec-nagios.px Perl-Skript welches Nagios-Plugins ausfu hrt ( exec-plugin) exec-munin.px Perl-Skript welches Munin-Plugins ausfu hrt ( exec-plugin) gmond-plugin Empfa ngt und verarbeitet Ganglia Multicast-Pakete Folie 47

Vielen Dank fu r die Aufmerksamkeit! Gibt es Fragen? https://www.postgresql.eu/events/feedback/pgconfde2011/ Folie 48

Kontakt: Sebastian tokkee Harl teamix GmbH, Nu rnberg <sh@teamix.net> <collectd@verplant.org> irc.freenode.net/#collectd http://identi.ca/collectd Artikel zum Thema collectd: http://linuxtechnicalreview.de/vorschau/(show)/themen/ Monitoring/Performance-Analyse-mit-Collectd Folie 49

Optional Folie 50

SNMP-Plugin Allgemeines Fragt Netzwerk-Zubeho r via SNMP ab Generisch: Nicht fu r ein gestimmtes Gera t geschrieben Mehrere Gera te werden parallel abgefragt Konfiguration Data -Blo cke Host -Blo cke Folie 50

SNMP-Plugin Synopsis: Data-Block <Plugin "snmp"> <Data "ifmib_if_octets64"> Type "if_octets" Table true Instance "IF-MIB::ifName" Values "IF-MIB::ifHCInOctets" \ "IF-MIB::ifHCOutOctets" </Data> </Plugin> Folie 51

SNMP-Plugin Synopsis: Host-Block <Plugin "snmp"> <Host "switch0.intern.musterfirma.de"> Address "10.0.42.2" Version 1 Community "public" Collect "ifmib_if_octets64" Interval 60 </Host> </Plugin> Folie 52

SNMP-Plugin: Users Folie 53

SNMP-Plugin: USV-Last Folie 54

SNMP-Plugin: Cache-Alter Folie 55

tail-plugin Allgemeines Verfolgt Log-Dateien Extrahiert Werte oder za hlt Ereignisse Selektion der Zeilen / Werte mit regula ren Ausdru cken Verwendbar fu r MTAs, Web-Server,... Folie 56

tail-plugin Konfiguration <Plugin "tail"> <File "/var/log/exim4/mainlog"> Instance "exim" <Match> Regex "S=([1-9][0-9]*)" DSType "CounterAdd" Type "ipt_bytes" Instance "total" </Match> </File> </Plugin> Folie 57

tail-plugin: Verbindungen von Exim Folie 58

tail-plugin: SSH Brute-Force-Attacke Folie 59

RRDCacheD-Plugin Allgemeines Update-Prinzip des RRDtool-Plugins Eigensta ndiger Daemon Integration in RRDtool 1.4 Weitere Funktionen, z. B. Journaling Vorteil: Neustart von collectd ohne Cache-Verlust Folie 60

Suchbaum RRDCacheD-Plugin c Florian octo Forster Graphik Folie 61

Suchbaum RRDCacheD-Plugin c Florian octo Forster Graphik Folie 61

Thread Dateisystem Queue Update- Suchbaum Update- RRDCacheD-Plugin c Florian octo Forster Graphik Folie 61

Thread Dateisystem Flush-Queue Queue Update- Suchbaum Update- RRDCacheD-Plugin c Florian octo Forster Graphik Folie 61

Perl-Plugin Allgemeines Integriert einen Perl-Interpreter (vergleichbar zu Apaches mod perl) Instanziierung und Syntax-Analyse nur einmal Exportiert die API ( nicht nur Lese-Plugins mo glich) Folie 62

Perl-Plugin: Beispiel package Collectd::Plugin::Magic; use Collectd qw( :all ); sub magic_read { my $vl = { plugin => magic, values => [Magic->getCurrentLevel ()] }; plugin_dispatch_values ( magic_level, $vl); } plugin_register (TYPE_READ, magic, magic_read ); Folie 63

unixsock-plugin Allgemeines O ffnet einen UNIX-Domain-Socket Kennt mehrere Befehle (z. B. PUTVAL, FLUSH, LISTVAL) Interaktion mit externen Programmen mo glich collectdctl (ab Version 5.0, eta: dieses Jahr ;-)) cussh.pl: collectd UNIX socket shell Folie 64

unixsock-plugin: Beispiel -> PUTVAL "testhost/magic/magic_level" \ interval=10 1179574444:42 <- 0 Success Folie 65

exec-plugin Allgemeines Fu hrt Programme aus Liest von deren Standard-Ausgabe Ko nnen u ber la ngere Perioden laufen (vgl. init) Folie 66

exec-plugin: Beispiel #!/bin/sh INTVL=${COLLECTD_INTERVAL:-10} CHOST="${COLLECTD_HOSTNAME:-localhost}" IDENT="$CHOST/magic/magic_level" while sleep $INTVL do VALUE= magic --level echo "PUTVAL \"$IDENT\" interval=$intvl N:$VALUE" done Folie 67

Java-Plugin Allgemeines Integriert eine Java Virtual Maschine (JVM) Exportiert die API ( nicht nur Lese-Plugins mo glich) Prinzipielle A hnlichkeit zum Perl-Plugin Folie 68

Java-Plugin: Beispiel import org.collectd.api.collectd; import org.collectd.api.collectdreadinterface; public class MagicPlugin implements CollectdReadInterface { public int read (); /* Callback-Funktion */ public MagicPlugin (); /* Konstruktor */ } Folie 69

Java-Plugin: Beispiel public int read () { ValueList vl = new ValueList (); vl.sethost ("testhost"); vl.setplugin ("magic"); vl.settype ("magic_level"); vl.addvalue (Magic.getCurrentLevel ()); return (Collectd.dispatchValues (vl)); } Folie 70

Java-Plugin: Beispiel public MagicPlugin () { /* Callback-Funktion anmelden */ Collectd.registerRead ("MagicPlugin", this); } Folie 71

Erweiterungen: Zusammenfassung collectd API nutzen C, Perl, Python und Java mo glich Folie 72

Erweiterungen: Zusammenfassung collectd API nutzen C, Perl, Python und Java mo glich Externe Programme erweitern unixsock-plugin ermo glicht Kommunikation Folie 72

Erweiterungen: Zusammenfassung collectd API nutzen C, Perl, Python und Java mo glich Externe Programme erweitern unixsock-plugin ermo glicht Kommunikation Eigenes Programm / Skript schreiben exec-plugin Folie 72

U ber den Tellerrand: Zubeho r snmp-probe-host.px Erzeugt semi-automatisch <Host />-Blo cke fu r das SNMP-Plugin jcollectd Java-Implementierung des Netzwerk-Protokolls ( JMX) kcollectd KDE-Programm zur Near-Realtime-Anzeige von Graphen Perl, Ruby, Python Module und C-Bibliothek fu r die Kommunikation mit dem unixsock-plugin verfu gbar Folie 73