![Page 1: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/1.jpg)
Wisse, was deine Elefanten machenPostgreSQL Performance-Analyse mit collectd
Sebastian ”tokkee“ Harl <[email protected]>
teamix GmbH / collectd core team
PGConf.DE 201111. November 2011
![Page 2: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/2.jpg)
Uber teamix
• gegrundet 2001• Ursprunge: Open-Source und Netzwerke
DebianNagiosSchulungenu.v.m.
• Heute auch:NetAppVMWareRiverbed (WAN-Beschleunigung)JuniperN-IX (Nurnberger Internet-eXchange)
Wisse, was deine Elefanten machen Folie 2
![Page 3: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/3.jpg)
Was ist collectd?UberblickWichtige Eigenschaften
Plugin-Uberblick
PostgreSQL Prozesse
Statistiken von PostreSQL abfragen
Performance-Daten in RDBMS speichern
Uber den Tellerrand
Wisse, was deine Elefanten machen Folie 3
![Page 4: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/4.jpg)
Was ist collectd?
• collectd sammelt Leistungsdaten von Rechnern• Leistungsdaten sind zum Beispiel:
CPU-AuslastungSpeichernutzungNetzwerkverkehr
• Daten werden erhoben, verarbeitet und gespeichert• Haufig: Darstellung als Graphen• → Performance-Analyse, Kapazitatsplanung• Nicht verwechseln mit Monitoring!• Homepage: http://collectd.org/
Wisse, was deine Elefanten machen Folie 4
![Page 5: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/5.jpg)
Wichtige Eigenschaften
• Daemon• Freie Software (großtenteils GPLv2)• Portierbar (Linux, *BSD, Solaris, . . . )• Skalierbar (OpenWrt, . . . , Cluster / Cloud)• Effizient (Default-Auflosung: 10 Sekunden)• Modular (uber 100 Plugins in Version 5.0)
Wisse, was deine Elefanten machen Folie 5
![Page 6: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/6.jpg)
Wichtige Eigenschaften
• Daemon• Freie Software (großtenteils GPLv2)• Portierbar (Linux, *BSD, Solaris, . . . )• Skalierbar (OpenWrt, . . . , Cluster / Cloud)• Effizient (Default-Auflosung: 10 Sekunden)• Modular (uber 100 Plugins in Version 5.0)
Wisse, was deine Elefanten machen Folie 5
![Page 7: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/7.jpg)
10-Sekunden-Auflosung
Wisse, was deine Elefanten machen Folie 6
![Page 8: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/8.jpg)
Wichtige Eigenschaften
• Daemon• Freie Software (großtenteils GPLv2)• Portierbar (Linux, *BSD, Solaris, . . . )• Skalierbar (OpenWrt, . . . , Cluster / Cloud)• Effizient (Default-Auflosung: 10 Sekunden)• Modular (uber 100 Plugins in Version 5.0)
Wisse, was deine Elefanten machen Folie 7
![Page 9: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/9.jpg)
Wichtige Eigenschaften
• Daemon• Freie Software (großtenteils GPLv2)• Portierbar (Linux, *BSD, Solaris, . . . )• Skalierbar (OpenWrt, . . . , Cluster / Cloud)• Effizient (Default-Auflosung: 10 Sekunden)• Modular (uber 100 Plugins in Version 5.0)
Wisse, was deine Elefanten machen Folie 7
![Page 10: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/10.jpg)
Verfugbare Plugins (Auswahl)
apache amqp apcups ascent batterybind conntrack contextswitch cpu cpufreqcsv curl curl json dbi dfdisk dns email entropy execfilecount fscache GenericJMX gmond hddtempinterface ipmi iptables ipvs irqjava libvirt load logfile madwifimatch regex mbmon memcachec memcached memoryMonitorus multimeter mysql netapp netlinknetwork nfs nginx notify email ntpdnut olsrd onewire openvpn OpenVZoracle perl ping postgresql powerdnsprocesses protocols python routeros rrdcachedrrdtool sensors serial snmp swapsyslog table tail tape target scaletcpconns teamspeak2 ted thermal tokyotyrantunixsock uptime users uuid vmemvserver wireless write http xmms zfs arc
Wisse, was deine Elefanten machen Folie 8
![Page 11: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/11.jpg)
Technische Details
• Aktuelle Version ist 5.0 (Release: Marz 2011)• Pakete fur 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
1http://collectd.org/wiki/index.php/V4_to_v5_migration_guideWisse, was deine Elefanten machen Folie 9
![Page 12: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/12.jpg)
Verwendung
• Daemon lauft auf jedem Client (Ausnahme: SNMP o.a.)• ublicherweise: ein oder mehrere zentrale Server, die Werte von
Clients empfangen (Push-Modell)• First steps: install; select plugins; start daemon;
enjoy ;-)
Wisse, was deine Elefanten machen Folie 10
![Page 13: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/13.jpg)
Darstellung: Collection 4 (C4)
• Grundidee: Daten uber, z. B., JSON zur Verfugung stellen• verschiedene Frontends davor moglich• effiziente Handhabung von vielen Datensatzen durch Caching• flexible Konfiguration von Graphen
Wisse, was deine Elefanten machen Folie 11
![Page 14: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/14.jpg)
Was ist collectd?
Plugin-UberblickCPU, Speicher, Netzwerk-I/ONetzwerk-PluginRRDtool-Plugin (Uberblick)Generische Plugins (Uberblick)Eigene Erweiterungen (Uberblick)
PostgreSQL Prozesse
Statistiken von PostreSQL abfragen
Performance-Daten in RDBMS speichern
Uber den Tellerrand Wisse, was deine Elefanten machen Folie 12
![Page 15: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/15.jpg)
Plugin-Uberblick
• Spezielle Lese-PluginsCPU, Speicher, Netzwerk-Schnittstellen
• Schreib- bzw. IO-PluginsNetzwerk-PluginRRDtool, RRDCacheD
• Generische PluginsSNMPtailPostgreSQL
Wisse, was deine Elefanten machen Folie 13
![Page 16: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/16.jpg)
CPU, Speicher, Netzwerk-I/O
Synopsis
LoadPlugin "cpu"LoadPlugin "memory"LoadPlugin "interface"
<Plugin interface>Interface loInterface sit0IgnoreSelected true
</Plugin>
Wisse, was deine Elefanten machen Folie 14
![Page 17: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/17.jpg)
CPU, Speicher, Netzwerk-I/O
Synopsis
LoadPlugin "cpu"LoadPlugin "memory"LoadPlugin "interface"
<Plugin interface>Interface loInterface sit0IgnoreSelected true
</Plugin>
Wisse, was deine Elefanten machen Folie 14
![Page 18: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/18.jpg)
CPU, Speicher, Netzwerk-I/O
Wisse, was deine Elefanten machen Folie 15
![Page 19: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/19.jpg)
CPU, Speicher, Netzwerk-I/O
Wisse, was deine Elefanten machen Folie 16
![Page 20: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/20.jpg)
CPU, Speicher, Netzwerk-I/O
Wisse, was deine Elefanten machen Folie 17
![Page 21: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/21.jpg)
Netzwerk-Plugin
Betriebsarten
• Daten versenden (”Client“)• Daten empfangen (”Server“)• Weiterleiten (”Proxy“)• Unicast (”Punkt-zu-Punkt“)• Multicast (”Punkt-zu-Gruppe“)• IPv4 und IPv6
Ein Daemon fur allesRolle des Daemon hangt von der Konfiguration ab.
Wisse, was deine Elefanten machen Folie 18
![Page 22: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/22.jpg)
Netzwerk-Plugin: Unicast
Wisse, was deine Elefanten machen Folie 19
![Page 23: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/23.jpg)
Netzwerk-Plugin: Multicast
Wisse, was deine Elefanten machen Folie 20
![Page 24: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/24.jpg)
Netzwerk-Plugin: Server/Client
Synopsis: Client
LoadPlugin "network"
<Plugin "network">Server "collectd0.musterfirma.de"Server "collectd1.musterfirma.de"Server "ff18::efc0:4a42"
</Plugin>
Wisse, was deine Elefanten machen Folie 21
![Page 25: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/25.jpg)
Netzwerk-Plugin: Server/Client
Synopsis: Server
LoadPlugin "network"
<Plugin "network">Listen "collectd0.musterfirma.de"Listen "ff18::efc0:4a42"
</Plugin>
Wisse, was deine Elefanten machen Folie 22
![Page 26: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/26.jpg)
Netzwerk-Plugin: Proxy
Wisse, was deine Elefanten machen Folie 23
![Page 27: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/27.jpg)
Netzwerk-Plugin: Proxy
Synopsis: Proxy
LoadPlugin "network"
<Plugin "network">Listen "collectgw.extern.musterfirma.de"Server "collectd1.intern.musterfirma.de"Forward true
</Plugin>
Wisse, was deine Elefanten machen Folie 24
![Page 28: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/28.jpg)
Netzwerk-Plugin
Authentifizierung / Verschlusselung
• (seit Version 4.7.0)• Authentifizierung via HMAC-SHA-256• Verschlusselung mit AES-256 (OFB)
Wisse, was deine Elefanten machen Folie 25
![Page 29: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/29.jpg)
Netzwerk-Plugin
Authentifizierung / VerschlusselungClient
Nichts Sign Encrypt
Server
Nichts akzeptiert akzeptiert nicht moglichAuthFile akzeptiert akzeptiert akzeptiert
Sign nicht akzeptiert akzeptiert akzeptiertEncrypt nicht akzeptiert nicht akzeptiert akzeptiert
Wisse, was deine Elefanten machen Folie 26
![Page 30: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/30.jpg)
RRDtool-Plugin (Uberblick)
• Schreibt Daten effizient in RRD-Dateien → Caching• Funktionalitat nun in RRDtool als RRD Caching Daemon
verfugbar
Synopsis
LoadPlugin "rrdtool"
<Plugin "rrdtool">DataDir "/var/lib/collectd/rrd"
</Plugin>
Wisse, was deine Elefanten machen Folie 27
![Page 31: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/31.jpg)
RRDtool-Plugin (Caching)
Konfiguration
<Plugin "rrdtool">DataDir "/var/lib/collectd/rrd"
CacheTimeout 3600 # 1 hourCacheFlush 86400 # 1 day
WritesPerSecond 30</Plugin>
• FLUSH ermoglicht dennoch die graphische Darstellung vonaktuellen Daten
Wisse, was deine Elefanten machen Folie 28
![Page 32: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/32.jpg)
Generische Plugins (Uberblick)
• Idee: Generische Ansatze, statt Speziallosungen• → Benutzerkonfiguration bestimmt das Verhalten• ⇒ Unterstutzung fur neue Gerate braucht i.d.R. keine neue
Version von collectd• Beispiele: SNMP, tail, curl, DBI, PostgreSQL
Wisse, was deine Elefanten machen Folie 29
![Page 33: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/33.jpg)
Eigene Erweiterungen (Uberblick)
• collectd API: C, Perl, Python, Java• Externe Programme mittels unixsock- oder exec-Plugin
Wisse, was deine Elefanten machen Folie 30
![Page 34: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/34.jpg)
Was ist collectd?
Plugin-Uberblick
PostgreSQL Prozesse
Statistiken von PostreSQL abfragen
Performance-Daten in RDBMS speichern
Uber den Tellerrand
Wisse, was deine Elefanten machen Folie 31
![Page 35: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/35.jpg)
PostgreSQL Prozesse
% ps ax | grep postgres20177 ? 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 process20184 ? Ss 0:05 postgres: wal writer process20185 ? Ss 0:04 postgres: autovacuum launcher process20186 ? Ss 0:13 postgres: stats collector process20312 ? Ss 2:04 postgres: collectd mail 127.0.0.1(33027) idle
• Behandlung einer Client-Verbindung:postgres: user database host activity
Wisse, was deine Elefanten machen Folie 32
![Page 36: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/36.jpg)
Das processes Plugin von collectd
• Das processes Plugin kann div. Informationen uber einzelneProzesse (oder Gruppen)
RSS- und VM-GroßeUser- und System-ZeitAnzahl Page-FaultsSchatzwerte zum I/O
• Auswahl entweder an Hand des Prozessnamens oder Regex aufKommandozeile
Wisse, was deine Elefanten machen Folie 33
![Page 37: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/37.jpg)
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)
Wisse, was deine Elefanten machen Folie 34
![Page 38: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/38.jpg)
![Page 39: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/39.jpg)
Was ist collectd?
Plugin-Uberblick
PostgreSQL Prozesse
Statistiken von PostreSQL abfragenDer PostgreSQL Statistik-SammlerDas postgresql Plugin von collectd
Performance-Daten in RDBMS speichern
Uber den Tellerrand
Wisse, was deine Elefanten machen Folie 36
![Page 40: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/40.jpg)
Der PostgreSQL Statistik-Sammler
postgresql.conf
# Aktuell ausgefuhrtes Kommandotrack_activities = on# Tabellen- und Index-Zugrifftrack_counts = on# Benutzerdefinierte Funktionentrack_functions = none # none, pl, all
Ablegen der Statistiken, z.B. auf Flash-Speicher:
stats_temp_directory = ’/mnt/flash/pg_stat_tmp’
Wisse, was deine Elefanten machen Folie 37
![Page 41: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/41.jpg)
Sammeln der Statistiken
• Server Prozesse ubermitteln Statistiken vor idle• Reports werden vom Sammler minimal alle
PGSTAT STAT INTERVAL Millisekunden erstellt• Wahrend einer Transaktion wird ein Snapshot des Reports
verwendet→ siehe pg stat clear snapshot()
Wisse, was deine Elefanten machen Folie 38
![Page 42: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/42.jpg)
Abfrage der Statistiken
• Einige vordefinierte Viewspg stat bgwriterpg stat databasepg stat all indexespg statio all tablesu.v.m. (Tabelle 27.1 in Doku)
• alternativ: Funktionen zur Abfrage der einzelnen Werte
Wisse, was deine Elefanten machen Folie 39
![Page 43: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/43.jpg)
Das postgresql Plugin von collectd
• Generisches Plugin, welches beliebige (numerische) Werte uberSQL abfragen kann
• Standardmaßig werden diverse Werte vom Statistik-Sammlerabgefragt
• Konfiguration besteht aus zwei Teilen:SQL-Queries mit Spezifikation zur Interpretation der WerteDatenbankverbindungen
Wisse, was deine Elefanten machen Folie 40
![Page 44: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/44.jpg)
Einschub: Namensschema von collectd
• jeder Datensatz hat einen eindeutigen IdentifierHostnamePlugin NamePlugin Instanz (optional)TypTyp Instanz (optional)
• hostname/plugin[-instanz]/typ[-instanz]• Der Typ definiert, wie ein Datum interpretiert werden soll
(angelehnt an RRDtools Datasource-Typen)• Typen mussen vordefiniert sein (types.db(5))
• Beispiel: server1.bsp.de/cpu-0/cpu-idle
Wisse, was deine Elefanten machen Folie 41
![Page 45: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/45.jpg)
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_sizeValuesFrom "size"
</Result></Query>
</Plugin>
Wisse, was deine Elefanten machen Folie 42
![Page 46: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/46.jpg)
Das postgresql Plugin: DB-Definition
collectd.conf
<Plugin postgresql><Database mail>
Host "db.bsp.de"User "user"Password "geheim"Query disk_usageQuery disk_io
</Database></Plugin>
Wisse, was deine Elefanten machen Folie 43
![Page 47: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/47.jpg)
Was ist collectd?
Plugin-Uberblick
PostgreSQL Prozesse
Statistiken von PostreSQL abfragen
Performance-Daten in RDBMS speichern
Uber den Tellerrand
Wisse, was deine Elefanten machen Folie 44
![Page 48: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/48.jpg)
Performance-Daten in RDBMS speichern
• Traditionell: Speichern in RRDtool (konstanter Speicherverbrauch,Konsolidierung, schlechte Skalierbarkeit)
• Speicherung in RDBMS ermoglicht komplexe Auswertung undbessere Skalierung
• Probleme:Struktur der Datenbank (Komplexitat vs. unnotige Redundanz vs.Performance)Behandlung von alten Daten (Partitionierung?)
Wisse, was deine Elefanten machen Folie 45
![Page 49: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/49.jpg)
Was ist collectd?
Plugin-Uberblick
PostgreSQL Prozesse
Statistiken von PostreSQL abfragen
Performance-Daten in RDBMS speichern
Uber den Tellerrand
Wisse, was deine Elefanten machen Folie 46
![Page 50: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/50.jpg)
Uber den Tellerrand: Interaktion
• collectd-nagiosFragt Daten via unixsock-Plugin ab und erzeugt Nagios-kompatibleAusgabe
• exec-nagios.pxPerl-Skript welches Nagios-Plugins ausfuhrt (→ exec-Plugin)
• exec-munin.pxPerl-Skript welches Munin-Plugins ausfuhrt (→ exec-Plugin)
• gmond-PluginEmpfangt und verarbeitet Ganglia Multicast-Pakete
Wisse, was deine Elefanten machen Folie 47
![Page 51: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/51.jpg)
Wisse, was deine Elefanten machen
Vielen Dank fur die Aufmerksamkeit!
Gibt es Fragen?
https://www.postgresql.eu/events/feedback/pgconfde2011/
Wisse, was deine Elefanten machen Folie 48
![Page 52: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/52.jpg)
Wisse, was deine Elefanten machen
Kontakt:Sebastian ”tokkee“ Harlteamix GmbH, Nurnberg
<[email protected]> — irc.freenode.net/#collectd — http://identi.ca/collectd
Artikel zum Thema collectd:http://linuxtechnicalreview.de/Vorschau/(show)/Themen/
Monitoring/Performance-Analyse-mit-Collectd
Wisse, was deine Elefanten machen Folie 49
![Page 53: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/53.jpg)
Optional
Wisse, was deine Elefanten machen Folie 50
![Page 54: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/54.jpg)
SNMP-Plugin
Allgemeines
• Fragt Netzwerk-Zubehor via SNMP ab• Generisch: Nicht fur ein gestimmtes Gerat geschrieben• Mehrere Gerate werden parallel abgefragt
Konfiguration
• ”Data“-Blocke• ”Host“-Blocke
Wisse, was deine Elefanten machen Folie 50
![Page 55: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/55.jpg)
SNMP-Plugin
Synopsis: Data-Block
<Plugin "snmp"><Data "ifmib_if_octets64">
Type "if_octets"Table trueInstance "IF-MIB::ifName"Values "IF-MIB::ifHCInOctets" \
"IF-MIB::ifHCOutOctets"</Data>
</Plugin>
Wisse, was deine Elefanten machen Folie 51
![Page 56: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/56.jpg)
SNMP-Plugin
Synopsis: Host-Block
<Plugin "snmp"><Host "switch0.intern.musterfirma.de">
Address "10.0.42.2"Version 1Community "public"Collect "ifmib_if_octets64"Interval 60
</Host></Plugin>
Wisse, was deine Elefanten machen Folie 52
![Page 57: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/57.jpg)
SNMP-Plugin: Users
Wisse, was deine Elefanten machen Folie 53
![Page 58: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/58.jpg)
SNMP-Plugin: USV-Last
Wisse, was deine Elefanten machen Folie 54
![Page 59: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/59.jpg)
SNMP-Plugin: Cache-Alter
Wisse, was deine Elefanten machen Folie 55
![Page 60: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/60.jpg)
tail-Plugin
Allgemeines
• Verfolgt Log-Dateien• Extrahiert Werte oder zahlt Ereignisse• Selektion der Zeilen / Werte mit regularen Ausdrucken• Verwendbar fur MTAs, Web-Server, . . .
Wisse, was deine Elefanten machen Folie 56
![Page 61: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/61.jpg)
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>
Wisse, was deine Elefanten machen Folie 57
![Page 62: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/62.jpg)
tail-Plugin: Verbindungen von Exim
Wisse, was deine Elefanten machen Folie 58
![Page 63: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/63.jpg)
tail-Plugin: SSH Brute-Force-Attacke
Wisse, was deine Elefanten machen Folie 59
![Page 64: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/64.jpg)
RRDCacheD-Plugin
Allgemeines
• Update-Prinzip des RRDtool-Plugins• Eigenstandiger Daemon• Integration in RRDtool 1.4• Weitere Funktionen, z. B. Journaling• Vorteil: Neustart von collectd ohne Cache-Verlust
Wisse, was deine Elefanten machen Folie 60
![Page 65: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/65.jpg)
RRDCacheD-PluginSu
chba
um
Upd
ate-
Que
ue
Flus
h-Q
ueue
Upd
ate-
Thr
ead
Dat
eisy
stem
Graphik c© Florian ”octo“ Forster
Wisse, was deine Elefanten machen Folie 61
![Page 66: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/66.jpg)
RRDCacheD-PluginSu
chba
um
Upd
ate-
Que
ue
Flus
h-Q
ueue
Upd
ate-
Thr
ead
Dat
eisy
stem
Graphik c© Florian ”octo“ Forster
Wisse, was deine Elefanten machen Folie 61
![Page 67: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/67.jpg)
RRDCacheD-PluginSu
chba
um
Upd
ate-
Que
ue
Flus
h-Q
ueue
Upd
ate-
Thr
ead
Dat
eisy
stem
Graphik c© Florian ”octo“ Forster
Wisse, was deine Elefanten machen Folie 61
![Page 68: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/68.jpg)
RRDCacheD-PluginSu
chba
um
Upd
ate-
Que
ue
Flus
h-Q
ueue
Upd
ate-
Thr
ead
Dat
eisy
stem
Graphik c© Florian ”octo“ Forster
Wisse, was deine Elefanten machen Folie 61
![Page 69: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/69.jpg)
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 moglich)
Wisse, was deine Elefanten machen Folie 62
![Page 70: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/70.jpg)
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’);
Wisse, was deine Elefanten machen Folie 63
![Page 71: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/71.jpg)
unixsock-Plugin
Allgemeines
• Offnet einen UNIX-Domain-Socket• Kennt mehrere Befehle
(z. B. PUTVAL, FLUSH, LISTVAL)• Interaktion mit externen Programmen moglich• collectdctl (ab Version 5.0, eta: dieses Jahr ;-))• cussh.pl: ”collectd UNIX socket shell“
Wisse, was deine Elefanten machen Folie 64
![Page 72: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/72.jpg)
unixsock-Plugin: Beispiel
-> | PUTVAL "testhost/magic/magic_level" \interval=10 1179574444:42
<- | 0 Success
Wisse, was deine Elefanten machen Folie 65
![Page 73: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/73.jpg)
exec-Plugin
Allgemeines
• Fuhrt Programme aus• Liest von deren Standard-Ausgabe• Konnen uber langere Perioden laufen
(vgl. init)
Wisse, was deine Elefanten machen Folie 66
![Page 74: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/74.jpg)
exec-Plugin: Beispiel
#!/bin/shINTVL=${COLLECTD_INTERVAL:-10}CHOST="${COLLECTD_HOSTNAME:-localhost}"IDENT="$CHOST/magic/magic_level"while sleep $INTVLdo
VALUE=‘magic --level‘echo "PUTVAL \"$IDENT\" interval=$INTVL N:$VALUE"
done
Wisse, was deine Elefanten machen Folie 67
![Page 75: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/75.jpg)
Java-Plugin
Allgemeines
• Integriert eine ”Java Virtual Maschine“ (JVM)• Exportiert die API
(→ nicht nur Lese-Plugins moglich)• Prinzipielle Ahnlichkeit zum Perl-Plugin
Wisse, was deine Elefanten machen Folie 68
![Page 76: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/76.jpg)
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 */
}
Wisse, was deine Elefanten machen Folie 69
![Page 77: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/77.jpg)
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));
}
Wisse, was deine Elefanten machen Folie 70
![Page 78: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/78.jpg)
Java-Plugin: Beispiel
public MagicPlugin (){
/* Callback-Funktion anmelden */Collectd.registerRead ("MagicPlugin", this);
}
Wisse, was deine Elefanten machen Folie 71
![Page 79: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/79.jpg)
Erweiterungen: Zusammenfassung
• collectd API nutzenC, Perl, Python und Java moglich
• Externe Programme erweiternunixsock-Plugin ermoglicht Kommunikation
• Eigenes Programm / Skript schreiben→ exec-Plugin
Wisse, was deine Elefanten machen Folie 72
![Page 80: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/80.jpg)
Erweiterungen: Zusammenfassung
• collectd API nutzenC, Perl, Python und Java moglich
• Externe Programme erweiternunixsock-Plugin ermoglicht Kommunikation
• Eigenes Programm / Skript schreiben→ exec-Plugin
Wisse, was deine Elefanten machen Folie 72
![Page 81: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/81.jpg)
Erweiterungen: Zusammenfassung
• collectd API nutzenC, Perl, Python und Java moglich
• Externe Programme erweiternunixsock-Plugin ermoglicht Kommunikation
• Eigenes Programm / Skript schreiben→ exec-Plugin
Wisse, was deine Elefanten machen Folie 72
![Page 82: Wisse, was deine Elefanten machen - PostgreSQL wiki](https://reader031.vdocuments.site/reader031/viewer/2022021007/62039696da24ad121e4b271f/html5/thumbnails/82.jpg)
Uber den Tellerrand: Zubehor
• snmp-probe-host.pxErzeugt semi-automatisch <Host />-Blocke fur das SNMP-Plugin
• jcollectdJava-Implementierung des Netzwerk-Protokolls (→ JMX)
• kcollectdKDE-Programm zur Near-Realtime-Anzeige von Graphen
• Perl, Ruby, Python Module und C-Bibliothek fur dieKommunikation mit dem unixsock-Plugin verfugbar
Wisse, was deine Elefanten machen Folie 73