{
  "checks": [
    {
      "name": "CPU",
      "auto_add": true,
      "check_mode": "agent",
      "check_type": "agent_cpu",
      "parameters": {},
      "sort_order": 0,
      "value_type": "gauge",
      "description": "",
      "check_config": {},
      "is_telemetry": false,
      "interpretation": null,
      "threshold_crit": 95,
      "threshold_warn": 80,
      "interval_seconds": 60,
      "threshold_direction": "upper",
      "confirmation_attempts": 1,
      "confirmation_interval_seconds": 10
    },
    {
      "name": "Memory",
      "auto_add": true,
      "check_mode": "agent",
      "check_type": "agent_memory",
      "parameters": {},
      "sort_order": 1,
      "value_type": "gauge",
      "description": "",
      "check_config": {},
      "is_telemetry": false,
      "interpretation": null,
      "threshold_crit": 95,
      "threshold_warn": 85,
      "interval_seconds": 60,
      "threshold_direction": "upper",
      "confirmation_attempts": 1,
      "confirmation_interval_seconds": 10
    },
    {
      "name": "Disk",
      "auto_add": true,
      "check_mode": "agent",
      "check_type": "agent_disk",
      "parameters": {
        "crit": 90,
        "warn": 80
      },
      "sort_order": 2,
      "value_type": "gauge",
      "description": "",
      "check_config": {
        "crit": 90,
        "warn": 80
      },
      "is_telemetry": false,
      "interpretation": null,
      "threshold_crit": null,
      "threshold_warn": null,
      "interval_seconds": 300,
      "threshold_direction": "upper",
      "confirmation_attempts": 1,
      "confirmation_interval_seconds": 10
    },
    {
      "name": "Load Average %",
      "auto_add": true,
      "check_mode": "agent",
      "check_type": "agent_script",
      "parameters": {
        "script_id": "af11cbd5-388d-5a54-b153-379e8ecaadbd"
      },
      "sort_order": 3,
      "value_type": "gauge",
      "description": "",
      "check_config": {
        "script_id": "af11cbd5-388d-5a54-b153-379e8ecaadbd"
      },
      "is_telemetry": false,
      "interpretation": null,
      "threshold_crit": 95,
      "threshold_warn": 80,
      "interval_seconds": 120,
      "threshold_direction": "upper",
      "confirmation_attempts": 1,
      "confirmation_interval_seconds": 10
    },
    {
      "name": "Swap %",
      "auto_add": true,
      "check_mode": "agent",
      "check_type": "agent_script",
      "parameters": {
        "script_id": "9064100c-dd0b-556b-abf8-10906386e1e3"
      },
      "sort_order": 4,
      "value_type": "gauge",
      "description": "",
      "check_config": {
        "script_id": "9064100c-dd0b-556b-abf8-10906386e1e3"
      },
      "is_telemetry": false,
      "interpretation": null,
      "threshold_crit": 80,
      "threshold_warn": 50,
      "interval_seconds": 300,
      "threshold_direction": "upper",
      "confirmation_attempts": 1,
      "confirmation_interval_seconds": 10
    },
    {
      "name": "Agent Overview",
      "auto_add": true,
      "check_mode": "agent",
      "check_type": "agent_overview",
      "parameters": {},
      "sort_order": 5,
      "value_type": "info",
      "description": "Live-Telemetrie (CPU, RAM, Disks, Netzwerk, Top-Prozesse, Eventlog, Benutzer) für das Command Center Dashboard.",
      "check_config": {},
      "is_telemetry": true,
      "interpretation": null,
      "threshold_crit": null,
      "threshold_warn": null,
      "interval_seconds": 30,
      "threshold_direction": "upper",
      "confirmation_attempts": 1,
      "confirmation_interval_seconds": 10
    },
    {
      "name": "Logged Users",
      "auto_add": true,
      "check_mode": "agent",
      "check_type": "agent_script",
      "parameters": {
        "script_id": "b416052f-c953-51c6-b277-8cf31ca856f1"
      },
      "sort_order": 5,
      "value_type": "gauge",
      "description": "",
      "check_config": {
        "script_id": "b416052f-c953-51c6-b277-8cf31ca856f1"
      },
      "is_telemetry": false,
      "interpretation": null,
      "threshold_crit": 25,
      "threshold_warn": 10,
      "interval_seconds": 300,
      "threshold_direction": "upper",
      "confirmation_attempts": 1,
      "confirmation_interval_seconds": 10
    },
    {
      "name": "Agent Netzwerk-Status",
      "auto_add": true,
      "check_mode": "agent",
      "check_type": "agent_network_state",
      "parameters": {},
      "sort_order": 6,
      "value_type": "info",
      "description": "Interfaces, Listener, Verbindungen, Routing.",
      "check_config": {},
      "is_telemetry": true,
      "interpretation": null,
      "threshold_crit": null,
      "threshold_warn": null,
      "interval_seconds": 300,
      "threshold_direction": "upper",
      "confirmation_attempts": 1,
      "confirmation_interval_seconds": 10
    },
    {
      "name": "Zombie Processes",
      "auto_add": true,
      "check_mode": "agent",
      "check_type": "agent_script",
      "parameters": {
        "script_id": "3769a9d6-1382-52cd-8f86-02a20786a892"
      },
      "sort_order": 6,
      "value_type": "gauge",
      "description": "",
      "check_config": {
        "script_id": "3769a9d6-1382-52cd-8f86-02a20786a892"
      },
      "is_telemetry": false,
      "interpretation": null,
      "threshold_crit": 5,
      "threshold_warn": 1,
      "interval_seconds": 300,
      "threshold_direction": "upper",
      "confirmation_attempts": 1,
      "confirmation_interval_seconds": 10
    },
    {
      "name": "Agent Sicherheit",
      "auto_add": true,
      "check_mode": "agent",
      "check_type": "agent_security",
      "parameters": {},
      "sort_order": 7,
      "value_type": "info",
      "description": "Defender, Firewall, TPM, BitLocker, offene Ports, Zertifikate.",
      "check_config": {},
      "is_telemetry": true,
      "interpretation": null,
      "threshold_crit": null,
      "threshold_warn": null,
      "interval_seconds": 3600,
      "threshold_direction": "upper",
      "confirmation_attempts": 1,
      "confirmation_interval_seconds": 10
    },
    {
      "name": "Total Processes",
      "auto_add": true,
      "check_mode": "agent",
      "check_type": "agent_script",
      "parameters": {
        "script_id": "d6b5f88f-aa72-5912-aee5-931a6f5309da"
      },
      "sort_order": 7,
      "value_type": "gauge",
      "description": "",
      "check_config": {
        "script_id": "d6b5f88f-aa72-5912-aee5-931a6f5309da"
      },
      "is_telemetry": false,
      "interpretation": null,
      "threshold_crit": 500,
      "threshold_warn": 300,
      "interval_seconds": 300,
      "threshold_direction": "upper",
      "confirmation_attempts": 1,
      "confirmation_interval_seconds": 10
    },
    {
      "name": "Agent Lebenszyklus",
      "auto_add": true,
      "check_mode": "agent",
      "check_type": "agent_lifecycle",
      "parameters": {},
      "sort_order": 8,
      "value_type": "info",
      "description": "Aktivierung, Domain, Update-Historie, BSODs, Backup.",
      "check_config": {},
      "is_telemetry": true,
      "interpretation": null,
      "threshold_crit": null,
      "threshold_warn": null,
      "interval_seconds": 43200,
      "threshold_direction": "upper",
      "confirmation_attempts": 1,
      "confirmation_interval_seconds": 10
    },
    {
      "name": "sshd",
      "auto_add": true,
      "check_mode": "agent",
      "check_type": "agent_service",
      "parameters": {
        "service": "sshd"
      },
      "sort_order": 8,
      "value_type": "status",
      "description": "",
      "check_config": {
        "service": "sshd"
      },
      "is_telemetry": false,
      "interpretation": null,
      "threshold_crit": null,
      "threshold_warn": null,
      "interval_seconds": 120,
      "threshold_direction": "upper",
      "confirmation_attempts": 1,
      "confirmation_interval_seconds": 10
    },
    {
      "name": "Agent Inventar",
      "auto_add": true,
      "check_mode": "agent",
      "check_type": "agent_inventory",
      "parameters": {},
      "sort_order": 9,
      "value_type": "info",
      "description": "Installierte Programme, geplante Tasks, Autostart, Dienste.",
      "check_config": {},
      "is_telemetry": true,
      "interpretation": null,
      "threshold_crit": null,
      "threshold_warn": null,
      "interval_seconds": 21600,
      "threshold_direction": "upper",
      "confirmation_attempts": 1,
      "confirmation_interval_seconds": 10
    },
    {
      "name": "Agent Hardware",
      "auto_add": true,
      "check_mode": "agent",
      "check_type": "agent_hardware",
      "parameters": {},
      "sort_order": 10,
      "value_type": "info",
      "description": "CPU, Speicher, Mainboard, BIOS, Disks, GPUs, Akku.",
      "check_config": {},
      "is_telemetry": true,
      "interpretation": null,
      "threshold_crit": null,
      "threshold_warn": null,
      "interval_seconds": 86400,
      "threshold_direction": "upper",
      "confirmation_attempts": 1,
      "confirmation_interval_seconds": 10
    },
    {
      "name": "Journal Errors",
      "auto_add": true,
      "check_mode": "agent",
      "check_type": "agent_eventlog",
      "parameters": {},
      "sort_order": 90,
      "value_type": "gauge",
      "description": "",
      "check_config": {
        "level": "error",
        "minutes": "60"
      },
      "is_telemetry": false,
      "interpretation": null,
      "threshold_crit": 5,
      "threshold_warn": 1,
      "interval_seconds": 300,
      "threshold_direction": "upper",
      "confirmation_attempts": 1,
      "confirmation_interval_seconds": 10
    },
    {
      "name": "Enabled Services",
      "auto_add": true,
      "check_mode": "agent",
      "check_type": "agent_services_auto",
      "parameters": {},
      "sort_order": 91,
      "value_type": "status",
      "description": "",
      "check_config": {
        "exclude": []
      },
      "is_telemetry": false,
      "interpretation": null,
      "threshold_crit": null,
      "threshold_warn": null,
      "interval_seconds": 300,
      "threshold_direction": "upper",
      "confirmation_attempts": 1,
      "confirmation_interval_seconds": 10
    }
  ],
  "profile": {
    "icon": "server",
    "name": "Generic Linux Server (Agent)",
    "tags": [
      "linux",
      "agent"
    ],
    "vendor": "generic",
    "category": "server",
    "os_family": "linux",
    "description": "Comprehensive Linux monitoring via Vesana Agent: CPU, RAM, disk, load, swap, users, processes.",
    "ip_required": false,
    "port_layout": null,
    "visual_type": null,
    "snmp_enabled": false,
    "agent_capable": true,
    "requires_snmp": true,
    "description_md": "Comprehensive Linux monitoring via Vesana Agent: CPU, RAM, disk, load, swap, users, processes.",
    "requires_agent": true,
    "sysoid_patterns": null,
    "sysdescr_patterns": null,
    "requires_collector": true
  },
  "scripts": [
    {
      "name": "Linux Load Average %",
      "script_id": "af11cbd5-388d-5a54-b153-379e8ecaadbd",
      "is_builtin": true,
      "description": "Returns load average as percentage of cores",
      "interpreter": "bash",
      "script_body": "#!/bin/bash\n# Mess-Fehler -> UNKNOWN (exit 3), nie stilles 0%.\nload=$(awk '{print $1}' /proc/loadavg 2>/dev/null)\n[ -n \"$load\" ] || exit 3\ncores=$(nproc 2>/dev/null || echo 1)\necho \"$load $cores\" | awk '{printf \"%d\", ($1/$2)*100}'",
      "expected_output": "text"
    },
    {
      "name": "Linux Swap Usage %",
      "script_id": "9064100c-dd0b-556b-abf8-10906386e1e3",
      "is_builtin": true,
      "description": "Returns swap usage percentage",
      "interpreter": "bash",
      "script_body": "#!/bin/bash\n# /proc/meminfo statt `free` (locale-fest); Mess-Fehler -> UNKNOWN.\ntotal=$(awk '/^SwapTotal:/{print $2}' /proc/meminfo 2>/dev/null)\nfree_=$(awk '/^SwapFree:/{print $2}' /proc/meminfo 2>/dev/null)\n[ -n \"$total\" ] && [ -n \"$free_\" ] || exit 3\nif [ \"$total\" -eq 0 ]; then echo \"0\"; exit 0; fi\necho $(( (total - free_) * 100 / total ))",
      "expected_output": "text"
    },
    {
      "name": "Linux Logged Users",
      "script_id": "b416052f-c953-51c6-b277-8cf31ca856f1",
      "is_builtin": true,
      "description": "Returns count of logged-in users",
      "interpreter": "bash",
      "script_body": "#!/bin/bash\n# `who` fehlt/scheitert (Minimal-Container ohne utmp) -> UNKNOWN statt 0.\nout=$(who 2>/dev/null) || exit 3\nprintf '%s\\n' \"$out\" | grep -c . || echo 0",
      "expected_output": "text"
    },
    {
      "name": "Linux Zombie Processes",
      "script_id": "3769a9d6-1382-52cd-8f86-02a20786a892",
      "is_builtin": true,
      "description": "Returns count of zombie processes",
      "interpreter": "bash",
      "script_body": "#!/bin/bash\n# ps-Fehler EHRLICH als UNKNOWN melden — vorher wurde stderr verworfen und\n# awk druckte 0 → falsches gruenes \"0 Zombies\" obwohl nichts gemessen wurde.\nout=$(ps aux 2>/dev/null) || exit 3\n[ -n \"$out\" ] || exit 3\nprintf '%s\\n' \"$out\" | awk '$8 ~ /^Z/ {c++} END {print c+0}'",
      "expected_output": "text"
    },
    {
      "name": "Linux Total Processes",
      "script_id": "d6b5f88f-aa72-5912-aee5-931a6f5309da",
      "is_builtin": true,
      "description": "Returns total process count",
      "interpreter": "bash",
      "script_body": "#!/bin/bash\n# ps-Fehler oder unmoegliche 0 -> UNKNOWN, nie stilles gruenes 0.\nout=$(ps aux --no-heading 2>/dev/null) || exit 3\nn=$(printf '%s\\n' \"$out\" | grep -c .)\n[ \"$n\" -gt 0 ] || exit 3\necho \"$n\"",
      "expected_output": "text"
    }
  ],
  "schema_version": 1
}