Oninit Logo
The Down System Specialists
+1-913-732-8892
+44-2081-337529
Partnerships Contact

Oninit® Log Ripper — Install

Requirements

The daemon-level requirements below cover capture and the file / JSON output modes. Direct-connect target modes layer additional prerequisites on top — see Per-output-mode requirements immediately after.

ComponentNotes
IBM Informix CSDK Installed on the host running the Ripper. INFORMIXDIR set, setcsdk sourced — the package wrapper at /usr/bin/oni_ripper handles this for you via /etc/oni_ripper/environment. Covers both the source CDC connection and the target.mode: informix direct-connect target (same ESQL/C runtime).
IBM Informix server with CDC syscdcv1 must be accessible from the Ripper host.
libyaml Runtime library (libyaml); package's Depends / Requires pulls it in.
unixODBC (only when used) Runtime library (unixODBC / unixodbc). The binary loads libodbc.so.2 at runtime via dlopen only when the operator's YAML selects target.mode: odbc. Hosts that don't use ODBC don't need the package installed at all. Packaging metadata lists it as Suggests / Recommends, not Requires / Depends.
librdkafka (only when used) Runtime library (librdkafka). Same dlopen model as unixODBC: librdkafka.so.1 is loaded only when target.mode: kafka is selected. Hosts that don't use Kafka don't need the package installed.
POSIX threads pthreads, present on every supported distro.
Source database Must have logical logging enabled (CDC requires log records to capture).

Per-output-mode requirements

