Wednesday, May 22nd 2013, 1:53pm UTC+2

You are not logged in.

  • Login
  • Register

Dear visitor, welcome to Monitoring-Portal.
Although this is a german monitoring forum, please don't hesitate to post in English. Nearly everybody here understands you and will answer in English as well.
If this is your first visit here, please read the Help. It explains how this page works. You must be registered before you can use all the page's features. Please use the registration form to register here or read more information about the registration process. If you are already registered, please login here.

lausser

Professional

Posts: 1,459

Gender: male

Location: München

Occupation: Informatiker

Number of monitoring servers: 1

Nagios Version: 3.2.0

Distributed monitoring: Ja

Redundant monitoring: Ja

Number of hosts: 2000

Number of services: 50000

OS: Linux/SLES11, CentOS5.5

Plugin Version: 1.4.14

NDO Version: 1.4b7

Other Addons: PNP,mod_gearman,OMD,coshsh

1

Saturday, May 10th 2008, 9:45pm

Fehlermeldung "[1210445874] Warning: Unable to move file ....to check results queue."

Hi,

mir sind ein paar Warnings im Logfile (Nagios 3.0.1) aufgefallen:

Source code

1
2
[1210445882] Error: Unable to rename file '/lfs/opt/nagios/instances/instance_plant_shenyang/var/spool/checkresults/checkgjhg3k' to '/lfs/opt/nagios/instances/instance_plant_shenyang/var/spool/checkresults/cny9TqJ': No such file or directory
[1210445882] Warning: Unable to move file '/lfs/opt/nagios/instances/instance_plant_shenyang/var/spool/checkresults/checkgjhg3k' to check results queue.


Laut base/utils.c passiert hier Folgendes:

Aufruf von move_check_result_to_queue("checkgjhg3k");

In der Routine move_check_result_to_queue
- nennt sich "checkgjhg3k" dann *checkresult_file.
- wird ein temoporärer Dateiname output_file mit Namensschema cXXXXXX erzeugt
- wird mit output_file_fd=mkstemp(output_file) ein Filedescriptor zu dieser Temp-Datei angelegt.

wenn das geklappt hat, wird unter Cygwin der Filedescriptor sofort geschlossen
anderswo erst nach dem nächsten Befehl
der da lautet: result=my_rename(checkresult_file,output_file);
Wozu also den Filedescriptor auf- und gleich wieder zumachen, wenn my_rename sowieso mit Dateinamen arbeitet und es beim Umbenennen sicherlich nicht notwendig ist, daß die Zieldatei schon vorher angelegt wurde.

Dann wird ein ok-File angelegt namens output_file + ".ok" und zwar unabhängig davon, ob der rename von checkresult_file zu output_file geklappt hat. (Bei mir liegen ein paar dieser ok-Files rum, die anscheinend unberechtigterweise auf diese Art entstanden sind)

Dann kommt wieder result ins Spiel. Hat my_rename(checkresult_file,output_file) geklappt, dann wird das checkresult_file gelöscht. Kommt mir merkwürdig vor, denn eigentlich dürfte die Datei nach erfolgreichem rename nicht mehr existieren.

Hat my_rename nicht geklappt, dann kommt obige "Unable to move..." Meldung.
Aus irgendeinem Grund scheint hier gelegentlich ein checkresult_file abhanden zu kommen.

Ich weiss nicht, ob mir die Sonne heute das Hirn verbrannt hat oder ob ich da einer Sache auf der Spur bin. Kann einer von euch diese Ungereimtheiten mit dem ok-File und dem unlink nachvollziehen?

Gerhard

lausser

Professional

Posts: 1,459

Gender: male

Location: München

Occupation: Informatiker

Number of monitoring servers: 1

Nagios Version: 3.2.0

Distributed monitoring: Ja

Redundant monitoring: Ja

Number of hosts: 2000

Number of services: 50000

OS: Linux/SLES11, CentOS5.5

Plugin Version: 1.4.14

NDO Version: 1.4b7

Other Addons: PNP,mod_gearman,OMD,coshsh

2

Thursday, January 22nd 2009, 9:11pm

Hi,
ich hatte das Phänomen gerade wieder. Gleichzeitig haben auch Plugins gesponnen. Ich bin auf die 3.0.5 zurück und jetzt passts wieder.
Hat denn in der Zwischenzeit niemand das Gleiche beobachtet?
Gerhard

