148 lines
3.7 KiB
Markdown
148 lines
3.7 KiB
Markdown
# Environment Variables
|
|
|
|
Configure LogWisp through environment variables for containerized deployments.
|
|
|
|
## Naming Convention
|
|
|
|
- **Prefix**: `LOGWISP_`
|
|
- **Path separator**: `_` (underscore)
|
|
- **Array indices**: Numeric suffix (0-based)
|
|
- **Case**: UPPERCASE
|
|
|
|
Examples:
|
|
- `logging.level` → `LOGWISP_LOGGING_LEVEL`
|
|
- `pipelines[0].name` → `LOGWISP_PIPELINES_0_NAME`
|
|
|
|
## General Variables
|
|
|
|
### `LOGWISP_CONFIG_FILE`
|
|
Configuration file path.
|
|
```bash
|
|
export LOGWISP_CONFIG_FILE=/etc/logwisp/config.toml
|
|
```
|
|
|
|
### `LOGWISP_CONFIG_DIR`
|
|
Configuration directory.
|
|
```bash
|
|
export LOGWISP_CONFIG_DIR=/etc/logwisp
|
|
export LOGWISP_CONFIG_FILE=production.toml
|
|
```
|
|
|
|
### `LOGWISP_DISABLE_STATUS_REPORTER`
|
|
Disable periodic status reporting.
|
|
```bash
|
|
export LOGWISP_DISABLE_STATUS_REPORTER=1
|
|
```
|
|
|
|
## Logging Variables
|
|
|
|
```bash
|
|
# Output mode
|
|
LOGWISP_LOGGING_OUTPUT=both
|
|
|
|
# Log level
|
|
LOGWISP_LOGGING_LEVEL=debug
|
|
|
|
# File logging
|
|
LOGWISP_LOGGING_FILE_DIRECTORY=/var/log/logwisp
|
|
LOGWISP_LOGGING_FILE_NAME=logwisp
|
|
LOGWISP_LOGGING_FILE_MAX_SIZE_MB=100
|
|
LOGWISP_LOGGING_FILE_RETENTION_HOURS=168
|
|
|
|
# Console logging
|
|
LOGWISP_LOGGING_CONSOLE_TARGET=stderr
|
|
LOGWISP_LOGGING_CONSOLE_FORMAT=json
|
|
```
|
|
|
|
## Pipeline Configuration
|
|
|
|
### Basic Pipeline
|
|
```bash
|
|
# Pipeline name
|
|
LOGWISP_PIPELINES_0_NAME=app
|
|
|
|
# Source configuration
|
|
LOGWISP_PIPELINES_0_SOURCES_0_TYPE=directory
|
|
LOGWISP_PIPELINES_0_SOURCES_0_OPTIONS_PATH=/var/log/app
|
|
LOGWISP_PIPELINES_0_SOURCES_0_OPTIONS_PATTERN="*.log"
|
|
LOGWISP_PIPELINES_0_SOURCES_0_OPTIONS_CHECK_INTERVAL_MS=100
|
|
|
|
# Sink configuration
|
|
LOGWISP_PIPELINES_0_SINKS_0_TYPE=http
|
|
LOGWISP_PIPELINES_0_SINKS_0_OPTIONS_PORT=8080
|
|
LOGWISP_PIPELINES_0_SINKS_0_OPTIONS_BUFFER_SIZE=1000
|
|
```
|
|
|
|
### Filters
|
|
```bash
|
|
# Include filter
|
|
LOGWISP_PIPELINES_0_FILTERS_0_TYPE=include
|
|
LOGWISP_PIPELINES_0_FILTERS_0_LOGIC=or
|
|
LOGWISP_PIPELINES_0_FILTERS_0_PATTERNS='["ERROR","WARN"]'
|
|
|
|
# Exclude filter
|
|
LOGWISP_PIPELINES_0_FILTERS_1_TYPE=exclude
|
|
LOGWISP_PIPELINES_0_FILTERS_1_PATTERNS='["DEBUG"]'
|
|
```
|
|
|
|
### HTTP Sink Options
|
|
```bash
|
|
# Basic
|
|
LOGWISP_PIPELINES_0_SINKS_0_OPTIONS_STREAM_PATH=/stream
|
|
LOGWISP_PIPELINES_0_SINKS_0_OPTIONS_STATUS_PATH=/status
|
|
|
|
# Heartbeat
|
|
LOGWISP_PIPELINES_0_SINKS_0_OPTIONS_HEARTBEAT_ENABLED=true
|
|
LOGWISP_PIPELINES_0_SINKS_0_OPTIONS_HEARTBEAT_INTERVAL_SECONDS=30
|
|
LOGWISP_PIPELINES_0_SINKS_0_OPTIONS_HEARTBEAT_FORMAT=comment
|
|
|
|
# Rate Limiting
|
|
LOGWISP_PIPELINES_0_SINKS_0_OPTIONS_RATE_LIMIT_ENABLED=true
|
|
LOGWISP_PIPELINES_0_SINKS_0_OPTIONS_RATE_LIMIT_REQUESTS_PER_SECOND=10.0
|
|
LOGWISP_PIPELINES_0_SINKS_0_OPTIONS_RATE_LIMIT_BURST_SIZE=20
|
|
LOGWISP_PIPELINES_0_SINKS_0_OPTIONS_RATE_LIMIT_LIMIT_BY=ip
|
|
```
|
|
|
|
## Example
|
|
|
|
```bash
|
|
#!/bin/bash
|
|
|
|
# Logging
|
|
export LOGWISP_LOGGING_OUTPUT=both
|
|
export LOGWISP_LOGGING_LEVEL=info
|
|
|
|
# Pipeline 0: Application logs
|
|
export LOGWISP_PIPELINES_0_NAME=app
|
|
export LOGWISP_PIPELINES_0_SOURCES_0_TYPE=directory
|
|
export LOGWISP_PIPELINES_0_SOURCES_0_OPTIONS_PATH=/var/log/myapp
|
|
export LOGWISP_PIPELINES_0_SOURCES_0_OPTIONS_PATTERN="*.log"
|
|
|
|
# Filters
|
|
export LOGWISP_PIPELINES_0_FILTERS_0_TYPE=include
|
|
export LOGWISP_PIPELINES_0_FILTERS_0_PATTERNS='["ERROR","WARN"]'
|
|
|
|
# HTTP sink
|
|
export LOGWISP_PIPELINES_0_SINKS_0_TYPE=http
|
|
export LOGWISP_PIPELINES_0_SINKS_0_OPTIONS_PORT=8080
|
|
export LOGWISP_PIPELINES_0_SINKS_0_OPTIONS_RATE_LIMIT_ENABLED=true
|
|
export LOGWISP_PIPELINES_0_SINKS_0_OPTIONS_RATE_LIMIT_REQUESTS_PER_SECOND=25.0
|
|
|
|
# Pipeline 1: System logs
|
|
export LOGWISP_PIPELINES_1_NAME=system
|
|
export LOGWISP_PIPELINES_1_SOURCES_0_TYPE=file
|
|
export LOGWISP_PIPELINES_1_SOURCES_0_OPTIONS_PATH=/var/log/syslog
|
|
|
|
# TCP sink
|
|
export LOGWISP_PIPELINES_1_SINKS_0_TYPE=tcp
|
|
export LOGWISP_PIPELINES_1_SINKS_0_OPTIONS_PORT=9090
|
|
|
|
logwisp
|
|
```
|
|
|
|
## Precedence
|
|
|
|
1. Command-line flags (highest)
|
|
2. Environment variables
|
|
3. Configuration file
|
|
4. Defaults (lowest) |