Zabbix technical demo video
本デモビデオでは、Zabbixの機能概要をご覧いただけます。 音声は英語ですが、下部メニューのCC（キャプションを選択）ボタンから日本語字幕をお選びいたけます。 また、表示されているZabbixの画面は英語表示になっておりますが、実際にZabbixをご利用いただく際には、日本語表示にすることも可能です。
Zabbix is an enterprise-level open-source monitoring tool, which has been named the Gartner Customers' Choice for two years in a row. We are sure that this demo video will help you better understand our monitoring solution and get an overview of its core features and functionalities. We will introduce you to both the UI and the basic concepts of monitoring with Zabbix. We hope you will enjoy this brief overview. Welcome to monitoring with Zabbix!
Your central point of monitoring in Zabbix are going to be your dashboards. These can display different data, problems, maps, and many different views. Dashboards are based on widgets. These widgets can be highly customized, filtered out so they display only the necessary data in the necessary way for you. An example of a dashboard could be a dashboard for your networking team, where we can see problem overviews about networking devices, network maps, and other things related to our networking infrastructure. A completely different dashboard can be a dashboard for our managers, where we can see our regional data centers and their status: do we have a problem on them or are they doing just fine. From these maps our management team could, for example, execute some sort of a script to check the availability of a specific data center or open a sub-map, a more in-depth view of a specific data center: are all of the devices doing fine or do we have some issues. And if so, which device is encountering those issues.
Whenever a received metric matches our problem expression, also known as a trigger, we create a problem in Zabbix. This can be seen in many different views, for example, in the problems section or also on our dashboards. We can create multiple different widgets on dashboards that can display problems in different views, filter them, and so on. Once we see a problem, we can open a specific problem up and take a look at the general description and information related to the problem: when it was created, what was the last received related value, who has acknowledged the problem, or maybe closed it manually before. And also a historical overview of related problems to the specific trigger expression.
With Zabbix you can natively monitor your website by creating web scenarios. Web scenarios are based on steps. Steps, such as performing a login, checking if the login has been successful by analyzing the received response code, or looking for a string on a website and then performing a logout. For each of these steps Zabbix will automatically collect a couple of metrics: speed, response time, response code, and if the step has been performed successfully. Then, after the metrics have been collected, Zabbix will also automatically create graphs for each of the web scenario steps and the web scenario as a whole. This allows you to analyze your website performance at the longer time interval, take a look at the problems created for these web scenario steps, and try to resolve them.
Once you have collected your data, you can visualize it by using Zabbix Graphs. These graphs are highly interactive, and they can be placed on, for example, your dashboards. You can hover over them to see what specific data was collected at the specific point in time, or you can zoom them in on a specific time period, or also you can specify the time period by using the time selector tool. There you can select one of the predefined time periods — "Last 1 week", "Last 1 month", use the Calendar tool to select a specific date, or use the From or To fields to specify the time period, for which to display data manually.
If you wish to further visualize your data, your triggers, or your hosts you can use the Zabbix Maps feature to achieve this. You can then place this map on some sort of a central dashboard available for your network admins. You can also link other maps to an already existing map thus creating a map hierarchy. Then you can navigate through these elements by clicking on them on the map itself or by using the map navigation tree widget to browse through the selection of the available maps and navigate through them that way. Map elements will also change their icons depending on the state they are in. For example, a host that has no problems on it will have a green check mark next to it. While a host that has some problems will have a red cross indicating that there are some issues on the host. This selection of icons is completely up to you. You can upload your custom icons and populate your maps with them.
Collecting the data is just the first step. We also have to decide how we're going to react to it. Within Zabbix you can react to your problems, your newly discovered or auto-registered hosts, and also create internal actions, which will notify you when some item, for example, stops working for some reason. Actions are based on and/or conditions. So, it's an and/or logic that you can define. You can define multiple conditions and decide to react, for example, only to problems coming from a specific host group or from a specific trigger based on its trigger name. Once you have defined these conditions, we need to define what we're going to do. And we do it via Operations. You can send a message via email or some sort of integration, or you can also execute remote commands, say, reboot the host if there is a problem on it. You can also decide if we're going to cycle these messages or if we're going to delay the operations. Say, instead of reacting immediately we want to react 30 minutes or 1 hour after the problem has been created, because may be it has a tendency to resolve by itself. We can specify a custom message for each of our operations or we can use the predefined messages for any of the specific integrations that we have defined on our Zabbix instance.
With Zabbix you also have the option to set up a lightweight agent on your monitoring endpoints. This agent is capable of gathering OS-level metrics, monitor log files, or execute custom scripts, and gather their output as a metric. The agent setup is really simple. You can install it as a package on your Unix-like host or we also have an MSI installer for your Windows machines. The communication between the agent and the server can also go two ways. You can either poll the agent, the server polls the agent passively, or the agent can send traps to the server, and the server can then process them. Starting from version 5.0, you now have the selection between the C-Agent and the Go-Agent. The Go-Agent enables you to monitor many new systems natively out of the box — things such as MySQL or Docker. You can also develop your own custom plugins for the Go-Agent to enable monitoring of any third-party systems that you wish.
SNMP monitoring is also fully and natively supported by Zabbix out of the box. We provide SNMP templates for the most popular software and hardware vendors out there. If you wish to create a custom SNMP item, just create a new item and point it towards the Custom OID, and a metric will be obtained from it. You can also automate the process a little bit by using the Low-Level Discovery feature. Just create a new discovery rule and point it towards an OID, on which all of the indexes will be obtained. These indexes will then populate our item prototypes. A new item will be created per index thus automating your SNMP monitoring.
Zabbix fully supports IoT monitoring out of the box. For this, we offer you two keys modbus.get for Modbus IoT devices and mqtt.get for MQTT devices. To enable this, all you have to do is set up the Zabbix Agent and create a new item that contains your IoT endpoint properties within the key.
If you wish to monitor your Java application, Zabbix can also do this out of the box we use JMX or Java Management Extensions technology to connect to your Java application and obtain a list of your MBeans and MBean attributes via your JMX endpoint, which you can specify. We also have some generic out-of-the-box Java templates that you can apply **on** your custom applications.
For more advanced IPMI devices, Zabbix can also connect to their IPMI interface and monitor the different values provided by different sensors on your device. You can either create items for these manually — just provide the sensor name, or you can automate the process by using the IPMI sensor discovery rules. These are provided in out-of-the-box templates within Zabbix. The discovery rule will discover a list of your sensors and based on the item prototype will create a new item for each sensor.
Other checks: ODBC, ssh, WMI
Besides using the native Zabbix agent checks, SNMP, IPMI, and Java interfaces, we can also use a variety of other methods to gather our data. For example, we can use ODBC checks to connect to your database, execute a query on it, and gather the output of the query as a metric. Or we can use a SSH and Telnet to connect to a remote host, execute a command on it, and gather the result of the command as a metric. On Windows machines, we can, for example, monitor Windows performance counters or use WMI to monitor our Windows hosts.
When it comes to automation, Zabbix is also natively capable of automatically discovering your VMware environment. We can discover VM guests, hypervisors, clusters, and data stores natively. Based on the type of host that has been created, we will apply the corresponding template that has a list of performance counters that we will be gathering from your VMware environment. You are always free to modify any of these templates to disable or enable a discovery of specific elements or you can always add your own custom performance counters depending on your vCenter version.
Low Level Discovery
Let's imagine a situation where we have multiple similar hosts that are using the same templates, but each of them is not necessarily identical with one another. Let's say that these servers have different file systems. So, how would we solve this issue? We can of course create individual items for each file system on the host, but that's way too much manual labor. Let's say instead of three hosts we have 300 hosts. So, we need to find a way to automate this. And a native way to automate this is to use Low Level Discovery. Low Level Discovery can use any type of check: Agent check, SNMP, ODBC, Java, or whatever else Zabbix supports to automatically discover your entities. And then, based on item trigger and graph prototypes, create items, triggers, and graphs based on the results of the discovery thus automating the creation of these entities in Zabbix.
You can natively define your problem thresholds based on absolute time intervals meaning hours, days, weeks, months, or even years. This is enabled by the fact that Zabbix collects hourly trend data, meaning every hour we collect the average minimum and maximum value for each of your collected metric and also the count of collected values for the said metric. With this, you can, for example, create a trigger that will notify you, if the current average load for your application this month is larger than 10 per cent when comparing it with the load last month.
In the User Roles section, you have the ability to define new custom User roles. For example, you can create a role for your network admins, your application admins, and your NOC team. Roles are based on User type — either user, admin, or super admin. Based on this type, your roles will be restricted to a subset of specific UI elements, which you can then further restrict or allow. For example, NOC team could have access only to Dashboards and Maps section of the UI. In addition to that, you can also restrict your roles to have access to only specific API methods by using an Allow list or a Deny list. In addition, you can also restrict the execution of specific actions per role. For example, your NOC team won't have the ability to execute scripts or change the problem severity.
If you wish to extend the Zabbix native authentication functionality, you can do so in multiple ways. One of them is LDAP. Just point your Zabbix server towards your LDAP instance, be it AD or OpenLDAP, and you'll be good to go. You can also delegate authentication to your web server backend. Or since version 5.0, you can use SAML. You can configure it natively from within the Zabbix UI in a centralized manner.
Zabbix provides robust security options for your user credentials, SNMP communities, and other sensitive data. If you wish, you can store the data in the external vault. In addition, the communication with the Zabbix backend database can also be established via this vault, where all of the credentials will be stored.
Imagine a situation, where you have many different data centers all over the world. Each of these data centers has tens of thousands of hosts on them. Each of the hosts has an agent or maybe is being polled by SNMP, and we need to gather the data from all of them. So, I'm already seeing a couple of problems over here. First off — network latency, which will affect our monitoring performance. And also what happens if some part of the network is down and the host is not reachable? In addition, if we're talking about polling, about passive checks, our security team will need to allow all of those connections through the firewall. Well, how can we improve this? There actually is a native way, it's called Zabbix proxies. You can create as many Zabbix proxies as you need all over the world. Let's say you have a proxy in the US, in Asia, and in Europe where your data centers are located.
As you may have already noticed by now, Zabbix provides a wide variety of different templates for different systems, different software vendors, and templates utilizing different monitoring approaches, such as agent or SNMP. If this is not sufficient for you, you can always navigate to our Zabbix Share — community portal for sharing all things in Zabbix: templates, integrations, anything else that comes to your mind. You can download these and import them in your own environment. Or if you wish, you can contribute — upload your own templates to the Zabbix community share.