Everything we watch

83 rules and 27 measurements. This page is generated from the same catalogue the product runs on, so it cannot say something the software does not do.

Measurements

The agent reads these every 30 seconds. Anything marked tunable can carry a threshold rule of your own — pick a measurement, a direction, a number and how long it has to hold.

MEASUREMENTUNITPERYOUR OWN RULES
cpu.usage_percent%hostyes
load.1—hostyes
load.5—hostyes
load.15—hostyes
memory.used_percent%hostyes
memory.available_bytesbyteshostyes
memory.total_bytesbyteshostyes
swap.used_percent%hostyes
swap.used_bytesbyteshostyes
swap.total_bytesbyteshostyes
disk.used_percent%mountpointyes
disk.inodes_used_percent%mountpointyes
disk.free_bytesbytesmountpointyes
disk.total_bytesbytesmountpointyes
diskio.read_bytesbytesdeviceno — counter since boot
diskio.write_bytesbytesdeviceno — counter since boot
net.rx_bytes_per_secondbytes per seconddeviceyes
net.tx_bytes_per_secondbytes per seconddeviceyes
net.rx_bytesbytesdeviceretired
net.tx_bytesbytesdeviceretired
net.conntrack_countconnectionshostyes
net.conntrack_maxconnectionshostyes
tcp.establishedconnectionshostyes
tcp.retrans_percent%hostyes
tcp.listen_overflows_per_secondper secondhostyes
tcp.listen_drops_per_secondper secondhostyes
udp.rcvbuf_errors_per_secondper secondhostyes

Rules

Each one can be left alone, forced to a severity, or switched off — per organisation and per host. Thresholds shown are the defaults.

host

RULEWHEN IT FIRESSEVERITYTUNABLE
Host is not reportinghost.offlineNo heartbeat for 45 secondscritical—
Clock out of stephost.clock_skew———
Host rebootedhost.rebooted———

collect

RULEWHEN IT FIRESSEVERITYTUNABLE
Collection failingcollect.failingA part of the collection keeps failing: the package list, the image list, the port scan, docker or a metricwarning—
Journal cannot be readcollect.journalThe agent cannot read the journal, so the two auth rules see nothingcritical—

disk

RULEWHEN IT FIRESSEVERITYTUNABLE
Disk fulldisk.fullMountpoint above 85% / 95%warning / criticalWarn at (85%), Critical at (95%)
Disk space filling updisk.filling———

inodes

RULEWHEN IT FIRESSEVERITYTUNABLE
Inodes filling upinodes.filling———

storage

RULEWHEN IT FIRESSEVERITYTUNABLE
Storage pool degradedstorage.degraded———
Storage pool state unknownstorage.unknown———
Storage pool nearly fullstorage.nearly_full———
Storage pool scrub overduestorage.scrub_stale———
Storage pool reporting errorsstorage.errors———
Thin pool metadata nearly fullstorage.metadata_full———

unit

RULEWHEN IT FIRESSEVERITYTUNABLE
Service failedunit.failed———
Service stoppedunit.stopped———

container

RULEWHEN IT FIRESSEVERITYTUNABLE
Container not runningcontainer.downA container marked as expected running is not running, or is gone from the hostcritical—
Container restart loopcontainer.restart_loopA container has restarted 3 times within 60 minutes — critical if it is expected runningwarning / critical—
Privileged containercontainer.privilegedA container runs privileged: every capability, every devicecritical—
Docker socket mounted into a containercontainer.docker_socketA container has the docker socket mounted, which is root on the hostcritical—
Container limits not enforcedcontainer.limit_ineffective———

docker

RULEWHEN IT FIRESSEVERITYTUNABLE
Docker daemon gonedocker.goneDocker is gone from a host that still has containers on recordcritical—

port

RULEWHEN IT FIRESSEVERITYTUNABLE
New listening portport.new———
Port reachable from anywhereport.exposed———
Expected port is goneport.gone———

package

RULEWHEN IT FIRESSEVERITYTUNABLE
Packages changedpackage.changed———

authkeys

RULEWHEN IT FIRESSEVERITYTUNABLE
authorized_keys changedauthkeys.changed———

config

RULEWHEN IT FIRESSEVERITYTUNABLE
Watched file changedconfig.changed———

ldpreload

RULEWHEN IT FIRESSEVERITYTUNABLE
ld.so.preload is presentldpreload.present———

auth

RULEWHEN IT FIRESSEVERITYTUNABLE
Repeated failed loginsauth.bruteforce10 failed SSH logins from one address in 15 minuteswarningAlert at (10 attempts)
A login succeeded after failuresauth.breachA login accepted from an address that just failed 5 timescriticalAlert at (5 attempts)
Repeated denied sudoauth.sudo_denied———

vuln

RULEWHEN IT FIRESSEVERITYTUNABLE
Critical vulnerabilityvuln.critical———
Known exploited vulnerabilityvuln.exploited———
Secret found in an imagevuln.secretA secret is baked into an image that is runningcritical—

