Difference between revisions of "Documentation:Errors/fr"

From OCS Inventory NG
Jump to: navigation, search
(Erreurs HTTP de l'agent)
(Erreurs HTTP de l'agent)
 
Line 111: Line 111:
 
'''Je vois dans les journaux de l'agent des erreurs HTTP. Qu'est-ce que cela signifie ?'''
 
'''Je vois dans les journaux de l'agent des erreurs HTTP. Qu'est-ce que cela signifie ?'''
  
* '''500''': le serveur rencontre un problème interne. Regardez les fichiers journaux d'Apache, spécialement le fichier "error.log", généralement localisé sous "/var/log/httpd".
+
* '''500''': le serveur rencontre un problème interne. Regardez les fichiers journaux d'Apache, spécialement le fichier "error.log", généralement localisé sous "/var/log/apache2/".
Cette erreur provient souvent d'une erreur dans la partie du fichier de configuration du moteur OCS (ocsinventory-server.conf) servant à la connexion à la base de données (ocsweb par défaut).
+
Cette erreur provient souvent d'une erreur dans la partie du fichier de configuration du moteur OCS (ocsinventory-server.conf) servant à la connexion à la base de données.
  
 
   # Master Database settings
 
   # Master Database settings

Latest revision as of 21:21, 7 January 2014

Erreurs fréquentes

Problèmes d'exécution de l'agent

Le lanceur OcsLogon.exe sous Windows ne télécharge pas l'agent

Quand je lance l'agent OcsLogon.exe, les fichiers d'installation de l'agent ne sont pas téléchargés.

Le lanceur "OcsLogon.exe" doit être renommé avec l'adresse IP du serveur de communication ou son nom DNS (ex: 192.168.1.12.exe ou ocs_com.domain.tld.exe). Si cela est déjà fait, vous avez peut-être configuré l'usage du proxy dans Internet Explorer et OCS l'utilise dans sa configuration. Essayez de désactiver l'usage du proxy en lançant OcsLogon avec l'argument de commande '/NP'. Dans tous les cas, lancez OcsLogon with l'argument "/DEBUG" puis lisez les fichiers journaux "C:\ocs-ng\ocslogon.log" et "C:\ocs-ng\computer_name.log".

Ce qui suit est un exemple typique de contenu du fichier OcsLogon.bat faisant part d'un problème de lancement :

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

Tel que vous le lisez, le lanceur utilise les paramètres de proxy d'IE, ce qui est la raison de l'erreur "HTTP/1.1 500 Internal Server Error" quand est téléchargé le fichier "ocsagent.exe". Cela signifie que le lanceur n'est pas capable de télécharger le fichier d'installation de l'agent. Ainsi, essayez de désactiver l'usage du proxy en ajoutant "/NP" lors du lancement de l'agent, et ensuite lisez les chapitres intitulés § Erreurs HTTP de l'agent et ensuite § Erreurs du serveur de communication.

N.B. : L'erreur "label" n'est pas blocante. Cela signifie que vous n'utilisez pas le TAG.

L'agent Windows n'envoie pas l'inventaire au serveur

J'ai installé le serveur OCS Inventory NG tel que dit le manuel, mais quand je lance l'agent, rien n'apparaît dans la console d'administration.

Sur les ordinateurs clients Windows, lancez "INSTALL_FOLDER\ocsinventory.exe /server:communication_server_ip /debug". Un fichier journal "computer_name.log" est créé dans le répertoire "C:\ocs-ng", qui vous aidera à trouver le problème. Généralement, vous verrez quelque chose comme "...is not a well configured ocs server" et une erreur HTTP (voir le chapitre § Erreurs HTTP de l'agent).

Ce qui suit est le contenu typique du fichier "computer_name.log" d'un agent en erreur :

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.

Tel que vous pouvez le lire, l'agent n'utilise pas les paramètres du proxy d'IE ("HTTP SERVER: Connection WITHOUT proxy"), et il y a l'erreur "HTTP SERVER: The server is not a well configured OCS server" suivi de "Error 500". Veuillez lire les chapitres intitulés § Erreurs HTTP de l'agent et ensuite § Erreurs du serveur de communication.

L'agent Linux n'envoie pas l'inventaire au serveur

J'ai installé le serveur OCS Inventory NG tel que dit dans le manuel, mais quand je lance l'agent Linux, rien n'apparaît dans la console d'Administration.

Sur les ordinateurs clients Linux, vous pouvez utiliser "ocsinv -debug" ou "ocsinv -info" pour obtenir un suivi.

Généralement, vous verrez quelque chose comme "...is not a well configured ocs server" et une erreur HTTP. Veuillez lire les chapitres intitulés § Erreurs HTTP de l'agent et ensuite § Erreurs du serveur de communication.

Erreurs HTTP de l'agent

Je vois dans les journaux de l'agent des erreurs HTTP. Qu'est-ce que cela signifie ?

  • 500: le serveur rencontre un problème interne. Regardez les fichiers journaux d'Apache, spécialement le fichier "error.log", généralement localisé sous "/var/log/apache2/".

Cette erreur provient souvent d'une erreur dans la partie du fichier de configuration du moteur OCS (ocsinventory-server.conf) servant à la connexion à la base de données.

 # Master Database settings
 # Replace localhost by hostname or ip of MySQL server for WRITE
 PerlSetEnv OCS_DB_HOST localhost
 # Replace 3306 by port where running MySQL server, generally 3306
 PerlSetEnv OCS_DB_PORT 3306
 # Name of database
 PerlSetEnv OCS_DB_NAME x_DATABASE_x
 PerlSetEnv OCS_DB_LOCAL x_DATABASE_x
 # User allowed to connect to database
 PerlSetEnv OCS_DB_USER x_LOGIN_x
 # Password for user
 PerlSetVar OCS_DB_PWD x_PASSWORD_x

Relancer apache après modifications.

  • 404: l'url "/ocsinventory" ne peut être trouvé sur le serveur. Vous avez fait une erreur dans la configuration d'Apache. Avez-vous inclu le contenu de configuration Apache dans le fichier de configuration d'Apache ? Avez-vous mis-à-jour ce contenu selon vos besoins ?
  • 301: Cette erreur signifie que vous avez toujours un répertoire nommé "/ocsinventory" dans votre serveur Apache, et que ce nom est en conflit avec la directive <location> du fichier de configuration apache. Vous devez changer le nom du répertoire "/ocsinventory".

Dans tous les cas, vous devriez lire les journaux du serveur de communication et vérifier le chapitre intitulé § Erreurs du serveur de communication.

Erreurs dans la console d'Administration

Erreur MySQL Max_allowed_packet

Si vous rencontrez un message d'erreur avec l'erreur MySQL "max_allowed_packet", vous devez modifier la configuration de MySQL en augmentant la taille maximale de paquet acceptée par MySQL. Nous recommandons de paramétrer cette valeur à 4 Mo.

Ouvrez le fichier "my.cnf" (habituellement disponible dans le répertoire "/etc" sous Linux, et dans “C:\OCSinventoryNG\xampp\mysql\bin” sous Windows) et ajoutez la ligne “max_allowed_packet=4M” dans les sections “[mysqld]”, “[mysql.server]” ou “[safe_mysqld]”.

Exemple de fichier de configuration MySQL my.cnf
[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

Alors, redémarrez le serveur MySQL :

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

Le client MySQL ne supporte pas le protocole d'authentification

Si vous rencontrez un message d'erreur avec une erreur MySQL "Client does not support authentication protocol requested by server; consider upgrading MySQL client", vous devez activer le support de l'ancienne méthode d'enregistrement pour les mots-de-passe dans votre configuration de MySQL.

[[Image:]]

Il y a deux façons de faire cela :

  1. Ajoutez la directive "old-password" dans le fichier "my.cnf"
Exemple de fichier de configuration MySQL my.cnf
# The MySQL server
[mysqld]
old-passwords
port      = 3306
socket     = mysql
  1. Ajoutez l'argument "--old-password" en ligne de commande lors du lancement du serveur MySQL.

Puis, redémarrez le serveur MySQL :

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

Maintenant, vous devez mettre-à-jour le mot-de-passe 'root' par les arguments de commandes suivants :

  • Connectez-vous à la base de données MySQL en tant que root pour mettre-à-jour son mot-de-passe : “mysql –u root –p mysql”
  • Ensuite, faites la modification suivante : “update user set password=OLD_PASSWORD(‘root_password’) where user=’root’;”
  • Une fois fait, sortez de l'interpréteur de commande MySQL par la commande 'exit'.
Exemple de modification du mot-de-passe root
[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]#

Requête PHP content-lenght

Si vous lisez dans le fichier journal d'erreur d'Apache un message tel que le suivant :

[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

Cela est dû à la directive Apache “LimitRequestBody” qui est utilisée pour limiter la taille des requêtes HTTP.

Pour fixer cela, ouvrez le fichier de configuration Apache "httpd.conf", habituellement dans le répertoire "/etc/httpd/conf" (dans certaines distributions, la configuration d'Apache pour PHP peut résider ailleurs, tel que dans un répertoire “/etc/httpd/conf.d”).

Cherchez la directive "LimitRequestBody" et assurez-vous que la taille soit au moins de 4 Mo (4194304) et non par défaut de 512 Ko (524288).

Exemple de configuration Apache pour PHP
#
# 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>

Modifiez cette valeur si besoin et redémarrez le service Apache.

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

Taille du téléversement pour le déploiement des paquets

Tous les paramètres de configuration pour votre installation sont contenus dans le fichier "php.ini" ou les fichiers de configuration d'Apache. Quelques fois ces paramètres peuvent être outre-passés par des directives dans les fichiers .htaccess ou lorsque des scripts les comportent eux-mêmes. Toutefois vous ne pouvez outre-passer ces paramètres qui affectent le téléversement de fichiers avec des directives .htaccess. Vous devriez juste les concentrer dans le fichier ini.

Vous pouvez appeler la fonction phpinfo() pour trouver la location de votre fichier "php.ini", et les valeurs courantes pour les paramètres définis que nous aurions besoin de modifier :

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

La première fois, il est clairement évident que cela est inactif, que le téléversement est désactivé, ainsi vous ne serez pas capable de téléverser des logiciels pour le déploiement. Nous verrons les autres paramètres de configuration en détail, ci-dessous.

N'oubliez pas de redémarrer le serveur web Apache pour que les changements prennent effets.

upload_max_size et post_max_size
memory_limit
max_execution_time et max_input_time
Commentaires additionnels

Erreurs du serveur de Communication

Je vois "Unknown directive PerlRequire..." dans les fichiers log d'Apache

Je vois "Can't locate [Perl module name], cannot resolve handler Ocsinventory.pm..." dans les fichiers log d'Apache

Je vois "Cannot open log file: ..." dans les fichiers log d'Apache. Le serveur de Communication ne peut pas écrire ses fichiers log

Permissions des fichiers et répertoires sous Linux

Obtenir l'aide dans les forums

Si vous n'êtes pas capable de diagnostiquer vous-mêmes les problèmes, vous pouvez obtenir de l'aide au moyen des forums d'OCS Inventory NG (http://forums.ocsinventory-ng.org).

Si vous faites cela, veuillez nous fournir :

  • le système d'exploitation du Serveur
  • la version du serveur d'OCS Inventory NG et son niveau de patch
  • le système d'exploitation de l'Agent
  • la version de l'agent d'OCS Inventory NG
  • les fichiers log d'exécution de l'Agent
    • Faites "Répertoire_d_Installation_de_l_Agent/ocsinventory.exe /NP /DEBUG /SERVER:adresse_ip_de_votre_serveur" sous Windows. Un fichier log nommé "le_nom_de_votre_ordinateur.log" est crée dans le répertoire d'installation de l'agent.
    • Faites "ocsinv -debug > ocsinv.log" sous Linux. Le fichier log est "oscinv.log".
  • Le fichier error.log d'Apache, localisé sous Windows dans "Répertoire_d_Installation_du_Serveur\xampp\apache\logs\error.log" et sous Linux dans "/var/log/httpd/error.log".
  • Le fichier log d'OCS Inventory NG, localisé sous Windows dans "Répertoire_d_Installation_du_Serveur\xampp\apache\logs\ocsinventory-NG.log" et sous Linux dans "/var/log/ocsinventory-NG/ocsinventory-NG.log".

Merci d'avance !