Ceph – Zabbix sender issue with v14.2.5

After updating/restarting the manager to v14.2.5 we are no longer able to send data to our zabbix servers. Ceph reports a non-zero exit status from zabbix_sender.

Info:

ceph mon versions
{
    "ceph version 14.2.6 (ba51347bdbe28c7c0e2e9172fa2983111137bb60) nautilus (stable)": 3
# cat /etc/debian_version
10.2
root@px1 /etc/network # cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
# ceph -s
  cluster:
    id:     20a806df-b3f4-4032-ab8e-ae15aef1e836
    health: HEALTH_WARN
            Failed to send data to Zabbix
            mon px1 is low on available space

  services:
    mon: 3 daemons, quorum px1,px2,px3 (age 8d)
    mgr: px1(active, since 8d), standbys: px2, px3
    osd: 32 osds: 32 up (since 8d), 32 in (since 11d)

  data:
    pools:   7 pools, 640 pgs
    objects: 3.52M objects, 13 TiB
    usage:   53 TiB used, 124 TiB / 176 TiB avail
    pgs:     639 active+clean
             1   active+clean+scrubbing+deep

  io:
    client:   0 B/s rd, 23 MiB/s wr, 0 op/s rd, 34 op/s wr

# ceph health detail
HEALTH_WARN Failed to send data to Zabbix; mon px1 is low on available space
MGR_ZABBIX_SEND_FAILED Failed to send data to Zabbix
    /usr/bin/zabbix_sender exited non-zero: zabbix_sender [4088351]: DEBUG: answer []
zabbix_sender [4088351]: Warning: incorrect answer from server []

Setting “debug mgr = 20” yields no additional information. Zabbix configuration in ceph has not changed since the v14.2.5 update, and was working under v14.2.4:

# ceph zabbix config-show
{"zabbix_port": 10050, "zabbix_host": "stats.myzabbix.host", "identifier": "px1.cephserver.host", "zabbix_sender": "/usr/bin/zabbix_sender", "interval": 60}

So, how to reconfigure it.
SOME DETAILS:

Zabbix plugin

The Zabbix plugin actively sends information to a Zabbix server like:

Ceph status

I/O operations

I/O bandwidth

OSD status

Storage utilization

Requirements

The plugin requires that the zabbix_sender executable is present on all machines running ceph-mgr. It can be installed on most distributions using the package manager.
Dependencies

Installing zabbix_sender can be done under Ubuntu or CentOS using either apt or dnf.

On Ubuntu Xenial:

# apt install zabbix-agent

On Fedora:

# dnf install zabbix-sender

Enabling

You can enable the zabbix module with:

# ceph mgr module enable zabbix

Configuration

Two configuration keys are vital for the module to work:

zabbix_host

identifier (optional)

The parameter zabbix_host controls the hostname of the Zabbix server to which zabbix_sender will send the items. This can be a IP-Address if required by your installation.

The identifier parameter controls the identifier/hostname to use as source when sending items to Zabbix. This should match the name of the Host in your Zabbix server.

When the identifier parameter is not configured the ceph- of the cluster will be used when sending data to Zabbix.

This would for example be ceph-c4d32a99-9e80-490f-bd3a-1d22d8a7d354

Additional configuration keys which can be configured and their default values:

zabbix_port: 10051

zabbix_sender: /usr/bin/zabbix_sender

interval: 60

Configuration keys

Configuration keys can be set on any machine with the proper cephx credentials, these are usually Monitors where the client.admin key is present.

ceph zabbix config-set

For example:

# ceph zabbix config-set zabbix_host zabbix.localdomain
# ceph zabbix config-set identifier ceph.eu-ams02.local

The current configuration of the module can also be shown:

# ceph zabbix config-show

Manually sending data

If needed the module can be asked to send data immediately instead of waiting for the interval.

This can be done with this command:

# ceph zabbix send

The module will now send its latest data to the Zabbix server.
Debugging

Should you want to debug the Zabbix module increase the logging level for ceph-mgr and check the logs.

[mgr]
    debug mgr = 20

With logging set to debug for the manager the plugin will print various logging lines prefixed with mgr[zabbix] for easy filtering.