Documentation:Errors/de

From OCS Inventory NG
Jump to: navigation, search

Häufige Fehler

Prüfe die FAQ auf der OCS Inventory Webseite auf Updates.

Fehlerbehandlung bei der Ausführung des Agenten

Das Windows-Startprogramm OcsLogon.exe lädt den Agent nicht vom Server

Wenn das Programm OcsLogon.exe ausgeführt wird, werden die Installationsdateien für den Agenten nicht nachgeladen.

Das Startprogramm "OcsLogon.exe" muss in die IP-Adresse oder den DNS-Name des Kommunikationservers umbenannt werden (beispielsweise: 192.168.1.12.exe oder ocs_com.domain.tld.exe). Falls dies schon erledigt ist, haben sie vielleicht im Internet Explorer einen Proxyserver konfiguriert und OCS verwendet diese Konfiguration. Versuche die Verwendung des Proxyservers abzuschalten, indem Sie OcsLogon.exe mit dem Kommandozeilenschalter "/NP" ausführen. Starten Sie in jedem Fall OcsLogon.exe mit dem Kommandozeilenschalter "/DEBUG" und werfen Sie einen Blick in die Logdateien "C:\ocs-ng\ocslogon.log" und "C:\ocs-ng\computer_name.log".

Dies ist ein typischer Inhalt aus OcsLogon.log nach diesem Fehler:

OCS server port number : Default (80)
Install folder : C:\Ocs-ng
OCSserver is set to: a.b.c.d
Internal Ocslogon version: 4.0.1.4

Testing: C:\ocs-ng\BIOSINFO.EXE
Ocs Inventory NG () was not previously installed.
Start deploying OCS

http://a.b.c.d/ocsinventory/deploy/ocsagent.exe : HTTP/1.1 500 Internal Server Error
http://a.b.c.d/ocsinventory/deploy/label : HTTP/1.1 500 Internal Server Error
End Deploying

Testing ocsagent.exe version:0000

Proxy use.

Launching : C:\ocs-ng\OCSInventory.exe /debug /server:a.b.c.d
Cmdline option is :\\server_share\a.b.c.d.exe /debug

Wie zu sehen ist werden die Proxy-Einstellungen des IE verwendet und es gibt einen "HTTP/1.1 500 Internal Server Error" Fehler beim Nachladen der Datei "ocsagent.exe". Dies bedeutet, dass OcsLogon.exe die Installationsdatei für den Agenten nicht nachladen kann. Versuchen Sie daher die Verwendung des Proxyservers abzuschalten, indem Sie OcsLogon.exe mit dem Kommandozeilenschalter "/NP" ausführen und werfen Sie dann einen Blick auf den Abschnitt "Fehler des Kommunikationservers".


Hinweis: same error for file "label" is not blocking one. This means you aren't using TAG.

Der Windows Agent schickt keine Inventarisierung an den Server

I have set OCS Inventory NG Server up as per the guide, but when I launch agent, nothing appears in Administrationskonsole.

On Windows client Computer, launch "INSTALL_FOLDER\ocsinventory.exe /server:communication_server_ip /debug". A log file "computer_name.log" is created in directory "C:\ocs-ng", which will help you finding problem. Generally, you will see something like: "...is not a well configured ocs server" and an http error (siehe FAQ Windows agent HTTP errors).


Dies ist ein typischer Inhalt aus "computer_name.log" nach diesem Fehler:

OCS INVENTORY ver. 4014 Starting session for Device <COMPUTER_NAME>
on Friday, February 24, 2006 15:34:27...
Command line parameters: </np /debug /server:a.b.c.d> 

