Project Oxygen & Ideo-LabIDEO LAB Dashboard 2026

SYSLOG / OPERLOG Incident Analyzer V2 – Analyseur d’incidents z/OS

Objectif du guide

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.

TĂ©lĂ©charger l’utilitaire SYSLOG / OPERLOG Incident Analyzer V2

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.

Timeline
Reconstruction des Ă©vĂ©nements dans l’ordre : jobs, ABEND, datasets, sĂ©curitĂ©, CICS, DB2, IMS, sysplex.
Correlation
Regroupement en clusters d’incident par fenĂȘtre temporelle, systĂšme, job, subsystem et sĂ©vĂ©ritĂ©.
Export
Production HTML, JSON, CSV events, issues, jobs, clusters et subsystems.

Ce que le moteur analyse

DomaineSignaux analysésDiagnostic 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 / storageIEC, 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é.
SubsystemsDFH, DSN, DFS, CEE, BPX, IDC, ICE.Incident CICS, DB2, IMS, runtime, UNIX System Services, IDCAMS ou SORT.
SysplexIXC, IXG, IXL, CSV, system logger, coupling facility.Suspicion de problĂšme sysplex, logger, CF, structure ou membre instable.
OpérationsWTOR, REPLY, action opérateur, messages critiques ou répétés.Action humaine requise, alarme prioritaire, incident en escalade.
Positionnement : la V2 sert de base à un vrai portail d’exploitation mainframe : timeline, root cause, clusters, score de risque, historique SQL futur et dashboard par subsystem.

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/.

Utilitaire principal

Script Python autonome, sans dépendance externe, à lancer sur un export SYSLOG/OPERLOG/JES texte.

Sample mixed incident

Incident composite : job, ABEND, dataset, RACF, CICS/DB2 et messages opérateur.

Download mixed

Sample sysplex

Messages IXC/IXG/IXL, logger, coupling facility et suspicion sysplex.

Download sysplex

Sample security

RACF, ICH/IRR, access denied, S913 et éléments de conformité.

Download security

Sample storage

IEC/IGD/IOS, allocation, B37, catalog, I/O et problĂšmes de volumes.

Download storage

Rapport HTML démo

Rapport généré depuis le sample mixed pour validation visuelle.

Download report

Pack ZIP

Script, samples, exports et rapports de démonstration.

Download ZIP

Arborescence static recommandée

static files
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.html
ContrĂŽle visuel : le bouton Download syslog_operlog_incident_analyzer_v2.py est prĂ©sent en haut de la page, dans l’onglet TĂ©lĂ©chargement, dans Installation et dans Fichiers input.

Installation 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

Project tree
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/
Lien direct du script Ă  installer

Ce bouton pointe explicitement vers /static/toolbox/syslog_operlog_incident_analyzer_v2.py.

2. Installation Linux / macOS

Linux / macOS setup
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 mixed

3. Installation Windows PowerShell

Windows PowerShell setup
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 mixed

4. Test de validation

Validation command
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.csv
RĂ©sultat attendu : le sample mixed doit produire une timeline, plusieurs issues, des clusters d’incident, un score de risque Ă©levĂ© et un rapport HTML consultable.

Fichiers 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.

Utilitaire nécessaire pour analyser les inputs

TĂ©lĂ©charger d’abord le script Python, puis lancer l’analyse sur un export SYSLOG/OPERLOG/JES.

1. Sources acceptées

SourceContenu typiqueUsage
SYSLOGMessages systĂšme z/OS, JES, IEF, IEC, opĂ©rateur, jobs, subsystems.Base d’analyse incident hors sysplex ou par systĂšme.
OPERLOGJournal opérateur consolidé, utile en environnement sysplex.Corrélation multi-systÚme, messages opérateur, WTOR/REPLY.
JESMSGLG / JESYSMSGMessages job, HASP, IEF, RC, ABEND, step, dataset.Corrélation avec jobs fautifs et batch windows.
CICS / DB2 / IMSDFH, DSN, DFS, messages subsystem.Détection incident applicatif ou transactionnel.
SysplexIXC, IXG, IXL, CSV, logger, CF.Analyse des problĂšmes cluster, logger ou coupling facility.

2. Exemple minimal de timeline

sample_syslog_v2_mixed_incident.txt
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=0012

3. Samples disponibles

Mixed incident

Incident multi-signal pour valider la corrélation complÚte.

Download

Sysplex incident

IXC/IXG/IXL, logger, coupling facility et structures sysplex.

Download

Security incident

RACF, ICH, IRR, S913, access denied et datasets sensibles.

Download

Storage incident

IEC/IGD/IOS, B37, allocation, volume, SMS et I/O.

Download

RÚgle de sécurité : un vrai SYSLOG/OPERLOG peut révéler des jobnames, user IDs, datasets, noms de LPAR, volumes, subsystems et horaires sensibles. Utiliser --redact avant partage externe.

Utilisation quotidienne

1. Modes démo intégrés

Demo modes
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 storage

2. Analyse simple d’un fichier

Simple analysis
python syslog_operlog_incident_analyzer_v2.py input/sample_syslog_v2_mixed_incident.txt

3. Analyse complĂšte avec exports

