PDA

View Full Version : [Résolu]-> Syslog + Centreon = Mysql Error : DB Error: no such field


petite pomme
20th February 2009, 12:07
Bonjour, suite à l'installation de php-syslog-ng et du module syslog-ng (+ paramétrage dans Centreon), j'obtiens un message d'erreur dans l'onglet Syslog de Centreon :

Mysql Error : DB Error: no such fieldMysql Error : DB Error: no such field
Fatal error: Call to undefined method DB_Error::numrows() in /usr/local/centreon/www/modules/Syslog/syslog.php on line 202

Une petite idée sur ce problème ?

AkHeNaToN
20th February 2009, 13:03
Bonjour,

Petites questions pour le debug

As tu suivi le Wiki: http://syslog.modules.centreon.com/wiki/Install_fr
As tu bien renseigné les champs de la partie administration du module dans le menu: "Administration > Modules > Syslog > Configuration"
Si les paramètres précédant sont bien renseignés, la table indiquée dans la partie configuration existe-elle ?
Si elle existe, est-elle bien remplie ?
Quelle version utilises tu ? (Tag: RC1, RC2, RC3 ou SVN/Trunk)

petite pomme
20th February 2009, 14:54
Bonjour et merci pour votre aide !

* Quelle version utilises tu ? (Tag: RC1, RC2, RC3 ou SVN/Trunk?
J'utilise la RC3 / Debian Etch4 / Nagios 3.0.6 / Centreon 2.0

* As tu suivi le Wiki: http://syslog.modules.centreon.com/wiki/Install_fr
Oui, j'ai bien suivi le wiki, même si j'ai rencontré quelques soucis durant la procédure.

* As tu bien renseigné les champs de la partie administration du module dans le menu: "Administration > Modules > Syslog > Configuration
Les champs sont bien renseignés dans Centreon et correspondent à ceux de la BS sql (user, pwd, BD, tables).

* Si les paramètres précédant sont bien renseignés, la table indiquée dans la partie configuration existe-elle ?
La table existe bien.

* Si elle existe, est-elle bien remplie ?
Il me semble que oui, je suis un novice en la matière mais elle doit être correctement remplie.

Suite au message d'erreur de Centreon j'ai commenté (#) la ligne 202, Centreon m'indiquait alors une erreur ligne 219 que j'ai aussi commenté puis la ligne 227, commentée aussi à son tour et la les messages d'erreur ont disparu laissant place à ça :

Mysql Error : DB Error: no such fieldMysql Error : DB Error: no such fieldMysql Error : DB Error: no such field

Les onglets sont vides.

Je mets les captures d'écran ci-dessous (Centreon, script avec lignes commentées, extrait de la BD syslog) :

http://img3.imageshack.us/img3/8883/systy4.png (http://imageshack.us)

http://img3.imageshack.us/img3/9527/syslel5.png (http://imageshack.us)

+---------------------+
| Tables_in_syslog |
+---------------------+
| actions |
| cemdb |
| logs |
| search_cache |
| syslog_actions |
| syslog_cemdb |
| syslog_logs |
| syslog_search_cache |
| syslog_user_access |
| syslog_users |
| user_access |
| users |
+---------------------+

http://img514.imageshack.us/img514/4241/sysputaf8.png (http://imageshack.us)

AkHeNaToN
20th February 2009, 15:17
Si je ne m'abuse, tu as commentés les lignes suivantes:


202 $rows = $DBRESULT->numrows();


et

while ($DBRESULT1->fetchInto($data)) {
220 $elemArr[] = array("RowMenu_datetime"=>$data["datetime"],
221 "RowMenu_host"=>$data["host"],
222 "RowMenu_facility"=>$data["facility"],
223 "RowMenu_priority"=>$data["priority"],
224 "RowMenu_tag"=>$data["tag"],
225 "RowMenu_program"=>$data["program"],
226 "RowMenu_msg"=>htmlentities($data["msg"]));
227 }


La ligne 202 sert à obtenir le nombre de lignes total (qui correspond au nombre de message syslog) entre les dates de début et de fin.

Les lignes 219 à 227 servent a récupérer les X derniers messages syslog afin de les afficher.

L'erreur MySQL que tu as provient du fait que ces deux requêtes précédante on un résultat de ZERO lignes => il est donc impossible de les parser.

Alors:

Soit la table dans laquelle la requête est vide (mais ca devrait pas cracher d'erreur).
Soit les champs de la table ne sont pas conforme à la requête:

Pas la bonne table définie dans les options d'administration
Les champs de la table ne sont pas tous corrects



Peut tu faire un screenshoot de la page d'administration du module et mettre le schéma SQL complet de ta base de données SYSLOG.

AkHeNaToN
20th February 2009, 15:18
Arf tu as fait ce que je te demandais avant que je finisse mon message.
Je regarde ca de suite

envoi moi le schéma de cette table stp "syslog_logs "

petite pomme
20th February 2009, 15:26
Je crois qu'il y a un soucis, même si je suis novice en sql il me semble que la table syslog_logs est vide :

mysql> select * from syslog_logs;
Empty set (0.00 sec)

mysql> select * from syslog_users;
+------------+----------------------------------+----------------------------------+---------------------+
| username | pwhash | sessionid | exptime |
+------------+----------------------------------+----------------------------------+---------------------+
| admin | 0c407bfd246cd9272702a1c85fa0a435 | 0db45ddd4a8e747d7fbe9ce6b3ae3621 | 2009-02-20 14:54:13 |
| sysloguser | 0c407bfd246cd9272702a1c85fa0a435 | NULL | NULL |
+------------+----------------------------------+----------------------------------+---------------------+
2 rows in set (0.00 sec)

AkHeNaToN
20th February 2009, 15:31
Autres questions:

Pourquoi certaines tables ont un préfix "syslog" ?
Tes logs sont enregistrés dans la table "logs" ou "syslogs" ? (c'est marqué dans le pipe utilisé par syslog-ng.


Je souhaierais le schéma de la table "syslog_logs" et "logs"

petite pomme
20th February 2009, 15:43
Pourquoi certaines tables ont un préfix "syslog" ?
Lors de la configuration de php-syslog-ng j'ai indiqué dans la case prefix "syslog_".

Tes logs sont enregistrés dans la table "logs" ou "syslogs" ? (c'est marqué dans le pipe utilisé par syslog-ng.
Peux tu m'indiquer la procédure pour avoir accés à ce fameux pipe de syslog-ng ?



mysql> select * from syslog_logs;
Empty set (0.00 sec)

mysql> select * from logs;
Empty set (0.00 sec)


Les tables sont vides ?

AkHeNaToN
20th February 2009, 15:52
Dans la partie "3.1 Modification pour envoyer les logs dans la base de données créée par php-sysslog-ng" du wiki, lors de la configuration du fichier syslog-ng.conf

il y a ce passage:

destination d_mysql {
pipe("/var/log/mysql.pipe"
template("INSERT INTO logs
(host, facility, priority, level, tag, datetime, program, msg)
VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$LEVEL', '$TAG', '$YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC',
'$PROGRAM', '$MSG' );\n") template-escape(no));
};


Cela créé un pipe qui envoi les message syslog dans la table "logs" dans cette configuration.

Comme tu as préfixé tes tables, tu doit le remplacer par

destination d_mysql {
pipe("/var/log/mysql.pipe"
template("INSERT INTO syslog_logs
(host, facility, priority, level, tag, datetime, program, msg)
VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$LEVEL', '$TAG', '$YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC',
'$PROGRAM', '$MSG' );\n") template-escape(no));
};

Cela te permettra d'envoyer les messages syslog dans cette table.

Comme je te l'ai demandé, je voudrais le schéma de la table "syslog_logs"

$> mysql -u root
mysql> use syslog;
mysql> desc syslog_logs;
+----------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+---------------------+------+-----+---------+----------------+
| host | varchar(128) | YES | MUL | NULL | |
| facility | varchar(10) | YES | MUL | NULL | |
| priority | varchar(10) | YES | MUL | NULL | |
| level | varchar(10) | YES | | NULL | |
| tag | varchar(10) | YES | | NULL | |
| datetime | datetime | YES | MUL | NULL | |
| program | varchar(15) | YES | MUL | NULL | |
| msg | text | YES | | NULL | |
| seq | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
| counter | int(11) | NO | | 1 | |
| fo | datetime | YES | | NULL | |
| lo | datetime | YES | | NULL | |
+----------+---------------------+------+-----+---------+----------------+


Question: Comme tes tables "logs" et "syslogs_logs" sont vide, est-ce que ton service syslog-ng tourne ?

Utilise la commande pour le savoir

ps aux | grep syslog


Question: As tu des machines ou des équipements qui renvoi des messages syslog sur ta machine (pour savoir si tu as au moins quelque chose pour remplir ta table)?

petite pomme
20th February 2009, 15:58
Merci pour ta patience !

Voila la table syslogs_logs :


Database changed
mysql> desc syslog_logs;
+-----------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------------------+------+-----+---------+----------------+
| host | varchar(128) | YES | MUL | NULL | |
| facility | varchar(10) | YES | MUL | NULL | |
| priority | varchar(10) | YES | MUL | NULL | |
| niveau | varchar(10) | YES | | NULL | |
| tag | varchar(10) | YES | | NULL | |
| dateheure | datetime | YES | MUL | NULL | |
| program | varchar(15) | YES | MUL | NULL | |
| msg | text | YES | | NULL | |
| seq | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
| counter | int(11) | NO | | 1 | |
| fo | datetime | YES | | NULL | |
| lo | datetime | YES | | NULL | |
+-----------+---------------------+------+-----+---------+----------------+
12 rows in set (0.00 sec)


Apparement ça tourne :

pinet:~# ps aux | grep syslog
root 2488 0.0 0.0 3540 2060 ? Ss 11:01 0:00 /sbin/syslog-ng -p /var/run/syslog-ng.pid
root 3036 0.0 0.0 2752 756 ? S 11:01 0:00 /bin/sh /etc/rc 2.d/S20syslog2mysql start
root 18876 0.0 0.0 2880 768 pts/0 S+ 14:37 0:00 grep syslog


Je viens de modifier le script avec le pipe et la valeur syslog_logs au lieu de logs... je reboot le serveur.

Question: As tu des machines ou des équipements qui renvoi des messages syslog sur ta machine (pour savoir si tu as au moins quelque chose pour remplir ta table)?

Nagios et Centreon sont configurés, ils me remontent des informations sur les machines et services.

http://img26.imageshack.us/img26/4246/aaaafs0.png (http://imageshack.us)

AkHeNaToN
20th February 2009, 15:59
ps: remplace le fichier de cron "reloadchache.php" par celui du "trunk" (dispo ici: http://syslog.modules.centreon.com/browser/trunk/Syslog/cron) qui corrige un problème sur une requête.

Et pense à mettre les droits +x dessus

chmod +x reloadcache.php

petite pomme
20th February 2009, 16:22
Je fais un copier coller du fichier en question dans les 3 dossier ci-dessous ou dans 1 en particulier ? (n'y a t'il rien à modifier à l'intérieur ?) :

pinet:~# locate reloadcache.php
/root/Syslog-1.1-RC3/cron/reloadcache.php
/usr/local/centreon/cron/Modules/Syslog/reloadcache.php
/www/php-syslog-ng/scripts/reloadcache.php

AkHeNaToN
20th February 2009, 16:29
c'est bien évidemment ce fichier qu'il faut remplacer:

/usr/local/centreon/cron/Modules/Syslog/reloadcache.php


En fait il suffit juste de remplacer la ligne:

$query = "DROP TABLE IF EXISTS".$table_cache;


par

$query = "DROP TABLE IF EXISTS ".$table_cache;


il manquait un espace et la table de cache ne pouvait jamais être supprimer et remplacer par la nouvelle

petite pomme
20th February 2009, 16:37
En faisant un vi je me suis apperçu que le fichier était vide !

Ses droits sont les suivants :
-rwxr-xr-x 1 www-data www-data 0 2009-02-19 15:11 reloadcache.php


Le fichier est écrit par contre dans :

/www/php-syslog-ng/scripts/reloadcache.php

AkHeNaToN
20th February 2009, 16:50
Premièrement il y a un problème: tu as un champs qui ne porte pas le nom qu'il devrait avoir


Database changed
mysql> desc syslog_logs;
+-----------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------------------+------+-----+---------+----------------+
| host | varchar(128) | YES | MUL | NULL | |
| facility | varchar(10) | YES | MUL | NULL | |
| priority | varchar(10) | YES | MUL | NULL | |
| niveau | varchar(10) | YES | | NULL | |
| tag | varchar(10) | YES | | NULL | |
| dateheure | datetime | YES | MUL | NULL | |
| program | varchar(15) | YES | MUL | NULL | |
| msg | text | YES | | NULL | |
| seq | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
| counter | int(11) | NO | | 1 | |
| fo | datetime | YES | | NULL | |
| lo | datetime | YES | | NULL | |
+-----------+---------------------+------+-----+---------+----------------+
12 rows in set (0.00 sec)


alors que tu devrais avoir:

+----------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+---------------------+------+-----+---------+----------------+
| host | varchar(128) | YES | MUL | NULL | |
| facility | varchar(10) | YES | MUL | NULL | |
| priority | varchar(10) | YES | MUL | NULL | |
| level | varchar(10) | YES | | NULL | |
| tag | varchar(10) | YES | | NULL | |
| datetime | datetime | YES | MUL | NULL | |
| program | varchar(15) | YES | MUL | NULL | |
| msg | text | YES | | NULL | |
| seq | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
| counter | int(11) | NO | | 1 | |
| fo | datetime | YES | | NULL | |
| lo | datetime | YES | | NULL | |
+----------+---------------------+------+-----+---------+----------------+


Ceci cause deux problème:

dans le pipe (du fichier de conf syslog-ng) la requête INSERT insère des données pour LEVEL et non NIVEAU

cf:

(host, facility, priority, level, tag, datetime, program, msg)


Deuxièement, la requête du module Syslog utilise également ce champs !!!
d'ou les erreurs MySQL sur l'interface.

donc => change le nom de ce champs dans ta table "syslog_logs".

Question: quelle version de php-syslog-ng as tu installé ?

AkHeNaToN
20th February 2009, 16:52
En faisant un vi je me suis apperçu que le fichier était vide !

Quel fichier est vide ?

petite pomme
20th February 2009, 16:55
Il me semble que j'avais modifié "level" par "niveau" lors de la création de la BD... pour quelle raison je ne sais plus trop.

La version de php-syslog-ng est : Php-Syslog-NG 2.9.8f

Le fichier vide est :
/usr/local/centreon/cron/Modules/Syslog/reloadcache.php
-rwxr-xr-x 1 www-data www-data 0 2009-02-19 15:11 reloadcache.php

Mais plein à cet endroit :
/www/php-syslog-ng/scripts/reloadcache.php
-rw-r--r-- 1 www-data www-data 1941 2008-08-10 21:49 reloadcache.php

AkHeNaToN
20th February 2009, 17:41
Il me semble que j'avais modifié "level" par "niveau" lors de la création de la BD... pour quelle raison je ne sais plus trop.


Si tu peux remettre "level" ca marchera mieux.


La version de php-syslog-ng est : Php-Syslog-NG 2.9.8f

OK


Le fichier vide est :
/usr/local/centreon/cron/Modules/Syslog/reloadcache.php
-rwxr-xr-x 1 www-data www-data 0 2009-02-19 15:11 reloadcache.php

Mais plein à cet endroit :

Et celui dans "/root/Syslog-1.1-RC3/cron/reloadcache.php" est-il vide ?

petite pomme
23rd February 2009, 10:29
Et celui dans "/root/Syslog-1.1-RC3/cron/reloadcache.php" est-il vide ?

Celui là est plein !

pinet:~# cd /root/Syslog-1.1-RC3/cron/
pinet:~/Syslog-1.1-RC3/cron# ll
total 12
-rw-r--r-- 1 root root 8487 2009-02-10 11:04 reloadcache.php

AkHeNaToN
23rd February 2009, 10:36
Copie ce fichier dans le répertoire:

cp /root/Syslog-1.1-RC3/cron/reloadcache.php /usr/local/centreon/cron/Modules/Syslog/reloadcache.php
chmod 755 /usr/local/centreon/cron/Modules/Syslog/reloadcache.php


As tu remplacer le nom du champ dans la table syslog_logs ?

Si oui, est ce que en dé-commentant les lignes cela remarche ?

petite pomme
23rd February 2009, 10:42
Bonjour,

Copie ce fichier dans le répertoire:
C'est fait.

As tu remplacer le nom du champ dans la table syslog_logs ?
Oui les modifications ont été faites.

Si oui, est ce que en dé-commentant les lignes cela remarche ?
C'est dé-commenté mais toujours le même message d'erreur.

Mysql Error : DB Error: no such fieldMysql Error : DB Error: no such field
Fatal error: Call to undefined method DB_Error::numrows() in /usr/local/centreon/www/modules/Syslog/syslog.php on line 202

petite pomme
23rd February 2009, 10:48
Il n'y a pas un soucis avec pear ? Car j'ai aussi un message d'erreur dans : "Administration" -> "Base de données" mais quand je commente les lignes rien ne change et apparement ça concerne pear.


Fatal error: Call to undefined method DB_Error::fetchRow() in /usr/local/centreon/www/include/options/db/viewDBInfos.php on line 69


Edit : rectification ça c'est une autre erreur concernant NDO, mais je verrais ça plus tard.

AkHeNaToN
23rd February 2009, 11:31
Peut tu rajouter cette ligne (en gras

} else {

if (count( $sql_filter ) > 0 )
$req = "SELECT * FROM ".$syspt["syslog_db_table"] . " WHERE datetime > '$start_sql' AND datetime <= '$end_sql' AND " . $req_sql_filter . " ORDER BY datetime";
else
$req = "SELECT * FROM ".$syspt["syslog_db_table"] . " WHERE datetime > '$start_sql' AND datetime <= '$end_sql' ORDER BY datetime";
}

print_r($req);

$DBRESULT =& $pear_syslogDB->query($req);
if (PEAR::isError($DBRESULT))
print "Mysql Error : ".$DBRESULT->getMessage();


récupérer la requête SQL et l'exécuter:


$> mysql -u root
mysql> use syslog;
mysql> ta requête;
mysql> exit;


et me donner le résultat de ta requête stp

petite pomme
23rd February 2009, 11:42
Je rajoute cette ligne dans le fichier reloadcache.php? Mais lequel on en a créé pas mal depuis vendredi ^^

AkHeNaToN
23rd February 2009, 11:55
arf désolé mais c'est dans le fichier "syslog.php" qu'il faut ajouter cette ligne (en gras).

Sinon, il y avait effectivement un problème dans l'installeur qui ne copiait pas correctement le fichier "reloadcache.php". J'ai corriger ce problème, le nouveau fichier "install.sh" est disponible ici: http://syslog.modules.centreon.com/changeset/98

Peut tu corriger ton fichier "install.sh" et relancer l'installation (cela écrasera les ancien fichier seulement et donc corrigera le fichier vide).

Puis rajouter la ligne 'print_r($req);" dans le fichier "syslog.php".

Et me donner le résultat de la requête (voir mon message précédant).

petite pomme
23rd February 2009, 12:04
arf désolé mais c'est dans le fichier "syslog.php" qu'il faut ajouter cette ligne (en gras).

Oui je le vois mais idem il y en a pas mal !

pinet:~# locate syslog.php
/root/Syslog-1.1-RC3/www/include/pagination_syslog.php
/root/Syslog-1.1-RC3/www/syslog.php
/usr/local/centreon/www/modules/Syslog_backup/include/pagination_syslog.php
/usr/local/centreon/www/modules/Syslog_backup/syslog.php
/usr/local/centreon/www/modules/Syslog/include/pagination_syslog.php
/usr/local/centreon/www/modules/Syslog/syslog.php
/usr/share/php/docs/Log/examples/syslog.php
/usr/share/php/Log/syslog.php


Fichier install.sh corrigé installation relancée.

AkHeNaToN
23rd February 2009, 12:13
Celui ci bien évidemment:


/usr/local/centreon/www/modules/Syslog/syslog.php

petite pomme
23rd February 2009, 12:22
Après avoir modifié le fichier install.sh et retournant sous Centreon j'ai un nouveau message :

SELECT * FROM syslog_logs WHERE datetime > '2009-02-22 11:11' AND datetime <= '2009-02-23 11:11' ORDER BY datetimeMysql Error : DB Error: no such fieldMysql Error : DB Error: no such field
Fatal error: Call to undefined method DB_Error::numrows() in /usr/local/centreon/www/modules/Syslog/syslog.php on line 204



Je viens de modifier le fichier en ajoutant la nouvelle ligne mais quand sous putty je me log sous mysql j'ai ce message :


mysql> use syslog;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql>

AkHeNaToN
23rd February 2009, 12:47
Je viens de modifier le fichier en ajoutant la nouvelle ligne mais quand sous putty je me log sous mysql j'ai ce message :


mysql> use syslog;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql>


C'est tout à fait normal d'avoir ce message (j'ai le même).

Peut tu exécuter la requête et me donner le résultat affiché stp

petite pomme
23rd February 2009, 13:00
Voila ce que ça donne :


mysql> use syslog;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> print_r($req);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'print_r($req)' at line 1
mysql>

AkHeNaToN
23rd February 2009, 13:15
Voila ce que ça donne :


mysql> use syslog;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> print_r($req);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'print_r($req)' at line 1
mysql>


Je t'ai demandé d'exécuter la requete SQL et non une fonction php !!!

Reprenons depuis le début

1. édite le fichier "syslog.php"


$> vim /usr/local/centreon/www/modules/Syslog/syslog.php


2. Copie la ligne en gras dans ce fichier (/usr/local/centreon/www/modules/Syslog/syslog.php)


} else {

if (count( $sql_filter ) > 0 )
$req = "SELECT * FROM ".$syspt["syslog_db_table"] . " WHERE datetime > '$start_sql' AND datetime <= '$end_sql' AND " . $req_sql_filter . " ORDER BY datetime";
else
$req = "SELECT * FROM ".$syspt["syslog_db_table"] . " WHERE datetime > '$start_sql' AND datetime <= '$end_sql' ORDER BY datetime";
}

print_r($req);

$DBRESULT =& $pear_syslogDB->query($req);
if (PEAR::isError($DBRESULT))
print "Mysql Error : ".$DBRESULT->getMessage();


et dé-commente toutes les lignes que tu as commenté
normalement il devrait y en avoir aucune si tu as relancé l'installation avec le fichier "install.sh"

3. Va sur l'interface de Centreon dans la partie du module syslog et récupère la commande MySQL qui est avec les erreurs (je t'ai surligné en gras la requête MySQL):

SELECT * FROM syslog_logs WHERE datetime > '2009-02-22 11:11' AND datetime <= '2009-02-23 11:11' ORDER BY datetimeMysql Error : DB Error: no such fieldMysql Error : DB Error: no such field
Fatal error: Call to undefined method DB_Error::numrows() in /usr/local/centreon/www/modules/Syslog/syslog.php on line 204


4. Connecte toi à la base de données syslog pour exécuter la requête et non la ligne php

$> mysql -u root
mysql> use syslog;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> SELECT * FROM syslog_logs WHERE datetime > '2009-02-22 11:11' AND datetime <= '2009-02-23 11:11' ORDER BY datetime;

Sans oublié le ";" après ta requête (ici en gras ci dessus).

Et affiche moi le résultat

petite pomme
23rd February 2009, 14:37
Merci encore une fois pour ta patience !

Alors en ayant tout dé-commenté la requête nous donne ça :

Database changed
mysql> SELECT * FROM syslog_logs WHERE datetime > '2009-02-22 11:11' AND datetime <= '2009-02-23 11:11' ORDER BY datetime;
ERROR 1054 (42S22): Unknown column 'datetime' in 'where clause'
mysql>

AkHeNaToN
23rd February 2009, 14:56
ET oui encore une autre erreur du a ton changement des noms des champs:

Database changed
mysql> desc syslog_logs;
+-----------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------------------+------+-----+---------+----------------+
| host | varchar(128) | YES | MUL | NULL | |
| facility | varchar(10) | YES | MUL | NULL | |
| priority | varchar(10) | YES | MUL | NULL | |
| niveau | varchar(10) | YES | | NULL | |
| tag | varchar(10) | YES | | NULL | |
| dateheure | datetime | YES | MUL | NULL | |
| program | varchar(15) | YES | MUL | NULL | |
| msg | text | YES | | NULL | |
| seq | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
| counter | int(11) | NO | | 1 | |
| fo | datetime | YES | | NULL | |
| lo | datetime | YES | | NULL | |
+-----------+---------------------+------+-----+---------+----------------+
12 rows in set (0.00 sec)


Peux tu remettre le bon nom a savoir "datetime" pour le champs "dateheure".

Il est impératif de ne JAMAIS changer les noms des champs dans les table de bases de données sous peinne que le programme ne fonctionne jamais.

Les requête SQL vont chercher des informations par rapport aux noms des champs (colonnes fields). Si ces noms de champs sont changés, la requête SQL ne peut aboutir d'où les erreurs MySQL que tu rencontre.

PEAR n'est la que comme module permettant à PHP d'envoyer des requêtes et de donner le résultat des requêtes.

petite pomme
23rd February 2009, 15:07
Dateheure modifié en Datetime.

Je tape la requête ce qui nous donne :

mysql> SELECT * FROM syslog_logs WHERE datetime > '2009-02-22 11:11' AND datetime <= '2009-02-23 11:11' ORDER BY datetime;
Empty set (0.00 sec)

Et pour Centreon l'affichage revient mais tjs avec une ligne d'erreur concernant la date :

http://img19.imageshack.us/img19/1844/aaaaa.png (http://imageshack.us)

On avance !

AkHeNaToN
23rd February 2009, 15:12
Bon on a enfin supprimé les erreurs MySQL.

Maintenant que tout fonctionne, tu peux supprimer la ligne "print_r($req);" du fichier syslog.php que nous avons rajouté pour trouver l'erreur.

Par contre, comme ta table est vide (table syslog_logs), il est NORMAL que toutes les listes de choix soient vide ainsi que le tableau en dessous car il n'y a rien a afficher.
cf:

mysql> SELECT * FROM syslog_logs WHERE datetime > '2009-02-22 11:11' AND datetime <= '2009-02-23 11:11' ORDER BY datetime;
Empty set (0.00 sec)


Brèf le module fonctionne parfaitement, il ne te reste plus qu'a te documenter sur syslog et syslog-ng (RFC 3164, Wikipédia, google)

petite pomme
23rd February 2009, 15:34
Alors merci beaucoup pour le temps passé à m'aider !
Je vais rechercher de la documentation sur Syslog.

Et je vais recréer un post concernant l'erreur liée à NDO (enfin je pense que ça vient de la configuration de NDO).

http://img12.imageshack.us/img12/1844/aaaaa.png (http://imageshack.us)

Option réseau c'est bien en BTS mais par contre dès qu'il faut toucher à du SQL aïe aïe aïe ça fait mal !!!

AkHeNaToN
23rd February 2009, 15:40
Ton erreur ci dessus ne vient pas de NDO mais d'une requête qui à encore crashée. As tu fait des modifications sur le nom des tables des bases centreon et centstorage ?

Bon le problème d'installation du module est résolu, si tu peux changer le titre stp et ouvrir de nouveau sujet dans les bonnes sections si tu rencontre de nouveau des problèmes.

cordialement

petite pomme
23rd February 2009, 15:45
Oui je vais m'occuper de tout ça !

petite pomme
23rd February 2009, 16:02
Voila nouveau post en ligne... >>> http://forum.centreon.com/showthread.php?p=45006#post45006


Ps : impossible de renommer le titre du topic.