WMI Connect: Trying to connect to WMI namespace root\cimv2 on device <Localhost>...OK. 
Registry Connect: Trying to connect to HKEY_LOCAL_MACHINE on device <Localhost>...OK. 
SetupAPI Connect: Trying to connect to SetupAPI on device <Localhost>...OK. 
CHECKINGS: No ocsinventory.dat file found !
IpHlpAPI GetNetworkAdapters...
IpHlpAPI GetNetworkAdapters: Calling GetIfTable to determine network adapter properties...OK
IpHlpAPI GetNetworkAdapters: Calling GetAdapterInfo to determine IP Infos...OK
IpHlpAPI GetNetworkAdapters: OK (1 objects).
DID_CHECK: Mac changed new:<00:40:63:D8:BC:61> old:<>, hname changed new:<COMPUTER_NAME> old:<> 
Generating Unique ID for device <COMPUTER_NAME>...OK (COMPUTER_NAME-2006-02-24-15-34-27) 
CHECKINGS: write <COMPUTER_NAME-2006-02-24-15-34-27> and <00:40:63:D8:BC:61>
in ocsinventory.dat
HTTP SERVER: Connection WITHOUT proxy
HTTP SERVER: Creating CInternetSession to get inventory parameters...OK.
HTTP SERVER: Connecting to server a.b.c.d 80...OK.
HTTP SERVER: Sending prolog query...
HTTP SERVER: The server <a.b.c.d> is not a well configured OCS server 
HTTP ERROR:
<...>

<h1>Server error!</h1> 
<p>The server encountered an internal error and was unable to complete your request.
Either the server is overloaded or there was an error in a CGI script.
</p>
<p>If you think this is a server error, please contact the <a href="mailto:admin@localhost">webmaster</a>. 
</p> 

<h2>Error 500</h2>
<address>
<a href="/">a.b.c.d</a><br />
<span>24.02.2006 15:40:10<br />
Apache/2.2.0 (Win32) DAV/2 mod_ssl/2.2.0 OpenSSL/0.9.8a mod_autoindex_color PHP/5.1.1 mod_perl/2.0.2 Perl/v5.8.7
</span>
</address> 

HTTP SERVER: Closing HTTP connection
WMI Disconnect: Disconnected from WMI namespace.
SetupAPI Disconnect: Disconnected from SetupAPI.
Execution duration: 00:00:00.

Wie man erkennen kann, verwendet der Agent keine IE-Proxy Einstellungen ("HTTP SERVER: Connection WITHOUT proxy"), und es gibt einen Fehler "HTTP SERVER: The server is not a well configured OCS server" gefolgt von "Error 500". Weitere Informationen im Kapitel Agents HTTP Fehler und dann im Kapitel Fehler des Kommunikationservers.

Der Linux Agent schickt keine Inventarisierung an den Server

I have set OCS Inventory NG-Server up as per the guide, but when i launch Linux-Agent, nothing appears in Administrationskonsole.

On Linux Client-Computer, you can use "ocsinv –debug" oder "ocsinv –info" to obtain a trace.


Generally, you will see something like: « ...is not a well configured ocs server » and an http error. So take a look at 11.1.4 Agents HTTP Fehler, and then at § 11.3 Fehler des Kommunikationservers.

Agents HTTP Fehler

In der Logdatei des Agenten gibt es HTTP-Fehler. Was bedeutet dies?

  • 500: Der Server hat einen internen Fehler. You must take a look at Apache Logdateien, especially file "error.log", generally located unter "/var/log/httpd".
  • 404: Die URL "/ocsinventory" kann auf dem Server nicht gefunden werden. Sie haben bei der Apache-Konfiguration vermutlich einen Fehler gemacht. Do you have included in Apache configuration content of apache_config file? Do you have updated this content to match your need ?
  • 301: This error means that you already have a directory named "/ocsinventory" in your Apache-Server, and this name conflicts with Apache <location> directive of apache_config file. Sie müssen das "/ocsinventory"-Verzeichnis umbenennen.

Weerfen Sie in jedem Fall auch einen Blick auf die Logdateien des Kommunikationservers und das Kapitel § 11.3 Fehler des Kommunikationservers.

Fehler der Administration Konsole

MySQL Max_allowed_packet Fehler.

If you encounter an error message with “max_allowed_packet” MySQL error, you must update your MySQL-Konfiguration to increase the Maximum size of packet accepted by MySQL. Wir empfehlen den Wert auf 4 MB zu setzen.


[[Image:]]


