Zabbix is exceptionally great monitoring tool that collects information from servers, virtual machines, network switches, routers, firewalls and other network enabled devices which allow you to examine it any problem occur. It has feature-wealthy notifications on emerging issues, but the integrated tools for data analysis and visualization aren't pretty easy to use.
We can combine graphs into dashboards, but first we need to create them, and there is practically no easy way to create graphs that show real-time data. Also, there is no way to collect data from different machines onto a one graph.
Grafana is a good alternative to Zabbix's dashboards. It lets you create graphs and dashboards based on data from various monitoring systems, and it specializes in the display and analysis of this data. It is lightweight, easy to install, and it looks beautiful.
In this guide, we'll walk you through the steps to install Grafana and configure it to gather and display data from Zabbix and how to compose your own custom dashboard that monitors physical or virtual machine's CPU and file usage.
PrerequisitesTo follow this guide, you will need:
- Two CentOS 7 machines configured with sudo non-root users, with Zabbix installed on one server, and the Zabbix client installed on the other server. Follow the article How to Install and Configure Zabbix on CentOS 7 and its prerequisites to configure these servers.
Installing GrafanaBefore we can use Grafana, we need to install it. We'll use the same server we used for the Zabbix server. Log in to your Zabbix server with your non-root user:
Grafana isn't available through the package manager by default, so we will set up the repository configuration file. First, create a new repository file for Grafana:
- ssh sammy@your_zabbix_server_ip_address
Paste the following configuration data into the file:
- sudo vi /etc/yum.repos.d/grafana.repo
Then save and exit the text editor and run the following command to install Grafana:
During the installation process you will be asked to import a GPG key. Confirm that you wish to import this key so the installation can continue.
- sudo yum install grafana
Once the installation completes, start the Grafana service:
Then check whether the Grafana service is running properly:
- sudo systemctl daemon-reload
- sudo systemctl start grafana-server
You will see the following status:
- sudo systemctl status grafana-server
● grafana-server.service - Starts and stops a single grafana instance on this system
Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2016-11-07 06:18:27 UTC; 1 day 4h ago
Main PID: 16639 (grafana-server)
Finally, enable the service to start at boot time:
Grafana is running, so let's install the component that lets Grafana pull data from Zabbix.
- sudo systemctl enable grafana-server
Installing the Zabbix Plugin for GrafanaYou can extend Grafana's functionality by installing plugins. You can explore the available plugins here. There are three types of plugins:
- Panels: new blocks that can be used on the dashboard, such as pie charts or histograms.
- Data sources: new storage backends for your time series data, so you can pull data from other sources.
- Apps: complex plugins that bundle data sources and panels within a single package.
The easiest way to install plugins is by using the CLI tool
grafana-cliwhich is bundled with Grafana. Run the following command to install the Zabbix App plugin:
You will see the following output, indicating that the plugin was installed:
- sudo grafana-cli plugins install alexanderzobnin-zabbix-app
Output✔ Installed alexanderzobnin-zabbix-app successfully
Whenever you add or modify plugins, you must restart
grafana-serverfor the changes to take effect.
With the plugin installed, you can log in to Grafana and configure it to talk to Zabbix.
- sudo systemctl restart grafana-server
Configuring the Zabbix PluginLog in to the Grafana web interface by navigating to the address
Note: Grafana listens for incoming connections on port
3000. If you have a firewall configured, you'll need to open this port.
The default login credentials are
admin/admin. You can change your password on the Profile page once you log in. When you log in, you'll be greeted by the Home dashboard.
Access Grafana's main menu by clicking on the Grafana logo in the top left corner of the user interface. Then select Plugins. Then select the Apps tab. Then click on the Zabbix app and enable it by pressing the Enable button.
Now you can add a new data source. Select the Grafana logo again and navigate to Data sources. Then click the Add data source button. You will see the configuration page for the data source:
Configure the data source as follows:
- Enter a name for this new data source in the Name field.
- Check the Default option so this data source will be preselected in new panels you create.
- Select Zabbix from the Type drop down list.
- Fill in the Url field with the full path to the Zabbix API, which will be
- Fill in the Username and Password fields with the username and password for Zabbix. The default username is
adminand the default password is
- Enable the Trends option; it will increase Grafana's performance when displaying long time periods.
Click the Add button to test and save the configuration. You'll see a success message that looks like the following:
If you do not see this message, check your credentials and test again.
Now let's look at the Zabbix dashboard that came with the plugin. Select Zabbix server Dashboard from the dropdown list at the top of the screen. When you select it, the dashboard displays information about your Zabbix server:
This dashboard is pretty informative, but you can create your own custom dashboard from scratch.
Creating a Custom Zabbix DashboardLet's create a dashboard for Zabbix that shows us CPU usage and file system information in real-time.
Open the drop-down list on the top of the screen and click the Create New button. A new empty dashboard will be created.
Each dashboard consists of rows which contain blocks. When you create a new dashboard, you automatically get one row. Click on the green menu on the left of the row to access the row's action menu. Here you can add new panels, set the row's height, move it, collapse it, or delete it.
First we will create a graph that displays the CPU usage of our Zabbix server. Select the Add Panel item and then click Graph to insert a new graph into the row.
You'll be greeted with a form with several tabs, with the Metrics tab selected. Since we've set our Zabbix data source as the default, a new query was added for you. You just have to specify the following options:
- Set Host Group to
- Set Host to
- Set Application to
- Set Item to
Processor load (1 min average per core).
Then navigate to the General tab and set the Title field to
Processor loadand set the Span option to
6. One row can contain up to 12 blocks, so setting this value to 6 makes the panel take up half of the screen.
Now you can click on Back to dashboard to see the result:
Note: If you don't see any data, you may be zoomed out too far. Click the clock icon in the upper right of the interface and choose *Last 1 hour from the list of options.
Let's add another chart. To do this, you can repeat the previous steps or duplicate the existing graph. To duplicate the existing graph, select the panel title and click Duplicate. Then select the new graph's title and select the Edit option. Then apply the following settings:
- Change Title to
- Select the Metrics tab and change the Item field to
You can also show summary statistics. Select the Legend tab and you'll see some options and values you can select.
- Under Options, check As table and To The right.
- Under Values, select Min, Max, Avg, and Current.
Next, add a Singlestat panel to show a single value for a particular metric. Create a new row by clicking Add row button and then select the row's menu, choose Add panel, and select the Singlestat item.
Set the Metrics options as follows:
- Set Host Group to
- Set Host to
- Set Application to
- Set Item to
Free disk space on / (percentage).
Free disk space on /.
Then switch to the Options tab and configure these options:
- Enable the
Showoption for Gauge.
- Set Thresholds to
10,20. This will display these thresholds on the gauge.
- Select the
currentoption from the Value drop-down list.
Return to the dashboard and press
CTRL+Sto save it.
Now let's test how this gauge responds to real-time events. To do so we will manually reduce free space on the disk and see what the dashboard displays.
Log in to your Zabbix server if you're not logged in currently:
Once logged in, determine how much free space is available on the file system. You can do this with the
- ssh sammy@your_zabbix_server_ip_address
You will see the following output:
- df -h
OutputFilesystem Size Used Avail Use% Mounted on /dev/vda1 20G 1.5G 18G 8% / devtmpfs 236M 0 236M 0% /dev tmpfs 245M 0 245M 0% /dev/shm tmpfs 245M 8.3M 237M 4% /run tmpfs 245M 0 245M 0% /sys/fs/cgroup tmpfs 49M 0 49M 0% /run/user/0
In this case, there's 18 GB of free space. The amount of free space on your server will vary. Reduce the free space on the root partition below the 20% threshold by using the
fallocatecommand to create one big temporary file:
Set the file size depending on the amount of free space on your server.
- fallocate -l 15G /tmp/test.img
Then give Zabbix a couple of minutes to update its data. Refresh the dashboard and you'll see that the gauge changed its color to reflect the free space issue:
Finally, let's show active Zabbix triggers on the dashboard. Create a new row and then select the row's menu, select Add panel, and choose the Zabbix Triggers item.
You will see the active trigger notifying you about the lack of free space on the server.
Select Back to dashboard and save the dashboard with
CTRL+S. Your dashboard will now look like this:
ou can now use this simple dashboard to get a quick look at the current state of your server.
Don't forget to remove the temporary file you created to free up space on your disk. On your Zabbix server, issue the command:
This will remove the
- rm /tmp/test.img
test.imgfile. In a few minutes, the dashboard will update again to reflect the changes on the file system.
In this guide, we demonstrated how to install and configure Grafana, and created a custom dashboard with panels that displayed data from Zabbix. You can show these dashboards on desktops or even large screens to allow administrators to see the state of your IT infrastructure. Each panel on a dashboard can display data from a different server, and you can use Grafana to filter the data in many useful ways. It's difficult to describe all of Grafana's features in one article, so explore, experiment, and build your own beautiful dashboards.