p.s. Google schweigt sich aus. Nur einmal hat einer dieses Problem auf der Mailing-List zur Sprache gebracht. Andreas Ericssons Antwort lautet "Perhaps you missed the "what's new" section?"
Habe ich da auch etwas verpasst?

lausser

Professional

Posts: 1,459

Gender: male

Location: München

Occupation: Informatiker

Number of monitoring servers: 1

Nagios Version: 3.2.0

Distributed monitoring: Ja

Redundant monitoring: Ja

Number of hosts: 2000

Number of services: 50000

OS: Linux/SLES11, CentOS5.5

Plugin Version: 1.4.14

NDO Version: 1.4b7

Other Addons: PNP,mod_gearman,OMD,coshsh

3

Monday, January 26th 2009, 2:39pm

Ich kapier's nicht. Ich habe eine nagelneue 3.0.6-Installation und verwende die Beispielkonfiguration. Alle Services sind auf passiv gesetzt, bis auf den "Current Load". Wenn ich mich jetzt mit strace an den nagios-Prozess (24254) hänge und der Service ausgeführt wird, dann sehe ich:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
...
[pid 24254] open("/usr/local/nagios/var/spool/checkresults/checkh8exMx", O_RDWR|O_CREAT|O_EXCL, 0600) = 6
...
[pid 24254] write(6, "### Active Check Result File ###"..., 289) = 289
[pid 24254] open("/usr/local/nagios/libexec/check_load", O_RDONLY) = 7
Hier schaut Nagios ins Plugin rein, um zu sehen, ob es ein Kandidat für embedded Perl ist
[pid 24254] read(7, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\2\0>\0\1\0\0\0@\26@\0\0\0\0\0"..., 4096) = 4096
[pid 24254] close(7)    
...
[pid 24307] clone(Process 24308 attached (waiting for parent)
[pid 24308] clone(Process 24309 attached (waiting for parent)
[pid 24309] execve("/bin/sh", ["sh"..., "-c"..., "/usr/local/nagios/libexec/check_"...], [/* 201 vars */]) = 0
[pid 24309] execve("/usr/local/nagios/libexec/check_load", ["/usr/local/nagios/libexec/check_"..., "-w"..., "5.0,4.0,3.0"..., "-c"..., "10.0,6.0,4.0"...], [/* 201 vars */]) = 0
...
[pid 24309] exit_group(0)               = ?
Process 24309 detached
...
[pid 24308] write(6, "finish_time=1232975734.807485\nea"..., 201) = 201
[pid 24308] close(6)                    = 0
...
[pid 24308] open("/usr/local/nagios/var/spool/checkresults/cBA2zEX", O_RDWR|O_CREAT|O_EXCL, 0600) = 5
[pid 24308] rename("/usr/local/nagios/var/spool/checkresults/checkh8exMx", "/usr/local/nagios/var/spool/checkresults/cBA2zEX") = 0
[pid 24308] close(5)                    = 0
[pid 24308] open("/usr/local/nagios/var/spool/checkresults/cBA2zEX.ok", O_WRONLY|O_CREAT|O_TRUNC, 0600) = 5
[pid 24308] close(5)                    = 0
[pid 24308] unlink("/usr/local/nagios/var/spool/checkresults/checkh8exMx") = -1 ENOENT (No such file or directory)

Ich kapier's nicht.
1. Erzeuge checkh8exMx und schreib einen Header rein
2. Starte Plugin und schreib das Resultat in checkh8exMx
3. Erzeuge cBA2zEX und lass den Dateihandle offen.
4. Benenne checkh8exMx in cBA2zEX um.
5. Schliesse den Dateihandle.
6. Erzeuge eine leere cBA2zEX.ok
7. Lösche checkh8exMx und wundere dich, warum es schiefgeht.

?( Gerhard

Posts: 1

Number of monitoring servers: 1

Nagios Version: 3.0.6

Distributed monitoring: Nein

Redundant monitoring: Nein

Number of hosts: 15

Number of services: 15

OS: Debian

Plugin Version: latest

NDO Version: 1

4

Thursday, January 29th 2009, 2:23pm

My two cents

Hi,

I've solved the "Unable to move file ..." problem on my Debian box.
Actually mkstemp didn't return a fd but 0.

just replace "output_file_fd>0" by "output_file_fd>=0"

in base/utils.c

2190 /* file created okay */
2191 if(output_file_fd>=0){

Hope this helps!

Sincerly

Greg

This post has been edited 1 times, last edit by "Grégoire Reboul" (Jan 29th 2009, 3:24pm)