Expand description

Zabbix Sender Protocol implementation to transmit metrics to Zabbix Server.

Provides sync (and optional async) methods to send key-value pairs to Zabbix Server and Zabbix Proxy. Can communicate unencrypted or via TLS with certificates or pre-shared key (PSK). Also provides a clap command line parser that can be used to configure a TLS connection to Zabbix for crates that use this library.

Crate Features

  • tracing - enable logging via the tracing crate.
  • async_tokio - enable the async method Sender.send_async() to send values asynchronously using tokio::net::TcpStream
  • tls_rustls - use the rustls crate to enable TLS certificate encryption with Zabbix Server. As of version 0.20, rustls does NOT support PSK encryption.
  • tls_openssl - use the openssl crate to enable TLS certificate encryption or PSK encryption with Zabbix Server.
  • tls_rustls_tokio - MUST be enabled when both async_tokio and tls_rustls are enabled, because Cargo does not support conditional feature enablement (i.e. https://github.com/rust-lang/cargo/issues/1839).
  • tls_openssl_tokio - MUST be enabled when both async_tokio and tls_openssl are enabled.
  • clap - Include the struct that implements clap::Args, which can be included in downstream users of this library to get command line argument parsing that mirrors Zabbix native TLS configuration. See details in the documentation for tls::ClapArgs.

Modules

TLS configuration for Sender

Structs

The message that is sent to the Zabbix server.

Structure of Zabbix server’s response

Data item sent to the server.

Implementation of Zabbix Sender protocol.

Enums

Errors that occur during configuration of the Zabbix connection or submission of item values to Zabbix

Traits

Contract for types that provide the ability to cast to a Message type.

Type Definitions