It is possible to configure real-time exporting of trigger events, item values and trends in a newline-delimited JSON format.
Exporting is done into files, where each line of the export file is a JSON object. Value mappings are not applied.
In case of a write error (data cannot be written to the export file or the export file cannot be renamed or a new one cannot be created after renaming it), the data item is dropped and never written to the export file. It is written only in the Zabbix database. Writing data to the export file is resumed when the writing problem is resolved.
Note that before Zabbix 4.0.16, in case of a write error, Zabbix would retry with a 10 second interval until success. This behavior, while ensuring history data equivalence between database and export files resulted in actually stopping monitoring until the problem with the export file was fixed. Since 4.0.16 the priority is given to continued monitoring rather than keeping the export file in sync with database at all cost.
For precise details on what information is exported, see the export protocol page.
Note that host/item can have no metadata (host groups, host name, item name) if the host/item was removed after the data was received, but before server exported data.
Real-time export of trigger events, item values and trends is configured by specifying a directory for the export files - see the ExportDir
parameter in server configuration.
Another parameter - ExportFileSize
may be used to set the maximum allowed size of an individual export file. When a process needs to write to a file it checks the size of the file first. If it exceeds the configured size limit, the file is renamed by appending .old to its name and a new file with the original name is created.
A file will be created per each process that will write data (i.e. approximately 4-30 files). As the default size per export file is 1G, keeping large export files may drain the disk space fast.