Linux Performance Auswertung mit collectd

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

collectd ist ein Daemon, der System-Statistiken in strukturierter Form sammelt. Die Daten liegen in rrd-Form vor und können zur Performance-Analyse und Auswertung des Ressourcen-Verbrauchs genutzt werden. Für die visuelle Darstellung der gesammelten collectd-Daten gibt es mehrere Frontends, die zum größten Teile unabhängig von collectd entwickelt werden. Nachfolgend wird erklärt, wie collectd unter Ubuntu 14.04 LTS installiert und konfiguriert wird. Es wird außerdem ein Blick auf Frontends geworfen, die Graphen aus den collectd rrd-Daten generieren. Alternativ kann für eine ähnliche Analyse auch Serverstats oder Sar verwendet werden.

Installation

Für die Installation des minimalen collectd-Daemons empfiehlt sich unter Ubuntu die Option --no-install-recommends, da ansonsten deutlich mehr Pakete installiert werden. Für eine grundsätzliche Installation und Konfiguration reichen folgende Paket aus:

$ sudo apt-get install --no-install-recommends collectd
[...]
The following extra packages will be installed:
  collectd-core fontconfig fontconfig-config fonts-dejavu-core libcairo2
  libdatrie1 libdbi1 libfontconfig1 libgraphite2-3 libharfbuzz0b libltdl7
  libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpixman-1-0 librrd4
  libthai-data libthai0 libxcb-render0 libxcb-shm0 libxrender1
Suggested packages:
  collectd-dev librrds-perl liburi-perl libhtml-parser-perl
  libregexp-common-perl libconfig-general-perl httpd-cgi apache2 apcupsd bind9
  hddtemp ipvsadm lm-sensors mbmon memcached mysql-server nginx
  notification-daemon nut openvpn olsrd pdns-server postgresql time-daemon
  ttf-baekmuk ttf-arphic-gbsn00lp ttf-arphic-bsmi00lp ttf-arphic-gkai00mp
  ttf-arphic-bkai00mp
Recommended packages:
  libesmtp6 liblvm2app2.2 libmemcached10 libmnl0 libmodbus5 libmysqlclient18
  libnotify4 libopenipmi0 liboping0 libperl5.18 libpq5 libprotobuf-c0
  librabbitmq1 libsensors4 libsnmp30 libtokyotyrant3 libupsclient3
  libvarnishapi1 libvirt0 libyajl2 default-jre-headless rrdtool ttf-dejavu
  ttf-bitstream-vera
The following NEW packages will be installed:
  collectd collectd-core fontconfig fontconfig-config fonts-dejavu-core
  libcairo2 libdatrie1 libdbi1 libfontconfig1 libgraphite2-3 libharfbuzz0b
  libltdl7 libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpixman-1-0
  librrd4 libthai-data libthai0 libxcb-render0 libxcb-shm0 libxrender1
0 upgraded, 22 newly installed, 0 to remove and 0 not upgraded.
Need to get 3,649 kB of archives.
After this operation, 13.6 MB of additional disk space will be used.
[...]

Konfiguration

Die Haupt-Konfigurationsdatei für collectd befindet sich unter /etc/collectd/collectd.conf. In dieser Datei regeln sogenannte Plugins die Überwachung und Protokollierung der Ressource.[1] Standardmäßig sind bereits einige Plugins aktiv, die grundlegende Ressourcen überwachen:

$ egrep '^LoadPlugin' /etc/collectd/collectd.conf
LoadPlugin syslog
LoadPlugin battery
LoadPlugin cpu
LoadPlugin df
LoadPlugin disk
LoadPlugin entropy
LoadPlugin interface
LoadPlugin irq
LoadPlugin load
LoadPlugin memory
LoadPlugin processes
LoadPlugin rrdtool
LoadPlugin swap
LoadPlugin users

Detailliere Konfigurations-Optionen werden bei den XML-Abschnitten des Plugins angegeben. Im folgenden Beispiel die zu überwachende Festplatte:

$ sudo vi /etc/collectd/collectd.conf
<Plugin disk>
        Disk "sdb"
        IgnoreSelected false
</Plugin>

Nach Änderungen der Konfigurations-Datei muss collectd neu gestartet werden:

$ sudo service collectd restart

rrd Daten

Die generierten Statistiken befinden sich im Verzeichnis /var/lib/collectd/rrd. Diese können für die weitere Analyse direkt am Host ausgewertet oder auch auf ein anderes System kopiert werden. Der folgende Abschnitt schildert, wie aus den Daten Graphen erstellt werden.

Graphen aus rrd Daten erzeugen

Um Graphen aus den rrd-Daten zu erstellen, werden einige Bibliotheken für die Verarbeitung der rrd-Daten benötigt[2]

$ sudo apt-get install librrds-perl libconfig-general-perl libhtml-parser-perl libregexp-common-perl libjson-perl

collectd-web

Eine einfache und gute Möglichkeit an Graphen zu gelangen ist collectd-web.[3][4]

$ git clone git://github.com/httpdss/collectd-web.git
Cloning into 'collectd-web'...
$ sudo cp -a collectd-web/ /var/www/html/
$ sudo vi /etc/apache2/sites-available/collectd-web.conf
<Directory /var/www/html/collectd-web>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride all
        Order allow,deny
        allow from all
</Directory>
$ sudo a2ensite collectd-web

Für Apache sind noch folgende Einstellungen notwendig:

$ sudo a2enmod cgi

Nach Aktivierung der Web-Konfiguration für collectd-web sind die Graphen der rrd-Daten über den Browser zugänglich:

Einzelnachweise

  1. Table of Plugins (collectd.org)
  2. collectd collectd First Steps (collectd.org)
  3. collectd Frontend collectd-web (collectd.org)
  4. collectd Webseite (collectdweb.appspot.com)


Foto Georg Schönberger.jpg

Autor: Georg Schönberger

Georg Schönberger, Abteilung DevOps bei der XORTEX eBusiness GmbH, absolvierte an der FH OÖ am Campus Hagenberg sein Studium zum Bachelor Computer- und Mediensicherheit, Studium Master Sichere Informationssysteme. Seit 2015 ist Georg bei XORTEX beschäftigt und arbeitet sehr lösungsorientiert und hat keine Angst vor schwierigen Aufgaben. Zu seinen Hobbys zählt neben Linux auch Tennis, Klettern und Reisen.


Das könnte Sie auch interessieren

Linux CPU Performance Messungen mit mpstat
Linux I/O Performance Messungen mit iostat
Linux Performance Messungen mit vmstat