mirror of
https://github.com/3proxy/3proxy.git
synced 2025-02-23 02:25:40 +08:00
101 lines
2.9 KiB
Plaintext
101 lines
2.9 KiB
Plaintext
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
|
||
|