Files
esn-support-bash-snippets/legacy/checkms/README.md
T
h0tznpl0tz bddb3cf1e9 Add exitrace tool and improve documentation
- Add exitrace: Enhanced Exim log analyzer with status classification
- Add Maintainer: ljp to all ljp-owned scripts
- Update READMEs: Use installer-compatible command examples
- Update main and legacy READMEs to include exitrace tool
2025-09-11 12:35:48 +02:00

156 lines
3.4 KiB
Markdown

# checkms
`checkms` ist ein Bash-Skript zur Analyse von **Microsoft-spezifischen SMTP Fehlercodes** (z. B. S3150, S775, S7771…) in den Exim-Logs auf dem **easyname Logger**.
Neben der Auswertung kann das Skript auch die Konfiguration (Fehlercodes, SSH-User) verwalten.
---
## Features
- Zugriff auf den Logger (via `go logger` oder SSH)
- Auswertung von Exim-Logs für Microsoft Fehlercodes
- Unterstützung für **gzip-archivierte Logs**
- Filterung nach Zeitfenstern (`--minutes`, `--hours`)
- Konfiguration in `checkms.conf`
- SSH-User
- Liste der Fehlercodes (Regex möglich)
- Verwaltung der Config per Script:
- `--add-code` → Code hinzufügen
- `--del-code` → Code anhand ID löschen
- `--set-user` → SSH-User ändern
- `--show-config` → Config anzeigen (JSON + tabellarisch)
---
## Installation
1. Installation über Installer:
```bash
# Im Repository-Hauptverzeichnis
./install.sh
```
2. Beim ersten Start erstellt `checkms` automatisch die Konfiguration unter:
```
~/.config/checkms/checkms.conf
```
3. Abhängigkeiten:
- `jq` (empfohlen, für Bearbeitung/Schreiben der Config)
- `ssh` Zugriff auf Logger (`go logger` wird bevorzugt, falls vorhanden)
---
## Nutzung
### Standardanalyse
```bash
checkms
```
→ analysiert das heutige Logfile komplett.
### Tageslog
```bash
checkms 2025-09-08
```
→ analysiert das Logfile vom 08.09.2025
(automatisch `.log` oder `.log.gz`).
### Zeitfenster
```bash
checkms --minutes 30 # letzte 30 Minuten
checkms --hours 2 # letzte 2 Stunden
```
---
## Config-Management
### Aktuelle Config ansehen
```bash
checkms --show-config
```
Beispielausgabe:
```
RAW (~/.config/checkms/checkms.conf):
{
"ssh_user": "pljubeko",
"codes": [
"S3150",
"S775",
"S7771[0-9]*"
]
}
TABELLARISCHE ANSICHT:
SSH_USER pljubeko
ID CODE
---- ----------------
0 S3150
1 S775
2 S7771[0-9]*
```
### SSH-User ändern
```bash
checkms --set-user alice --show-config
```
### Code hinzufügen
```bash
checkms --add-code S77714
checkms --add-code 'S77[0-9]{3}' --show-config
```
### Code löschen
```bash
checkms --del-code 2 --show-config
```
→ löscht den Code mit ID `2` (siehe `--show-config`).
---
## Optionen
```
Usage: checkms [OPTIONS] [YYYY-MM-DD]
Analyse von MS-Fehlercodes im Exim-Log und Pflege der Codes.
Analyse-Optionen:
--minutes N Analysiert nur die letzten N Minuten
--hours N Analysiert nur die letzten N Stunden
--confdir PATH Pfad zum Konfigurationsordner (Default: ~/.config/checkms)
Konfig-Optionen:
--add-code REGEX Fügt einen Code/Regex zur Config hinzu (mehrfach möglich)
--del-code ID Löscht Code mit ID (siehe --show-config)
--set-user USER Setzt den SSH-User in der Config
--show-config Zeigt die aktuelle Config (JSON + tabellarisch) und beendet
--help Diese Hilfe
```
---
## Beispielausgabe Analyse
```
Analysiere 2025-09-09.log
COUNT IP CODE
----- ---------------- ------
67435 212.232.25.164 S775
63930 212.232.28.125 S775
311 217.74.15.3 S3150
```
---
## Notes
- Falls Logs älter sind, werden sie automatisch mit `zcat` gelesen (`.log.gz`).
- Falls `go logger` als Funktion existiert, nutzt das Skript diese. Sonst wird via `ssh <ssh_user>@logger.in.nessus.at` verbunden.
- Die Config kann beliebig viele Codes enthalten, Regex wird unterstützt.