NetLock RMMNetLock RMM Docs
II — Console Reference

Events & Audit

Operational events from devices and the immutable administrative audit trail.

Events & Audit

NetLock RMM keeps two separate logs, each answering a different question.

  • Events answers "what happened on the devices?" — antivirus detections, job outcomes, sensor breaches, uptime-monitor failures, port-scan findings, device online/offline transitions.
  • Audit answers "what happened in the console?" — who logged in, who changed a policy, who approved a patch, who deleted a user.

This split is deliberate. Events is operational; Audit is administrative. Events is filterable by severity and device; Audit is filterable by user and entity type. Events can be marked read or exported; Audit is append-only and cannot be pruned from the UI. Keep the two pages separate in your head and you will always be on the right one.

Events and Audit navigation items in the console menu

12.1 Scope split

Events and Audit are not duplicates of each other. The following split is the single source of truth:

Source of the recordLogged in
Antivirus events from Microsoft Defender on a deviceEvents
Job execution outcomes on a device (scripts, deployments, policy pushes)Events
Sensor threshold breaches from a deviceEvents
Website uptime-monitor checksEvents
Port Scanner findingsEvents
Device online / offline transitionsEvents
Application Control / Device Control block attempts on a deviceEvents (also on dedicated Blocked tabs — see 12.5)
Login success, login failure, logoutAudit
Any create / update / delete through the consoleAudit
Permission or role change on a userAudit
Script executed from the consoleAudit (+ Events from the device side when the script runs)
Export of a list to JSON or HTMLAudit
Authorizing or deauthorizing a pending deviceAudit

Script execution is the classic case of a record landing in both logs. The Audit entry records that a console user initiated the run (action = execute, entity_type = script). The Events entry is emitted by the device after the script finishes (type = job), with the outcome and any output. Read one without the other and you are missing half the picture.

Application Control and Device Control blocks are surfaced in Events and on their own Blocked tabs — see 12.5.

12.2 Events

Manage Events at /events is the operational log.

Events page with filter controls at the top and a list of event rows

List columns

The list shows:

ColumnMeaning
Severitycritical, high, moderate, or low. Maps to DB values 3 / 2 / 1 / 0 but the UI shows the label.
DateTimestamp of the event.
TenantThe tenant the event's device belongs to.
LocationThe location under the tenant.
DeviceThe device that produced the event.
Reported ByThe source subsystem — antivirus, job, sensor, uptime monitor, port scanner.
EventThe event message.

Filter controls

A filter bar across the top of the page narrows the view:

  • Time span — start and end date. Defaults to the last 7 days.
  • SeverityAny, critical, high, moderate, or low.
  • TypeAny, antivirus, job, sensor, Uptime Monitoring, or Port Scanner.
  • Tenant — dynamically populated from the tenants you have access to.
  • Location — dynamically populated from the selected tenant.
  • Show read events — checkbox, off by default. When off, events you have already opened are hidden.
  • Show website uptime events — checkbox, on by default.
  • Show port scanner events — checkbox, on by default.

The six event types

Events are categorised by type. The Type filter exposes five of them; a sixth exists but is not included in the dropdown:

UI labelSourceNotes
antivirusAntivirus detections and signature updates from Microsoft Defender, plus Application Control and Device Control block events — all three share this type.Distinguish the source by the Reported by field: Application Control [...] / Device Control [...] for block events.
jobJob execution outcomes — success, failure, retry. Covers scheduled jobs, policy pushes, and deployment jobs.Hidden jobs do not appear here (see next subsection).
sensorSensor threshold breaches — notification threshold crossed, action threshold crossed.Includes threshold-recovery events.
Uptime MonitoringWebsite uptime monitor state changes — Down, Recovered, Degraded.Controlled by the Show website uptime events checkbox in addition to the filter dropdown.
Port ScannerOpen ports discovered by the Port Scanner.Controlled by the Show port scanner events checkbox in addition to the filter dropdown.
(no dropdown entry)Device uptime — online / offline transitions.Visible with the default filter; no dedicated checkbox.

The Show website uptime events and Show port scanner events checkboxes are independent of the Type dropdown. If you pick Uptime Monitoring from the Type dropdown, the events are shown regardless of the checkbox state — the dropdown wins when it names a type explicitly.

Hidden jobs are excluded

Jobs marked Hidden in their library entry (see Chapter 8.2) are excluded from the Events view at query time. There is no checkbox that brings them back — they are not visible on this page at all, regardless of filter state. Use hidden jobs for background work that feeds Custom Fields or other non-operational data flows; use non-hidden jobs when you want the outcome surfaced here.

Event Details dialog

Clicking a row opens the Event Details dialog and marks the event as read.

Event Details dialog with the Monaco tab active showing formatted output

The dialog has two tabs:

  • Monaco — the event content rendered in a Monaco code editor with syntax highlighting. Best for output that is JSON, XML, or otherwise structured.
  • RAW — the plain-text form of the same content. Use this when Monaco's highlighter guesses wrong or when you want to copy content verbatim.

When AI is enabled in Settings → AI/LLM, a third control appears: the Analyze with AI button. Clicking it hands the event content to the AI chat with the event context pre-filled, so you can ask the model to explain the event without copying and pasting it by hand.

Toolbar actions

The Events toolbar exposes:

  • Refresh — re-queries the server for the current filter.
  • Mark all as read — marks every event currently visible as read.
  • Export — exports the currently-filtered list as JSON or HTML.

There is no acknowledge affordance beyond mark-as-read and no delete affordance. Events remain on the server until retention rules (configured in Settings) remove them.

