lego-monitoring/docs/nixos-options.md
2026-01-18 15:33:56 +03:00

12 KiB
Raw Permalink Blame History

services.lego-monitoring.enable

Whether to enable lego-monitoring service.

Type: boolean

Default: false

Example: true

Declared by:

services.lego-monitoring.enabledCheckSets

List of enabled check sets. Each check set is a module which checks something and generates alerts based on check results. Available check sets:

  • self send an alert when lego-monitoring is started and stopped
  • remind periodically (daily by default) remind about ongoing unresolved alerts
  • cpu alerts when CPU usage is above threshold
  • ram alerts when RAM usage is above threshold
  • temp alerts when temperature readings are above thresholds
  • net alerts when network usage is above threshold
  • ups alerts on UPS events
  • vulnix periodically scans system for known CVEs, alerts if any are found (NixOS only)

Type: list of (one of “self”, “remind”, “cpu”, “ram”, “temp”, “net”, “ups”, “vulnix”)

Default: [ ]

Declared by:

services.lego-monitoring.alertChannels.healthchecks.enable

Whether to enable Healthchecks notification channel.

Type: boolean

Default: false

Example: true

Declared by:

services.lego-monitoring.alertChannels.healthchecks.pingingApiEndpoint

Endpoint URL for Healthchecks pinging API.

Type: string

Default: "https://hc-ping.com/"

Example: "https://your-healthchecks-instance.com/ping/"

Declared by:

services.lego-monitoring.alertChannels.healthchecks.pingingKeysSecretPath

Path to a file containing the pinging keys in a slug:key format, one on each line (ex: lego-cpu:aaaaaaaaaaaaaaaaaaaaaa). Specify default as the slug to use this key for check types that dont have a key explicitly assigned to them.

If you are unsure of the exact slug a check will generate, it is recommended to try it out with the default key first, before assigning a specific one.

Note: checks will be auto-provisioned, but correct intervals and grace periods have to be configured manually from the web console, otherwise silent failures will not be recorded until after 1 day (the default healthchecks interval).

Type: string

Default: ""

Declared by:

services.lego-monitoring.alertChannels.telegram.enable

Whether to enable Telegram notification channel.

Type: boolean

Default: false

Example: true

Declared by:

services.lego-monitoring.alertChannels.telegram.credsSecretPath

Path to a file containing Telegram api_id, api_hash, and bot token, separated by the , character.

Type: string

Default: ""

Declared by:

services.lego-monitoring.alertChannels.telegram.roomId

ID of chat where to send alerts.

Type: signed integer

Default: 0

Declared by:

services.lego-monitoring.checks.cpu.criticalPercentage

CPU load percentage for a critical alert to be sent. Null means never generate a CPU critical alert.

Type: null or (positive integer or floating point number, meaning >0)

Default: 90.0

Declared by:

services.lego-monitoring.checks.cpu.warningPercentage

CPU load percentage for a warning alert to be sent. Null means never generate a CPU warning alert.

Type: null or (positive integer or floating point number, meaning >0)

Default: 80.0

Declared by:

services.lego-monitoring.checks.net.interfaces

Per-interface configuration of IO byte thresholds.

Type: attribute set of (submodule)

Default: { }

Example:

{
  br0 = {
    warningThresholdCombBytes = 700 * 1024 * 128;        # 700 Megabits
    criticalThresholdCombBytes = 1 * 1024 * 1024 * 128;  # 1 Gigabit
  };
}

Declared by:

services.lego-monitoring.checks.net.interfaces.<name>.criticalThresholdCombBytes

Combined (sent + received) bytes per second threshold for a critical alert to be sent. If null, this threshold is disabled and not checked.

Type: null or (positive integer, meaning >0)

Default: null

Declared by:

services.lego-monitoring.checks.net.interfaces.<name>.criticalThresholdRecvBytes

Received bytes per second threshold for a critical alert to be sent. If null, this threshold is disabled and not checked.

Type: null or (positive integer, meaning >0)

Default: null

Declared by:

services.lego-monitoring.checks.net.interfaces.<name>.criticalThresholdSentBytes

Sent bytes per second threshold for a critical alert to be sent. If null, this threshold is disabled and not checked.

Type: null or (positive integer, meaning >0)

Default: null

Declared by:

services.lego-monitoring.checks.net.interfaces.<name>.warningThresholdCombBytes

Combined (sent + received) bytes per second threshold for a warning alert to be sent. If null, this threshold is disabled and not checked.

Type: null or (positive integer, meaning >0)

Default: null

Declared by:

services.lego-monitoring.checks.net.interfaces.<name>.warningThresholdRecvBytes

