Zum Hauptinhalt springen

SIEM Mini Dashboard

A browser-based security dashboard for visualizing suspicious events generated by a Python CLI Log Analyzer.

This project was built to demonstrate practical Cyber Security, Detection Engineering, Security Monitoring, Data Visualization, and Frontend Development skills in a realistic portfolio project.

The dashboard consumes structured JSON data exported by the custom log-analyzer.py tool and transforms raw security findings into an interactive SIEM-style monitoring interface with KPIs, charts, filters, timelines, and searchable event tables.

It simulates how security teams review alerts, investigate suspicious IP activity, prioritize critical findings, and gain visibility into log data through a centralized dashboard.


Table of Contents


Project Overview

This repository contains a lightweight SIEM-style dashboard built with HTML, CSS, and Vanilla JavaScript.

The dashboard reads structured JSON data created by the Python Log Analyzer and displays:

  • total suspicious events
  • severity distribution
  • critical and high-priority alerts
  • top suspicious source IPs
  • most common event types
  • searchable event records
  • filterable security findings
  • timeline of recent events

The purpose of the project is to simulate the workflow of a small Security Operations Center (SOC) dashboard without requiring heavy enterprise tooling.


Why This Project Matters

Security teams rely on dashboards to transform raw logs into actionable intelligence.

Without visualization, logs are difficult to review manually. With a dashboard, analysts can quickly:

  • identify brute force activity
  • detect suspicious IP addresses
  • prioritize critical events
  • monitor attack trends
  • investigate incidents faster
  • search large event lists
  • communicate findings clearly

This project demonstrates the practical bridge between log analysis and security monitoring dashboards.


Features

FeatureDescription
KPI Overview CardsDisplays key metrics such as total events, critical alerts, unique IPs
Severity ChartShows event distribution by severity
Event Type ChartShows most common detection categories
Suspicious IP ChartHighlights top source IP addresses
Search FunctionSearch events by raw log line, IP, or type
Severity FilterFilter events by critical, high, medium, low
Event Type FilterFilter by detection rule
Source IP FilterFilter by IP address
Event TableDetailed list of detected events
Timeline ViewShows latest suspicious events
Refresh ButtonReload JSON data
Reset FiltersRestore default dashboard state
Responsive LayoutWorks on desktop and smaller screens
Dark Security ThemeProfessional SIEM-inspired visual style

Tech Stack

ComponentPurpose
HTML5Dashboard structure
CSS3Styling, layout, responsiveness
Vanilla JavaScriptData loading and rendering
Chart.jsInteractive charts
Python Log AnalyzerJSON data source
JSONStructured event exchange format

Architecture

Raw Logs

Python Log Analyzer

sample_analysis.json

SIEM Mini Dashboard

Charts • KPIs • Table • Timeline

This demonstrates a realistic detection pipeline:

  1. collect logs
  2. analyze logs
  3. classify findings
  4. export structured data
  5. visualize findings

How It Works

1. Log Analyzer Export

The companion Python tool analyzes raw logs and exports JSON output:

python3 log_analyzer.py --file enterprise_sample.log --json

2. Dashboard Loads JSON

The browser loads:

data/sample_analysis.json

3. JavaScript Processes Events

The dashboard extracts:

  • event severities
  • source IP counts
  • event types
  • timeline data
  • metadata

4. Visual Output

The user receives:

  • charts
  • tables
  • KPIs
  • filters
  • timeline view

Prerequisites

Before using the dashboard, make sure the following is available:

  • modern browser such as Chrome, Edge, Firefox, or Safari
  • Python 3 for the local web server
  • exported JSON data from the Log Analyzer

Quickstart

Clone repository:

git clone <your-repository-url>

Enter project folder:

cd siem-mini-dashboard

Start local server:

python3 -m http.server 3003

Open browser:

http://localhost:3003

How to Run the Dashboard

1. Generate JSON Data

python3 log_analyzer.py --file enterprise_sample.log --json

2. Copy JSON File

Move exported file into:

data/sample_analysis.json

3. Start Local Web Server

python3 -m http.server 3003

4. Open in Browser

http://localhost:3003

Usage

Search Events

Use the search bar to search for:

  • SQL injection
  • IP addresses
  • failed login
  • XSS
  • path traversal

Filter Severity

Use the severity dropdown to filter by:

  • Critical
  • High
  • Medium
  • Low

Filter Event Type

Show only specific event types such as:

  • Failed Login
  • SQL Injection Pattern
  • XSS Pattern
  • Unauthorized Access
  • Brute Force Indicator

Filter by IP

Focus on one suspicious source host by selecting a specific IP address.

Refresh Dashboard

Reload the newest JSON data after the analyzer output has been updated.


Screenshots

1. Full Dashboard Overview

Dashboard Overview

2. Analytics Charts

Analytics Charts

3. Filtered Events Table

Filtered Events

4. Event Timeline

Event Timeline

5. JSON Data Source

JSON Data Source


Security Relevance

This project demonstrates practical security concepts such as:

  • SIEM fundamentals
  • security monitoring
  • log visibility
  • event prioritization
  • suspicious IP tracking
  • detection engineering
  • dashboarding for SOC workflows
  • incident investigation support
  • alert triage

Possible real-world use cases include:

  • internal lab monitoring
  • incident response practice
  • analyst training
  • dashboard prototypes
  • log visualization layer for custom tooling

Possible Improvements

Possible future improvements include:

  • live auto-refresh mode
  • multiple JSON data sources
  • drag and drop log import
  • CSV import support
  • PDF reporting
  • analyst notes
  • alert acknowledgement system
  • MITRE ATT&CK mapping
  • geolocation for IP addresses
  • email or Slack alerts
  • authentication system
  • backend API with Flask or FastAPI
  • dark/light mode toggle
  • export filtered results
  • integration with real syslog sources

Author

Ognjen Manojlovic