Zabbix - ghdrako/doc_snipets GitHub Wiki

Zabbix

Architecture

  • Zabbix server is the central component to which agents report availability and integrity information and statistics. The server is the central repository in which all configuration, statistical and operational data are stored.
  • Database storage - alternatives are PostgreSQL and MySQL
  • Web interface - is part of Zabbix server, and usually (but not necessarily) runs on the same physical machine as the one running the server.
  • Zabbix proxy can collect performance and availability data on behalf of Zabbix server. A proxy is an optional part of Zabbix deployment
  • Zabbix agents are deployed on monitoring targets to actively monitor local resources and applications and report the gathered data to Zabbix server. Since Zabbix 4.4, there are two types of agents available: the Zabbix agent (lightweight, supported on many platforms, written in C) and the Zabbix agent 2 (extra-flexible, easily extendable with plugins, written in Go).

Zabbix agent is installed on every host and is running for all infrastructure components. It collects data according to items configured on Zabbix and sends it back to the server.

The platform provides a robust list of alerts that will help you ensure availability and quick response time in case of any platform-related emergency. Zabbix uses a flexible notification mechanism that allows configuring preferred delivery methods (email, SMS, Jabber, or custom scripts).

Data flow

  • In order to create an item that gathers data you must first create a host.
  • You must first have an item to create a trigger
  • You must have a trigger to create an action

The Zabbix server will acquire data from Zabbix proxies, the proxies will acquire data from all the Zabbix agents connected to it, all the data will be stored on a dedicated RDBMS, and the frontend will be exposed with a web interface to the users. Looking at the technologies used, we see that the web interface is written in PHP and that the server, proxies, and agents are written in C.

Zabbix monitors the main parameters of the hardware hosts and infrastructure components:

  • hardware and infrastructure hosts availability
  • services availability (http, ftp, ssh)
  • operation system processes
  • specific processes inside infrastructure containers
  • critical usage of the swap, disk space, CPU
  • web monitoring of the user dashboard and JCA (availability, response time, download speed)
  • web monitoring critical internal platform parameters (statistics, billing, etc.)
  • other kinds of web monitoring

Zabbix proxy is a process that may collect monitoring data from one or more monitored devices and send the information to the Zabbix server, essentially working on behalf of the server. All collected data is buffered locally and then transferred to the Zabbix server the proxy belongs to.

In the latest release of Zabbix, Prometheus integration is available out of the box. It allows us to easily collect and parse metrics from collectors.