Přeskočit obsah

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