Permissions

FlagGates
events_enabledOpening the Events page.

Tenant scoping is applied through the standard tenant-list permission, so a user with access to tenants A and B will see events from devices in those tenants only.

12.3 Audit

Audit at /audit is the administrative log.

Audit page with filter bar and a list of entries

List columns

The list shows:

ColumnMeaning
SeverityInfo, Warning, or Critical. Maps to DB values 0 / 1 / 2.
DateTimestamp of the administrative action.
UserThe console user who performed the action.
ActionOne of the ten action categories (see below).
Entity TypeOne of the 18 entity types (see below).
Entity NameThe specific entity the action applied to.
TenantThe tenant scope, if the entity is tenant-scoped.
IP AddressThe source IP of the user's session.

Filter controls

  • Time span — default last 7 days.
  • SeverityAny, Info, Warning, or Critical.
  • ActionAny plus the ten action categories.
  • Entity TypeAny plus the 18 entity types.
  • User — drawn from the accounts that have ever produced an audit entry.

Action categories

Every audit entry has one of these ten actions:

ActionWhen it fires
createA new entity is created (tenant, policy, script, job, and so on).
updateAn existing entity is edited.
deleteAn entity is deleted.
loginA user successfully logs in.
login_failedA login attempt fails.
logoutA user logs out.
executeA user triggers an execution, typically a script or deployment.
exportA user exports a list to JSON or HTML.
authorizeA user approves a pending device.
deauthorizeA user deauthorises an authorised device.

Entity types

Every audit entry has one of these 18 entity types:

Entity TypeScope
sessionLogin / logout sessions.
userUser accounts.
user_permissionsA user's permission flags.
tenantTenant records.
locationLocations under a tenant.
groupGroups under a location.
deviceDevice records.
policyPolicy definitions.
scriptScript library entries.
jobJob library entries.
sensorSensor definitions.
custom_fieldCustom field definitions.
fileFile Server entries.
notificationNotification channel configurations.
automationAutomation rules.
system_settingSystem-wide settings.
patchPatch approval records.
audit_logThe Audit log itself (see Immutability below).

Immutability

There is no delete affordance on the Audit page. You cannot remove individual entries, bulk-delete, or clear the log from the UI. The log is treated as append-only.

Viewing the Audit log is itself audited. When you open the page, an entry is written with action = view and entity_type = audit_log, recording which user accessed the log and from what IP. This means the auditors can be audited — you can see who has been reading the log.

Retention

Retention is not configurable on the Audit page. The date-range picker filters what you see; it does not delete anything. Retention is a global setting under Settings → Logging (see Appendix A.9).

Audit Details dialog

Clicking a row opens the Audit Details dialog. It shows the full record: date, severity, user, source IP, action, entity type, entity ID, entity name, tenant scope, and the formatted details payload. If the details field contains valid JSON, it is pretty-printed; otherwise it is rendered as plain text. The dialog has a single Close button.

Permissions

FlagGates
audit_enabledOpening the Audit page.

12.4 Cross-reference: which Phase-2 feature lands where

A single console action often produces records in both logs. The table below maps common operations to the records they write — use it when you are tracking a change across systems.

ActionEvents recordAudit record
Automation causes a device to change policy— (no event; see the device detail's Assigned policy field)update on policy — see Chapter 5
Patch approval state change (Pending → Approved)update on patch — see Chapter 7
Policy edit savedupdate on policy — see Chapter 6
Software deployment executedOne job event per device with the install outcomeexecute on job
Script run from the consoleOne job event per device with the run outputexecute on script — see Chapter 8.1
Permission flag or role changed on a userupdate on user_permissions
Login successlogin on session
Login failurelogin_failed on session
Automation createdcreate on automation
Automation editedupdate on automation
System setting changedupdate on system_setting
Device authorised from the Unauthorized Devices pageauthorize on device
Device deauthoriseddeauthorize on device
Antivirus detection on a deviceOne antivirus event
Application Control or Device Control blocks an item on a deviceOne event under the antivirus type, Reported by = Application Control [...] / Device Control [...] (also on the Blocked tab — see 12.5)
Sensor threshold breachedOne sensor event
Website uptime monitor fails / recoversOne Uptime Monitoring event
Port scan discovers a new open portOne Port Scanner event
Device comes online or goes offlineOne uptime event (not in the Type dropdown)

12.5 Application Control and Device Control blocks

When the agent blocks an unknown application or USB device, the block is surfaced in two places at once.

On the Events page. Each block is logged as an event. It shares the antivirus type with Microsoft Defender events, so the Type filter dropdown has no separate Application Control or Device Control entry — selecting antivirus, or leaving the filter on its default, includes them. Identify them by the Reported by column, which reads Application Control [<mode>] or Device Control [<mode>].

On a dedicated Blocked tab. The same block also lands on a block-and-approve tab inside Collections:

  • Application Control blocks appear on the Blocked Applications tab of Manage Application Control Rulesets — see Chapter 8.6.
  • Device Control blocks appear on the Blocked Devices tab of Manage Device Control — see Chapter 8.7.

The two surfaces serve different purposes. The Events entry is the operational timeline — what happened, when, and on which device. The Blocked tab is the workflow surface — a blocked attempt is an input to the approval process, where you decide whether to whitelist it. Use Events to spot a block; use the Blocked tab to act on it.

If the policy has tray-icon notifications enabled, the on-device user additionally sees a notification at the moment of the block — configured per policy in Chapter 6.

Permissions

FlagGates
events_enabledEvents page.
audit_enabledAudit page.

See Appendix X.2 for the full permission catalogue.