[Zabbix][2]is an enterprise-class open source distributed monitoring server solution. The software monitors different parameters of a network and the integrity of a server, and also allows the configuration of email based alerts for any event. Zabbix offers reporting and data visualization features based on the data stored in a database (MySQL, for example). Every metric collected by the software is accessible through a web-based interface.
Zabbix is released under the terms of the GNU General Public License version 2 (GPLv2), totally free of cost.
In this tutorial we will install Zabbix on an Ubuntu 16.04 server running MySQL, Apache and PHP.
### Install the Zabbix Server
First, we’ll need to install a few PHP modules required by Zabbix:
Zabbix is now installed. The next step is to configure a database for storing its data.
### Configure MySQL for Zabbix
We need to create a new MySQL database, in which Zabbix will store the collected data.
Start the MySQL shell:
```
$ mysql -uroot -p
```
Next:
```
mysql> CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
Query OK, 1 row affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY 'usr_strong_pwd';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> EXIT;
Bye
```
Next, import the initial schema and data.
```
# zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix
```
Enter the password for the**zabbix**user created in the MySQL shell.
Next, we need to edit the Zabbix Server configuration file, which is`/etc/zabbix/zabbis_server.conf`:
```
# $EDITOR /etc/zabbix/zabbix_server.conf
```
Search the`DBPassword`section of the file:
```
### Option: DBPassword
# Database password. Ignored for SQLite.
# Comment this line if no password is used.
#
# Mandatory: no
# Default:
# DBPassword=
```
Uncomment the`DBPassword=`line and edit by adding the password created in MySQL:
```
DBPassword=usr_strong_pwd
```
Next, look for the`DBHost=`line and uncomment it.
Save and exit.
### Configure PHP
We need to configure PHP for working with Zabbix. During the installation process, the installer created a configuration file in`/etc/zabbix`, named`apache.conf`. Open this file:
```
# $EDITOR /etc/zabbix/apache.conf
```
Here, right now, it’s necessary only to uncomment the`date.timezone`setting and set the correct timezone:
```
<IfModulemod_php7.c>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
php_value date.timezone Europe/Rome
</IfModule>
```
Save and exit.
At this point, restart Apache and start the Zabbix Server service, enabling it for starting at boot time:
At this point, the server-side part of Zabbix has been correctly installed and configured.
### Configure Zabbix Web Fronted
As mentioned in the introduction, Zabbix has a web-based front-end which we’ll use for visualizing collected data. However, this interface has to be configured.
With a web browser, go to URL`http://localhost/zabbix`.
![Zabbix monitoring server Frontend Setup](https://www.unixmen.com/wp-content/uploads/2017/06/snapshot1.png)
Be sure that all the values are**Ok**, and then click on_**Next step**_ again.
![Zabbix MySQL configuration](https://www.unixmen.com/wp-content/uploads/2017/06/snapshot3.png)
Insert the MySQL**zabbix**user password, and then click on_**Next step**_ .
![Zabbix server details](https://www.unixmen.com/wp-content/uploads/2017/06/snapshot4.png)
Click on_**Next step**_ , and the installer will show the following page with all the configuration parameters. Check again to ensure that everything is correct..
Save the new user credentials, and it will appear in the_Administration -> Users_ panel.**Note that in Zabbix access rights to hosts are assigned to user groups, not individual users.**
### Conclusion
This concludes the tutorial for the Zabbix Server installation. Now, the monitoring infrastructure is ready to do its job and collect data about servers that need to be added in the Zabbix configuration.