Sběr protokolů z databáze pomocí ODBC
Úvod
Doporučeným způsobem získávání protokolů a dalších událostí z databází je použití ODBC. ODBC poskytuje jednotný způsob, jak připojit LogMan.io k různým databázovým systémům.
Ovladač a konfigurace ODBC
Musíte zajistit ovladač ODBC pro databázový systém, který chcete integrovat s LogMan.io. Příslušný ovladač ODBC musí být kompatibilní s Ubuntu 20.04 LTS, 64bit.
Ovladače ODBC je třeba nasadit do kolektoru LogMan.io, konkrétně do adresáře /odbc
.
Případně vám naše podpora pomůže nasadit správný ovladač ODBC pro váš databázový systém nebo poskytne LogMan.io Collector s přibaleným ovladačem ODBC.
_Poznámka: Upozornění: ovladače ODBC jsou vystaveny softwaru LogMan.io collector prostřednictvím takzvaných svazků Docker.
Konfigurace ODBC se provádí v souborech /odbc/odbcinst.ini
a odbc.ini
.
Vstupní konfigurace kolektoru
Specifikace vstupního zdroje je input:ODBC:
.
Příklad konfigurace kolektoru ODBC:
input:ODBC:ODBCInput:
dsn: Driver={FreeTDS};Server=MyServer;Port=1433;Database=MyDatabase;TDS_Version=7.3;UID=MyUser;PWD=MyPassword
dotaz: SELECT * FROM viewAlerts WHERE {increment_where_clause} ORDER BY Cas Time;
increment_strategy: date
increment_first_value: "2020-10-01 00:00:00.000"
increment_column_name: "Time"
chilldown_period: 30
output: WebSocket
last_value_storage: /data/var/last_value_storage
Konfigurace MySQL ODBC
Ovladače MySQL ODBC lze získat na následujícím odkazu.
Balíček ovladačů je třeba rozbalit do adresáře /odbc/mysql
.
Záznamy v /odbc/odbcinst.ini
:
[MySQL ODBC 8.0 Unicode Driver]
Driver=/odbc/mysql/libmyodbc8w.so
UsageCount=1
[MySQL ODBC 8.0 ANSI Driver]
Driver=/odbc/mysql/libmyodbc8a.so
UsageCount=1
Konfigurace Microsoft SQL Server ODBC
Ovladače Microsoft SQL Server ODBC lze získat na následujícím odkazu.
Položky v souboru /odbc/odbcinst.ini
:
[ODBC Driver 17 for SQL Server]
Description=Ovladač ODBC 17 pro SQL Server od společnosti Microsoft
Driver=/odbc/microsoft/msodbcsql17/lib64/libmsodbcsql-17.6.so.1.1
UsageCount=1
Příklad připojovacího řetězce:
Driver={ODBC Driver 17 for SQL Server};Server=<server_name>;Authentication=ActiveDirectoryPassword;UID=<username>;PWD=<password>;Database=<database>;TrustServerCertificate=Yes
Alternativní konfigurace Microsoft SQL Server ODBC
Alternativní připojení k Microsoft SQL Serveru poskytuje projekt FreeTDS, resp. jeho ovladač ODBC.
Položky v souboru /odbc/odbcinst.ini
:
[FreeTDS]
Description=Ovladač FreeTDS pro Linux a MSSQL
Driver=/odbc/freetds/libtdsodbc.so
Setup=/odbc/freetds/libtdsodbc.so
UsageCount=1
Příklad připojovacího řetězce:
Driver={FreeTDS};Server=<server_name>;Port=<server_port>;Database=<database>;UID=<username>;PWD=<password>;TDS_Version=7.3
Konfigurace MariaDB ODBC
Ovladače MariaDB ODBC lze získat na následujícím odkazu.
Konfigurace SAP IQ, Sybase IQ, Sybase ASE ODBC
Ovladače ODBC SAP IQ / Sybase IQ / Sybase ASE / SQL Anywhere je třeba stáhnout ze stránek podpory SAP.
Balíček ovladačů je třeba rozbalit do adresáře /odbc/sybase
.
Záznam v /odbc/odbcinst.ini
:
[ODBC Driver for Sybase IQ]
Description=Sybase IQ
Driver=/odbc/sybase/IQ-16_1/lib64/libdbodbc17.so
UsageCount=1
Příklad připojovacího řetězce:
Driver={ODBC Driver for Sybase IQ};UID=<username>;PWD=<password>;Server=<server_name>;DBN=<database_name>;CommLinks=TCPIP{host=<host>;port=<port>};DriverUnicodeType=1
Řešení problémů
Přidat ODBC Trace
Pokud potřebujete lepší přehled o připojení ODBC, můžete povolit trasování ODBC.
Přidejte tuto část do souboru /odbc/odbcinst.ini
:
[ODBC]
Trace = yes
TraceFile = /odbc/trace.log
Poté se spustí kolektor, výstup trasování systému ODBC se uloží do souboru /odbc/trace.log
.
Tento soubor je dostupný i mimo kontejner.
Ověření konfigurace ODBC
K ověření připravenosti ODBC lze použít příkaz odbcinst -j
(spuštěný v kontejneru):
# odbcinst -j
unixODBC 2.3.6
DRIVERS............: /etc/odbcinst.ini
SYSTÉMOVÉ ZDROJE DAT: /etc/odbc.ini
ZDROJE DAT SOUBORŮ..: datových zdrojů: /etc/ODBCDataSources
UŽIVATELSKÉ ZDROJE DAT..: Odbc.ini: /root/.odbc.ini
SQLULEN Velikost.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Velikost: 8
Docker-compose
Kolektor LogMan.io lze spustit pomocí docker-compose
.
Toto je výtah příslušných položek ze souboru docker-compose.yaml
:
lmio-collector:
image: docker.teskalabs.com/lmio/lmio-collector
...
svazky:
- /odbc/odbcinst.ini:/etc/odbcinst.ini
- /odbc/odbc.ini:/etc/odbc.ini
- /odbc:/odbc
...
network_mode: host
Poté je třeba znovu vytvořit kolektor LogMan.io pomocí:
docker-compose up -d
Více informací
- Příklady řetězců připojení ODBC: https://www.connectionstrings.com