SYSLOG / OPERLOG Incident Analyzer V2 â Analyseur dâincidents z/OS
Installer, tester et exploiter syslog_operlog_incident_analyzer_v2.py, un utilitaire autonome qui analyse des exports SYSLOG, OPERLOG, JES, HASP, IEF, IEC, ICH, RACF, CICS, DB2, IMS, sysplex et storage afin de produire une timeline dâincident exploitable.
Le bouton principal pointe explicitement vers /static/toolbox/syslog_operlog_incident_analyzer_v2.py. DĂ©pose ce script dans static/toolbox/ pour lâexposer depuis IDEO-Lab.
Cet outil est conçu pour le support production mainframe : au lieu de lire des centaines ou milliers de lignes SYSLOG/OPERLOG, il extrait les événements, classe les familles de messages, reconstruit des clusters temporels et met en avant les causes probables.
Ce que le moteur analyse
| Domaine | Signaux analysés | Diagnostic produit |
|---|---|---|
| JES / jobs | $HASP, IEF, job started/ended, RC, MAXCC, ABEND. | Début/fin de job, statut, step fautif, corrélation avec le log systÚme. |
| Datasets / storage | IEC, IGD, IOS, B37/D37/E37, allocation, catalog, I/O error. | ProblĂšme espace, catalogage, volume, SMS, I/O, channel ou DASD. |
| Sécurité | ICH, IRR, RACF, access denied, S913. | AccÚs refusé, dataset protégé, profil sécurité, user non autorisé. |
| Subsystems | DFH, DSN, DFS, CEE, BPX, IDC, ICE. | Incident CICS, DB2, IMS, runtime, UNIX System Services, IDCAMS ou SORT. |
| Sysplex | IXC, IXG, IXL, CSV, system logger, coupling facility. | Suspicion de problĂšme sysplex, logger, CF, structure ou membre instable. |
| Opérations | WTOR, REPLY, action opérateur, messages critiques ou répétés. | Action humaine requise, alarme prioritaire, incident en escalade. |
Téléchargement des fichiers
Cette page fournit les liens explicites vers le script Python, les samples dâincident et le pack complet. Pour IDEO-Lab, les fichiers doivent ĂȘtre dĂ©posĂ©s sous /static/toolbox/.
Script Python autonome, sans dépendance externe, à lancer sur un export SYSLOG/OPERLOG/JES texte.
Incident composite : job, ABEND, dataset, RACF, CICS/DB2 et messages opérateur.
Messages IXC/IXG/IXL, logger, coupling facility et suspicion sysplex.
RACF, ICH/IRR, access denied, S913 et éléments de conformité.
IEC/IGD/IOS, allocation, B37, catalog, I/O et problĂšmes de volumes.
Rapport généré depuis le sample mixed pour validation visuelle.
Script, samples, exports et rapports de démonstration.
Arborescence static recommandée
static/
toolbox/
syslog_operlog_incident_analyzer_v2.py
syslog_operlog_incident_analyzer_v2_pack.zip
sample_syslog_v2_mixed_incident.txt
sample_syslog_v2_sysplex_incident.txt
sample_syslog_v2_security_incident.txt
sample_syslog_v2_storage_incident.txt
sample_syslog_v2_mixed_report.html
syslog_operlog_incident_analyzer_v2_guide.htmlInstallation de SYSLOG / OPERLOG Incident Analyzer V2
Le script est autonome. Il suffit dâune version Python moderne et dâun fichier texte exportĂ© depuis SYSLOG, OPERLOG, SDSF, JESMSGLG, JESYSMSG ou une source Ă©quivalente.
1. Arborescence locale recommandée
syslog_operlog_lab/
bin/
syslog_operlog_incident_analyzer_v2.py
input/
sample_syslog_v2_mixed_incident.txt
sample_syslog_v2_sysplex_incident.txt
sample_syslog_v2_security_incident.txt
sample_syslog_v2_storage_incident.txt
output/
reports/
csv/
json/Ce bouton pointe explicitement vers /static/toolbox/syslog_operlog_incident_analyzer_v2.py.
2. Installation Linux / macOS
mkdir -p syslog_operlog_lab/bin syslog_operlog_lab/input syslog_operlog_lab/output/reports syslog_operlog_lab/output/csv syslog_operlog_lab/output/json
cp syslog_operlog_incident_analyzer_v2.py syslog_operlog_lab/bin/
cp sample_syslog_v2_*_incident.txt syslog_operlog_lab/input/
cd syslog_operlog_lab
python3 bin/syslog_operlog_incident_analyzer_v2.py --demo mixed3. Installation Windows PowerShell
New-Item -ItemType Directory -Force syslog_operlog_lab\bin, syslog_operlog_lab\input, syslog_operlog_lab\output\reports, syslog_operlog_lab\output\csv, syslog_operlog_lab\output\json
Copy-Item .\syslog_operlog_incident_analyzer_v2.py .\syslog_operlog_lab\bin\
Copy-Item .\sample_syslog_v2_*_incident.txt .\syslog_operlog_lab\input\
Set-Location .\syslog_operlog_lab
python .\bin\syslog_operlog_incident_analyzer_v2.py --demo mixed4. Test de validation
python bin/syslog_operlog_incident_analyzer_v2.py input/sample_syslog_v2_mixed_incident.txt \
--profile production \
--html output/reports/sample_syslog_v2_mixed_report.html \
--json output/json/sample_syslog_v2_mixed_analysis.json \
--csv-events output/csv/sample_syslog_v2_mixed_events.csv \
--csv-issues output/csv/sample_syslog_v2_mixed_issues.csv \
--csv-jobs output/csv/sample_syslog_v2_mixed_jobs.csv \
--csv-clusters output/csv/sample_syslog_v2_mixed_clusters.csv \
--csv-subsystems output/csv/sample_syslog_v2_mixed_subsystems.csvFichiers input attendus
La V2 attend un fichier texte brut. Lâextension peut ĂȘtre .txt, .log, .syslog, .operlog, .jes ou .lst. Le point clĂ© est de conserver les timestamps, les familles de messages et les lignes systĂšme.
TĂ©lĂ©charger dâabord le script Python, puis lancer lâanalyse sur un export SYSLOG/OPERLOG/JES.
1. Sources acceptées
| Source | Contenu typique | Usage |
|---|---|---|
SYSLOG | Messages systĂšme z/OS, JES, IEF, IEC, opĂ©rateur, jobs, subsystems. | Base dâanalyse incident hors sysplex ou par systĂšme. |
OPERLOG | Journal opérateur consolidé, utile en environnement sysplex. | Corrélation multi-systÚme, messages opérateur, WTOR/REPLY. |
JESMSGLG / JESYSMSG | Messages job, HASP, IEF, RC, ABEND, step, dataset. | Corrélation avec jobs fautifs et batch windows. |
CICS / DB2 / IMS | DFH, DSN, DFS, messages subsystem. | Détection incident applicatif ou transactionnel. |
Sysplex | IXC, IXG, IXL, CSV, logger, CF. | Analyse des problĂšmes cluster, logger ou coupling facility. |
2. Exemple minimal de timeline
08:53:37 $HASP373 PAYROLL01 STARTED - INIT 1 - CLASS A - SYS ZOS1
08:54:12 IGD17272I VOLUME SELECTION HAS FAILED FOR DATA SET PAYROLL.WORK.FILE
08:54:16 IEC030I B37-04,IFG0554A,PAYROLL01,STEP030,SYSUT2
08:54:17 IEF450I PAYROLL01 STEP030 - ABEND=SB37 REASON=00000004
08:54:18 $HASP395 PAYROLL01 ENDED - RC=00123. Samples disponibles
Incident multi-signal pour valider la corrélation complÚte.
IXC/IXG/IXL, logger, coupling facility et structures sysplex.
RACF, ICH, IRR, S913, access denied et datasets sensibles.
IEC/IGD/IOS, B37, allocation, volume, SMS et I/O.
--redact avant partage externe.Utilisation quotidienne
1. Modes démo intégrés
python syslog_operlog_incident_analyzer_v2.py --demo mixed
python syslog_operlog_incident_analyzer_v2.py --demo sysplex
python syslog_operlog_incident_analyzer_v2.py --demo security
python syslog_operlog_incident_analyzer_v2.py --demo storage2. Analyse simple dâun fichier
python syslog_operlog_incident_analyzer_v2.py input/sample_syslog_v2_mixed_incident.txt3. Analyse complĂšte avec exports
python syslog_operlog_incident_analyzer_v2.py input/sample_syslog_v2_mixed_incident.txt \
--profile production \
--json output/json/sample_syslog_v2_mixed_analysis.json \
--html output/reports/sample_syslog_v2_mixed_report.html \
--csv-events output/csv/sample_syslog_v2_mixed_events.csv \
--csv-issues output/csv/sample_syslog_v2_mixed_issues.csv \
--csv-jobs output/csv/sample_syslog_v2_mixed_jobs.csv \
--csv-clusters output/csv/sample_syslog_v2_mixed_clusters.csv \
--csv-subsystems output/csv/sample_syslog_v2_mixed_subsystems.csv4. Filtrage temporel
Les options --since et --until permettent dâisoler une fenĂȘtre dâincident prĂ©cise.
python syslog_operlog_incident_analyzer_v2.py input/operlog_export.txt \
--since 08:50:00 \
--until 09:10:00 \
--profile production \
--html output/reports/operlog_0850_0910.html5. Mode anonymisé
python syslog_operlog_incident_analyzer_v2.py input/production_operlog.txt \
--redact \
--html output/reports/production_operlog_redacted.html \
--json output/json/production_operlog_redacted.json6. Mode batch strict
python syslog_operlog_incident_analyzer_v2.py input/nightly_operlog.txt \
--profile production \
--html output/reports/nightly_operlog_report.html \
--csv-issues output/csv/nightly_operlog_issues.csv \
--fail-on CRITICALParamĂštres de ligne de commande
1. ParamĂštres dâentrĂ©e et de sortie
| ParamĂštre | Description | Exemple |
|---|---|---|
input_file | Fichier SYSLOG/OPERLOG/JES texte Ă analyser. | input/operlog.txt |
--demo | Lance un sample intégré : mixed, sysplex, security, storage. | --demo mixed |
--json | Exporte lâanalyse complĂšte en JSON. | --json output/analysis.json |
--html | GénÚre le rapport HTML. | --html output/report.html |
--csv-events | Exporte la timeline événementielle normalisée. | --csv-events output/events.csv |
--csv-issues | Exporte les anomalies détectées. | --csv-issues output/issues.csv |
--csv-jobs | Exporte les jobs, RC, ABEND et statuts détectés. | --csv-jobs output/jobs.csv |
--csv-clusters | Exporte les clusters temporels dâincident. | --csv-clusters output/clusters.csv |
--csv-subsystems | Exporte la synthĂšse par subsystem ou famille de message. | --csv-subsystems output/subsystems.csv |
2. ParamĂštres dâanalyse et de gouvernance
| ParamÚtre | Effet | Usage recommandé |
|---|---|---|
--profile | Profil : production, batch, security, cics, db2, ims, sysplex, storage, training. | Ajuster la lecture métier et prioriser les familles de messages. |
--since / --until | Filtre temporel sur la fenĂȘtre dâincident. | Isoler 10 ou 20 minutes autour dâune panne. |
--redact | Masque les datasets et identifiants sensibles dans les sorties. | Partage externe, support, ticket ou démonstration. |
--fail-on | Retourne un code erreur Ă partir dâune sĂ©vĂ©ritĂ© donnĂ©e. | --fail-on ERROR ou --fail-on CRITICAL. |
3. Exemple profil sysplex
python syslog_operlog_incident_analyzer_v2.py input/sample_syslog_v2_sysplex_incident.txt \
--profile sysplex \
--html output/reports/sysplex_incident.html \
--csv-clusters output/csv/sysplex_clusters.csv \
--csv-subsystems output/csv/sysplex_subsystems.csvExemples dâutilisation
ScĂ©nario 1 â Incident batch avec ABEND et dataset
Cas classique : un job Ă©choue, un message IEC/IGD prĂ©cĂšde lâABEND, puis JES publie le RC final.
python syslog_operlog_incident_analyzer_v2.py input/sample_syslog_v2_mixed_incident.txt \
--profile batch \
--html output/reports/batch_incident.html \
--csv-issues output/csv/batch_issues.csvScĂ©nario 2 â Incident sĂ©curitĂ© / RACF
Cas sécurité : access denied, S913, messages ICH/IRR et datasets sensibles à anonymiser.
python syslog_operlog_incident_analyzer_v2.py input/sample_syslog_v2_security_incident.txt \
--profile security \
--redact \
--html output/reports/security_incident_redacted.html \
--csv-issues output/csv/security_issues.csvScĂ©nario 3 â Incident sysplex / logger / coupling facility
Cas sysplex : corrélation des messages IXC/IXG/IXL avec les clusters temporels.
python syslog_operlog_incident_analyzer_v2.py input/sample_syslog_v2_sysplex_incident.txt \
--profile sysplex \
--html output/reports/sysplex_incident.html \
--csv-clusters output/csv/sysplex_clusters.csvScĂ©nario 4 â Incident storage / B37 / I/O
Cas storage : IEC/IGD/IOS, allocation, volume, SMS ou DASD à vérifier.
python syslog_operlog_incident_analyzer_v2.py input/sample_syslog_v2_storage_incident.txt \
--profile storage \
--html output/reports/storage_incident.html \
--csv-issues output/csv/storage_issues.csv \
--csv-subsystems output/csv/storage_subsystems.csvScĂ©nario 5 â ContrĂŽle nocturne automatisĂ©
0 5 * * * /opt/syslog-operlog/bin/python /opt/syslog-operlog/syslog_operlog_incident_analyzer_v2.py \
/data/operlog/nightly_operlog.txt \
--profile production \
--html /var/www/reports/syslog/nightly_operlog_report.html \
--csv-issues /var/log/syslog-operlog/nightly_operlog_issues.csv \
--json /var/log/syslog-operlog/nightly_operlog_analysis.json \
--fail-on CRITICAL >> /var/log/syslog-operlog/analyzer.log 2>&1Corrélation et lecture incident
La valeur principale de la V2 nâest pas seulement de reconnaĂźtre un code message. Elle consiste Ă replacer chaque message dans une sĂ©quence temporelle pour isoler ce qui ressemble Ă une root cause, un symptĂŽme ou une consĂ©quence.
1. Timeline intelligente
08:53:37 JOB PAYROLL01 STARTED
08:54:12 DATASET ALLOCATION WARNING
08:54:16 IEC030I B37
08:54:17 STEP030 ENDED ABEND=SB37
08:54:18 JOB PAYROLL01 FAILED2. Types de clusters produits
| Cluster | Signaux typiques | Lecture |
|---|---|---|
| Batch failure | HASP, IEF, ABEND, RC Ă©levĂ©, dataset mention. | Ăchec job, step fautif, cause technique Ă confirmer. |
| Storage allocation | IEC, IGD, B37/D37/E37, volume, SMS. | ProblĂšme espace, allocation, catalog ou policy SMS. |
| Security | ICH, IRR, RACF, S913, access denied. | Autorisation manquante ou profil de sécurité à corriger. |
| Subsystem | DFH, DSN, DFS, CEE, BPX. | Incident applicatif, CICS, DB2, IMS, LE ou UNIX System Services. |
| Sysplex | IXC, IXG, IXL, system logger, CF. | ProblĂšme cluster, logger, coupling facility ou communication sysplex. |
3. Bon réflexe de diagnostic
- Ne pas commencer par le dernier message : chercher le premier message anormal dans le cluster.
- Lire les messages IEC/IGD/ICH/IRR juste avant un IEF450I ou HASP395.
- Comparer les Ă©vĂ©nements dâun mĂȘme job avec les messages systĂšme globaux autour de la mĂȘme minute.
- VĂ©rifier si plusieurs jobs Ă©chouent dans une mĂȘme fenĂȘtre : cela suggĂšre un problĂšme infrastructure plutĂŽt quâapplicatif.
- Sur sysplex, vérifier si plusieurs systÚmes ou subsystems émettent des messages corrélés.
Exports et exploitation des résultats
Vue lisible : score, timeline, root causes, issues, jobs, clusters, subsystems et evidence lines.
Format complet pour API, ingestion SQL, archivage ou comparaison automatique.
Une ligne par événement normalisé avec timestamp, famille, sévérité et message.
Une ligne par anomalie, avec sévérité, code, contexte et recommandation.
Jobs détectés, statut, RC, ABEND, lignes associées et synthÚse.
Groupes temporels dâincident pour corrĂ©lation et analyse post-mortem.
Exemple de synthĂšse console
SYSLOG / OPERLOG Incident Analyzer V2
Status : FAILED
Highest severity : CRITICAL
Risk score : 100/100
Events : 42
Issues : 15
Jobs : 3
Clusters : 4
Subsystems : JES, IEF, IEC, IGD, ICH, DFH, DSNIdée de table SQL pour historisation
CREATE TABLE syslog_operlog_incident_run (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
source_name VARCHAR(255),
profile VARCHAR(32),
status VARCHAR(32),
highest_severity VARCHAR(16),
risk_score INTEGER,
event_count INTEGER,
issue_count INTEGER,
job_count INTEGER,
cluster_count INTEGER,
subsystem_summary VARCHAR(1000),
report_path VARCHAR(500),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);Dépannage et bonnes pratiques
1. Le script ne détecte pas de timeline
| Cause possible | Correction |
|---|---|
| Le fichier nâest pas un texte brut. | Exporter depuis SDSF, SYSLOG ou OPERLOG en texte, pas en PDF image. |
| Les timestamps ont été supprimés. | Conserver le format horaire ou date/heure du log original. |
| Le fichier ne contient que des lignes applicatives. | Ajouter JESMSGLG/JESYSMSG ou un extrait SYSLOG complet autour de lâincident. |
| Format site spécifique. | Créer une rÚgle parser dédiée ou normaliser le fichier en amont. |
2. Trop dâissues remontĂ©es
Certains OPERLOG contiennent beaucoup de bruit. Commencer par filtrer avec --since et --until, puis choisir un --profile adapté : batch, security, sysplex, storage ou training.
python syslog_operlog_incident_analyzer_v2.py input/operlog.txt \
--since 08:50:00 \
--until 09:05:00 \
--profile storage \
--fail-on CRITICAL \
--html output/reports/focused_storage_incident.html3. Check-list avant partage externe
- Utiliser
--redactpour masquer datasets et identifiants sensibles. - Anonymiser jobnames, LPARs, sysplex names, volumes, applications et horaires si nécessaire.
- Conserver une copie brute interne pour valider le parsing et les evidence lines.
- Ne jamais conclure uniquement sur le dernier message : lire la premiĂšre anomalie du cluster.
- Valider le diagnostic avec lâĂ©quipe compĂ©tente : production, sĂ©curitĂ©, storage, CICS/DB2/IMS ou sysplex.
