Zabbix Proxy 4.0 op een QNAP TS-859 (Pro)

Op mijn bureau staat een NAS alwaar ik Zabbix 3.2 had. Sinds enkele dagen is de 4.0 versie nu officiëel uit. Tijd dus om eens te zien of 4.0 kan draaien op de NAS.
Er zijn heel wat tweaks te doen. Onderstaande is het lijstje voor de installatie van 3.2

Basis software, waarbij mysql5 voor het meeste problemen zorgde. Ondertussen zitten we enkele updates/firmwares verder. Misschien is het gemakkelijker via de GUI (Configuratiescherm > Applicatie-servers > SQL-server).

Installeer software

	ipkg update
	ipkg install optware-devel
	ipkg install mysql5
	ipkg install perl-dbd-mysql
	ipkg install libxml2
	ipkg install net-snmp
	ipkg install libcurl-dev
	ipkg install gconv-modules
	ipkg install php-iconv
	ipkg install openssl
	ipkg install pcre
	ipkg install pcre-dev

 

Sources

Eerstvolgende is dan uiteraard de Zabbix sources. Maar helaas een wget https://sourceforge.net/... werkt niet meer. Ik vermoed door een verouderde versie van SSL. Ik heb zelfs geprobeerd met --no-check-certificate --secure-protocol=TLSv1
Download de sources dus manueel en zet ze ergens op de NAS bv in mapje Public (staat bij mij op hetzelfde niveau als de mappen Multimedia, Recordings en Web)
Heden de meest recente versie: https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/4.0.1/zabbix-4.0.1.tar.gz/download
Maar check uiteraard voor een meer recentere versie via: https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/

Unzip en untar het bestand

cd /share/MD0_DATA/
tar -xzvf Public/zabbix-4.0.1.tar.gz
rm zabbix-4.0.1.tar.gz
cd zabbix-4.0.1

 

Configure en make

Je zal merken dat configure vast loopt op zaken die zogezegd niet aanwezig zijn. Pas daarom het configure bestand aan (maak misschien best eerst een backup).

Voor versie 3.2 liep het script vast op iconv. Deze staat niet in het mapje waar het configure script gaat gaan zoeken. Mogelijks kan je dit mee geven als parameter, maar sinds ik dan toch op de juiste plek was heb ik het scriptje aangepast

vi configure
...
	 elif test -f /opt/include/iconv.h; then
		ICONV_CFLAGS="-I/opt/include"
		ICONV_LDFLAGS="-L/opt/lib"
		found_iconv="yes"
...
	## en voor 4.0
	 elif test -f /opt/include/zlib.h; then
		ZLIB_CFLAGS="-I/opt/include"
		ZLIB_LDFLAGS="-L/opt/lib"
		found_zlib="yes"
...
	 elif test -f /opt/include/pthread.h; then
                LIBPTHREAD_CFLAGS="-I/opt/include"
                LIBPTHREAD_LDFLAGS="-L/opt/lib"
                found_libpthread="yes"
...
      elif test -f /opt/include/pcre.h; then
                LIBPCRE_CFLAGS="-I/opt/include"
                LIBPCRE_LDFLAGS="-L/opt/lib"
                found_libpcre="yes"

 

Nu dit aangepast is kan je configure starten

export PATH=/opt/bin:$PATH
./configure --enable-proxy --with-mysql --with-net-snmp --with-libcurl --enable-agent --with-libxml2 
make install

 

De standaard zaken

Het moeilijkste heb je gehad, en ik veronderstel dat wanneer je op deze pagina bent geland wel wat kent van Zabbix. Dus de rest is redelijk basic.
Hierbij nog wat instructies om het af te werken, met uitzondering van de config

addgroup zabbix
adduser -G zabbix zabbix

vi /etc/ld.so.conf
# voeg toe
	/share/MD0_DATA/.qpkg/Optware/lib/mysql/
	/share/MD0_DATA/.qpkg/Optware/lib/
# :wq
ldconfig

# check of alle libraries gevonden/gekoppeld zijn
cd /usr/local/sbin
lld zabbix_proxy

# fping bestaat niet
cd /share/MD0_DATA/
wget http://fping.sourceforge.net/download/fping.tar.gz
tar -xzvf fping.tar.gz
cd fping-2.4b2_to/
./configure
make
make install

# fping staat in /usr/local/sbin/fping
# pas dit in proxy config aan
# En pas de rechten aan
chmod 4755 /usr/local/sbin/fping

 

Autorun

Bij een restart moet je alles terug uitvoeren. Dit doe ik via een scriptje autorun.sh

mount -t ext2 /dev/sdx6 /tmp/config
vi /tmp/config/autorun.sh
chmod +x /tmp/config/autorun.sh
umount /tmp/config

 

Waarvan de inhoud van autorun.sh deze is:

#!/bin/sh
# Install Zabbix 3.2.6
# files must be ready at /share/MD0_DATA/zabbix-4.0.1 and /share/MD0_DATA/fping-2.4b2_to/
# if not ....

PATH=/opt/bin:$PATH
export PATH

rm /usr/local/etc/zabbix_proxy.conf

cd /share/MD0_DATA/zabbix-4.0.1
$(/share/MD0_DATA/zabbix-4.0.1/configure --enable-proxy --with-mysql --with-net-snmp --with-libcurl --enable-agent --with-libxml2 >> /tmp/configure.log)
make install
echo /share/MD0_DATA/.qpkg/Optware/lib/mysql/ >> /etc/ld.so.conf
echo /share/MD0_DATA/.qpkg/Optware/lib/ >> /etc/ld.so.conf
ldconfig

# Fping
cd /share/MD0_DATA/fping-2.4b2_to/
$(/share/MD0_DATA/fping-2.4b2_to/configure)
make && make install
chmod 4755 /usr/local/sbin/fping

# pas config aan van zabbix_proxy
sed -i -e 's/Server=127.0.0.1/Server=IP.ZABBIX.SERVER/g' /usr/local/etc/zabbix_proxy.conf
sed -i -e 's/Hostname=Zabbix proxy/Hostname=ZProxy/g' /usr/local/etc/zabbix_proxy.conf
sed -i -e 's/DBName=zabbix_proxy/DBName=zabbix/g' /usr/local/etc/zabbix_proxy.conf
echo DBPassword=HETpaswoord >> /usr/local/etc/zabbix_proxy.conf
sed -i -e 's/Timeout=4/Timeout=20/g' /usr/local/etc/zabbix_proxy.conf
echo StartPollersUnreachable=4 >> /usr/local/etc/zabbix_proxy.conf
echo FpingLocation=/usr/local/sbin/fping >> /usr/local/etc/zabbix_proxy.conf

sed -i -e 's/Hostname=Zabbix server/Hostname=ZProxy/g' /usr/local/etc/zabbix_agentd.conf

# Start zabbix_proxy en zabbix_agentd
zabbix_proxy
zabbix_agentd

 

Upgrade problemen

De upgrade van de proxy was geen probleem, maar die van de server zelf wel. In de database bestond het veld items.output_format reeds. Het upgrade script bleef hierop hangen. Dit kon ik duidelijk zien in de logs: tail -f /var/log/zabbix/zabbix_server.log
Ik heb er korte metten mee gehouden en dit veld verwijderd. Bij de volgende poging (10 seconden later) zag ik dat de upgrade nu wel door ging.

Terug naar overzicht nieuws