Full export analysis
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.csv

4. Filtrage temporel

Les options --since et --until permettent d’isoler une fenĂȘtre d’incident prĂ©cise.

Time window analysis
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.html

5. Mode anonymisé

Redacted report
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.json

6. Mode batch strict

Batch strict mode
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 CRITICAL
Lecture recommandée : commencer par le rapport HTML, puis exploiter les CSV pour historisation, tri, SQL ou dashboard.

ParamĂštres de ligne de commande

1. ParamĂštres d’entrĂ©e et de sortie

ParamĂštreDescriptionExemple
input_fileFichier SYSLOG/OPERLOG/JES texte Ă  analyser.input/operlog.txt
--demoLance un sample intégré : mixed, sysplex, security, storage.--demo mixed
--jsonExporte l’analyse complùte en JSON.--json output/analysis.json
--htmlGénÚre le rapport HTML.--html output/report.html
--csv-eventsExporte la timeline événementielle normalisée.--csv-events output/events.csv
--csv-issuesExporte les anomalies détectées.--csv-issues output/issues.csv
--csv-jobsExporte les jobs, RC, ABEND et statuts détectés.--csv-jobs output/jobs.csv
--csv-clustersExporte les clusters temporels d’incident.--csv-clusters output/clusters.csv
--csv-subsystemsExporte la synthĂšse par subsystem ou famille de message.--csv-subsystems output/subsystems.csv

2. Paramùtres d’analyse et de gouvernance

ParamÚtreEffetUsage recommandé
--profileProfil : production, batch, security, cics, db2, ims, sysplex, storage, training.Ajuster la lecture métier et prioriser les familles de messages.
--since / --untilFiltre temporel sur la fenĂȘtre d’incident.Isoler 10 ou 20 minutes autour d’une panne.
--redactMasque les datasets et identifiants sensibles dans les sorties.Partage externe, support, ticket ou démonstration.
--fail-onRetourne un code erreur Ă  partir d’une sĂ©vĂ©ritĂ© donnĂ©e.--fail-on ERROR ou --fail-on CRITICAL.

3. Exemple profil sysplex

Sysplex profile
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.csv

Exemples 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.

Batch incident
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.csv

ScĂ©nario 2 – Incident sĂ©curitĂ© / RACF

Cas sécurité : access denied, S913, messages ICH/IRR et datasets sensibles à anonymiser.

Security incident
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.csv

ScĂ©nario 3 – Incident sysplex / logger / coupling facility

Cas sysplex : corrélation des messages IXC/IXG/IXL avec les clusters temporels.

Sysplex incident
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

ScĂ©nario 4 – Incident storage / B37 / I/O

Cas storage : IEC/IGD/IOS, allocation, volume, SMS ou DASD à vérifier.

Storage incident
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.csv

ScĂ©nario 5 – ContrĂŽle nocturne automatisĂ©

Cron entry
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>&1

Corré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

Incident timeline
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 FAILED

2. Types de clusters produits

ClusterSignaux typiquesLecture
Batch failureHASP, IEF, ABEND, RC Ă©levĂ©, dataset mention.Échec job, step fautif, cause technique Ă  confirmer.
Storage allocationIEC, IGD, B37/D37/E37, volume, SMS.ProblĂšme espace, allocation, catalog ou policy SMS.
SecurityICH, IRR, RACF, S913, access denied.Autorisation manquante ou profil de sécurité à corriger.
SubsystemDFH, DSN, DFS, CEE, BPX.Incident applicatif, CICS, DB2, IMS, LE ou UNIX System Services.
SysplexIXC, 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.
Attention : l’outil propose des candidats de root cause. Le diagnostic final doit toujours ĂȘtre validĂ© par un ingĂ©nieur production, storage, sĂ©curitĂ©, CICS/DB2/IMS ou sysplex selon le domaine.

Exports et exploitation des résultats

Rapport HTML

Vue lisible : score, timeline, root causes, issues, jobs, clusters, subsystems et evidence lines.

Analyse JSON

Format complet pour API, ingestion SQL, archivage ou comparaison automatique.

Events CSV

Une ligne par événement normalisé avec timestamp, famille, sévérité et message.

Issues CSV

Une ligne par anomalie, avec sévérité, code, contexte et recommandation.

Jobs CSV

Jobs détectés, statut, RC, ABEND, lignes associées et synthÚse.

Clusters CSV

Groupes temporels d’incident pour corrĂ©lation et analyse post-mortem.

Exemple de synthĂšse console

Console output
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, DSN

Idée de table SQL pour historisation

SQL model idea
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
                );
Vision produit : la V2 peut devenir un vĂ©ritable tableau de bord d’exploitation z/OS : historique SQL, recherche par message, heatmap des incidents, comparaison de fenĂȘtres et synthĂšse executive.

Dépannage et bonnes pratiques

1. Le script ne détecte pas de timeline

Cause possibleCorrection
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.

Focused analysis
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.html

3. Check-list avant partage externe

  • Utiliser --redact pour 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.
Point critique : SYSLOG et OPERLOG peuvent exposer la topologie opĂ©rationnelle d’un mainframe. Les exports doivent ĂȘtre traitĂ©s comme des documents sensibles.