Install Zabbix 2.2 on Ubuntu 14.04

ZabbixZabbix is an open source software for monitoring the network services, servers and other network devices, created by Alexei Vladishev. Zabbix back end written in C and uses PHP for front end, supports MySQL, PostgreSQL, SQLite, Oracle or IBM DB2 databases.


  1. It can verify the availability of the standard services such as SMTP or HTTP with out installing any software on remote host.
  2. It can also monitor CPU, Memory, Disk and other resource on Windows or Unix hosts by installing zabbix client on it.
  3. It also offers support for monitoring via SNMP,TCP and ICMP.
  4. It supports real-time notifications

This guide will help you to setup the Zabbix on Ubuntu 14.04


Install the latest release packages, this contains the repository configuration.

sudo wget
sudo dpkg -i zabbix-release_2.2-1+trusty_all.deb
sudo apt-get update

Install Zabbix:

Install the following packages, it will install the Zabbix server and web with MySQL.

sudo apt-get install zabbix-server-mysql zabbix-frontend-php

Configure Database:

Previous command itself invoke the MySQL and Zabbix database configuration. If you already have the MySQL configured on the server, please skip the first two steps.

Step 1: Configure the root password for MySQL.

MySQL - Root Password
MySQL – Root Password

Step 2: Confirm the root password.

MySQL - Confirm Root Password
MySQL – Confirm Root Password

Step 3: Next screen, it will ask you to configure the database for the Zabbix, you either accept or cancel it. Here i chose yes for automatic database configuration.

Zabbix - Database Configuration
Zabbix – Database Configuration

Step 4: Enter the password for the database user “zabbix” (zabbix user will be created by the installer), this password has been entered while setting up Zabbix.

Zabbix Database Password
Zabbix Database Password

Step 5: Confirm the password for the database user.

Zabbix Confirm Database Password
Zabbix Confirm Database Password

The following troubleshooting section is only applicable to those who facing 404 not found error while accessing zabbix setup url.


After configuring the database, when i tried to access the zabbix setup url (http://your-ip-address/zabbix). I got 404 not found page, after a lot of google search; found nothing. Later i decided to check the files created by the package, in last i found apache.conf file in /etc/zabbix.

Copy the apache.conf file to apache2 directory

sudo cp /etc/zabbix/apache.conf /etc/apache2/sites-enabled/zabbix.conf

Edit copied file to setup the timezone.

sudo vi /etc/apache2/sites-enabled/zabbix.conf
# php_value date.timezone Europe/Riga

Change the date.timezone according to your time zone.

Restart the apache2 service.

sudo /etc/init.d/apache2 restart

After performing the above steps, i was able access the url without any issue.

Setup Zabbix:

Visit the following url to start setting up the Zabbix http://your-ip-address/zabbix. Click Next to continue.

Zabbix Setup - Welcome
Zabbix Setup – Welcome

Zabbix setup will check the prerequisites, will give you the status like below.

Zabbix Setup - Pre-req
Zabbix Setup – Pre-req

Enter the database information.

Zabbix Setup - Database information
Zabbix Setup – Database information

Configure the server information.

Zabbix Setup - Server information
Zabbix Setup – Server information

Check out the installation summary.

Zabbix Setup - Pre installation Summary
Zabbix Setup – Pre installation Summary

Finish the setup.

Zabbix Setup - Finish
Zabbix Setup – Finish

Login with default credential (Admin/zabbix)

Zabbix Setup - Login Page
Zabbix Setup – Login Page

This how the Zabbix dashboard look like.

Zabbix Setup - Dashboard
Zabbix Setup – Dashboard

That’s All!. You have successfully configured the Zabbix server, now configure the zabbix agent on the client machine for monitoring.


Share This Post

  • babak

    Too bad you don’t explain how to setup the correct timezone in PHP to avoid red warning in the initial Zabbix setup though the web. In case anyone needs it: /etc/apache2/conf.d/zabbix

    • babak

      Shame, this howto miss a lot of data on mysql configuration. Better Google for another one…

      • Raj

        Hi babak,

        You do not require to import any schema or configure mysql for the Zabbix installation. This tested and verified.

    • Raj

      It is mentioned on tutorial, please check.

  • Severin

    this tutorial worked perfectly, including the mysql and apache stuff 🙂 thank you

  • Jean Debushy

    Hey Raj, thank you for writing this article.

    I will now try your instructions on my Ubuntu server.
    Something that I am trying to figure it out is whether and how can Zabbix be configured to send SMS alerts.
    Do you know something about this?

  • Wilson

    I have this message on the web page please help me

    array(T_ZBX_STR, O_NO, null, NOT_EMPTY, ‘isset({enter})’, _(‘Username’)),
    ‘password’ => array(T_ZBX_STR, O_OPT, null, null, ‘isset({enter})’),
    ‘sessionid’ => array(T_ZBX_STR, O_OPT, null, null, null),
    ‘reconnect’ => array(T_ZBX_INT, O_OPT, P_SYS|P_ACT, BETWEEN(0, 65535), null),
    ‘enter’ => array(T_ZBX_STR, O_OPT, P_SYS, null, null),
    ‘autologin’ => array(T_ZBX_INT, O_OPT, null, null, null),
    ‘request’ => array(T_ZBX_STR, O_OPT, null, null, null)

    // logout
    if (isset($_REQUEST[‘reconnect’])) {
    add_audit_details(AUDIT_ACTION_LOGOUT, AUDIT_RESOURCE_USER, CWebUser::$data[‘userid’], ”, _(‘Manual Logout’),

    $config = select_config();

    if ($config[‘authentication_type’] == ZBX_AUTH_HTTP) {
    if (!empty($_SERVER[‘PHP_AUTH_USER’])) {
    $_REQUEST[‘enter’] = _(‘Sign in’);
    $_REQUEST[‘name’] = $_SERVER[‘PHP_AUTH_USER’];
    else {

    // login via form
    if (isset($_REQUEST[‘enter’]) && $_REQUEST[‘enter’] == _(‘Sign in’)) {
    // try to login
    $autoLogin = getRequest(‘autologin’, 0);

    $loginSuccess = CWebUser::login(getRequest(‘name’, ”), getRequest(‘password’, ”));

    if ($loginSuccess) {
    // save remember login preference
    $user = array(‘autologin’ => $autoLogin);

    if (CWebUser::$data[‘autologin’] != $autoLogin) {

    $request = getRequest(‘request’);
    $url = zbx_empty($request) ? CWebUser::$data[‘url’] : $request;
    if (zbx_empty($url) || $url == $page[‘file’]) {
    $url = ‘dashboard.php’;
    // login failed, fall back to a guest account
    else {
    else {
    // login the user from the session, if the session id is empty – login as a guest

    // the user is not logged in, display the login form
    if (!CWebUser::$data[‘alias’] || CWebUser::$data[‘alias’] == ZBX_GUEST_USER) {
    switch ($config[‘authentication_type’]) {
    case ZBX_AUTH_HTTP:
    echo _(‘User name does not match with DB’);
    case ZBX_AUTH_LDAP:
    if (isset($_REQUEST[‘enter’])) {
    $_REQUEST[‘autologin’] = getRequest(‘autologin’, 0);

    if ($messages = clear_messages()) {
    $messages = array_pop($messages);
    $_REQUEST[‘message’] = $messages[‘message’];
    $loginForm = new CView(‘general.login’);
    else {
    redirect(zbx_empty(CWebUser::$data[‘url’]) ? ‘dashboard.php’ : CWebUser::$data[‘url’]);