Home / Infrastructure & monitoring
Any API · Microsoft · Google · Linux · Monitoring · Logging

Connect anything. Then keep it running.

Any system with an API, connected. Any system without one, given one. Windows, Linux, Azure, Google Workspace, the plant-floor server under the desk — integrated into one estate and watched by NightOps — a central monitor with an agent on every server — so the failed night job, the filling disk and the stranded orders are caught before they become a bad month-end. Installed, documented, and handed to your IT team to own.

// install + hand over · documented · your team sees the problem first, not us
TOOLS WE INSTALL:AZURE MONITORAPP INSIGHTSGOOGLE CLOUD OPSPROMETHEUSGRAFANAZABBIX / PRTGLOKI / ELASTICSENTRYWINDOWS EVENT FWDCLOUDFLARE
Connect anything

Any API — or one built for you.

"It doesn't have an API" is where most integration projects stop. It's where ours start.

HAS AN API

Use it properly

REST, SOAP, GraphQL, OData, vendor SDKs. Contract-first mapping, idempotent calls, retries with backoff, every run logged, every reject routed to a person. Microsoft Graph, Google Workspace APIs, HubSpot, NetSuite, SAP, Arena, Windchill — and whatever you run that we haven't met yet.

NO API

Build one

A read-only API over a legacy database with proper auth and logging. A file-drop watcher that turns nightly exports into events. A scanner or web front end in front of a green-screen transaction. Fourth Shift, FoxPro, Access, AccountMate — there is always a way in, done safely.

BETWEEN

Make it reliable

Queues so a downstream outage doesn't lose transactions. Reconciliation so both sides tie to the transaction. Monitoring so a feed that goes quiet raises an alert instead of a month-end surprise. The integration discipline →

Any infrastructure

Microsoft, Google, Linux — usually all three at once.

Most manufacturers aren't one thing. The office is on Microsoft 365 or Google Workspace, the plant runs Windows Server and SQL Server, the newer apps live in Linux containers, and the ERP predates all of it. We work across the whole estate, and the monitoring sits across the whole estate too.

MICROSOFT

Windows Server · SQL Server · Azure · M365

  • Entra ID / Active Directory, single sign-on for the apps we build
  • SQL Server health, backups verified by restore, index and growth watch
  • Azure Container Apps, App Service, Azure Monitor + Application Insights
  • Windows Event Forwarding into central logging; scheduled-task and service watch
GOOGLE

Workspace · Cloud

  • Workspace APIs — Gmail, Drive, Sheets, Calendar — as integration endpoints
  • Google Cloud Operations (Cloud Monitoring, Logging) for cloud workloads
  • Identity federation so plant apps use the same login as the office
  • Sheets-as-a-system retired into a real one, without losing the people who built it
LINUX

Servers · containers · the box under the desk

  • Docker / Compose, systemd services, reverse proxies, certificates that renew themselves
  • Prometheus + Grafana or Zabbix for hosts and network (SNMP, ping, ports, disk, temperature)
  • Loki or Elastic for logs, Sentry for application errors
  • Hardening basics: patching cadence, least-privilege, no shared root password on a sticky note
The platform · NightOps

One central monitor. An agent on every server. Every night job accounted for.

NightOps is the operations platform we built to run overnight and end-of-month processing for manufacturers — and to watch the servers it runs on. A controller is the fleet brain; a small agent on each server reports health, runs and observes the automated batch work, and confirms the outcome, not just the exit code.

NightOps controller schedules · approvals · paging outcome monitors · fleet brain SQ01 · ERP / SQL Server● agent · health · night run SQ03 · application server● agent · services · jobs VW02 · automation● agent · print · DMS · EOM MES01 · Linux● agent · containers · disk CLAIRVIENT-WF● virtual agent · workflows On-call · dashboardpage · approve · runbook

The controller holds the schedule for every night and end-of-month run, the approval gates for the steps that shouldn't proceed on their own, the outcome monitors that verify a job actually produced what it should, and the paging. One screen: fleet → host → components → runs → approvals.

The agents are small services on each Windows or Linux server. They report health — CPU, memory, disk growth, services, scheduled tasks, event logs, certificates, backup age — and they run and observe the automated batch operations on that box: ERP night processing, MRP regeneration, invoice batches, print and document queues, backups and restore tests. Virtual agents cover things that aren't a server, like a workflow engine or a cloud service.

Outcome, not exit code. A job that returns 0 but stranded forty orders is a failure. Outcome monitors check the result in the data — orders released, invoices produced, GL batches posted, files delivered — and page when the outcome is wrong, with the log line and the runbook attached.

NightOps FleetRunsMonitorsApprovalsRunbooks agents 6/6controller okheartbeat 12sTue 03:12

Fleet healthhosts 5 · virtual 1

SQ01 · ERP/SQL
Windows Server · agent 2.4.1
cpu 38mem 61disk 84 ▲
SQ03 · App
Windows Server · 14 services
cpu 22mem 47disk 41
VW02 · Automation
print · DMS · EOM batch
cpu 55mem 52disk 36
MES01 · Linux
Ubuntu · 6 containers
cpu 31mem 58disk 49
FS02 · Files/Backup
restore test Sun 03:00 ✓
cpu 9mem 33disk 62
CLAIRVIENT-WF
virtual agent · 11 workflows
queue 0dead-letter 0lag 0s
Approval needed — EOM step 4 Post GL batches is gated: AP subledger differs from GL by $1,204.10 (runbook EOM-04)ReviewHold

Tonight's run · night processing + EOMday 1 of close

