Debian Paket fuer Zabbix Agent erstellen

Binary kompilieren

Kompilieren Sie eine Binary für den Zabbix-Agenten wie in der Anleitung Zabbix_Agent_installieren. Nutzen Sie die Option --prefix=/opt/zabbix, damit die Binaries nicht in einem Standardverzeichnis landen. Alle Dateien müssen in einem Verzeichnis abgelegt werden, welches vom Betriebssystem nicht verwendet wird. /opt/ ist ein guter Ort dafür.

Installieren Sie keine Konfigurationdateien oder Init-Skripte.

Nach dem Sie 'make' und 'make install' install ausgeführt haben, sollten Sie folgende Dateien und Ordner im Verzeichnis /opt/zabbix vorfinden.

debian:/usr/src/zabbix-1.8.4# find /opt/zabbix/
/opt/zabbix/
/opt/zabbix/sbin
/opt/zabbix/sbin/zabbix_agent
/opt/zabbix/sbin/zabbix_agentd
/opt/zabbix/share
/opt/zabbix/share/man
/opt/zabbix/share/man/man1
/opt/zabbix/share/man/man1/zabbix_get.1
/opt/zabbix/share/man/man1/zabbix_sender.1
/opt/zabbix/share/man/man8
/opt/zabbix/share/man/man8/zabbix_agentd.8
/opt/zabbix/bin
/opt/zabbix/bin/zabbix_sender
/opt/zabbix/bin/zabbix_get

Testen Sie, ob die Datei zabbix_agentd ausführbar ist.

debian:/usr/src/zabbix-1.8.4# file /opt/zabbix/sbin/zabbix_agentd
/opt/zabbix/sbin/zabbix_agentd: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, not stripped
debian:/usr/src/zabbix-1.8.4# /opt/zabbix/sbin/zabbix_agentd -V
Zabbix-Agent (daemon) v1.8.4 (revision 16604) (4 January 2011)
Compilation time: Apr 13 2011 14:00:52

Paketvorlage downloaden

Da Debian bereits Zabbix-Pakete im offiziellen Repository hat, können wir diese als Vorlage verwenden. Das macht das Erstellen eines eigenen Paketes erheblich einfacher.

Legen Sie ein Verzeichnis an, in dem alle Dateien zum Paketiren abgelegt werden.

mkdir -p /opt/packaging/zabbix-agent
cd /opt/packaging/zabbix-agent

Laden Sie nur das Debian-Paket zabbix-agent herunter, ohne es zu installieren.

apt-get install --download-only zabbix-agent
ls -l /var/cache/apt/archives/zabbix-agent_1%3a1.4.6-1_amd64.deb

Entpacken Sie nun den Inhalt des Paketes. Die Inhalte des Pakets werden im aktuellen Verzeichnis abgelegt. Deshalb cd /opt/packaging/zabbix-agent nicht vergessen.

ar vx /var/cache/apt/archives/zabbix-agent_1%3a1.4.6-1_amd64.deb
mkdir -p zabbix-agent-1.8.4/DEBIAN/
tar -C zabbix-agent-1.8.4 -xzf data.tar.gz 
tar -C zabbix-agent-1.8.4/DEBIAN/ -xzf control.tar.gz

Sie sollten nur folgende Ordner und Dateien vorfinden:

debian:/opt/packaging/zabbix-agent# find .
.
./debian-binary
./data.tar.gz
./zabbix-agent-1.8.4
./zabbix-agent-1.8.4/etc
./zabbix-agent-1.8.4/etc/logrotate.d
./zabbix-agent-1.8.4/etc/logrotate.d/zabbix-agent
./zabbix-agent-1.8.4/etc/init.d
./zabbix-agent-1.8.4/etc/init.d/zabbix-agent
./zabbix-agent-1.8.4/etc/zabbix
./zabbix-agent-1.8.4/var
./zabbix-agent-1.8.4/var/run
./zabbix-agent-1.8.4/var/run/zabbix-agent
./zabbix-agent-1.8.4/var/log
./zabbix-agent-1.8.4/var/log/zabbix-agent
./zabbix-agent-1.8.4/usr
./zabbix-agent-1.8.4/usr/sbin
./zabbix-agent-1.8.4/usr/sbin/zabbix_agentd
./zabbix-agent-1.8.4/usr/share
./zabbix-agent-1.8.4/usr/share/doc
./zabbix-agent-1.8.4/usr/share/doc/zabbix-agent
./zabbix-agent-1.8.4/usr/share/doc/zabbix-agent/copyright
./zabbix-agent-1.8.4/usr/share/doc/zabbix-agent/changelog.gz
./zabbix-agent-1.8.4/usr/share/doc/zabbix-agent/changelog.Debian.gz
./zabbix-agent-1.8.4/usr/share/doc/zabbix-agent/README.Debian
./zabbix-agent-1.8.4/usr/share/zabbix-agent
./zabbix-agent-1.8.4/usr/share/zabbix-agent/zabbix_agent.conf
./zabbix-agent-1.8.4/usr/share/zabbix-agent/zabbix_agentd.conf
./zabbix-agent-1.8.4/usr/bin
./zabbix-agent-1.8.4/usr/bin/zabbix_agent
./zabbix-agent-1.8.4/usr/bin/zabbix_sender
./zabbix-agent-1.8.4/DEBIAN
./zabbix-agent-1.8.4/DEBIAN/control
./zabbix-agent-1.8.4/DEBIAN/postrm
./zabbix-agent-1.8.4/DEBIAN/prerm
./zabbix-agent-1.8.4/DEBIAN/postinst
./zabbix-agent-1.8.4/DEBIAN/templates
./zabbix-agent-1.8.4/DEBIAN/md5sums
./zabbix-agent-1.8.4/DEBIAN/config
./zabbix-agent-1.8.4/DEBIAN/conffiles
./control.tar.gz

