ntworld.ink
A laptop showing a spreadsheet, with circuitry and the NT monogram
Course Library · Data & Cyber Stream

Power BI for Cyber Security: Build Your First SIEM Dashboard

Turn 4,000 raw Windows security events into an investigation surface, then hunt the intruder hiding inside them.

DURATION · 1 day, or 2 half-days LEVEL · Beginner to intermediate FORMAT · Single-page course + 2 Excel datasets
// why this course exists

You cannot practise on a real SIEM. So we built you a fake one.

Security Operations Centre (SOC) analysts spend their days reading event logs through a SIEM (Security Information and Event Management) tool such as Splunk or Microsoft Sentinel. The problem for learners is that you cannot practise on your employer's SIEM; the back end of your organisation's Windows environment is, quite rightly, locked away from you.

This course solves that with synthetic data. You will work with realistic, made-up security logs that behave exactly like the real thing, and use Power BI, a free tool, to do what a SIEM dashboard does: turn thousands of raw events into an investigation surface. Along the way you learn Power BI properly; data modelling, relationships, measures, interactivity and conditional formatting; with cyber security as the running example rather than sales figures.

By the end you will have hunted a simulated intruder through 4,000 Windows security events using a dashboard you built yourself.

// before you start

You need Power BI Desktop on Windows; it is a free download from Microsoft (search "Power BI Desktop" on the Microsoft Store, or find it on Microsoft's Power BI site). No organisational data, licences or admin access are required, and everything on this page works offline once the two datasets below are downloaded. No Power BI experience is assumed; basic Excel familiarity helps. This course follows on well from Cyber Security Awareness and Power Query: Surveillance Data Analysis, both in the library, but stands alone.

// what you will learn
// course downloads

The two datasets

Both workbooks are entirely synthetic; every account, machine, IP address and event was generated. External addresses use the 198.51.100.0/24 range reserved for documentation under RFC 5737, so nothing in these files touches the real internet. Download both before starting Part B.

Dataset one: SOC alert data. One row per security alert, as an analyst would see them in a case queue: EventID, Timestamp, SourceIP, DestinationIP, EventType, Severity, Department, Status, ResolvedDate and AnalystAssigned, plus an EventTypeReference sheet defining each of the seven event types.

Dataset two: raw Windows event logs. Windows Security log events across 26 machines, formatted as they would appear after ingestion into Splunk; 26 columns including _time, host, EventCode, SubjectUserName, TargetUserName, LogonType, IpAddress, ProcessName and the full Message text, plus a reference sheet defining all 37 event codes present. A planted attack story is hiding in here; you hunt it in the capstone.

// contents

Course map

PART A  //  CONCEPTS NO SOFTWARE NEEDED YET

Two kinds of security data

Before touching Power BI, you need one distinction that underpins the whole course.

The SOC dataset is alert data: each row is a thing an analyst is handling. It is the refined output of a security pipeline; triaged, assigned, tracked to resolution.

The Windows dataset is raw event data: each row is a single thing a machine recorded. Logons, logoffs, processes starting and stopping, files touched. Windows does not log "attacks"; it logs everything, and detection means finding malicious needles in that haystack. Thousands of these events occur before any human looks at one.

// mental model

Raw events are the ore; alerts are what comes out of the refinery. A SIEM is the refinery. This course works with both ends of that pipeline.

Column guide: the SOC alert data

Read these before loading anything; every column earns its place on a real SOC queue.

EventID
Unique ticket number per alert. The primary key.
Timestamp
When the event was detected. Time is central to security analysis; clusters of events in short windows, and activity outside business hours, are both classic signals.
SourceIP and DestinationIP
Where activity came from and what it targeted. Addresses starting 10. and 192.168. are private internal ranges; a port scan's SourceIP is the scanner, its DestinationIP the machine being probed.
EventType
The category of suspicious activity. The reference sheet defines each; they map to real attack stages, from reconnaissance (Port Scan) through to data exfiltration (Unusual Data Transfer), plus modern cloud-era types such as Unauthorised OAuth Grant and Unsanctioned AI Domain Access.
Severity
Low, Medium, High, Critical. Drives triage order.
Department
Business context; the same alert matters more in Finance than in most teams.
Status
The alert lifecycle; Open, Investigating, Resolved, False Positive. False positive rates are a standard SOC metric.
ResolvedDate
Blank until an alert closes. The blanks are meaningful, not missing data. ResolvedDate minus Timestamp gives time-to-resolution, a headline SOC measure.
AnalystAssigned
Who owns the ticket; enables workload views.
PART B  //  GET DATA · POWER QUERY DATASET ONE

Loading data the right way

Open Power BI Desktop, then Get Data > Excel workbook, and select soc_dataset1.xlsx.

// stumbling block

Four options for two tables

The Navigator will show four tickable items for this workbook, something like NetworkEvents, NetworkEvents1, EventTypeReference and EventTypeReference2. This confuses almost everyone. The cause: the workbook contains each dataset twice over; once as a worksheet, and once as a formatted Excel Table object sitting on that sheet. Power BI lists both, and when names collide it appends a number.

Pick the Table versions. Tell them apart by the icon (Tables show a small grid with a coloured header band; worksheets show a plain sheet icon) or by clicking each and reading the preview. Tables come in with headers already recognised and never pick up stray cells around the data. Tick the two Table items and leave the sheet versions unticked.

Always transform before loading

Click Transform Data rather than Load, even on clean data; the habit pays off on messy files. In Power Query, check three things: Timestamp and ResolvedDate show the date/time data type (fix via the icon in the column header if they read as text); ResolvedDate contains nulls and should keep them; each query has a sensible name. Then Close and Apply.

// stumbling block

Table names with numbers on them

If your tables loaded as NetworkEvents1 or EventTypeReference2, rename them: right-click the table name in the Data pane, then Rename. Everything already built on the table updates automatically, and the rename is local to your model; it does not touch the Excel file or break refresh.

PART C  //  DATA MODELLING THE CONCEPTUAL HEART OF THE COURSE

The star schema, as a senior analyst would explain it

Every row in NetworkEvents is a thing that happened; an event, at a time, from an IP, to an IP. It happened once and will never happen again, and tomorrow there will be a thousand more rows like it. That table only ever grows. That is what makes it the fact table: it records occurrences.

EventTypeReference has seven rows. It records nothing that happened; it records what things mean. Port Scan is reconnaissance, typically Medium. Unusual Data Transfer is exfiltration, typically High. That is institutional knowledge, not activity, and it changes only when the security team decides to change it. That is the lookup table (also called a dimension table): it describes rather than records.

Why keep them separate? Suppose the full description lived on every event row. You would store the same sentence a thousand times over; wasteful but survivable. The real problem: the day Port Scan gets reclassified into a new category, you would have to update every historical row, and any you missed would make your reports silently disagree with themselves. With a lookup table you change one row and every event, past and future, picks up the new meaning instantly. One source of truth for definitions; an untouched, ever-growing record of facts.

// why this matters in security

This pattern is everywhere in security. The SIEM does exactly this: raw events are facts, and the event code reference (4624 means successful logon) is a lookup. Threat intelligence feeds, asset inventories and user directories are all lookup tables joined onto the stream of facts to give it meaning. When an analyst enriches an alert with "this IP belongs to Finance", they are doing a fact-to-dimension join in their head. Diagram one fact table surrounded by its lookups and the shape is a star; hence the name.

In Power BI: open Model view (the linked-tables icon on the left rail) and confirm a one-to-many relationship on EventType, with the 1 on EventTypeReference and the asterisk on NetworkEvents. Power BI usually auto-detects it; if not, drag one EventType field onto the other.

Verification exercise: build a table visual using Category from the lookup and a count of EventID from the fact table. If counts split by category rather than repeating one number, the relationship works.

PART D  //  FIRST VISUAL THREE TRAPS, ONE CHART

The first chart, and the traps inside it

Build a stacked column chart: alerts per day, coloured by severity. Three stumbling blocks arrive at once; treat each as part of the lesson, because every Power BI beginner meets all three.

// stumbling block

The field names are nowhere on screen

You select the chart, see the empty X axis, Y axis and Legend wells, and cannot find anything to drag. The fields live in a third panel, the Data pane (labelled Fields in older versions), at the far right edge, and it is frequently collapsed into a thin vertical strip. Expand it via the chevron, or restore it from the View ribbon. The working rhythm is: select the visual on the canvas, drag from the Data pane, drop into the wells in the Visualisations pane. Those two panes work as a pair.

// stumbling block

One giant bar instead of a timeline

Drop Timestamp on the X axis and the chart shows a single column labelled with a quarter or year. Power BI automatically wraps date fields in a hierarchy (Year, Quarter, Month, Day) and starts at the top; a month of data rolls up into one bar. Two fixes: use the drill arrows that appear under the visual (single down arrow toggles per-bar drill mode; double down arrow moves the whole chart down a level; up arrow backs out), or simply delete Year, Quarter and Month from the X-axis well leaving only Day.

Note: drilling adds an italic temporary filter in the Filters pane (for example "Timestamp - Year is 2026"); that is normal and reversible.

// stumbling block

Severity colours are wrong

The legend assigns colours alphabetically, so Critical will not be red. Fix it under Format visual > Colours: Critical red, High orange, Medium amber, Low grey. This convention is universal on SOC dashboards and worth enforcing from the first chart.

RUNNING THIS AS TWO HALF-DAYS? BREAK HERE. PARTS A TO D USED THE ALERT DATA; PARTS E TO K USE THE RAW WINDOWS LOGS.
PART E  //  EVENT LOG LITERACY DATASET TWO

Raw Windows event logs

Now the main event. Load synthetic-windows-event-data.xlsx the same way. The Navigator shows about twenty items this time: ten worksheets plus ten Table objects. Tick only the Table versions of NetworkEvents and EventTypeReference; the eight Cat_ tables are per-category documentation subsets, useful to read in Excel but redundant in the model. The Table-versus-sheet distinction matters more here, because the category sheets have title text above their data; a sheet version would arrive with junk rows and Column1-style headers.

In Power Query: _time should be Date/Time; EventCode arrives as a whole number, which is fine, but remember it is a label, never a quantity to sum; and expect large numbers of nulls in IpAddress, ProcessName, ObjectName and similar. Each event type populates only its own fields, so the blanks are correct behaviour, not dirty data.

Relate EventCode to EventCode in Model view; same star, bigger and rawer fact table.

Column guide: reading a Windows Security log

Work through a few real rows with this guide beside you. The key columns:

_time, index, sourcetype, host
Splunk's plumbing; the timestamp, storage bucket, data type and reporting machine. The underscore prefix marks Splunk internal fields.
LogName
Which Windows log; Security for audit events, System for operating system events.
EventCode
The single most important column. Every Windows event kind has a fixed numeric ID, and analysts memorise the common ones; see the table below.
ComputerName
Where the event occurred. Naming conventions encode machine type: WKS workstation, LAP laptop, SRV server, DC domain controller; the domain controller handles all domain logins and is the crown jewels.
Subject versus Target accounts
The beginner trap. Subject is who performed the action; Target is who it was done to. For a self-logon they match. For "an account was created", Subject is the admin, Target the new account. Unexpected mismatches deserve attention. SIDs are the accounts' permanent internal identifiers; usernames can change, SIDs cannot. Accounts prefixed adm. are separate administrator accounts, mirroring real practice.
LogonType
How a logon happened, as a code; see the table below.
ProcessName
Full path of a program for process events. Paths matter: C:\Windows\System32 is normal territory; executables running from a Public user folder with names like stage_2.exe are textbook malware staging.
ObjectName and ObjectType
Files and registry keys touched. The registry is Windows' settings database; attackers modify it to survive reboots.
PrivilegeList
Specific admin rights invoked, such as SeDebugPrivilege, abused by credential-theft tools.
ServiceName
For Kerberos events, which service a ticket was requested for; krbtgt is the ticket-granting service itself, central to attacks such as Kerberoasting, so analysts watch it.
Status and Message
Success or Failure, and the full human-readable event text. Every other column is a parsed field from Message; that parsing is much of what a SIEM does.

Event codes worth memorising

Event codeMeaning
4624Successful logon
4625Failed logon
4688Process created
4720Account created
4740Account locked out
4672Special privileges assigned
4768, 4769, 4771Kerberos ticket events
1102Audit log cleared; almost always triggers investigation, because attackers clear logs to cover their tracks

Logon type codes

Logon typeMeaning
2At the keyboard
3Over the network
5A service
7Unlocking a screen
10Remote Desktop; a favourite attacker pathway, watch it
11Cached credentials offline, typical of laptops
PART F  //  DAX ONE LINE THAT CHANGES EVERYTHING

Your first measure

Reach for a Y-axis field and you will discover this table has no EventID. That absence is deliberate: Power BI has no built-in "number of rows" field, so the count must be created.

The quick way: drag any column with no blanks (host works) into the Y axis; text columns default to Count. But beware the trap: Count skips blanks, so Count of IpAddress silently counts only events that have an IP; a wrong total that looks right. (Used knowingly, that same behaviour is legitimate; Count of ProcessName counts only process events.)

The proper way, and your first line of DAX: Modeling ribbon > New measure, then

Total Events = COUNTROWS(NetworkEvents)

The measure appears in the Data pane with a calculator icon; use it as the Y axis everywhere from now. It has no null trap, is reusable in every visual, and reads properly in tooltips. Real SOC dashboards are stacks of measures like this filtered different ways: failed logons, events per host, after-hours activity.

PART G  //  CROSS-FILTERING WHERE POWER BI STOPS BEING EXCEL

The interactive page

An honest admission: everything so far could be done in Excel. The difference arrives only when several visuals share a page, so build four on one page over the Windows data:

Then click things, in this order, and notice what each click asks:

  1. Click Failure in the slicer: every visual re-filters at once; the timeline shows when failures cluster, the bar chart shows which accounts they hammer, the table shows they are mostly 4625s and 4771s.
  2. Click the 4625 row in the table: the bar chart now answers "who is being brute-forced?"
  3. Click one suspicious day in the timeline: everything narrows to that day.
  4. Ctrl-click stacks filters.
// the framing that lands

An Excel chart is a printed answer to one pre-decided question; a Power BI page answers questions you had not thought of yet when you built it. That is what a SIEM dashboard is for; an analyst sees a spike, clicks it, and pivots to who, what and where in seconds.

Two quieter points to bank: scale (Excel struggles beyond a million rows; Power BI models handle tens of millions, and SIEM exports get there fast) and refresh (save new data over the old file, click Refresh once, and every visual, measure and relationship rebuilds; the report is a machine built once, not a document redone monthly).

PART H  //  LAYOUT · FORMATTING FUNCTION FIRST, THEN POLISH

From clumsy to CISO-ready; layout, formatting and page behaviour

Every first four-visual page works and looks terrible: a giant slicer eating a quarter of the canvas, visuals of random sizes, nothing aligned. That is fine; function first. This part turns it into something you would put in front of a CISO, and demystifies how pages behave along the way.

// stumbling block

Understanding what a page actually is

A Power BI page is not a document that grows as you add content; it is a fixed-size canvas, like a PowerPoint slide, 16:9 by default. Visuals live at fixed positions on that canvas, and when the window resizes, the whole canvas scales. This explains two things that confuse beginners: why visuals seem to shrink or grow when the window changes (check the View ribbon > Page view; Fit to page scales everything, Actual size does not), and why running out of room means either making visuals smaller, changing the canvas size (click empty canvas > Format page > Canvas settings, where you can set a custom height for a taller scrolling page), or adding a new page with the plus tab at the bottom, exactly like adding a slide.

Multi-page reports are normal: a CISO summary page, an investigation page, a raw data page. Slicers and filters only affect their own page unless you deliberately sync them (View ribbon > Sync slicers), which is worth knowing exists but not building on day one.

Tame the giant slicer

Select the slicer, open Format visual, and under Slicer settings change Style from Vertical list to Dropdown; it collapses to a single neat row that expands on click. (Tile style suits touch screens and short lists like Severity; the vertical list only earns its space when the list is short and constantly used.) Under Selection you can enable Show "Select all" and multi-select behaviour. Then resize it to a slim strip. The convention on operations dashboards: slicers live in a consistent strip across the top or down the left edge, never floating mid-canvas.

Set the scene: theme and background

Do the big moves before fiddling with individual visuals. On the View ribbon, open the Themes gallery and try a few; one click restyles every visual on every page, which is the point: colour decisions belong to the theme, not to twenty separate format panes. Choose Customise current theme to set your own palette and default font.

SOC dashboards are traditionally dark (screens in a dim room, red alerts that glow), so try it: click empty canvas > Format page > Canvas background, set a dark navy, and pull transparency to zero. If you go dark, check every visual's text is still readable; the built-in Dark theme handles most of it for you. There is no shame in staying light; NT audiences reading in bright rooms may prefer it. Pick one and be consistent.

Titles, borders and breathing room

For each visual, under Format visual > General: give it a short title written as the question it answers ("Failed logons by account", not "Bar chart"). Turn off clutter that repeats what the title says; axis titles and legends earn their place or go. Under Effects, a subtle background, rounded corners on the visual border, and a faint shadow lift each visual into a card; apply identical settings to all visuals so they read as a set. This is exactly the tile look every commercial SOC product uses.

Alignment: the difference between amateur and professional

Ctrl-click to select several visuals, then use the Format ribbon (the one that appears when visuals are selected) > Align, and Distribute horizontally or vertically. Nothing signals "clumsy" faster than near-aligned edges; nothing fixes it faster than these two menus. Turn on View ribbon > Gridlines and Snap to grid before moving anything else.

A layout that reliably works, top to bottom: a slim KPI card row across the top (built in Part J), the timeline chart full width beneath it, the detail visuals (bar chart, table, matrix) in a row below, slicers top-right. Executives read in an F pattern; put the headline numbers where the eyes land first.

Control what clicks do

By default every visual cross-filters or cross-highlights every other. You can direct this: select a visual > Format ribbon > Edit interactions, and every other visual sprouts small icons letting you choose filter (the clicked selection removes everything else), highlight (dims the rest, keeping context) or none. Highlight is the default for column charts and often the better story-teller; filter is cleaner for tables. Knowing this menu exists also cures the occasional "why did that chart not change?" mystery: someone turned an interaction off.

PART I  //  CONDITIONAL FORMATTING EXECUTIVES SCAN FOR RED

The CISO heatmap

Executives do not read walls of numbers; they scan for red cells and ask why. This part builds that view, and teaches the design rule underneath it: colour gradients are for quantities (how many events); fixed colours are for categories (Critical is always red). Mixing them up produces confusing dashboards.

// stumbling block

Finding the Matrix visual

The Matrix is not on any ribbon; it is in the icon gallery of the Visualisations pane, beside the Table icon. Click empty canvas first (so an existing visual is not converted), hover the icons to read tooltips, and choose Matrix. Table is flat rows; Matrix pivots one field down the side and another across the top, with values at the intersections; it is Power BI's PivotTable.

Build: host into Rows, Category into Columns, Total Events into Values.

Paint: with the matrix selected, Format visual (paintbrush) > Cell elements, confirm the series is Total Events, switch Background colour on, click the fx button. Format style Gradient, turn on Add a middle colour, set minimum green, middle orange, maximum red. (Alternative route: dropdown arrow on Total Events in the Values well > Conditional formatting > Background colour.)

The result reads instantly: most cells green, a few burning orange to red. The domain controller glows under Account Logon because all Kerberos authentication flows through it; that is expected. Any workstation glowing in unexpected columns is a question.

// refinements worth discussing

Switching from Gradient to Rules sets explicit thresholds (green under an agreed number, red above), which executives often prefer because a gradient always makes something reddest, even in a quiet month. And pure green-to-red is hard on colour-blind readers, roughly 8 percent of men; mature dashboards often use white-to-red instead, keeping green for an explicit good state.

PART J  //  ADVANCED VISUALS ALL BUILT-IN; NO DOWNLOADS

Visuals that make it remarkable

With layout under control, four additions turn a competent report into a memorable one. All use only built-in visuals; no marketplace downloads needed.

The KPI card row

Real SOC dashboards lead with headline numbers. Build three more measures (Modeling ribbon > New measure):

Failed Logons = CALCULATE([Total Events], NetworkEvents[EventCode] = 4625)
Hosts Reporting = DISTINCTCOUNT(NetworkEvents[host])
Log Clears = CALCULATE([Total Events], NetworkEvents[EventCode] = 1102)

CALCULATE is the workhorse of DAX: it takes a measure and applies a filter to it, and those three lines are the template for almost every security metric you will ever write. Drop each measure into a Card visual and line the cards across the top of the page.

The Log Clears card is the teaching moment: it should read zero on a healthy network, so apply conditional formatting to its text colour (the fx route, Rules style: grey at zero, red above zero) and it becomes a silent alarm that lights up only when someone has been covering their tracks. Cards respond to slicers and cross-filtering like everything else, so clicking a host in the heatmap re-computes the headline numbers for that machine alone.

The Smart Narrative

In the visual gallery, the icon that looks like a text block with a lightning bolt is Smart narrative. Click empty canvas, add it, and Power BI writes a plain-language summary of what is on the page: totals, trends, largest categories. The magic is that the text is live: cross-filter to Failures, or click one account, and the paragraph rewrites itself to describe the filtered picture. You can edit the text freely and insert your own dynamic values (the +Value button accepts natural-language questions or measures), so a practical pattern is an auto-updating shift summary in a corner of the CISO page: "There were [Total Events] events across [Hosts Reporting] hosts, including [Failed Logons] failed logons."

Set expectations: the generated prose is statistical boilerplate ("Total Events trended up"), not analysis, and it will happily narrate the unremarkable. Treat it as a draft narrator that never sleeps; the analyst still decides what matters. Its real value is proving that the page is one live model, not a collage of pictures.

The decomposition tree

If one visual earns the word remarkable for security work, it is this. Add a Decomposition tree from the gallery: put Total Events in Analyze, then load Explain by with Category, EventName (from the lookup table), host, TargetUserName and Status. Click the plus beside the total and choose a dimension to split by, then keep clicking plus on any branch to split again, in any order: Category, then which event, then which machine, then which account. This is precisely the drill-down an analyst performs during an investigation, made physical. The AI options in the plus menu (High value, Low value) let Power BI choose the most interesting branch for you. Free-explore here; you may find threads of the planted attack story without being told where to look.

Anomaly detection on the timeline

Swap a copy of the events-per-day chart to a line chart, open the Analytics pane (the magnifying-glass icon beside Format), and under Find anomalies click Add. Power BI marks the days that deviate from the expected range and, when you click an anomaly marker, offers possible explanations drawn from the other fields (feature behaviour varies a little by version). On this dataset the attack days should surface as marked anomalies, which lands a serious point: this is exactly what a SIEM's detection layer does at industrial scale; flag the abnormal, then let a human ask why.

PART K  //  CAPSTONE USE ONLY THE DASHBOARD YOU BUILT

Hunt the intruder

The Windows dataset contains a planted attack story. Using only the dashboard built today, hunt it. Here is the method, not the answers:

  1. Filter to Failures and find the account being hammered with 4625 failed logons; note the day and source.
  2. Clear the filter and click that account: did a success follow the failures? The failure-run-then-success pattern is the classic brute-force breakthrough.
  3. Check what that account did next: look for process events, and specifically for executables running from C:\Users\Public\Transfer (stage_2.exe, stage_3.exe); staging behaviour.
  4. Sweep for the cover-up: any 1102 audit-log-cleared events?
  5. Check account lockouts (4740) and account creations (4720) around the same window.
  6. Use the heatmap to spot which machines ran hot, and the timeline to order the story.

Deliverable: write a five-sentence incident summary: what happened, which account, which machines, in what order, and what you would check next. Writing the narrative from clicks is the skill; the dashboard is just how you got there.

// running this as a workshop

Delivery notes for facilitators

Self-paced learners can skip this section; it is for anyone delivering the course to a group.

The stumbling blocks on this page are not asides; they are the curriculum. Each one was hit in live use by a genuine beginner, and pre-empting them on slides robs learners of the recovery skill. Let them hit the four-options Navigator, the hidden Data pane and the one-giant-bar chart, then teach the fix.

The star schema explanation in Part C works best delivered verbally, in character as the senior analyst, before any diagram is shown.

The "wow" is reliably Part G, not any single visual. Do not let the morning run long; learners who reach the interactive page convert, and learners who stop at single charts leave thinking Power BI is Excel with extra steps.

Timing that worked in development: Parts A to D before lunch; E to K after. Part E's column guide can compress if the group has done Cyber Security Awareness. If the afternoon runs long, Part J is the flex section: the KPI cards and decomposition tree are the priorities, and the Smart Narrative and anomaly detection can become a five-minute demonstration rather than a build.

The formatting work in Part H lands best on the learner's own clumsy page, not a prepared one; the before-and-after on their own work is the persuasion.

Two version cautions: exact Power BI pane labels shift between monthly releases (Data versus Fields, Colours versus Data colours); sanity-check against the installed version before delivery. The anomaly detection feature's behaviour has also changed across releases; test it on the installed version, and simply drop it if absent, as nothing downstream depends on it.

If you need to regenerate similar data, ask a capable AI assistant for something like: "Create a synthetic Excel dataset of Windows Security event log data as it would appear in Splunk, with columns _time, host, EventCode, Category, SubjectUserName, TargetUserName, LogonType, IpAddress, ProcessName, Status and Message, covering common event codes such as 4624, 4625, 4688, 4720 and 1102, across about 25 machines and 4,000 rows, and hide a simulated brute-force and malware staging attack inside it."

Last updated 30 July 2026