81 lines
2.7 KiB
Markdown
81 lines
2.7 KiB
Markdown
# Log Viewer
|
|
|
|
A powerful log management tool with four operating modes: Viewer, Collector, Monitor, and combined. Features web UIs, S3 integration, UDP ingestion, log rotation, pattern-based alerting, and multi-channel notifications.
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
npm install
|
|
npm run build
|
|
node dist-server/server.js
|
|
```
|
|
|
|
Open http://localhost:8080 in your browser.
|
|
|
|
## Modes
|
|
|
|
| Mode | Command | Port | Description |
|
|
|------|---------|------|-------------|
|
|
| Both (default) | `node dist-server/server.js` | 8080 | Viewer + Collector |
|
|
| Viewer | `cp .env.viewer .env && node dist-server/server.js` | 9090 | Read & display logs |
|
|
| Collector | `cp .env.collector .env && node dist-server/server.js` | 8081 | Receive & store logs |
|
|
| Monitor | `cp .env.monitor .env && node dist-server/server.js` | 8082 | Scan & alert on patterns |
|
|
|
|
## Docker
|
|
|
|
```bash
|
|
docker pull git.kgessner.de/keviin/logmaster:latest
|
|
docker run -d -p 8080:8080 git.kgessner.de/keviin/logmaster:latest
|
|
```
|
|
|
|
**Wichtig:** Collector-Daten liegen im Container unter `/app/collector-data/`. Ohne Volume-Mount gehen diese bei Neustart verloren:
|
|
|
|
```bash
|
|
docker run -d -p 8080:8080 \
|
|
-v ./collector-data:/app/collector-data \
|
|
-v ./monitor-data:/app/monitor-data \
|
|
git.kgessner.de/keviin/logmaster:latest
|
|
```
|
|
|
|
**Health Check:** Der Container hat einen eingebauten HEALTHCHECK auf `/api/health`. Manuell prüfbar mit:
|
|
|
|
```bash
|
|
curl http://localhost:8080/api/health
|
|
```
|
|
|
|
## Environment Variables
|
|
|
|
| Variable | Default | Description |
|
|
|----------|---------|-------------|
|
|
| `LOG_MODE` | `both` | Mode: `viewer`, `collector`, `monitor`, `both`, `all` |
|
|
| `PORT` | `8080` | HTTP port |
|
|
| `HOST` | `0.0.0.0` | Bind address |
|
|
| `LOG_SOURCES` | _(empty)_ | Comma-separated file paths |
|
|
| `COLLECTOR_UDP_PORT` | `5140` | UDP syslog port |
|
|
| `MONITOR_ENABLED` | `true` | Enable monitor scanning |
|
|
| `MONITOR_SCAN_INTERVAL` | `60000` | Scan interval in ms |
|
|
| `MONITOR_RULES` | `[]` | JSON array of monitor rules |
|
|
| `REMOTE_COLLECTOR_URL` | _(empty)_ | URL to remote collector (viewer mode) |
|
|
|
|
## Documentation
|
|
|
|
- **[Full Documentation](DOCS.md)** — Complete reference
|
|
- **[Viewer Guide](docs/VIEWER.md)** — How to use the log viewer
|
|
- **[Collector Guide](docs/COLLECTOR.md)** — How to set up log collection
|
|
- **[Monitor Guide](docs/MONITOR.md)** — How to configure pattern alerts
|
|
|
|
## Features
|
|
|
|
- Multi-source: local files, gzip/bz2/xz/zst, S3, UDP, HTTP
|
|
- Real-time log streaming with live highlighting
|
|
- Regex search with level filtering
|
|
- Log rotation (size + time based, with compression)
|
|
- Forward to HTTP, file, UDP, or console
|
|
- Pattern monitoring with Telegram, Webhook, Teams, Email alerts
|
|
- Scheduled scans (continuous, daily, hourly)
|
|
- Dark/Light theme, keyboard shortcuts, export
|
|
|
|
## License
|
|
|
|
MIT
|