Paketvorlage anpassen

Dateien kopieren

Kopieren Sie nur die Dateien, welche Sie vorher kompiliert haben in die Ordnerstruktur

cp /opt/zabbix/bin/* zabbix-agent-1.8.4/usr/bin/
cp /opt/zabbix/sbin/* zabbix-agent-1.8.4/usr/sbin/

Paketbeschreibungen updaten

Aktualisieren Sie die Paketebschreibung in der Datei DEBIAN/control Wichtig ist, dass Sie die Versionsnummer korrigieren.

Package: zabbix-agent
Source: zabbix
Version: 1:1.8.4
Architecture: amd64
Maintainer: your_name@example.com
Installed-Size: 456
Depends: libc6 (>= 2.7-1), libldap-2.4-2 (>= 2.4.7), debconf (>= 0.5) | debconf-2.0, adduser, logrotate, ucf
Section: net
Priority: optional
Description: Zabbix-Agent Custom version for Your Company
 This package provides all binaries which are needed to integrate
 a System as zabbix client.

Dateien hinzufügen oder anpassen

Wenn Sie Ihrem Paket noch weitere Dateien hinzufügen möchten, zum Beispiel Check-Skripte, dann kopieren Sie diese an die passende Stelle im Verzeichnisbaum unterhalb von zabbix-agent-1.8.4.

Sie können auch die Datei zabbix-agent-1.8.4/usr/share/zabbix-agent/zabbix_agentd.conf anpassen, so dass schon angepasste Standardwerte nach der Installation verwendet werden. Diese Datei wird während der Installation vom Script DEBIAN/postinst nach /etc/zabbix/zabbix_agentd.conf kopiert.

Prüfsummen aktualisieren

Aktualisieren Sie die Prüfsummen der Dateien, die später in Paket enthalten sein werden.

cd /opt/packaging/zabbix-agent/zabbix-agent-1.8.4
find usr/ -type f -exec md5sum {} \; >DEBIAN/md5sums

In der Datei DEBIAN/md5sums sollten nur die aktuellen md5-Summen der ausgetauschten Dateien enthalten sein.

debian:/opt/packaging/zabbix-agent/zabbix-agent-1.8.4# cat DEBIAN/md5sums 
8fc73b7cbdea447979123fd3ddf9b8c0  usr/sbin/zabbix_agent
c4bd0bfb0e001e49c134c6821381ae9a  usr/sbin/zabbix_agentd
0c1cbe701b832b3da6d19f1e3786cb01  usr/share/doc/zabbix-agent/copyright
761eb29836f583527ad219c1886302c1  usr/share/doc/zabbix-agent/changelog.gz
86d56690a42ab4c6b5582cb3f8d06a3b  usr/share/doc/zabbix-agent/changelog.Debian.gz
9c97c5000c197a53cf6a441ceab11346  usr/share/doc/zabbix-agent/README.Debian
e0cbc643824782e2a04b4af227741c11  usr/share/zabbix-agent/zabbix_agent.conf
2d16560c5fce8817a2537452e7e8c335  usr/share/zabbix-agent/zabbix_agentd.conf
9150528d6713c4b6c2b20ef81a1c9806  usr/bin/zabbix_agent
0a54cb420af75982a49332dc4fcb4cc3  usr/bin/zabbix_sender
59afe77cdd5dd945f0a655fc26153b80  usr/bin/zabbix_get

Paket erstellen

Nun kann das Paket mit folgendem Kommando erstellt werden.

dpkg -b zabbix-agent-1.8.4/ zabbix-agent_1.8.4_custom_amd64.deb
Dies ist ein pragmatischer und kurzer Weg, um ein aktuelles Debian-Paket für den Zabbix-Agenten zu erstellen.

Dieses Vorgehen entspricht nicht den offiziellen Debian-Standards.

Das erstellte Paket enthält zum Beispiel kein passenden Quell-Paket, so dass man nicht erkennen kann, wie die Binaries kompiliert wurden.