[comment]: # translation:outdated

[comment]: # ({8c911baa-8c911baa})
# 6. Zabbix appliance

[comment]: # ({/8c911baa-8c911baa})

[comment]: # ({80ef83e4-c15a73d0})
#### Overview

As an alternative to setting up manually or reusing an existing server
for Zabbix, users may
[download](http://www.zabbix.com/download_appliance) a Zabbix appliance
or Zabbix appliance installation CD image. Zabbix appliance installation
CD could be used for instant deployment of Zabbix server (MySQL), Zabbix
server (PostgreSQL), Zabbix proxy (MySQL) and Zabbix proxy (SQLite 3).

Zabbix appliance virtual machines have prepared Zabbix server with MySQL
support. It is built using Zabbix appliance installation CD.

|<|
|<|
|-|

|<|
|<|
|-|

Zabbix appliance and installation CD versions are based upon the
following Ubuntu versions:

|Zabbix appliance version|Ubuntu version|
|------------------------|--------------|
|4.0.0|16.04.3|

Zabbix appliance is available in the following formats:

-   vmdk (VMware/Virtualbox)
-   OVF (Open Virtualisation Format)
-   KVM
-   HDD/flash image, USB stick
-   Live CD/DVD
-   Xen guest
-   Microsoft VHD (Azure)
-   Microsoft VHD (Hyper-V)

To get started, boot the appliance and point your browser at the IP it
has received over DHCP: http://<host\_ip>/zabbix

It has Zabbix server configured and running on MySQL, as well as
frontend available.

The appliance has been built using standard Ubuntu/Debian feature called
Preseed files.

::: notetip
If the appliance fails to start up in Hyper-V, you may
want to press `Ctrl+Alt+F2` to switch tty sessions.
:::

[comment]: # ({/80ef83e4-c15a73d0})

[comment]: # ({dbdbe769-cffa82a3})
#### - Changes to Ubuntu configuration

There are some changes applied to the base Ubuntu configuration.

[comment]: # ({/dbdbe769-cffa82a3})

[comment]: # ({33d81f80-589fd5e2})
##### - Repositories

Official Zabbix
[repository](/manual/installation/install_from_packages#debianubuntu)
has been added to */etc/apt/sources.list*:

    ## Zabbix repository
    deb https://repo.zabbix.com/zabbix/4.0/ubuntu xenial main
    deb-src https://repo.zabbix.com/zabbix/4.0/ubuntu xenial main

[comment]: # ({/33d81f80-589fd5e2})

[comment]: # ({19cf375d-2e60117d})
##### - Firewall

The appliance uses iptables firewall with predefined rules:

-   Opened SSH port (22 TCP);
-   Opened Zabbix agent (10050 TCP) and Zabbix trapper (10051 TCP)
    ports;
-   Opened HTTP (80 TCP) and HTTPS (443 TCP) ports;
-   Opened SNMP trap port (162 UDP);
-   Opened outgoing connections to NTP port (53 UDP);
-   ICMP packets limited to 5 packets per second;
-   All other incoming connections are dropped.

[comment]: # ({/19cf375d-2e60117d})

[comment]: # ({1bc9b468-589dc798})
##### - Additional packages

Various basic utilities have been added that could make working with
Zabbix and monitoring in general easier:

-   iptables-persistent
-   mc
-   htop
-   snmptrapfmt
-   snmp-mibs-downloader

Some of these packages are used by Zabbix, some of them are installed to
help users to configure/manage appliance settings.

[comment]: # ({/1bc9b468-589dc798})

[comment]: # ({0ad45390-b2283a9a})
##### - Using a static IP address

By default the appliance uses DHCP to obtain the IP address. To specify
a static IP address:

-   Log in as root user;
-   Open file */etc/network/interfaces* in your favourite editor;
-   *iface eth0 inet dhcp* → *iface eth0 inet static*
-   Add the following lines after *iface eth0 inet static*:
    -   *address <IP address of the appliance>*
    -   *netmask <network mask>*
    -   *gateway <your gateway address>*
-   Run the commands **sudo ifdown eth0 && sudo ifup eth0**.

::: noteclassic
For more information about other possible options see the
official Ubuntu
[documentation](https://help.ubuntu.com/lts/serverguide/network-configuration.html).
:::

To configure DNS, add nameserver entries in */etc/resolv.conf*,
specifying each nameserver on its own line: **nameserver 192.168.1.2**.

[comment]: # ({/0ad45390-b2283a9a})

[comment]: # ({acf06935-acf06935})
##### - Changing time zone

By default the appliance uses UTC for the system clock. To change the
time zone, copy the appropriate file from */usr/share/zoneinfo* to
*/etc/localtime*, for example:

    cp /usr/share/zoneinfo/Europe/Riga /etc/localtime

[comment]: # ({/acf06935-acf06935})

[comment]: # ({aad70a48-2c378c8d})
##### - Locale changes

The appliance contains a few locale changes:

-   Contains languages: *en\_US.UTF-8*, *ru\_RU.UTF-8*, *ja\_JP.UTF-8*,
    *cs\_CZ.UTF-8*, *ko\_KR.UTF-8*, *it\_IT.UTF-8*,\
    *pt\_BR.UTF-8*, *sk\_SK.UTF-8*, *uk\_UA.UTF-8*, *fr\_FR.UTF-8*,
    *pl.UTF-8*;
-   Default locale is *en\_US.UTF-8*.

These changes are required to support a multilingual Zabbix
web-interface.

[comment]: # ({/aad70a48-2c378c8d})

[comment]: # ({af88f7f4-d39b5151})
##### - Other changes

-   Network is configured to use DHCP to obtain IP address;
-   Utility **fping** is set to have permissions 4710 and is owned by
    group **zabbix** - suid and only allowed to be used by zabbix group;
-   ntpd configured to synchronise to the public pool servers:
    *ntp.ubuntu.com*;
-   LVM volume is used with ext4 filesystem.
-   "*UseDNS no*" is added to SSH server configuration file
    */etc/ssh/sshd\_config* to avoid long SSH connection waits;
-   Daemon snmpd is disabled using */etc/default/snmpd* configuration
    file.

[comment]: # ({/af88f7f4-d39b5151})

[comment]: # ({972f85f6-f11ee379})
#### - Zabbix configuration

Appliance Zabbix setup has the following passwords and other
configuration changes:

[comment]: # ({/972f85f6-f11ee379})

[comment]: # ({fc25c500-e00773c5})
##### - Credentials (login:password)

System:

-   appliance:zabbix

::: noteimportant
Use "sudo su" command with "appliance" user name
password to get root access rights
:::

Database:

-   root:<random>
-   zabbix:<random>

::: noteclassic
Database passwords are randomly generated during the
installation process.\
Root password is stored to /root/.my.cnf file, it is not required to
input a password under the "root" account.
:::

Zabbix frontend:

-   Admin:zabbix

To change the database user password it has to be changed in the
following locations:

-   MySQL;
-   /etc/zabbix/zabbix\_server.conf;
-   /etc/zabbix/web/zabbix.conf.php.

[comment]: # ({/fc25c500-e00773c5})

[comment]: # ({b5f67a42-8232e944})
##### - File locations

-   Configuration files are placed in **/etc/zabbix**.
-   Zabbix server, proxy and agent logfiles are placed in
    **/var/log/zabbix**.
-   Zabbix frontend is placed in **/usr/share/zabbix**.
-   Home directory for user **zabbix** is **/var/lib/zabbix**.

[comment]: # ({/b5f67a42-8232e944})

[comment]: # ({e1f9b928-4fbc391b})
##### - Changes to Zabbix configuration

-   Server name for Zabbix frontend is set to "Zabbix Appliance";
-   Frontend timezone is set to Europe/Riga (this can be modified in
    **/etc/apache2/conf-available/zabbix.conf**);

[comment]: # ({/e1f9b928-4fbc391b})

[comment]: # ({9a24b153-bf60554b})
##### - Preserving configuration

If you are running a Live CD/DVD version of the appliance or for some
other reason cannot have persistent storage, you can create a backup of
the whole database, including all configuration and gathered data.

To create the backup, run:

    sudo mysqldump zabbix | bzip2 -9 > dbdump.bz2

Now you can transfer the **dbdump.bz2** file to another machine.

To restore from the backup, transfer it to the appliance and execute:

    bzcat dbdump.bz2 | sudo mysql zabbix

::: noteimportant
Make sure that Zabbix server is stopped while
performing the restore.
:::

[comment]: # ({/9a24b153-bf60554b})

[comment]: # ({c8ba46e0-d167c766})
#### - Frontend access

Access to frontend by default is allowed from everywhere.

The frontend can be accessed *http://<host>/zabbix*.

This can be customised in **/etc/apache2/conf-available/zabbix.conf**.
You have to restart the webserver after modifying this file. To do so,
log in using SSH as **root** user and execute:

    service apache2 restart

[comment]: # ({/c8ba46e0-d167c766})

[comment]: # ({8fd8716a-a582d1bf})
#### - Firewall

By default, only the ports listed in changes are open. To open
additional ports just modify "*/etc/iptables/rules.v4*" or
"*/etc/iptables/rules.v6*" files and reload firewall rules:

    service iptables-persistent reload

[comment]: # ({/8fd8716a-a582d1bf})

[comment]: # ({7ef8ab0a-a45df55b})
#### - Monitoring capabilities

Zabbix installation is provided with the support for the following:

-   SNMP
-   IPMI
-   Web monitoring
-   VMware monitoring
-   Jabber notifications
-   EZ Texting notifications
-   ODBC
-   SSH2
-   IPv6
-   SNMP Traps
-   Zabbix Java Gateway

[comment]: # ({/7ef8ab0a-a45df55b})

[comment]: # ({62bc825b-90848af9})
#### - SNMP traps

Zabbix appliance uses *snmptrapfmt* to handle SNMP traps. It is
configured to receive all traps from everywhere.

Authentication is not required. If you would like to enable
authentication, you need to change the */etc/snmp/snmptrapd.conf* file
and specify required auth settings.

All traps are stored in the */var/log/zabbix/snmptrapfmt.log* file. It
is rotated by logrotate before reaching 2GB file size.

#### - Upgrading

The appliance Zabbix packages may be upgraded. To do so, run:

    sudo apt install --only-upgrade 'zabbix.*'

#### - Naming, init and other scripts

Appropriate init scripts are provided. To control Zabbix server, use any
of these:

    service zabbix-server status

Replace **server** with **agent** for Zabbix agent daemon or with
**proxy** for Zabbix proxy daemon.

##### - Increasing available diskspace

::: notewarning
Create a backup of all data before attempting any of
the steps.
:::

Available diskspace on the appliance might not be sufficient. In that
case it is possible to expand the disk. To do so, first expand the block
device in your virtualization environment, then follow these steps.

Start *fdisk* to change the partition size. As *root*, execute:

    fdisk /dev/sda

This will start *fdisk* on disk *sda*. Next, switch to sectors by
issuing:

    u

::: noteimportant
Don't disable DOS compatibility mode by entering
**c**. Proceeding with it disabled will damage the
partition.
:::

Then delete the existing partition and create a new one with the desired
size. In the majority of cases you will accept the available maximum,
which will expand the filesystem to whatever size you made available for
the virtual disk. To do so, enter the following sequence in fdisk
prompt:

    d
    n
    p
    1
    (accept default 63)
    (accept default max)

If you wish to leave some space for additional partitions (swap etc),
you can enter another value for *last sector*. When done, save the
changes by issuing:

    w

After partition creation (new disk or extended existing) create physical
volume:

    pvcreate /dev/sdb1

::: notewarning
Partition name /dev/sdb1 is used in the example; in
your case disk name and partition number could be different. You can
check partition number using *fdisk -l /dev/sdb* command.
:::

Check newly created physical volume:

    pvdisplay /dev/sdb1

Check available physical volumes. There must be 2 volumes zabbix-vg and
newly created:

    pvs

Extend your existing volume group with the newly created physical
volume:

    vgextend zabbix-vg /dev/sdb1

Check "zabbix-vg" volume group:

    vgdisplay

Now extend your logical volume with the free PE space:

    lvextend -l +100%FREE /dev/mapper/zabbix--vg-root

Resize your root volume (can be done on a live sysyem):

    resize2fs /dev/mapper/zabbix--vg-root

Reboot the virtual machine (as the partition we modified is in use
currently). That's it, filesystem should be grown to the partition size
now. Check "/dev/mapper/zabbix--vg-root" volume:

    df -h

#### - Format-specific notes

##### - Xen

**Converting image for XenServer**

To use Xen images with Citrix Xenserver you have to convert the disk
image. To do so:

-   Create a virtual disk, which is at least as large as the image
-   Find out the UUID for this disk

```{=html}
<!-- -->
```
    xe vdi-list params=all

-   If there are lots of disks, they can be filtered by the name
    parameter *name-label*, as assigned when creating the virtual disk
-   Import the image

```{=html}
<!-- -->
```
    xe vdi-import filename="image.raw" uuid="<UUID>"

*Instructions from Brian Radford blog*.

##### - VMware

The images in *vmdk* format are usable directly in VMware Player, Server
and Workstation products. For use in ESX, ESXi and vSphere they must be
converted using [VMware
converter](http://www.vmware.com/products/converter/).

##### - HDD/flash image (raw)

    dd if=./zabbix_appliance_4.0.0_x86_64.raw of=/dev/sdc bs=4k conv=fdatasync

Replace */dev/sdc* with your Flash/HDD disk device.

#### - Known issues

[comment]: # ({/62bc825b-90848af9})
