i can collect system.localtime[utc} and that's awesome. If I do I get some very nice data which lets me visually check just how close the clocks are (to a second or so) by comparing the "Last Check" value to the "Last Value" - cool: most are within a second or two (which I hope is true as we have NTP scripts running quite frequently). But sometimes the clocks still drift (virtualized servers drift horribly) and that breaks inter-system authentication and creates much sadness 
Within the db, there are two values: "Last Check" and "Last Value" optimally, I'd be able to subtract "last check" of system.localtime from "last value" (the time it was checked according to the zabbix server) as a Calculated Item and store that, I could then track clock drift and correlate various issues to +/- 1 second. Alas, I'll I've been able to find is to set up a calculated item as last("system.localtime[utc]")-last("NTP.server:system.localtime[utc]"), which does the expected, but since I'm updating/calculating every 30 seconds, the reported value is +/- 15 seconds. Certainly if the clock skewed more than 30 seconds, it would cause problems so I can set an alert for abs()>20 seconds, but i really want to know if the skew is more then 5 seconds, but also what that skew is. This also adds some unnecessary load as the clock isn't skewing in 30 seconds - more like an hour or two would be more than sufficient monitoring resolution.
Fuzzytime is a nice function for a trigger, but it is only binary, for example, i can't graph the skew. I suppose i could create triggers for fuzzytime(1), fuzzytime(2), fuzzytime(4), fuzzytime(8), fuzzytime(16) or something like that, but that makes monitoring a bit cumbersome.
There wouldn't happen to be either a way to create a collected item with postprocessing of "-last("NTP.server:system.localtime[utc]")" (so that the current time would be subtracted before storing the in the database) or perhaps a way to access the "last check" time value in a calculated value for something like last("system.localtime[utc]")-last("last.check.time[utc]")?
Thanks!

Within the db, there are two values: "Last Check" and "Last Value" optimally, I'd be able to subtract "last check" of system.localtime from "last value" (the time it was checked according to the zabbix server) as a Calculated Item and store that, I could then track clock drift and correlate various issues to +/- 1 second. Alas, I'll I've been able to find is to set up a calculated item as last("system.localtime[utc]")-last("NTP.server:system.localtime[utc]"), which does the expected, but since I'm updating/calculating every 30 seconds, the reported value is +/- 15 seconds. Certainly if the clock skewed more than 30 seconds, it would cause problems so I can set an alert for abs()>20 seconds, but i really want to know if the skew is more then 5 seconds, but also what that skew is. This also adds some unnecessary load as the clock isn't skewing in 30 seconds - more like an hour or two would be more than sufficient monitoring resolution.
Fuzzytime is a nice function for a trigger, but it is only binary, for example, i can't graph the skew. I suppose i could create triggers for fuzzytime(1), fuzzytime(2), fuzzytime(4), fuzzytime(8), fuzzytime(16) or something like that, but that makes monitoring a bit cumbersome.
There wouldn't happen to be either a way to create a collected item with postprocessing of "-last("NTP.server:system.localtime[utc]")" (so that the current time would be subtracted before storing the in the database) or perhaps a way to access the "last check" time value in a calculated value for something like last("system.localtime[utc]")-last("last.check.time[utc]")?
Thanks!

Comment