updates

RULEWHEN IT FIRESSEVERITYTUNABLE
Security updates waitingupdates.security_pendingA security update has been pending for 7 dayswarningAllow (7 days)
Reboot requiredupdates.reboot_pendingThe host has needed a reboot for 14 dayswarningAllow (14 days)
Image has no vulnerability dataupdates.image_unscannable———
Running an older kernel than installedupdates.kernel_staleThe running kernel is older than the newest installed onewarning—
Release is end of lifeupdates.distro_eolThe distribution stops getting security updates within 90 days / already haswarning / critical—
Services still running old librariesupdates.restart_pending———
Firmware update waitingupdates.firmware_pending———
Firmware cannot be readupdates.firmware_blindfwupd is missing, or its LVFS metadata is older than 30 dayswarningMetadata stale after (30 days)

kernel

RULEWHEN IT FIRESSEVERITYTUNABLE
Filesystem went read-onlykernel.fs_readonlyThe kernel logged it within the last 7 dayscritical—
Filesystem errorkernel.fs_errorThe kernel logged it within the last 7 dayswarning—
I/O errorkernel.io_errorThe kernel logged it within the last 7 dayswarning—
Storage link resetkernel.link_resetThe kernel logged it within the last 7 dayswarning—
Machine checkkernel.hardware_errorThe kernel logged it within the last 7 dayswarning—
Corrected memory errorkernel.memory_errorThe kernel logged it within the last 7 dayswarning—
Blocked by kernel lockdownkernel.lockdownThe kernel logged it within the last 7 dayswarning—
Connection tracking table filled upkernel.conntrack_fullThe kernel logged it within the last 7 dayscritical—
Accept queue overflowedkernel.syn_backlogThe kernel logged it within the last 7 dayswarning—
Killed to free memorykernel.oom_killThe kernel logged it within the last 7 dayswarning—
Thin pool cannot writekernel.thin_exhaustedThe kernel logged it within the last 7 dayscritical—
Thin pool nearly fullkernel.thin_low_waterThe kernel logged it within the last 7 dayswarning—

ssh

RULEWHEN IT FIRESSEVERITYTUNABLE
sshd config is invalidssh.config_invalid———
Root may log in over SSHssh.root_login———
Passwords accepted over SSHssh.password_auth———
sshd config changedssh.config_changed———

account

RULEWHEN IT FIRESSEVERITYTUNABLE
A second root accountaccount.uid0———
An account with no passwordaccount.empty_password———
New accountaccount.new———
Account changedaccount.changed———

executable

RULEWHEN IT FIRESSEVERITYTUNABLE
Executable in a world-writable directoryexecutable.in_writable_dir———

secret

RULEWHEN IT FIRESSEVERITYTUNABLE
Secret readable by every accountsecret.world_readable———

suid

RULEWHEN IT FIRESSEVERITYTUNABLE
New setuid file no package ownssuid.new———

firewall

RULEWHEN IT FIRESSEVERITYTUNABLE
Firewall state unknownfirewall.unknown———

egress

RULEWHEN IT FIRESSEVERITYTUNABLE
New outbound destinationegress.new———

net

RULEWHEN IT FIRESSEVERITYTUNABLE
Link slower than expectednet.link_degraded———
Link is downnet.link_down———
Link is flappingnet.link_flappingThe carrier has changed 3 times or more since the last batchwarningFlapping at (3 changes)
Interface is gonenet.gone———
Link speed unknownnet.unknown———
Connection tracking table nearly fullnet.conntrack_fullThe table is above 90% / 98% of its limitwarning / criticalWarn at (90%), Critical at (98%)
Connections dropped at a listening socketnet.listen_overflowMore than 1 per second, averaged over the last readingwarningAlert at (1 per second)
UDP datagrams dropped, receive buffer fullnet.udp_dropsMore than 1 per second, averaged over the last readingwarningAlert at (1 per second)

security

RULEWHEN IT FIRESSEVERITYTUNABLE
Firmware security droppedsecurity.posture_regressed———

check

RULEWHEN IT FIRESSEVERITYTUNABLE
Check is downcheck.down———
Certificate expiringcheck.cert_expiring———
Certificate invalidcheck.cert_invalid———
Weak TLScheck.tls_weakA checked URL negotiates TLS 1.1 or older, or a cipher below 128 bitswarning—

job

RULEWHEN IT FIRESSEVERITYTUNABLE
Job did not reportjob.missed———
Job failedjob.failed———

What is not on this list

Anything the agent cannot see

A host that stops reporting is its own alert. A measurement that is missing is shown as missing, never as zero — a conntrack table that does not exist is not an empty one.

Thresholds we have not measured

Where we do not know what a healthy machine looks like, there is no rule. The measurement is collected anyway, so you can set the number yourself once you know yours.

Start freeRead the install docs