22:00FSDB full backupSQ01 · 41 min · 18.2 GB · checksum ✓done
23:00Night processing — batch set 1SQ03 · 6 steps · outcome: 1,412 transactions posteddone
00:30MRP regenerationexit 1 at 02:08 · log attached · paged on-call · re-run approved 02:14re-run ✓ 02:51
01:15Invoice batch → PDF → email → DMSVW02 · 388 invoices · 0 missing · DMS confirmeddone
03:00Outcome monitor — order flow → warehouse63/63 procedures healthy · 0 orders strandedlive
04:00EOM step 4 — post GL batchesgated: subledger ≠ GL · waiting for approvalheld
05:00Morning digest → managersClairvient · ranked exceptions · drill to sourcequeued
alerts tonight: 2 · 1 paged · 1 held for approval · 0 silentevery alert → log line + runbook link → on-call · escalates in 15 min if ignored

// illustrative screens. NightOps runs today on Fourth Shift plants' overnight and month-end processing; the same controller-and-agent model installs on any Windows or Linux estate.

Monitoring & logging

Catch it before it interrupts the business.

Every outage we've ever been called into announced itself first — in a log nobody read, a disk nobody graphed, a job nobody checked. The night job fails silently on Tuesday and surfaces as a bad month-end two weeks later. The disk fills at 3 a.m. and the plant finds out at 6. The backup was running all along; nobody had ever restored one.

The methodology is simple, and NightOps is how it's delivered. Watch the things that predict failure, not just the things that have failed: disk growth rate, job duration drift, queue depth, certificate expiry, backup age. Alert with the evidence attached — the log line, the metric, the runbook link — so the person who gets paged can fix it, not just know about it. Escalate when ignored. Test the restore, not the backup. And log so that root cause is already in the log when you open it: structured, centralized, searchable, retained.

Test the restore, not the backup. Alert on the trend, not the failure.
ServersCPU, memory, disk growth rate, services, scheduled tasks, patch state — Windows and Linux alike
Jobsnightly ERP processing, integrations, backups — exit codes, duration drift, "didn't run at all"
Networkswitches, firewalls, links, the VPN to the parent company — SNMP, latency, packet loss
Appserrors with stack traces (Sentry), response times, queue depth, failed logins
Edgescertificates, DNS, public endpoints behind Cloudflare, uptime from outside your network
Backupsage, size, and a scheduled restore to a sandbox with a checksum — the only test that counts
How the engagement runs

Install. Document. Hand over.

Fixed scope, fixed price after a discovery call. The goal is that your team sees the problem first — not that you depend on us.

01

Inventory

Every server, service, job, link and integration that the business depends on — and what happens if each one stops. Usually the first time it's been written down.

02

Install

The NightOps controller and an agent on every server — plus the metrics and log stack that fits your estate (Grafana, Zabbix, Loki, Sentry, Azure Monitor) feeding it. Night and month-end batch operations registered as runs with outcome monitors. Restore tests scheduled. Dashboards your IT and your plant manager both understand.

03

Runbooks

Every alert links to the procedure: what it means, what to check, what to do, who to call. Written for the person on call at 2 a.m., not for us.

04

Hand over — or retain

Your IT owns it, trained and documented. If you'd rather we stay on the alert list, a light retainer covers it. Either way, the next outage is caught on Monday, not discovered on Thursday.

Everything we build ships with this layer already in place — modernized applications, integrations, and Clairvient deployments. This page is for when you want it on the systems you already have.

Straight answers

Questions about infrastructure and monitoring.

Do you manage our infrastructure ongoing?
The core offer is install and hand over: we stand up monitoring, alerting, logging and backup verification on your estate, document it, and train your IT so they own it. If you'd rather we keep an eye on it, a light retainer is available — but the goal is that your team sees the problem first, not that you depend on us.
We're a Microsoft shop / a Google shop / mostly Linux. Does that matter?
No. We work in all three, and most manufacturers are a mix anyway: Windows servers and SQL Server on the plant floor, Microsoft 365 or Google Workspace in the office, Linux containers for the newer apps, and an ERP that predates all of it. The monitoring layer sits across the whole estate so one screen tells the truth about all of it.
What if the system we need to connect has no API?
Then we build one. A read-only API over a legacy database, a file-drop watcher that turns exports into events, a scanner interface in front of a green-screen transaction — there is always a way in, and it can be done safely, logged, and monitored. We've done it for Fourth Shift, FoxPro, Access, AccountMate and a fair number of systems with no name.
Which tools do you actually use?
NightOps — our own controller-and-agent platform — for the batch operations, outcome monitors, approvals and paging, with whatever metrics and logging stack fits the estate feeding it. Typical: Azure Monitor and Application Insights or Google Cloud Operations for cloud workloads; Prometheus and Grafana, or Zabbix / PRTG, for servers and network (SNMP, ping, ports, certificates, disk, backup jobs); Loki or the Elastic stack for log aggregation; Sentry for application errors; Windows Event Forwarding for the Windows fleet; Cloudflare in front of anything public. Nothing exotic, nothing you can't hire for.
What does 'catch it before it interrupts the business' mean in practice?
The disk that will be full on Thursday alerts on Monday. The night job that failed silently pages someone at 2:10 a.m. instead of surfacing as a bad month-end. The certificate expires in 21 days, not tonight. The backup is restored — actually restored — on a schedule, so the day you need it isn't the first time you tried. The alert carries the log line and the runbook link, so the fix is a lookup, not a hunt.
Let's talk

What went down last, and how did you find out?

That one question tells us most of what we need. Then: what runs where — Windows, Linux, Azure, Google, the plant floor — and what has no API but needs one.

You'll get a straight answer and a tight scope. If we can't help, we'll tell you that too — and usually who can.

No newsletter. No drip sequence. Just a reply from us.

Got it — thanks.

We read every one of these ourselves. Expect a reply within one business day. If it's urgent, email us directly at dan.mindlin@mindlinconsulting.com.