Compile Zabbix Proxy in Ubuntu ARM (BeagleBoard)
I needed to tackle practical limitation of SNMP monitoring under unreliable communication, a serious consideration was made for Zabbix Proxy. It was an option said to be ready for embedded hardware. I already had BeagleBoard xM Rev C running Ubuntu 11.10 Oneiric and needed to proof that it would port functionally to this Linux ARM board. There existed zabbix-proxy-mysql
in Oneiric repository, but sqlite
seemed to be a better scale option for embedded deployment.
An example set out for Zabbix Proxy on Debian appears to be pretty straightforward to follow. With the ARM board already installed with build-essential
, snmp
, and snmpd
, the following needs to be added:
$ sudo apt-get install libsnmp-dev libcurl4-openssl-dev fping curl sqlite libsqlite3-dev ntpdate
then start the pre-compilation configure
(in this case Zabbix 1.8.7 is used):
cd zabbix-1.8.7 ./configure --enable-proxy --enable-agent --with-sqlite3 --with-net-snmp --with-libcurl
It will go smooth. However, during make
there are complains about undefined references to ‘sqlite3_open
‘, ‘sqlite3_close
‘, etc.:
../../src/libs/zbxdb/libzbxdb.a(db.o): In function `zbx_db_connect': /home/zabbix/zabbix-1.8.7/src/libs/zbxdb/db.c:331: undefined reference to `sqlite3_open' /home/zabbix/zabbix-1.8.7/src/libs/zbxdb/db.c:343: undefined reference to `sqlite3_busy_timeout' /home/zabbix/zabbix-1.8.7/src/libs/zbxdb/db.c:334: undefined reference to `sqlite3_errmsg' /home/zabbix/zabbix-1.8.7/src/libs/zbxdb/db.c:335: undefined reference to `sqlite3_close' ../../src/libs/zbxdb/libzbxdb.a(db.o): In function `zbx_db_init': /home/zabbix/zabbix-1.8.7/src/libs/zbxdb/db.c:385: undefined reference to `sqlite3_open' /home/zabbix/zabbix-1.8.7/src/libs/zbxdb/db.c:387: undefined reference to `sqlite3_errmsg' ../../src/libs/zbxdb/libzbxdb.a(db.o): In function `zbx_db_close': /home/zabbix/zabbix-1.8.7/src/libs/zbxdb/db.c:446: undefined reference to `sqlite3_close' ../../src/libs/zbxdb/libzbxdb.a(db.o): In function `zbx_db_vexecute': /home/zabbix/zabbix-1.8.7/src/libs/zbxdb/db.c:827: undefined reference to `sqlite3_exec' /home/zabbix/zabbix-1.8.7/src/libs/zbxdb/db.c:852: undefined reference to `sqlite3_changes' /home/zabbix/zabbix-1.8.7/src/libs/zbxdb/db.c:833: undefined reference to `sqlite3_free' ../../src/libs/zbxdb/libzbxdb.a(db.o): In function `SQ_DBfree_result': /home/zabbix/zabbix-1.8.7/src/libs/zbxdb/db.c:1363: undefined reference to `sqlite3_free_table' ../../src/libs/zbxdb/libzbxdb.a(db.o): In function `zbx_db_vselect': /home/zabbix/zabbix-1.8.7/src/libs/zbxdb/db.c:1121: undefined reference to `sqlite3_get_table' /home/zabbix/zabbix-1.8.7/src/libs/zbxdb/db.c:1127: undefined reference to `sqlite3_free'
this is obviously from the database related code compilation. I run the gcc
manually for the db.c
file inside its directory by adding the flag ‘-lsqlite3
‘ in the tail of ‘../../src/libs/zbxdb/libzbxdb.a
‘ to make it work. Afterward by going to the initial directory first, running make
again will then continue successfully.
$ cd src/zabbix_proxy $ gcc -DZABBIX_DAEMON -g -O2 -L/usr/lib/arm-linux-gnueabi -I/usr/local/include -I/usr/lib/perl/5.12/CORE -I. -I/usr/include -I/usr/include -lsqlite3 -L/usr/lib/arm-linux-gnueabi -lcurl -L/usr/lib -lnetsnmp -lcrypto -L/usr/lib -lnetsnmp -lcrypto -rdynamic -o zabbix_proxy zabbix_proxy-servercomms.o zabbix_proxy-events.o zabbix_proxy-zlog.o zabbix_proxy-proxy.o heart/libzbxheart.a ../../src/zabbix_server/dbsyncer/libzbxdbsyncer.a ../../src/zabbix_server/discoverer/libzbxdiscoverer.a housekeeper/libzbxhousekeeper.a ../../src/zabbix_server/httppoller/libzbxhttppoller.a proxyconfig/libzbxproxyconfig.a ../../src/zabbix_server/pinger/libzbxpinger.a ../../src/zabbix_server/poller/libzbxpoller.a ../../src/zabbix_server/trapper/libzbxtrapper.a ../../src/zabbix_server/nodewatcher/libzbxnodewatcher.a datasender/libzbxdatasender.a ../../src/zabbix_server/selfmon/libzbxselfmon.a ../../src/libs/zbxsysinfo/libzbxserversysinfo.a ../../src/libs/zbxsysinfo/linux/libspecsysinfo.a ../../src/libs/zbxsysinfo/common/libcommonsysinfo.a ../../src/libs/zbxsysinfo/simple/libsimplesysinfo.a ../../src/libs/zbxlog/libzbxlog.a ../../src/libs/zbxdbcache/libzbxdbcache.a ../../src/libs/zbxmemory/libzbxmemory.a ../../src/libs/zbxalgo/libzbxalgo.a ../../src/libs/zbxnix/libzbxnix.a ../../src/libs/zbxsys/libzbxsys.a ../../src/libs/zbxconf/libzbxconf.a ../../src/libs/zbxcommon/libzbxcommon.a ../../src/libs/zbxcrypto/libzbxcrypto.a ../../src/libs/zbxcomms/libzbxcomms.a ../../src/libs/zbxcommshigh/libzbxcommshigh.a ../../src/libs/zbxjson/libzbxjson.a ../../src/libs/zbxexec/libzbxexec.a ../../src/libs/zbxself/libzbxself.a ../../src/libs/zbxserver/libzbxserver.a ../../src/libs/zbxicmpping/libzbxicmpping.a ../../src/libs/zbxdbhigh/libzbxdbhigh.a ../../src/libs/zbxdb/libzbxdb.a -lsqlite3 -lcurl -lnetsnmp -lm -lresolv $ cd ../../ $ make
About
+Arif Kusbandono
Recently
Et Cetera
© logIt. Powered by WordPress using the DePo Skinny Tweaked Theme.