v-zhuravlev / zbx-smartctl

Templates and scripts for monitoring disks health with Zabbix and smartmontools
https://share.zabbix.com/storage-devices/smartmontools/smart-monitoring-with-smartmontools-lld
GNU General Public License v3.0
245 stars 127 forks source link

missing SMART attributes and zabbix log #60

Closed ferreol closed 6 years ago

ferreol commented 6 years ago

Hello

one of the reasons I tried to separate SSDs from HDDs in discovery was to have different discovery rules and items per devices.

The reason is that in zabbix server log, if the SMART regex does not catch a value, it prints an error. With different hard drives models, they all have different subsets of SMART attributes. This, by default, generates a lot of predictable and avoidable noise in zabbix server log.

Some items try to catch different SMART attributes (in case they are not all present, and mean the same thing), like with temperature.

I adapted the LDD rules and managed to have no SMART log noise with SSD and HDD

However, recenly a Dell replacement Toshiba HDD just did not provide Current_Pending_Sector in SMART (which is on all our other disks model and vendors...)

I could be possible to have smart attribues fully dynamical, but that's perhaps pushing the things too far, and some human intelligence may be needed to "regroup" same meaning SMART attributes.

I wonder what's your thought on this.

v-zhuravlev commented 6 years ago

I'm afraid there is no good solution for this in Zabbix right now. At least none I'm aware of. Either you have log noise or template configuration hell. You could have of course separate rules for SSD and HDD(and there is a LLD macro {#DISKTYPE} now that will help you) to reduce log noise to minimum.

But to do zero noise template - you would need to go deeper: with template for each Disk vendor and maybe even disk models....) Thats not acceptable IMHO.

As for doing this dynamic... You could have separate LLD rule for each SMART attribute. But thats configuration hell again. And not possible to do trigger dependencies between triggers then.

Cheers.