Öffne die Datei “my.cnf” (üblicherweise im “/etc” Verzeichnis bei Linux, in “C:\OCSinventoryNG\xampp\mysql\bin” bei Windows) und ergänze die Zeile “max_allowed_packet=4M” in Abschnitt “[mysqld]”, “[mysql.server]” '''oder''' “[safe_mysqld]”, je nachdem, welcher Abschnitt vorhanden ist.

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
max_allowed_packet=4M
[mysql.server]
user=mysql
basedir=/var/lib
max_allowed_packet=4M
[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
max_allowed_packet=4M
Abbildung 15: Beispiel für my.cnf MySQL Konfigurationsdatei

Starte dann den MySQL Server neu:

  • /etc/rc.d/init.d/mysql restart

MySQL Client does not support authentication Protokoll

If you encounter an error message with “Client does not support authentication protocol requested by server; consider upgrading MySQL client” MySQL error, you must enable support for old password storage method in your MySQL configuration.


[[Image:]]


Es gibt 2 Wege dafür:

1. Ergänze die Zeile “old-passwords” in der Datei “my.cnf” (üblicherweise im Verzeichnis “/etc” unter Linux und in “C:\OCSinventoryNG\xampp\mysql\bin” unter Windows), im zu ihrem MySQL-Server gehörenden Abschnitt.

# The MySQL server 
[mysqld] 
old-passwords 
port = 3306 
socket = mysql
Abbildung 16: Beispiel für my.cnf MySQL Konfigurationsdatei.


2. Füge den Schalter “--old-password” zur Kommandozeile hinzu, die den MySQLserver startet.

Dann den MySQL-Server neu starten.

  • /etc/rc.d/init.d/mysql restart

Danach müssen sie das ‘root’-Passwort mit folgendem Befehl aktualisieren:

  • Mit der MySQL-Datenbank als Benuter root verbinden “mysql –u root –p mysql” um dessen Passwort zu aktualisieren.
  • Then, run the update statement “update user set password=OLD_PASSWORD(‘root_password’) where user=’root’;”
  • Once terminated, exit mysql command interpreter by entering “exit” command.
[root@linux root]# mysql -u root -p mysql
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 19 to server version: 4.1.7-standard

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> update user set password=OLD_PASSWORD('admin123') where user='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> exit
Bye
[root@linux root]#
Abbildung 17: Beispiel für die Aktualisierung des MySQL Root-Passworts.

PHP Requested content-length

If you see in apache error log (file error_log or ssl_error.log) message like following:


[Mon Sep 05 18:30:03 2005] [error] [client XXX.XXX.XXX.XXX] Requested content-length
of 831148 is larger than the configured limit of 524288, referer: http://administration_server/ocsreports/?multi=8


That’s because Apache directive “LimitRequestBody” is used to limit size of HTTP requests.


Um das Problem zu beheben öffen Sie die Apache Konfigurationsdatei “httpd.conf”, üblicherweise im Verzeichnis “/etc/httpd/conf” (unter einigen Distributionen ist die Apache Konfiguration für PHP im include-Verzeichnis, üblicherweise “/etc/httpd/conf.d”, zu finden).


Find the directive “LimitRequestBody” and ensure that the size is at least 4 MB (4194304 bytes) und not the default 512 KB (524288 bytes).


#
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated webpages.
#

LoadModule php4_module modules/libphp4.so

#
# Cause the PHP interpreter handle files with a .php extension.
#
<Files *.php>
SetOutputFilter PHP
SetInputFilter PHP
LimitRequestBody 4194304
</Files>
Abbildung 18: Beispiel für Apache-Konfiguration für PHP.

Wenn erforderlich diesen Wert aktualisieren und den Apache-Daemon neu starten.

  • /etc/rc.d/init.d/httpd restart

Uploads size for package deployment

All the configuration settings for your installation are contained in the “php.ini” file or Apache configuration files. Sometimes these setting might be overridden by directives in apache .htaccess files or even with in the scripts themselves. However you cannot over ride the settings that effect file uploads with .htaccess directives in this way. So let's just concentrate on the ini file.


You can call the phpinfo() function to find the location of your “php.ini” file, it will also tell you the current values for the following settings that we need to modify:

  • file_uploads
  • upload_max_filesize
  • max_input_time
  • memory_limit
  • max_execution_time
  • post_max_size

The first one is fairly obvious if you set this off, uploading is disabled for your installation, so you will not be able to upload software for deployment. We will cover the rest of the configuration settings in detail below.


Remember to restart Apache web server for changes to take effect.


upload_max_filesize und post_max_size

Files to deploy are POSTed to the webserver in a format known as 'multipart/form-data'. The post_max_size sets the upper limit on the amount of data that a script can accept in this manner. Ideally this value should be larger than the value that you set for upload_max_filesize.


It's important to realize that upload_max_filesize is the sum of the sizes of all the files that you are uploading. post_max_size is the upload_max_filesize plus the sum of the lengths of all the other fields in the form plus any mime headers that the encoder might include. Since these fields are typically small you can often approximate the upload max size to the post max size.


If you want to deploy files up to 200 MB, you must set in der Datei “php.ini”:

  • upload_max_filesize = 200M
  • post_max_size = 201M

memory_limit

When the PHP engine is handling an incoming POST, it needs to keep some of the incoming data in memory. This directive has any effect only if you have used the --enable-memory-limit option at configuration time. Setting too high a value can be very dangerous because if several uploads are being handled concurrently all available memory will be used up and other unrelated scripts that consume a lot of memory might effect the whole server as well.


So we recommend using the following value in der Datei “php.ini”:

  • memory_limit = 16M

max_execution_time und max_input_time

These settings define the maximum life time of the script and the time that the script should spend in accepting input. If several mega bytes of data are being transfered max_input_time should be reasonably high.


So we recommend disabling these limits using the following value in der Datei “php.ini”:

  • max_execution_time = -1
  • max_input_time = -1

Weitere Kommentare

Der Apache Webserver hat eine LimitRequestBody configuration directive that restricts the size of all POST data regardless of the web scripting language in use. Some RPM installations sets limit request body to 512Kb. You will need to change this to a larger value oder remove the entry altogether.

If you want to deploy files up to 200 MB, you must comment in apache main Konfigurationsdatei.

  • #LimitRequestBody

Anmeldeseite wird nicht angezeigt

Fehlermeldung:
PHP Fatal error: main() [<a href='function.main'>function.main</a>]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "FichierConf" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in /srv/www/ocs/htdocs/ocsreports/header.php on line 46

Lösung:
Setze session.auto_start in der Datei php.ini auf 0:

  • session.auto_start = 0

Fehler des Kommunikationservers

"Unknown directive PerlRequire...." in Apache Logdateien.

Dies bedeutet, dass mod_perl für Apache nicht installiert ist oder beim Start von Apache nicht geladen wurde. Installiere mod_perl und aktualisiere dann die Apache Konfigurationsdatei "httpd.conf" um die mod_perl.so Erweiterung zu laden.

You can check which Version of mod_perl is installed by launching following command:

  • Auf RPM basierendem Linux: rpm -q mod_perl
  • Auf Debian Paketen basierendem Linux: dpkg –l libapache*-mod-perl*
[root@linux conf.d]# rpm -q mod_perl
mod_perl-1.99_16-4.centos4
[root@linux conf.d]#

Falls mod_perl installiert ist, prüfen Sie die Apache Konfigurationsdateien um sicherzustellen, dass mod_perl aktiviert ist. Dort finden Sie etwas ähnliches wie folgendes:

#
# Mod_perl incorporates a Perl interpreter into the Apache web server,
# so that the Apache web server can directly execute Perl code.
# Mod_perl links the Perl runtime library into the Apache web server
# and provides an object-oriented Perl interface for Apache's C
# language API. The end result is a quicker CGI script turnaround
# process, since no external Perl interpreter has to be started.
#

LoadModule perl_module modules/mod_perl.so

Falls nötig, entfernen sie das Kommentarzeichen ( # am Zeilenbeginn) und starten Apache neu.

Weitere Details finden Sie im Apache Handbuch.

I see "Can't locate [Perl module name], cannot resolve handler Ocsinventory.pm..." in Apache log files

Perl module [Perl module name] is not installed on your server. Please, refer to OCS Inventory NG guide or to Perl manual to install missing module.

If this error concerns Perl module "compat.pm" like below

[Thu Mar 02 11:43:56 2006] [error] [client client_ip] failed to resolve handler
`Ocsinventory': Can't locate Apache/compat.pm in @INC (@INC contains:...)

You probably have installed Kommunikationsserver for use with Apache mod_perl version 1.999_21 or previous. Open OCS Inventory NG apache configuration file « ocsinventory.conf » and set variable « OCS_PERL_VERSION » to 2 enable use of mod_perl version 1.999_22 oder höher.

# Which version of mod_perl we are using
# For mod_perl <= 1.999_21, replace VERSION_MP by 1
# For mod_perl > 1.999_21, replace VERSION_MP by 2
PerlSetEnv OCS_MODPERL_VERSION 2

Dann den Apache Webserver neu starten.


If this error concerns Perl Modul "Apache2/connection.pm" like below

[Sun Mar 05 12:46:09 2006] [error] [client client_ip] failed to resolve handle
r `Ocsinventory': Can't locate Apache2/Connection.pm in @INC (@INC contains:...)

You probably have installed Kommunikationserver for use with Apache mod_perl 1.999_22 and newer. Open OCS Inventory NG apache configuration file « ocsinventory.conf » and set variable « OCS_PERL_VERSION » to 1 to enable use of mod_perl version 1.999_21 or previous.

# Which Version of mod_perl we are using
# For mod_perl <= 1.999_21, replace VERSION_MP by 1
# For mod_perl > 1.999_21, replace VERSION_MP by 2
PerlSetEnv OCS_MODPERL_VERSION 1

Dann den Apache Webserver neu starten.

I see "Cannot open log file: ..." in Apache logs. Kommunikationserver is not able to write his logs.

  • Does directory « /var/log/ocsinventory-NG » (or any other path you’ve fill in at setup) exists ?
  • Darf der Apache Webserver in dieses Verzeichnis schreiben ?

Datei- und Verzeichnisrechte unter Linux.

Wir gehen davon aus, dass Apache Web-Server unter dem Benutzer "apache" und der Gruppe "apache" läuft und dass Sie OCS Inventory NG Management-Server wie beschrieben installiert haben:

  • Dateien für die Administration-Konsole sind im Verzeichnis “/var/www/html/ocsreports”
  • Dateien für die Softwareverteilung sind im Verzeichnis “/var/www/html/download”
  • Log-Dateien für den Kommunikationsserver sind im Verzeichnis “/var/log/ocsinventory-NG”


Verzeichnis Datei Besitzer Gruppe Rechte
/var/www/html/download root apache -rwxrwxr-x
Alle Verzeichnisse apache apache -rwxrwxr-x
Alle Dateien apache apache -rw-rw-r--
/var/www/html/ocsreports root apache -rwxrwxr-x
dbconfig.inc.php apache apache -rw-rw-r--
Alle anderen root root -rw-r--r--
/var/www/html/ocsreports/ipd root apache -rwxrwxr-x
Alle Dateien apache apache -rw-rw-r--
/var/www/html/ocsreports/css root root -rwxr-xr-x
Alle Dateien root root -rw-r--r--
/var/www/html/ocsreports/files root root -rw-r--r--
Alle Dateien root root -rw-r--r--
/var/www/html/ocsreports/image root root -rwxr-xr-x
Alle Dateien root root -rw-r--r--
/var/www/html/ocsreports/js root root -rwxr-xr-x
Alle Dateien root root -rw-r--r--
/var/www/html/ocsreports/languages root root -rwxr-xr-x
Alle Dateien root root -rw-r--r--
/var/log/ocsinventory-NG root apache -rwxrwx-r-x
Alle Dateien apache apache -rw-rw-r--

Hilfe in den Foren erhalten

Wenn Sie nicht in der Lage sind das Problem selbst zu diagnostizieren, können Sie Hilfe in den OCS Inventory NG Webforen erhalten (http://forums.ocsinventory-ng.org).


Wenn Sie dies tun, informieren Sie uns über:

  • Server Betriebssystem
  • OCS Inventory NG Server Version und Patchstand
  • Betriebssystem der Agenten
  • Version der OCS Inventory NG Agenten
  • Logdatei von der Ausführung des Agent
    • Führe “AGENT_INSTALL_FOLDER\ocsinventory.exe /NP /DEBUG /SERVER:Ihre_Serveradresse” unter Windows aus. Die Logdatei wird im Ordner “AGENT_INSTALL_FOLDER” mit dem Name “ihr_Computername.log” angelegt.
    • Führe “ocsinv –debug > ocsinv.log” unter Linux aus. Die Logdatei heißt “ocsinv.log”.
  • Apache Server error.log Datei, befindet sich für Windows unter “SERVER_INSTALL_FOLDER\xampp\apache\logs\error.log” und für Linux unter “/var/log/httpd/*error.log”.
  • OCS Inventory NG Server Logdatei befindet sich für Windows unter “SERVER_INSTALL_FOLDER\xampp\apache\logs\ocsinventory-NG.log” und für Linux unter “/var/log/ocsinventory-NG/ocsinventory-NG.log”.

Danke im Vorraus.