Skip to main content

Monitoring corosync

corosync is the membership and messaging layer under a Proxmox VE cluster and under Pacemaker stacks. The agent recognises it by its systemd unit, reports whether the unit is active, and ships its journal. Whether a stopped corosync is a problem depends entirely on whether the node belongs to a cluster, so the alert for it does not read this definition at all; the section on alerts explains where it reads from instead.

How corosync is recognised​

The signed corosync definition matches a host where the corosync.service unit exists, running or not. That is deliberate: on a standalone Proxmox VE node the unit is installed and inactive, and the definition still has to match to say so. Every two minutes the agent runs systemctl is-active corosync and turns the answer into a 0/1 metric. An inactive unit is a successful probe with a value of 0, not a failed check.

What is collected​

Unit state. One metric, 1 when the unit is active and 0 otherwise.

SignalMetric
corosync unit activesvc.corosync.unit_active

Names, tags and units are in the metrics reference.

Logs. The logs-corosync definition ships the journal entries of corosync and pmxcfs (the Proxmox cluster file system, which sits on top of corosync) at notice level and above by default, every 30 seconds. Membership changes, token timeouts and quorum transitions arrive as log lines under this service. See Logs.

Alerts out of the box​

No rule watches svc.corosync.unit_active. The rule corosync is not running exists, but it reads svc.proxmox.cluster.corosync_active, a metric the Proxmox VE definition emits only on a node that is a cluster member (the node sees a cluster in its status or carries a cluster configuration file). A standalone node never emits that metric and therefore never fires the rule, however long its corosync stays inactive. On a cluster member the rule opens when the daemon is inactive for 2 minutes, at warning severity, and closes when it is active again. The whole cluster-side picture, quorum included, is on Monitoring Proxmox VE.

RuleFires whenSeverityShips
corosync is not runningthe membership daemon is inactive on a Proxmox cluster member for 2 minuteswarningon

On a Pacemaker cluster without Proxmox there is no built-in rule; a custom rule on svc.corosync.unit_active == 0 in the console (/alerting/rules) gives you the same alert, since every metric above can drive one. Thresholds and hysteresis are in the rules catalog.

Limitations​

  • Only the unit state is read. Ring status, the token timeout, the vote count and the quorum verdict are not collected from corosync itself; on Proxmox VE the quorum verdict comes from the Proxmox definition instead.
  • No corosync version or configuration fact is reported.
  • Without systemd there is no unit to match, so the definition does not apply on other init systems.
  • Nothing is read from Pacemaker or the resource layer above corosync.