2.9 Linux Collector

Der Linux Collector hat die selbe Aufgabe, wie die CPL24Inventory.exe (siehe hierzu 2.7), ist allerdings speziell für Linux einsetzbar. Er ist erhältlich als 32 und 64 Bit Binary.

Um den Linux Collector nutzen zu können, müssen folgende Voraussetzungen erfüllt sein:

  • Base64 Befehl vorhanden
  • Gzip Befehl vorhanden

Beim Aufruf des Collectors ohne Angabe eines Parameters, wird ein Hilfe-Menü angezeigt, das beschreibt, wie der Aufruf richtig durchzuführen ist.

Usage: collector [-f <configfile>] [-d] [--update | -u]

Mit <configfile> wird der Pfad übergeben, in dem sich die Konfigurations-Datei befindet. Als zusätzliche, optionale Parameter können noch aufgerufen werden:

  • -f

    Beim Fehlen von -f wird der Pfad /etc/collector.cfg angenommen.

  • -d

    Dry run: Bereitet alle Daten vor, parst sie, schickt diese aber nicht an den Webservice.

  • --update bzw. -u

    Ein spezieller Update-Mechanismus, der prüft, ob der Collector auf dem aktuellsten Stand ist und, wenn nötig, ein Update durchführt. Ein Scan findet in diesem Fall nicht statt.

  • --no-cleanup

    Verhindert das Löschen der generierten Daten aus /tmp/, nachdem sie versandt wurden. Dies wird häufig in Verbindung mit -d, zur Problembehandlung verwendet. Dazu ist es auch hilfreich, dass alle Ereignisse an Syslog weitergeleitet werden. Aus Sicherheitsgründen werden dabei das Passwort und die Klient-ID mit "XXX" ersetzt.

In Abbildung 2.38 können Sie nun sehen, wie der Pfad der Konfigurationsdatei collector.cfg als Parameter übergeben wird und somit der Linux Collector mit den minimalen Parametern aufgerufen wird. In Zeile 3 wird durch den zusätzlichen Parameter die Update-Funktion gestartet. Mit dem Aufruf über cron.daily wird sichergestellt, dass diese beiden Befehle täglich ausgeführt werden und somit der Linux Collector die gescannten Daten jeden Tag an die Cloud weiterleitet. Durch den zweiten Befehl wird der Collector automatisch auf dem aktuellsten Stand gehalten.


 
1#!/bin/bash 
2/usr/sbin/collector -f /etc/collector.cfg 
3/usr/sbin/collector -f /etc/collector.cfg --update


Abbildung 2.38: Inhalt von /etc/cron.daily/collector


Für die verschiedenen Linux Distributionen muss die Konfigurationsdatei entsprechend angepasst werden. Für aktuelle, gängigen Linux Distributionen stellen wir - über das Menü Erstkonfiguration - entsprechende Konfigurationen zur Verfügung. Anhand des Codeabschnitts in Abbildung 2.41 können Sie sehen, dass für die meisten Parameter ein Pfad bzw. eine Datei zum Ausführen hinterlegt werden muss, um den Linux Collector fehlerfrei aufrufen zu können. Einige besonders wichtige Parameter werden hier noch erklärt:

  • PKGMGR=/usr/bin/yum list installed (Zeile 4)

    Packagemanager: Befehl zum Auflisten aller Pakete, welche über den Packagemanager installiert wurden. Hier können Sie auch einen anderen Befehl oder ein Script hinterlegen, der die Ausgabe entsprechend des oben genannten Befehls ausgibt, falls Sie eine anderen Packagemanager verwenden. Eigene Scripte/ Befehle müssen die Ausgabe ausschließlich nach STDOUT schreiben.

  • TimeFile=/etc/services (Zeile 13)

    Über das TimeFile wird das Installationsdatum des Betriebssystems ermittelt. Da es in Linux nicht möglich ist, auf dem direkten Weg das Installationsdatum abzurufen, muss hier der Umweg über das Dateisystem und TimeFile gegangen werden. Geben Sie hier also ein File an, dessen Änderungsdatum (LastModifiedDate) dem Installationsdatum entspricht!

  • capath=/etc/pki/tls/certs/ca-bundle.crt (Zeile 14)

    Certification authority: Pfad zur Datei mit den vertrauenswürdigen Zertifikatsstellen

  • updateserver=URLtoUpdateServer (Zeile 17)

    Um sicherzustellen, dass die vom Linux Collector gescannten Daten richtig in die Cloud hochgeladen werden, muss hier die korrekte URL für den UpdateServer hinterlegt werden. Der Collector sollte immer auf die aktuellste Version upgedatet sein. Um den Aufwand bei der Durchführung der Updates zu minimieren, kann der zentrale Service hier genutzt werden, oder aber ein eigener Dienst herangezogen werden. Wenn die Maschine keine Internetverbindung besitzt oder die Updates auf Wunsch selbst kontrolliert werden sollen, kann so auch ein eigener Update-Server wie z. B. www.ex..com als Update URL angegeben werden.

    Hinweis: Wenn wie in Abbildung 2.41 in Zeile 19 "Secureupdate= true" gesetzt wurde, kann nachfolgend "https://" verwendet werden

    Über

    https://www.ex..com/collector/update/nextversion

    wird also dann die aktuellste Version ermittelt (z. B. 46). Ist die aktuelle Version kleiner als die "nextversion", erfolgt das Update auf die "nextversion" in der selben Architektur:

    https://www.ex..com/collector/update/46/x32/colltector

    https://www.ex..com/collector/update/46/x64/colltector

    (es wird dabei automatisch erkannt, ob es sich um ein 32 oder 64-Bit Betriebssystem handelt)

    Hinweis: Wenn der Update-Server ein IIS-Server ist, muss, wie in Abbildung 2.39, auf der collector-Ebene eine Datei web.config angelegt werden, mit einem zusätzlichen Mime-Type-Eintrag für "." nämlich application/octet-stream (siehe Abbildung 2.40). Ist dies nicht der Fall, wird der Fehler 404.17 angezeigt.


    PIC
    Abbildung 2.39: web.config-Datei



    PIC
    Abbildung 2.40: Inhalt web.Config-Datei


  • keyfile=/etc/login.dat (Zeile 18)

    Laden Sie Ihre login.dat mit den verschlüsselten Anmeldeinformationen in das angegebene Verzeichnis. Wenn Sie die Datei umbenennen oder von einem anderen Verzeichnis aus laden wollen, können Sie dies im konfig-File tun (z. B. /opt/cpl24/collector/collector.key). Achten Sie darauf, dass das File vom Prozessbenutzer aus geladen werden kann. Weiter wird empfohlen, die Datei vor unautorisiertem Zugriff (lesend und schreibend) zu schützen!


 
1CPUs=/proc/cpuinfo 
2OS=/etc/SuSE-Release,/etc/gentoo-release,/etc/redhat-release,/etc/centos-release,/etc/os-release 
3DISKS=/etc/mtab 
4PKGMGR=/usr/bin/yum list installed 
5ShowIfaces= true 
6ShowDrives= true 
7ShowSoftware= true 
8ShowEnvironment= true 
9gzip=/usr/bin/gzip -f 
10base64=/usr/bin/base64 
11tmpfilepath=/tmp 
12lscpu=/usr/bin/lscpu 
13TimeFile=/etc/services 
14capath=/etc/pki/tls/certs/ca-bundle.crt 
15targets= rsaf 
16targethost= rsaf.cpl24.com 
17updateserver= rsaf.cpl24.com/hartl 
18keyfile=/etc/login.dat 
19Secureupdate= true


Abbildung 2.41: Inhalt Config-Datei