Received bytes per second threshold for a warning alert to be sent. If null, this threshold is disabled and not checked.

Type: null or (positive integer, meaning >0)

Default: null

Declared by:

services.lego-monitoring.checks.net.interfaces.<name>.warningThresholdSentBytes

Sent bytes per second threshold for a warning alert to be sent. If null, this threshold is disabled and not checked.

Type: null or (positive integer, meaning >0)

Default: null

Declared by:

services.lego-monitoring.checks.ram.criticalPercentage

RAM usage percentage for a critical alert to be sent. Null means never generate a RAM critical alert.

Type: null or (positive integer or floating point number, meaning >0)

Default: 90.0

Declared by:

services.lego-monitoring.checks.ram.warningPercentage

RAM usage percentage for a warning alert to be sent. Null means never generate a RAM warning alert.

Type: null or (positive integer or floating point number, meaning >0)

Default: 80.0

Declared by:

services.lego-monitoring.checks.temp.sensors

Temp sensor override definitions. Sensors not defined here, or missing options in definitions, will be read with default parameters.

To get list of sensors and their default configurations, run lego-monitoring --print-temp.

Type: attribute set of (submodule)

Default: { }

Example:

{
  amdgpu.readings.edge.label = "Integrated GPU";
  k10temp.readings = {
    Tctl = {
      label = "AMD CPU";
      criticalTemp = 95.0;
    };
    Tccd1.enabled = false;
    Tccd2.enabled = false;
  };
  nvme.readings = {
    "Sensor 1".enabled = false;
    "Sensor 2".enabled = false;
  };
}

Declared by:

services.lego-monitoring.checks.temp.sensors.<name>.enabled

Whether sensor is enabled.

Type: boolean

Default: true

Declared by:

services.lego-monitoring.checks.temp.sensors.<name>.name

Friendly name of the sensor.

Type: null or string

Default: null

Declared by:

services.lego-monitoring.checks.temp.sensors.<name>.readings

Overrides for specific readings of the sensor, by label.

Type: attribute set of (submodule)

Default: { }

Declared by:

services.lego-monitoring.checks.temp.sensors.<name>.readings.<name>.enabled

Whether this reading is enabled.

Type: boolean

Default: true

Declared by:

services.lego-monitoring.checks.temp.sensors.<name>.readings.<name>.criticalTemp

Critical temperature threshold.

Type: null or (positive integer or floating point number, meaning >0)

Default: null

Declared by:

services.lego-monitoring.checks.temp.sensors.<name>.readings.<name>.label

Friendly label of the reading.

Type: null or string

Default: null

Declared by:

services.lego-monitoring.checks.temp.sensors.<name>.readings.<name>.warningTemp

Warning temperature threshold.

Type: null or (positive integer or floating point number, meaning >0)

Default: null

Declared by:

services.lego-monitoring.checks.ups.upsToCheck

List of UPSs to monitor, in upsc-compatible format. If null, all UPSs connected to localhost are checked.

Type: null or (list of string)

Default: null

Declared by:

services.lego-monitoring.checks.ups.upsmonGroup

Group to allow to send UPS status updates. This should usually include the user upsmon runs as.

Type: string

Default: config.power.ups.upsmon.user

Declared by:

services.lego-monitoring.checks.vulnix.whitelist

Whitelist rules for vulnix. Attr name is package with version, package name, or *.

Type: attribute set of (submodule)

Default: { }

Example:

{
  "ffmpeg-3.4.2" = {
    cve = [ "CVE-2018-6912" "CVE-2018-7557" ];
    until = "2018-05-01";
    issueUrl = "https://issues.example.com/29952";
  };
}

Declared by:

services.lego-monitoring.checks.vulnix.whitelist.<name>.cve

List of CVE identifiers to match. The whitelist rule is valid as long as the detected CVEs are a subset of the CVEs listed here. If additional CVEs are detected, this whitelist rule is not effective anymore. If null, all CVEs are matched.

Type: null or (list of string)

Default: null

Declared by:

services.lego-monitoring.checks.vulnix.whitelist.<name>.issueUrl

URL or list of URLs that point to any issue tracker. Informational only.

Type: null or string

Default: null

Declared by:

services.lego-monitoring.checks.vulnix.whitelist.<name>.until

Date in the form “YYYY-MM-DD” which confines this rules lifetime. Null means forever. On the specified date and later, this whitelist rule is not effective anymore.

Type: null or string

Default: null

Declared by:

services.lego-monitoring.logLevel

Level of logging. INFO generates a log message with every check.

Type: one of “CRITICAL”, “ERROR”, “WARNING”, “INFO”, “DEBUG”

Default: "INFO"

Declared by: