lean-automation-logger
v1.0.0
Published
A logger for logging OPC UA data to InfluxDB
Downloads
17
Readme
Lean Automation OPC UA Logger for InfluxDB
A robust OPC UA client designed for industrial data logging to InfluxDB time-series database. This solution has been reliably collecting factory data since 2016.
Key Features
✅ Industrial-Grade Reliability
- Automatic buffering prevents data loss during network outages
- Production-tested in multiple factory environments since 2016
✅ Flexible Data Collection
- Supports both polled (interval-based) and monitored (event-based) collection
- Handles numbers, booleans (with numeric conversion), and strings
✅ Easy Deployment
- Single binary deployment - no external dependencies
- Cross-platform support (Windows/Linux/macOS)
✅ Modern Alpha Release
- v2 brings improved performance and stability
- Community feedback welcome
Quick Start
Binary Installation
- Download the appropriate binary from [Releases]
- Create a configuration file (see examples below)
- Run the executable
From Source
git clone https://github.com/your-repo/influx-opcua-logger.git
cd influx-opcua-logger
npm install
npm run startConfiguration
Environment Variables
| Variable | Description | Default |
|----------|-------------|---------|
| CONFIG_FILE | Path to config file | ./config.toml |
| LOG_FILE | Path to log file | stdout only |
| LOG_FILE_DAYS | Days to retain logs | 10 |
| DATA_PATH | Buffer file directory | ./data |
| DISABLE_ANALYTICS | Disable usage reporting | false |
Configuration File (TOML or JSON)
[opcua]
url = "opc.tcp://localhost:53530/OPCUA/SimulationServer"
user = "test"
pass = "test1"
[influx]
url = "http://user:password@localhost:8086/opcua"
writeInterval = 1000 # ms (optional)
writeMaxPoints = 1000 # (optional)
[[metrics]]
measurement = "temperature"
datatype = "number"
tags = { location = "reactor1", unit = "C" }
nodeId = "ns=5;s=Sinusoid1"
method = "polled"
interval = 1000
[[metrics]]
measurement = "valve_status"
datatype = "boolean"
tags = { system = "cooling" }
nodeId = "ns=3;s=BooleanDataItem"
method = "monitored"
interval = 5000Data Collection Methods
| Method | Best For | Timestamp Behavior |
|--------|----------|--------------------|
| polled | Regular interval metrics (temperatures, pressures) | Time of collection |
| monitored | Event-based changes (valve positions, alarms) | Time of change |
Support & Contribution
Found an issue? Have an improvement?
➡️ Open an issue or submit a PR!
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Submit a pull request
Credits
- Jeroen Coussement (@coussej) - Lead Developer
- Etienne Rossignon - Creator of node-opcua
- Lean Automation - Industrial IoT Solutions
Analytics Notice
The logger includes anonymous usage reporting to help us understand adoption. To disable:
export DISABLE_ANALYTICS=trueLicense
MIT Licensed - Free for industrial and commercial use.
Optimizing your industrial data flow since 2016
Lean Automation | Contact Us
