…in the configuration files, that is. For a long time, if you made a mistake in a configuration parameter’s name, Zabbix processes would not really tell you about that. This is finally changing with Zabbix 1.8.6.
The dark past
Up to now, Zabbix daemons would do something nasty when they encountered an unknown parameter in configuration files – for example, if one made a typo and instead of DBName option wrote DBNaame, Zabbix server would read configuration file up to that entry, fail… and still try to start up. What would this mean? That not only the misspelt configuration parameter would be ignored, but also everything after it, possibly without any warning at all.
Does that sound painful enough? Rightfully so, it has been a bane for both novice and experienced users. For example, writing TrendSizeCache instead of the correct version, TrendCacheSize, would not only use default trend cache value (4 MB), but also skip all the parameters that would follow it.
Now, this might get worse. Configuration parameters are case sensitive. Did you write Startpollers? There we go, you’re not getting the value specified, your server will run with the default amount of pollers, which is 5. And remember that it will also ignore all other parameters after this misspelt one.
The bright future
Zabbix 1.8.6 gets tough. It gets rough. It checks your parameter spelling and teaches you a hard lesson. Right, right, not really – it actually keeps a gentleman calm as if receiving an insult in a pub and refusing to fight. Zabbix daemons will refuse to start up if incorrect parameters will be detected in the corresponding configuration file.
While for most people that will be a wonderful thing that will allow to catch spelling mistakes early, it also means that your Zabbix daemons might not start up after upgrading to 1.8.6. It should be easy to solve – just be careful with the upgrade and test your configuration files before doing a full roll-out in production.
This is especially relevant for people with long-living Zabbix installations that have been upgraded and upgraded, possibly since Zabbix 1.0, thus accumulating all kind of cruft in the configuration files. Whether it’s the amusingly named poller parameter in older versions or anything else, Zabbix might not start up after the upgrade, if you were careless with the configuration files.
It should be noted that specifying a parameter more than once will still result in later values overriding all the previous definitions – that is not changed from previous versions.