See www.zabbix.com for the official Zabbix site.

Get Zabbix

From Zabbix.org
Jump to: navigation, search

Getting Zabbix

Before you can start looking at the code, you must get it. You can choose between getting prebuilt release archives or getting it from the source code repository system.

Released packages

You can download common released versions from Zabbix download page.

Nightly Builds

You can download latest builds from Zabbix developers page. These are like released versions, just unstable. Nightly builds are available also as Dockerized Zabbix (docker image with dev tag, e.g. monitoringartist/zabbix-xxl:dev).

Development versions

Zabbix source code is kept in a Subversion repository, located at svn://svn.zabbix.com. One must have Subversion client installed to access the repository.

Linux

On Linux, one can use either the official Subversion commandline client or one of the available GUI clients/frontends.

Using official Subversion client

First, make sure you have it installed. In most distributions, package is called subversion. Change to a directory you want to place Zabbix code in and execute:

 $ svn co svn://svn.zabbix.com/trunk

This will grab full Zabbix trunk. If you want a particular branch, like 2.4:

 $ svn co svn://svn.zabbix.com/branches/2.4

Released version snapshots are stored in tags/ subdirectory. Few example entries:

  • tags/1.8.8
  • tags/2.4.4
  • tags/3.0.1

If you want to update your checkout at some later point, change to the directory whichever you want updated and execute:

 $ svn up

In case you want to update only a part of the checkout, like the frontend run:

 $ svn up frontends

You can also get an exact revision, if you would like to find out which revision introduced some problem. This can be combined with target syntax as well:

 $ svn up -r 12345 frontends

You can read SVN commit log, seeing what messages developers attached to each change. There's also revision syntax that allows to retrieve information based on dates. A special "revision" - HEAD - always denotes latest revision. Adding -v parameter will also print out file names that were changed.

 $ svn log -v -r {2015-08-01}:HEAD src

You can also get exact code changes in a specific revision and a specific file:

 $ svn diff -c 4321 create/schema/schema.sql

For more information on Subversion usage go read SVN Book.

Applying changes to your installation

Often times you may want to try one particular upstream solution to a problem. Tickets should contain a reference, which release fixed a certain problems. It can be a number of commits or just one single commit. For a single commit, it's very easy! Let's take [1] and 3.0 as an example! In the respective updated SVN checkout run:

 $ svn diff -c r58902 > /wherever/you/want/it/r58902.patch

Copy the patch over to the target system if necessary. Where exactly you put it, doesn't matter, as long as you can access it. Looking at our patch, it references paths, starting with frontends/php/include/... If you apply your patch to a typical installation, your path is more like /usr/share/zabbix/include/... To accomodate for, we set the fitting pnum. Please refer to the patch manpage for details!

 /usr/share/zabbix $ patch -p2 < /wherever/it/is/r58902.patch

The patch will probably not apply completely. The changes to the changelog file are usually rejected. Don't worry about them. Delete the remaining .orig and .rej files. Other conflicts you may encounter, must be resolved. If all goes wrong, you can reversely apply the patch. I heavily suggest to use a version control system though!

Windows

For Windows you can use official Subversion commandline client like above, or one of the available GUI clients like TortoiseSVN.

Proceeding with compilation

With source retrieved, proceed on to compilation instructions.