target.modeDirect connect?Extra prerequisites on the Ripper host
fileno None beyond the daemon-level requirements. Writes one .sql file per committed transaction under target.file.directory; only filesystem write access is needed.
jsonno None beyond the daemon-level requirements. Writes one RFC 8259 .json file per committed transaction under target.json.directory.
csvno None beyond the daemon-level requirements. Writes one RFC 4180 .csv file per committed transaction under target.csv.directory.
kafkayes — librdkafka (dlopen) Install librdkafka on the Ripper host (dnf install librdkafka on Fedora / RHEL, apt install librdkafka1 on Debian / Ubuntu). The Ripper loads librdkafka.so.1 at runtime via dlopen when this mode is selected; if the package isn't present the connector logs a CRITICAL line and the target is disabled rather than failing the whole daemon. Network reachability from the Ripper host to the brokers listed in target.kafka.brokers; for SASL/SSL set target.kafka.security_protocol + sasl_*.
informixyes — ESQL/C Already covered: the IBM Informix CSDK is required for source capture, and the same runtime serves the target connection. The target server must be reachable from the Ripper host and listed in $INFORMIXSQLHOSTS / /etc/sqlhosts. The connecting user needs INSERT / UPDATE / DELETE on the replicated tables (and CONNECT on the target DB). No additional packages.
odbcyes — unixODBC (dlopen) Three components, all on the Ripper host: (1) the unixODBC runtime (install via dnf install unixODBC on Fedora / RHEL or apt install unixodbc on Debian / Ubuntu — the Ripper loads libodbc.so.2 at runtime via dlopen, so it's only needed when this mode is actually used); (2) the ODBC driver package for the target database (postgresql-odbc, mariadb-connector-odbc, or whichever vendor driver matches the target); (3) a DSN entry in /etc/odbc.ini (or ~/.odbc.ini) that resolves to the target server. See ODBC prerequisites below for the exact package names and the odbcinst.ini / odbc.ini format.

RPM install (Fedora / RHEL)

sudo dnf install ./oni_ripper-1.0.0-1.*.rpm

DEB install (Debian / Ubuntu)

sudo dpkg -i ./oni-logripper_1.0.0_amd64.deb
sudo apt-get install -f       # pull missing Depends if any

Package layout

PathPurpose
/usr/bin/oni_ripper Wrapper that sources /etc/oni_ripper/environment then exec's the real binary.
/usr/libexec/oni_ripper/oni_ripper The actual ELF binary.
/usr/lib/systemd/system/oni_ripper.service (RPM)
/lib/systemd/system/oni_ripper.service (DEB)
systemd unit.
/etc/oni_ripper/oni_ripper.yml Runtime config (preserved across upgrades).
/etc/oni_ripper/environment Sources the Informix CSDK setup.
/etc/sysconfig/oni_ripper (RPM)
/etc/default/oni_ripper (DEB)
Extra CLI flags via RIPPER_OPTS.
/var/lib/oni_ripper/{state, schema_archive, control} Runtime state directories.
/var/log/oni_ripper/ Log directory.
/run/oni_ripper/ PID file.
/usr/lib64/liboni_ripper.so.0 (and the SONAME symlink chain) Shared library. The CLI binary links against this; host applications can embed the engine directly via the public C API at /usr/include/oni_ripper.h.
/usr/lib64/liboni_ripper.a Static library, same object set as the shared lib.
/usr/include/oni_ripper.h Public C API header. The only header that's part of the library contract; cdcripper.h stays private.
/usr/lib64/pkgconfig/oni_ripper.pc pkg-config manifest. Embedders link with $(pkg-config --cflags --libs oni_ripper).

The Informix CSDK is not bundled in the package — the wrapper sources /home/informix/etc/setcsdk (or /opt/informix/etc/setcsdk) at startup. If the CSDK lives elsewhere, edit /etc/oni_ripper/environment after install.

ODBC prerequisites

The ODBC output mode needs three things on the host running the Ripper: the unixODBC runtime, the driver for the target database, and a DSN entry that resolves to the target server.

Fedora / RHEL

sudo dnf install unixODBC
sudo dnf install postgresql-odbc          # PostgreSQL driver
sudo dnf install mariadb-connector-odbc   # MariaDB / MySQL driver

Debian / Ubuntu

sudo apt-get install unixodbc
sudo apt-get install odbc-postgresql      # PostgreSQL driver
sudo apt-get install odbc-mariadb         # MariaDB / MySQL driver

DSN setup

unixODBC reads driver registrations from /etc/odbcinst.ini and DSN definitions from /etc/odbc.ini (system-wide) or ~/.odbc.ini (per-user). Most distro driver packages drop a snippet under /etc/odbcinst.ini.d/.

# /etc/odbcinst.ini
[PostgreSQL]
Description = PostgreSQL ODBC driver
Driver      = /usr/lib64/psqlodbcw.so

# /etc/odbc.ini
[my_postgres_dsn]
Driver     = PostgreSQL
Servername = target.example.com
Port       = 5432
Database   = warehouse

Verify the DSN with isql before pointing the Ripper at it:

isql -v my_postgres_dsn dbuser dbpass

Then point the Ripper at it via the YAML config:

target:
  mode: odbc
  odbc:
    dsn:      "my_postgres_dsn"
    user:     "dbuser"
    password: "dbpass"

If the operator picks target.mode: odbc on a host where the prerequisites are missing or the DSN is wrong, the ODBC connector reports the failure at startup and disables the target rather than running with a half-broken sink. Each diagnostic line carries the SQLSTATE plus a one-line fix hint (IM002 → DSN not in /etc/odbc.ini, IM003 → driver missing, 28000 → auth, etc.).

Service start

A dedicated oni_ripper system user/group is created via the package's post-install script. Grant the user the necessary database privileges (GRANT DBA TO oni_ripper in the source DB and on syscdcv1), edit /etc/oni_ripper/oni_ripper.yml, then:

sudo systemctl enable --now oni_ripper
sudo journalctl -u oni_ripper -f

To run as the Informix admin account instead, drop a systemd override at /etc/systemd/system/oni_ripper.service.d/override.conf setting User=informix and Group=informix.

To discuss how Oninit ® can assist please call on +1-913-732-8892 or alternatively just send an email specifying your requirements.


You get all this for free.. think about what you get if you pay us