Header RSS Feed
 
If you only want to see the articles of a certain category, please click on the desired category below:
ALL Android Backup BSD Database Hacks Hardware Internet Linux Mail MySQL Monitoring Network Personal PHP Proxy Shell Solaris Unix Virtualization VMware Windows Wyse

Nagiosgraph insert.pl: illegal attempt to update (minimum one second step)
Monday - Nov 23rd 2015 - by - (0 comments)

On a new Icinga 2 monitoring server with Nagiosgraph, I became aware of a huge nagiosgraph.log file. A short look into the log file revealed hundreds and hundreds of such errors:

Mon Nov 23 12:29:02 2015 insert.pl 21629 error RRDs::update ERR /var/nagiosgraph/rrd/myhost/HTTP___size.rrd_min: illegal attempt to update using time 1448278091 when last update time is 1448278131 (minimum one second step)
Mon Nov 23 12:29:02 2015 insert.pl 21629 error ds = [
  '/var/nagiosgraph/rrd/myhost/HTTP___size.rrd_min',
  '1448278091:838:0'
];

The error message itself explains the problem pretty well: The RRD file cannot be updated because the data with the current timestamp (1448278091) is older than the existing last entry (1448278131). But how can this happen?

Actually I built this problem on my own. When you take a look at my article How to integrate Nagiosgraph in Icinga 2, you see that I created a wrapper-script (run as a cronjob) which searches for the perfdata logs and combines them. As my search command I used the following find command:

find $perfdatadir/ -type f -regex ".*[0-9]"
/var/spool/icinga2/nagiosgraph/nagiosgraph-host-perfdata.1448278031
/var/spool/icinga2/nagiosgraph/nagiosgraph-host-perfdata.1448278046
/var/spool/icinga2/nagiosgraph/nagiosgraph-perfdata.1448278046
/var/spool/icinga2/nagiosgraph/nagiosgraph-perfdata.1448278031

The script then goes through all the perfdata log files (in the order found by the find command) and combines them. As you can see above, the perfdata file with timestamp 1448278046 was found BEFORE the file with timestamp 1448278031. So the content of the newer file is parsed BEFORE the content of the older file. Hence the error message from Nagiosgraph.

I modified my find command to sort the found files by age:

find $perfdatadir/ -type f -regex ".*[0-9]" -exec ls -tr {} +
/var/spool/icinga2/nagiosgraph/nagiosgraph-perfdata.1448278811
/var/spool/icinga2/nagiosgraph/nagiosgraph-host-perfdata.1448278811
/var/spool/icinga2/nagiosgraph/nagiosgraph-perfdata.1448278826
/var/spool/icinga2/nagiosgraph/nagiosgraph-host-perfdata.1448278826
/var/spool/icinga2/nagiosgraph/nagiosgraph-perfdata.1448278841
/var/spool/icinga2/nagiosgraph/nagiosgraph-host-perfdata.1448278841

And now the errors are gone.

 

Add a comment

Show form to leave a comment

Comments (newest first):

No comments yet.

Go to Homepage home
Linux Howtos how to's
Monitoring Plugins monitoring plugins
Links links

Valid HTML 4.01 Transitional
Valid CSS!
[Valid RSS]

6938 Days
until Death of Computers
Why?