Linux Performance Auswertung mit collectd
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
- ↑ Table of Plugins (collectd.org)
- ↑ collectd collectd First Steps (collectd.org)
- ↑ collectd Frontend collectd-web (collectd.org)
- ↑ collectd Webseite (collectdweb.appspot.com)
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.
|