I'm going to resurrect this thread to throw my hat in the ring as I am having this issue as well.

I just moved to 15.2.4 on Ubuntu 18.04/bionic, and Zabbix is 5.0.2.
$ ceph zabbix config-show
Error EINVAL: Traceback (most recent call last):
  File "/usr/share/ceph/mgr/mgr_module.py", line 1167, in _handle_command
    return self.handle_command(inbuf, cmd)
  File "/usr/share/ceph/mgr/zabbix/module.py", line 407, in handle_command
    return 0, json.dumps(self.config, index=4, sort_keys=True), ''
  File "/usr/lib/python3.6/json/__init__.py", line 238, in dumps
    **kw).encode(obj)
TypeError: __init__() got an unexpected keyword argument 'index'

Which looks to be exactly the same as your error.

I also appear to be seeing some weird issue with the Zabbix template as it pertains to the discovery and daemon/pool stats.

I made sure that I pulled the latest XML from the ceph repo here: https://github.com/ceph/ceph/blob/master/src/pybind/mgr/zabbix/zabbix_template.xml

When I run the discovery command, it looks like it runs ok?
$ ceph zabbix discovery
Sending discovery data to Zabbix

And if I pass the --verbose flag I get this at the end

better match: 1.5 > 0.5: zabbix config-set <key> <value>
better match: 1.5 > 1.5: zabbix config-show
better match: 1.5 > 1.5: zabbix send
better match: 2.5 > 1.5: zabbix discovery
bestcmds_sorted:
[{'flags': 8,
  'help': 'Discovering Zabbix data',
  'module': 'mgr',
  'perm': 'r',
  'sig': [argdesc(<class 'ceph_argparse.CephPrefix'>, req=True, name=prefix, n=1, numseen=0, prefix=zabbix),
          argdesc(<class 'ceph_argparse.CephPrefix'>, req=True, name=prefix, n=1, numseen=0, prefix=discovery)]}]
Submitting command:  {'prefix': 'zabbix discovery', 'target': ('mon-mgr', '')}
submit ['{"prefix": "zabbix discovery", "target": ["mon-mgr", ""]}'] to mon-mgr
Sending discovery data to Zabbix

The pools get discovered correctly, however the pool % used doesn't work, and the R/W iops/BW are off by a magnitude of 10^9 I think.

[fs-metadata] Pool Percent Used
07/27/2020 06:17:22 PM
0%

[fs-metadata] Pool RAW Used
07/28/2020 05:07:22 PM
180 Gb
+2.52 Mb
[fs-metadata] Pool Read bandwidth
07/28/2020 05:07:22 PM
4.3 Tbytes
+560.13 Kbytes
[fs-metadata] Pool Read operations
07/28/2020 05:07:22 PM
460.18 Mops
+170 ops
[fs-metadata] Pool Used
07/28/2020 05:07:22 PM
180 Gb
+2.52 Mb
[fs-metadata] Pool Write bandwidth
07/28/2020 05:07:22 PM
1.43 Tbytes
+337.92 Kbytes
[fs-metadata] Pool Write operations
07/28/2020 05:07:22 PM
62.04 Mops
+99 ops

However, typical patterns are this:
pool fs-metadata id 16
  client io 3.9 KiB/s rd, 3.3 KiB/s wr, 2 op/s rd, 0 op/s wr

And Zabbix shows this error for the "Pool Percent Used" Item.
Value of type "string" is not suitable for value type "Numeric (unsigned)". Value "0.014200450852513313"
So it looks like this should be a float, and thats a pretty easy change.

The other, much bigger, issue I am seeing is with the discovery for OSD's.

It appears like its descending the crush tree and selecting the crush failure domains.

For one tree, it is chassis, for another it is host.
And the OSD values it is showing "[osd.-##]" correspond directly to the crush ID number.
Table of the Items below.

Ceph OSD discovery: [osd.-18] OSD fill
Triggers 2
ceph.[osd.-18,osd_fill]

90d
365d
Zabbix trapper
Ceph CRUSH [ssd]
Enabled
Ceph OSD discovery: [osd.-18] OSD in

ceph.[osd.-18,in]

90d
365d
Zabbix trapper
Ceph CRUSH [ssd]
Enabled
Ceph OSD discovery: [osd.-18] OSD latency apply

ceph.[osd.-18,osd_latency_apply]

90d
365d
Zabbix trapper
Ceph CRUSH [ssd]
Enabled
Ceph OSD discovery: [osd.-18] OSD latency commit

