- Add logwhisperer.sh script for tailing and monitoring system logs - Implement pattern matching for critical errors (FATAL, ERROR, OOM, segfault) - Add JSON payload generation with severity levels - Implement rate limiting and offset tracking per log source - Add install.sh with interactive configuration and systemd support - Create comprehensive test suite with pytest - Add technical specification documentation - Update CHANGELOG.md following Common Changelog standard All 12 tests passing. Follows Metodo Sacchi (Safety first, little often, double check).
52 lines
2.0 KiB
Markdown
52 lines
2.0 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
The format is based on [Common Changelog](https://common-changelog.org/),
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
## [Unreleased]
|
|
|
|
## [0.1.0] - 2026-04-02
|
|
|
|
### Added
|
|
|
|
- feat: Implement log ingestion script (`logwhisperer.sh`) for monitoring system logs
|
|
- Monitor multiple log sources: syslog, nginx, postgresql
|
|
- Pattern matching for critical errors (FATAL, ERROR, OOM, segfault, disk full)
|
|
- JSON payload generation with severity levels (low, medium, critical)
|
|
- Rate limiting to prevent alert flooding (30s per source/pattern)
|
|
- Offset tracking for each log file to avoid reprocessing
|
|
- HTTP POST dispatch to configurable webhook with retry logic
|
|
- Dry-run mode for testing pattern matching without sending webhooks
|
|
- Configuration file support (`/etc/logwhisperer/config.env`)
|
|
- Command-line flags: `--help`, `--validate`, `--config`, `--dry-run`, `--test-line`
|
|
|
|
- feat: Create installation script (`install.sh`)
|
|
- Interactive configuration wizard
|
|
- UUID v4 generation for CLIENT_ID
|
|
- Systemd service creation (when run as root)
|
|
- Support for both system-wide and user-local installation
|
|
- Prerequisite checking (bash, curl)
|
|
- Connectivity test to webhook URL
|
|
|
|
- test: Add comprehensive test suite (`tests/test_logwhisperer.py`)
|
|
- Script existence and executable validation
|
|
- Configuration validation tests
|
|
- Pattern matching tests (FATAL, OOM, ERROR patterns)
|
|
- JSON payload structure validation
|
|
- Severity mapping verification
|
|
|
|
- docs: Create technical specification for Feature 1 (Log Ingestion)
|
|
- Architecture diagram and component description
|
|
- Requirements (functional and non-functional)
|
|
- Safety guidelines (Metodo Sacchi)
|
|
- Acceptance criteria
|
|
|
|
### Security
|
|
|
|
- Configuration files created with restrictive permissions (600)
|
|
- No hardcoded credentials in scripts
|
|
- HTTPS validation for webhook URLs (warning for non-HTTPS)
|
|
- Read-only access to log files (no modifications)
|