Skip to content

Logs and diagnostics

Updated

Logs & Diagnostics under System is the first place to look when the host itself is the problem, rather than a machine on it. It holds five sections: Diagnosis, Run log, Recent failures, Change audit, and Support report.

The page shows Virtainer Free’s own log, filterable by level and viewable in local time or UTC. Most questions about what the host did and when are answered here.

The log is read from the host’s own journal rather than from the running process, so it survives a restart of Virtainer Free and of the host. Choose This boot or Previous boot to say which stretch of time you want. After the host itself rebooted, the earlier lines are in the previous boot. An agent that was killed and started again without a host reboot leaves its lines in the current one, so look in Recent failures below rather than switching boot. How long anything stays available is the journal’s decision, not the product’s.

The Diagnosis tab runs checks against the host itself, computed from what the host can actually observe. Each check reports one of four verdicts: Pass, Warn, Fail, or Unknown.

Every check carries a next step written by the host rather than guessed at by the page, so the row tells you where to look as well as what it found. Checks cover the tools the host runs machines with, its storage paths, pools and snapshot headroom, network and DNS delivery, the boundaries between the host and its machines, disk health, whether the agent’s most recent start followed a clean shutdown, its background tasks, its database schema, and instance-level problems including boot loops and quarantined records. One check reads back the label on the SSH key set up during first-run: if the host rejects that key while password login still works, that check is the one that names the mismatch.

Anything worth your attention here also appears in the notifications list in the console header.

This is the host’s index of failures it captured, kept in its own store so it survives a restart of Virtainer Free. It is where you look for the crash or the machine failure that the current boot’s log no longer shows. Each row carries a stable code, the component it came from, and a one-line account of what happened, and rows linked to a request open onto that request’s own log lines.

A machine that stopped answering while the process running it stayed alive lands here as vmm_unresponsive, against that machine, with the machine still marked running: the host left it alone rather than destroy it on a missed answer. While a machine stays in that state the host records it at most once every five minutes, because a congested host that keeps failing its probes would otherwise push every other clue out of the list. See Lifecycle and console for what the state means.

Every change the host accepted through its API is listed here with who made it, what it touched, and how it ended, along with the request and operation ids that lead back to the log lines and to the durable operation. It keeps that metadata only: no request bodies, query strings, cookies, or credentials. When the question is who changed a machine rather than what the host was doing, start here and follow the request id into the run log.

A machine’s own Diagnostics tab keeps the output of each time the host started it, under Runtime attempts: the machine’s runtime output, its disk runtime output, and its recorded lifecycle events, chosen per attempt. Only the newest eight starts are kept, and older ones are removed when a new start begins, so the evidence from the start that crashed is still there after the host has restarted the machine several times.

Storage devices report their health, including early warning when a disk starts to degrade. Check this after any unexpected reboot, and before you plan a storage change. The Storage page shows the same information alongside the pool.

The Dashboard reports what the host has and what is committed to machines. It is the quickest check when creation fails for reasons that turn out to be simply running out of room.

A support report bundles the host’s local evidence for when you are asked for it: what the host and its machines currently are, the diagnosis findings, the run log for this boot and the previous one, the host’s PCI device state, the workload output of AppVMs, recent failures, the request audit, the durable operations, and the retired versions of the active network topology. The PCI part lists the devices the host can see, with each one’s IOMMU group, the driver bound to it, and which machine’s record claims it. If you pass hardware through, read that section before you share the report, because it describes the hardware in your host and what is attached to it.

The host itself has no outbound path for a report: it never sends one anywhere on its own. The Send button in the Support form posts from your browser to Virtainer, not from the appliance. You can also download the report and pass it on yourself. The three newest reports are kept, and each carries the checksum support verifies the file against.

Errors from the host carry a stable code as well as a message, and a few of them point somewhere other than where they seem to:

What you see Where the problem actually is
An upstream service is unavailable The host’s own outbound network or DNS, not its storage or VM networking
A storage probe failed Reading the disks failed. This is different from finding no disks
The operation does not match the current state The machine is not in a state that allows the action, such as exporting a machine that is not completely stopped
A plan is stale The disks changed after you reviewed the plan. Review again

The console shows the code alongside the message, so quote both when you report a problem.

For what makes a machine count as dead, see Lifecycle and console. For machines that came back in an unexpected state after a restart, see After a host reboot.