How To Install Zabbix 2.2 on Ubuntu 14.04 LTS

This post may or may not work. Please use at your own risk. Visit How To Install Icinga 2 on CentOS 7 / RHEL 7 for the latest documentation.

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

Features

  1. It can verify the availability of the standard services such as SMTP or HTTP with out installing any software on the remote host.
  2. It can also monitor CPU, Memory, Disk and other resources 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

Prerequisites

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

sudo wget https://repo.zabbix.com/zabbix/2.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_2.2-1+trusty_all.deb
sudo dpkg -i zabbix-release_2.2-1+trusty_all.deb
sudo apt-get update

Install Zabbix

Install the following packages. This 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

Step 2: Confirm the 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

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

Step 5: Confirm the password for the database user.

Zabbix Confirm Database Password

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

Troubleshooting

After configuring the database, when I tried to access the Zabbix setup URL (https://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 the 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 to access the URL without any issue.

Setup Zabbix

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

Install Zabbix 2.2 on Ubuntu 14.04 – Welcome

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

Install Zabbix 2.2 on Ubuntu 14.04 – Pre-req

Enter the database information.

Zabbix Setup – Database information

Configure the server information.

Zabbix Setup – Server information

Check out the installation summary.

Install Zabbix 2.2 on Ubuntu 14.04 – Pre-installation Summary

Finish the setup.

Install Zabbix 2.2 on Ubuntu 14.04 – Finish

Access Zabbix

Login with default credential (Admin/zabbix)

Install Zabbix 2.2 on Ubuntu 14.04 – Login Page

This how the Zabbix dashboard will look like.

Install Zabbix 2.2 on Ubuntu 14.04 – Dashboard

That’s All.

apachelinux mintmonitoring-toolsmysqlubuntu14.04zabbix
Comments (7)
Add Comment
  • 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)
    );
    check_fields($fields);

    // logout
    if (isset($_REQUEST[‘reconnect’])) {
    DBstart();
    add_audit_details(AUDIT_ACTION_LOGOUT, AUDIT_RESOURCE_USER, CWebUser::$data[‘userid’], ”, _(‘Manual Logout’),
    CWebUser::$data[‘userid’]
    );
    DBend(true);
    CWebUser::logout();
    redirect(‘index.php’);
    }

    $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 {
    access_deny(ACCESS_DENY_PAGE);
    }
    }

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

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

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

    if (CWebUser::$data[‘autologin’] != $autoLogin) {
    API::User()->updateProfile($user);
    }

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

    // 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’);
    break;
    case ZBX_AUTH_LDAP:
    case ZBX_AUTH_INTERNAL:
    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’);
    $loginForm->render();
    }
    }
    else {
    redirect(zbx_empty(CWebUser::$data[‘url’]) ? ‘dashboard.php’ : CWebUser::$data[‘url’]);
    }