ceph.[osd.-18,osd_latency_commit]

90d
365d
Zabbix trapper
Ceph CRUSH [ssd]
Enabled
Ceph OSD discovery: [osd.-18] OSD PGs

ceph.[osd.-18,num_pgs]

90d
365d
Zabbix trapper
Ceph CRUSH [ssd]
Enabled
Ceph OSD discovery: [osd.-18] OSD up
Triggers 1
ceph.[osd.-18,up]

90d
365d
Zabbix trapper
Ceph CRUSH [ssd]
Enabled
Ceph OSD discovery: [osd.-55] OSD fill
Triggers 2
ceph.[osd.-55,osd_fill]

90d
365d
Zabbix trapper
Ceph CRUSH [default]
Enabled
Ceph OSD discovery: [osd.-55] OSD in

ceph.[osd.-55,in]

90d
365d
Zabbix trapper
Ceph CRUSH [default]
Enabled
Ceph OSD discovery: [osd.-55] OSD latency apply

ceph.[osd.-55,osd_latency_apply]

90d
365d
Zabbix trapper
Ceph CRUSH [default]
Enabled
Ceph OSD discovery: [osd.-55] OSD latency commit

ceph.[osd.-55,osd_latency_commit]

90d
365d
Zabbix trapper
Ceph CRUSH [default]
Enabled
Ceph OSD discovery: [osd.-55] OSD PGs

ceph.[osd.-55,num_pgs]

90d
365d
Zabbix trapper
Ceph CRUSH [default]
Enabled
Ceph OSD discovery: [osd.-55] OSD up
Triggers 1
ceph.[osd.-55,up]

90d
365d
Zabbix trapper
Ceph CRUSH [default]
Enabled
Ceph OSD discovery: [osd.-56] OSD fill
Triggers 2
ceph.[osd.-56,osd_fill]

90d
365d
Zabbix trapper
Ceph CRUSH [default]
Enabled
Ceph OSD discovery: [osd.-56] OSD in

ceph.[osd.-56,in]

90d
365d
Zabbix trapper
Ceph CRUSH [default]
Enabled
Ceph OSD discovery: [osd.-56] OSD latency apply

ceph.[osd.-56,osd_latency_apply]

90d
365d
Zabbix trapper
Ceph CRUSH [default]
Enabled
Ceph OSD discovery: [osd.-56] OSD latency commit

ceph.[osd.-56,osd_latency_commit]

90d
365d
Zabbix trapper
Ceph CRUSH [default]
Enabled
Ceph OSD discovery: [osd.-56] OSD PGs

ceph.[osd.-56,num_pgs]

90d
365d
Zabbix trapper
Ceph CRUSH [default]
Enabled
Ceph OSD discovery: [osd.-56] OSD up
Triggers 1
ceph.[osd.-56,up]

90d
365d
Zabbix trapper
Ceph CRUSH [default]
Enabled

One last "oddity" in my environment setup is that I'm not running containerized, I'm just running "legacy" as cephadm states, but hopefully this isn't the root cause of this.

Reed 

On Jun 6, 2020, at 3:24 AM, Gert Wieberdink <gert.wieberdink@ziggo.nl> wrote:

Trying to configure Zabbix module in Octopus 15.2.3.
CentOS 8.1 environment. Installed zabbix40-agent for CentOS 8.1 (from epel repository). This will also install zabbix_sender.
After enabling the Zabbix module in Ceph, I configured my Zabbix host and Zabbix identifier.
# ceph zabbix config-set zabbix_host <zabbix-fqdn>
# ceph zabbix config-set zabbix_identifier <ident>
# ceph zabbix config-show
Error EINVAL: Traceback (most recent call last):
 File "/usr/share/ceph/mgr/mgr_module.py", line 1153, in _handle_command
   return self.handle_command(inbuf, cmd)
 File "/usr/share/ceph/mgr/zabbix/module.py", line 407, in handle_command
   return 0, json.dumps(self.config, index=4, sort_keys=True), ''
 File "/lib64/python3.6/json/__init__.py", line 238, in dumps
   **kw).encode(obj)
TypeError: __init__() got an unexpected keyword argument 'index'

# ceph -v
ceph version 15.2.3 (d289bbdec69ed7c1f516e0a093594580a76b78d0) octopus (stable)
# ceph health detail
HEALTH_OK

Anyone found a solution?
rgds,
-gw
_______________________________________________
ceph-users mailing list -- ceph-users@ceph.io
To unsubscribe send an email to ceph-users-leave@ceph.io