Isdnlog und MySQL unter SuSE 9.2
Hallo, ich würde gerne über Isdnlog statt (bzw. außer) der Protokollierung der Anrufe in /var/log/isdn.log die Anrufe in einer MySQL-Datenbank vermerkt haben. Meine bisherigen Recherchen haben ergeben, dass dies wohl grundsätzlich möglich sein soll. Ich habe die entsprechende Datenbank in MySQL angelegt und die Grants gesetzt. Gehe ich recht in der Annahme, dass die DB-Protokollierung nicht in das Standardpaket der 9.2er Distribution einkompiliert ist? Welche Möglichkeiten gibt es, die Datenbank-Anbindung zum Laufen zu bekommen? Ich habe bereits versucht, das Isdnlog-Quellpaket von http://www.isdn4linux.de/ zu übersetzen. Leider ohne Erfolg. Vielen Dank und beste Grüße Florian
* Florian Hasibether schrieb:
ich würde gerne über Isdnlog statt (bzw. außer) der Protokollierung der Anrufe in /var/log/isdn.log die Anrufe in einer MySQL-Datenbank vermerkt haben. Meine bisherigen Recherchen haben ergeben, dass dies wohl grundsätzlich möglich sein soll.
Ich habe die entsprechende Datenbank in MySQL angelegt und die Grants gesetzt. Gehe ich recht in der Annahme, dass die DB-Protokollierung nicht in das Standardpaket der 9.2er Distribution einkompiliert ist?
Welche Möglichkeiten gibt es, die Datenbank-Anbindung zum Laufen zu bekommen? Ich habe bereits versucht, das Isdnlog-Quellpaket von http://www.isdn4linux.de/ zu übersetzen. Leider ohne Erfolg.
Wie schon vermutet, muss isdnlog hierfür neu übersetzt werden. Hierzu gibt es prinzipiell zwei Möglichkeiten. Zum einen über das Source-RPM, welches zur jetzt installierten Version gehört. Hierzu gibt es eine alte Diskussion im Archiv dieser Liste: http://lists.suse.com/archive/suse-isdn/2002-Aug/0122.html Die andere Möglichkeit besteht darin, isdnlog mittels der allgemeinen Quelltexte von isdn4linux.de neu zu übersetzen. Hierbei empfiehlt es sich, in der Konfiguration der isdn(4k)-utils nur isdnlog zu wählen. Generell ist nach meinem Dafürhalten die erste Möglichkeit zu bevorzugen, da Du so automatisch einen weiterhin an das bestehende System angepassten isdnlog erhälst, während bei der zweiten Variante dies manuell über die Konfiguration zu bewirkt werden muss. Welchen Weg Du auch wählst, sei bitte so nett und teile uns Deine weiteren Erfahrungen mit. Treten Fehler auf, dann bitte die entsprechenden Meldungen, wie zum Beispiel die letzten 50 Zeilen vom make-Lauf, zur Antwort hinzufügen. Viel Erfolg, Gruß Tobias -- Tobias Becker E-Mail tobiasb@talypso.de PGP 0xD06BB70D * Und erfahrene Menschen sagen, daß derjenige, der zu viel sieht und zu viel weiß, ähnlich wie der, der zu wenig sieht und zu wenig weiß, leicht vom richtigen Weg abkommt und untergeht. * Stefan Chwin *
Hallo, ich habe die Konfiguration ausgehend von einer SuSE 9.2 Version nun hinbekommen. Der Anregung von Tobias folgend stelle ich kurz dar, welche Schritte ich unternommen habe. Zur Vorbereitung: Paket mysql-devel installieren. ncurses* installieren, damit die Konfiguration über das Menü klappt. Ich habe das derzeit aktuelle Paket der isdn4k-utils verwendet: ftp://ftp.isdn4linux.de/pub/isdn4linux/CVS-Snapshots/isdn4k-utils-CVS-2005-05-10.tar.bz2 Zunächst die Datenbank vorbereiten. In isdnlog/isdnlog/mysqldb.h finden sich die Daten, mit denen die DB kontaktiert wird: #define DB_HOST "localhost" /* host name of backend-server */ #define DB_USER "isdn" /* mysql_db user */ #define DB_PASSWD "isdn" /* mysql_db password */ #define DB_NAME "isdn" /* name of database */ #define DB_TABLE "isdnlog" /* name of table in database */ Gemäß diesen Daten kann mit dem mysql-Client die Datenbank erzeugen. Datenbank 'isdn' anlegen: CREATE DATABASE isdn; Tabelle 'isdnlog' anlegen: CREATE TABLE isdnlog ( sdate date NOT NULL, stime time NOT NULL, calling varchar(32) NOT NULL, called varchar(32) NOT NULL, charge int(4) NOT NULL, dir char(1) NOT NULL, in_bytes int(4) NOT NULL, out_bytes int(4) NOT NULL, msec int(4) NOT NULL, sec int(4) NOT NULL, status int(4) NOT NULL, service int(4) NOT NULL, source int(4) NOT NULL, vrsion int(4) NOT NULL, factor double(16,4) NOT NULL, currency varchar(30) NOT NULL, pay double(16,4) NOT NULL, provider varchar(30) NOT NULL, KEY (sdate,stime), KEY (calling,called), KEY (pay,provider) ); Isdnlog ermöglichen, INSERT-Statements auszuführen: GRANT insert ON isdn.* TO 'isdn'@'localhost' IDENTIFIED BY 'isdn'; Bevor isdnlog compiliert werden kann, muss sichergestellt werden, dass sich 'include' und 'libs' dort befindet, wo das Skript sie erwartet. Dazu genügt: mkdir /usr/local/mysql cd /usr/local/mysql ln -s /usr/include/mysql include ln -s /usr/lib/mysql lib 'tar xjvf isdn4k-utils-CVS-2005-05-10.tar.bz2' entpackt das Archiv. Alle weiteren Befehle werden im Verzeichnis 'isdn4k-utils-CVS-2005-05-10' ausgeführt. Mit 'make config' können menügesteuert die Einstellungen zum compilieren geändert werden. Ich habe außer isdnlog alle Optionen abgewählt. Außerdem: "Directory to install admin binaries" sowie "Directory to install card configuration tools" in /usr/sbin ändern, "Directory to install man pages" in /usr/share/man ändern und in "Options for isdnlog package" die Option "Support mysql SQL-Database" anwählen. Dann 'make' und 'make install' aufrufen. Mit 'rcisdn restart' den Isdnlogdaemon neu starten. Viele Grüße Florian
participants (2)
-
Florian Hasibether
-
Tobias Becker