3proxy/doc/ru/iodbc.txt
2014-12-13 23:20:00 +03:00

101 lines
2.9 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

KOI8-R
Kirill Lopuchov, lopuchov at mail ru
Ведение логов сервера в SQL-базе имеет свои приемущества перед обычными текстовыми файлами. 3proxy поддерживает ведение логов через ODBC-менеджер в любой базе данных, имеющих ODBC-драйвер. Этот менеджер стал стандартом де-факто в среде Windows, чего, к сожалению, не скажешь про Unix. Поэтому далее рассмотрим на примере FreeBSD настройку ведения логов в базе SQLite. Эта база данных выбрана в качестве примера потому, что она проста в установке и настроке (в принципе настройка ведения логов в любой другой базе mysql или postgresql отличается только настройкой его odbc-драйвера)
Устанавливаем SQLite
wget http://www.sqlite.org/sqlite-2.8.14.tar.gz
tar -xvzf sqlite-2.8.14.tar.gz
cd sqlite
./configure
gmake
gmake install
Устанавливаем iODBC менеджер
wget http://www.iodbc.org/libiodbc-3.51.2.tar.gz
tar -xvzf libiodbc-3.51.2.tar.gz
cd libiodbc-3.51.2
./configure --disable-gui --disable-gtktest
make
make install
Устанавливаем odbc драйвер SQLite
wget http://www.ch-werner.de/sqliteodbc/sqliteodbc-0.62.tar.gz
tar -xvzf sqliteodbc-0.62.tar.gz
cd sqliteodbc-0.62
./configure
Если у вас скрипт configure выдал ошибку :
(configure: error: SQLite library too old)
то ее можно попробовать обойти, вставив (SQLITE_COMPILE=1
в стр. 5092 после условия if endif) в файле configure
make
make install
Далее настраиваем записи для iODBC менеджера в
файлах /etc/odbcinst.ini и /etc/odbc.ini
Настраиваем odbc драйвер
--------------/etc/odbcinst.ini-------------
[ODBC Drivers]
SQLite=Installed
[SQLite]
Driver=/usr/local/lib/libsqliteodbc.so
---------------------------------------
Создаем DSN для базы c именем "sqlite", которая будет
располагаться в каталоге: /usr/local/3proxy/logs.db
--------------/etc/odbc.ini----------------
[ODBC Data Sources]
sqlite=SQLite
[sqlite]
Driver=/usr/local/lib/libsqliteodbc.so
Description=SQLite test database
Database=/usr/local/3proxy/logs.db
# optional lock timeout in milliseconds
Timeout=2000
---------------------------------------
Создаем базу для логов и таблицу в формате (logformat
см. описание в 3proxy.cfg.sample )
sqlite /usr/local/3proxy/logs.db
SQLite version 2.8.14
Enter ".help" for instructions
sqlite>create table log (
...> l_date char (11),
...> l_chour char (10),
...> l_user char (30),
...> l_service char (30),
...> l_in integer,
...> l_out integer,
...> l_descr char (64000),
...>);
Добавляем следующие записи в конфигурационный файл 3proxy.cfg
---------------3proxy.cfg-----------------
log &sqlite
logformat "Linsert into log ( l_date, l_chour, l_user, l_service, l_in, l_out,
l_descr)
values ('%d-%m-%Y', '%H:%M:%S', '%U', '%N', %I, %O, '%T')"
------------------------------------------
Cобрать 3proxy c поддрежкой iODBC, для этого в Makefile.unix поменять
CFLAGS = -Wall -O2 -c -pthread -D_THREAD_SAFE -D_REENTRANT -DWITH_STD_MALLOC -I/usr/local/include
LIBS = -L /usr/local/lib -lodbc
и дать команды
make clean
make -f Makefile.unix