Zabbix Documentation 2.0

3.04.04.24.4 (current)| In development:5.0 (devel)| Unsupported:1.82.02.22.43.23.4Guidelines

User Tools

Site Tools


manual:installation:install

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

manual:installation:install [2019/01/21 07:45]
manual:installation:install [2016/10/18 05:41] (current)
martins-v removing note on having maria db alongside mysql
Line 1: Line 1:
 +==== 4 Installation from sources ====
  
 +=== Overview ===
 +
 +You can get the very latest version of Zabbix by compiling it from the sources.
 +
 +A step-by-step tutorial for installing Zabbix from the sources is provided here.
 +
 +=== - Installing Zabbix daemons ===
 +
 +== 1 Download the source archive ==
 +
 +Go to the [[http://​www.zabbix.com/​download.php|Zabbix download page]] and download the source archive. Once downloaded, extract the sources, by running:
 +
 +  $ tar -zxvf zabbix-2.0.0.tar.gz
 + 
 +<note tip>​Enter the correct Zabbix version in the command. It must match the name of the downloaded archive.</​note>​
 +
 +== 2 Create user account ==
 +
 +For all of the Zabbix daemon processes, an unprivileged user is required. If a Zabbix daemon is started from an unprivileged user account, it will run as that user. 
 +
 +However, if a daemon is started from a '​root'​ account, it will switch to a '​zabbix'​ user account, which must be present. To create such a user account (in its own group, "​zabbix"​) on Linux systems, run:
 +
 +  groupadd zabbix
 +  useradd -g zabbix zabbix
 +
 +A separate user account is not required for Zabbix frontend installation.
 +
 +If Zabbix [[manual:​concepts:​server|server]] and [[manual:​concepts:​agent|agent]] are run on the same machine it is recommended to use a different user for running the server than for running the agent. Otherwise, if both are run as the same user, the agent can access the server configuration file and any Admin level user in Zabbix can quite easily retrieve, for example, the database password.
 +
 +<note important>​Running Zabbix as ''​root'',​ ''​bin'',​ or any other account with special rights is a security risk.</​note>​
 +
 +== 3 Create Zabbix database ==
 +
 +For Zabbix [[manual:​concepts:​server|server]] and [[manual:​concepts:​proxy|proxy]] daemons, as well as Zabbix frontend, a database is required. It is not needed to run Zabbix [[manual:​concepts:​agent|agent]].
 +
 +SQL [[manual:​appendix:​install:​db_scripts|scripts are provided]] for creating database schema and inserting the dataset. Zabbix proxy database needs only the schema while Zabbix server database requires also the dataset on top of the schema.
 +
 +Having created a Zabbix database, proceed to the following steps of compiling Zabbix.
 +
 +== 4 Configure the sources ==
 +
 +When configuring the sources for a Zabbix server or proxy, you must specify the database type to be used. Only one database type can be compiled with a server or proxy process at a time. 
 +
 +To see all of the supported configuration options, inside the extracted Zabbix source directory run:
 +
 +  ./configure --help
 +
 +To configure the sources for a Zabbix server and agent, you may run something like:
 +
 +  ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl
 +
 +To configure the sources for a Zabbix server (with PostgreSQL etc.), you may run:
 +
 +  ./configure --enable-server --with-postgresql --with-net-snmp
 +
 +To configure the sources for a Zabbix proxy (with SQLite etc.), you may run:
 +
 +  ./configure --prefix=/​usr --enable-proxy --with-net-snmp --with-sqlite3 --with-ssh2
 +
 +To configure the sources for a Zabbix agent, you may run:
 +
 +  ./configure --enable-agent
 +
 +You may use the <​nowiki>​--enable-static</​nowiki>​ flag to statically link libraries. If you plan to distribute compiled binaries among different servers, you must use this flag to make these binaries work without required libraries. Note that <​nowiki>​--enable-static</​nowiki>​ [[http://​blogs.sun.com/​rie/​entry/​static_linking_where_did_it|does not work under Solaris]].
 +
 +<note important>​
 +Using <​nowiki>​--enable-static</​nowiki>​ option is not recommended when building server.// // 
 +
 +In order to build the server statically you must have a static version of every external library needed. There is no strict check for that in configure script.
 +</​note>​
 +
 +<​note>​Command-line utilities zabbix_get and zabbix_sender are compiled if %%--enable-agent%% option is used.</​note>​
 +
 +<​note>​Use <​nowiki>​--with-ibm-db2</​nowiki>​ flag to specify location of the CLI API.\\ Use <​nowiki>​--with-oracle</​nowiki>​ flag to specify location of the OCI API.</​note>​
 +
 +<​note><​nowiki>​--with-ucd-snmp</​nowiki>​ flag can be used instead of <​nowiki>​--with-net-snmp</​nowiki>​. If no SNMP support is required, both <​nowiki>​--with-net-snmp</​nowiki>​ and <​nowiki>​--with-ucd-snmp</​nowiki>​ may be skipped.</​note>​
 +
 +== 5 Make and install everything ==
 +
 +<​note>​If installing from SVN, it is required to run first:
 +
 +''​$ make dbschema''​
 +</​note>​
 +
 +  make install
 +
 +This step should be run as a user with sufficient permissions (commonly '​root',​ or by using ''​sudo''​).
 +
 +Running ''​make install''​ will by default install the daemon binaries (zabbix_server,​ zabbix_agentd,​ zabbix_proxy) in /​usr/​local/​sbin and the client binaries (zabbix_get,​ zabbix_sender) in /​usr/​local/​bin.
 +
 +<​note>​To specify a different location than /usr/local, use a <​nowiki>​--prefix</​nowiki>​ key in the previous step of configuring sources, for example <​nowiki>​--prefix=/​home/​zabbix</​nowiki>​. In this case daemon binaries will be installed under <​prefix>/​sbin,​ while utilities under <​prefix>/​bin. Man pages will be installed under <​prefix>/​share.</​note>​
 +
 +== 6 Review and edit configuration files ==
 +
 +  * edit the Zabbix agent configuration file **/​usr/​local/​etc/​zabbix_agentd.conf** ​
 +
 +You need to configure this file for every host with zabbix_agentd installed. ​
 +
 +You must specify the Zabbix server **IP address** in the file. Connections from other hosts will be denied.
 +
 +  * edit the Zabbix server configuration file **/​usr/​local/​etc/​zabbix_server.conf**
 +
 +You must specify the database name, user and password (if using any).
 +
 +<​note>​With SQLite the full path to database file must be specified; DB user and password are not required.</​note>​
 +
 +The rest of the parameters will suit you with their defaults if you have a small installation (up to ten monitored hosts). You should change the default parameters if you want to maximize the performance of Zabbix server (or proxy) though. See the [Performance tuning] section for more details.
 +
 +  * if you have installed a Zabbix proxy, edit the proxy configuration file **/​usr/​local/​etc/​zabbix_proxy.conf**
 +
 +You must specify the server IP address and proxy hostname (must be known to the server), as well as the database name, user and password (if using any).
 +
 +<​note>​With SQLite the full path to database file must be specified; DB user and password are not required.</​note>​
 +
 +== 7 Start up the daemons ==
 +
 +Run zabbix_server on the server side. 
 +
 +  shell> zabbix_server
 +  ​
 +<​note>​Make sure that your system allows allocation of 36MB (or a bit more) of shared memory, otherwise the server may not start and you will see "​Cannot allocate shared memory for <type of cache>​."​ in the server log file. This may happen on FreeBSD, Solaris 8.\\ See the [[#​see_also|"​See also"​]] section at the bottom of this page to find out how to configure shared memory.</​note>​
 +
 +Run zabbix_agentd on all the monitored machines. ​
 +
 +  shell> zabbix_agentd
 +
 +<​note>​Make sure that your system allows allocation of 2MB of shared memory, otherwise the agent may not start and you will see "​Cannot allocate shared memory for collector."​ in the agent log file. This may happen on Solaris 8.</​note>​
 +
 +If you have installed Zabbix proxy, run zabbix_proxy. ​
 +
 +  shell> zabbix_proxy
 +
 +=== - Installing Zabbix web interface ===
 +
 +== Copying PHP files ==
 +
 +Zabbix frontend is written in PHP, so to run it a PHP supported webserver is needed. Installation is done by simply copying the PHP files from frontends/​php to the webserver HTML documents directory. ​
 +
 +Common locations of HTML documents directories for Apache web servers include:
 +
 +  * /​usr/​local/​apache2/​htdocs (default directory when installing Apache from source)
 +  * /​srv/​www/​htdocs (OpenSUSE, SLES)
 +  * /​var/​www/​html (Fedora, RHEL, CentOS)
 +  * /var/www (Debian, Ubuntu)
 +  ​
 +It is suggested to use a subdirectory instead of the HTML root. To create a subdirectory and copy Zabbix frontend files into it, execute the following commands, replacing the actual directory:
 +
 +  mkdir <​htdocs>/​zabbix
 +  cd frontends/​php
 +  cp -a . <​htdocs>/​zabbix
 +
 +If installing from SVN and planning to use any other language than English, you must generate translation files. To do so, run:
 +
 +  locale/​make_mo.sh
 + 
 +''​msgfmt''​ utility from gettext package is required. ​
 +
 +<​note>​Additionally,​ to use any other language than English, its locale should be installed on the web server. See the [[manual:​web_interface:​user_profile#​see_also|"​See also"​]] section in the "User profile"​ page to find out how to install it if required.</​note>​
 +
 +== Installing frontend ==
 +
 +== Step 1 ==
 +
 +In your browser, open Zabbix URL: http:<​nowiki>//</​nowiki><​server_ip_or_name>/​zabbix
 +
 +You should see the first screen of the frontend installation wizard.
 +
 +{{install_1.png?​550|}}
 +
 +== Step 2 ==
 +
 +Make sure that all software prerequisites are met.
 +
 +{{install_2.png?​550|}}
 +
 +^Pre-requisite^Minimum value^Description^
 +|//PHP version// ​ |5.1.6 ​ |  |
 +|//PHP memory_limit option// ​ |128MB ​ |In php.ini:\\ memory_limit = 128M  |
 +|//PHP post_max_size option// ​ |16MB  |In php.ini:\\ post_max_size = 16M  |
 +|//PHP upload_max_filesize option// ​ |2MB  |In php.ini:\\ upload_max_filesize = 2M  |
 +|//PHP max_execution_time option// ​ |300 seconds ​ |In php.ini:\\ max_execution_time = 300  |
 +|//PHP max_input_time option// ​ |300 seconds ​ |In php.ini:\\ max_input_time = 300  |
 +|//PHP session.auto_start option// ​ |must be disabled ​ |In php.ini:\\ session.auto_start = 0.\\ Required since Zabbix **2.0.4 version**. ​ |
 +|//Database support// ​ |One of: IBM DB2, MySQL, Oracle, PostgreSQL, SQLite ​ |One of the following modules must be installed:​\\ ibm_db2, mysql, oci8, pgsql, sqlite3 ​ |
 +|//​bcmath// ​ |  |php-bcmath ​ |
 +|//​mbstring// ​ |  |php-mbstring ​ |
 +|//​sockets// ​ |  |php-net-socket. Required for user script support. ​  |
 +|//​gd// ​ |2.0 or higher ​ |php-gd. PHP GD extension must support PNG images (//<​nowiki>​--with-png-dir</​nowiki>//​),​ JPEG (//<​nowiki>​--with-jpeg-dir</​nowiki>//​) images and FreeType 2 (//<​nowiki>​--with-freetype-dir</​nowiki>//​). |
 +|//​libxml// ​ |2.6.15 ​ |php-xml or php5-dom ​ |
 +|//​xmlwriter// ​ |  |php-xmlwriter ​ |
 +|//​xmlreader// ​ |  |php-xmlreader ​ |
 +|//​ctype// ​ |  |php-ctype ​ |
 +|//​session// ​ |  |php-session ​ |
 +|//​gettext// ​ |  |php-gettext ​ |
 +
 +== Step 3 ==
 +
 +Enter details for connecting to the database. Zabbix database must already be created.
 +
 +{{install_3.png?​550|}}
 +
 +== Step 4 ==
 +
 +Enter Zabbix server details.
 +
 +{{install_4.png?​550|}}
 +
 +== Step 5 ==
 +
 +Review a summary of settings.
 +
 +{{install_5.png?​550|}}
 +
 +== Step 6 ==
 +
 +Download the configuration file and place it under conf/.
 +
 +{{install_6.png?​550|}}
 +
 +{{:​manual:​installation:​saving_zabbix.conf.png|}}
 +
 +<note tip>​Providing the webserver user has write access to conf/ directory the configuration file would be saved automatically and it would be possible to proceed to the next step right away.</​note>​
 +== Step 7 ==
 +
 +Finish the installation.
 +
 +{{install_7.png?​550|}}
 +
 +== Step 8 ==
 +
 +Zabbix frontend is ready! The default user name is **Admin**, password **zabbix**.
 +
 +{{manual:​quickstart:​login.png?​550|}}
 +
 +Proceed to [[manual:​quickstart:​login|getting started with Zabbix]].
 +
 +==== Troubleshooting ====
 +
 +See the section on [[manual:​appendix:​install:​troubleshooting|installation-specific issue troubleshooting]].
 +
 +==== See also ====
 +  - [[http://​www.zabbix.org/​wiki/​How_to/​configure_shared_memory|How to configure shared memory for Zabbix daemons]]