{
  "checks": [
    {
      "name": "Ping",
      "auto_add": true,
      "check_mode": "passive",
      "check_type": "ping",
      "parameters": {},
      "sort_order": 0,
      "value_type": "duration",
      "description": "",
      "check_config": {},
      "is_telemetry": false,
      "interpretation": null,
      "threshold_crit": null,
      "threshold_warn": null,
      "interval_seconds": 60,
      "threshold_direction": "upper",
      "confirmation_attempts": 1,
      "confirmation_interval_seconds": 10
    },
    {
      "name": "VPN IPsec tunnels up",
      "auto_add": true,
      "check_mode": "passive",
      "check_type": "ssh_script",
      "parameters": {
        "script_id": "101042c5-ea0d-5256-8ebe-1f4bae206f79",
        "value_unit": "tunnels",
        "extract_value": "^(\\d+)"
      },
      "sort_order": 0,
      "value_type": "info",
      "description": "",
      "check_config": {
        "script_id": "101042c5-ea0d-5256-8ebe-1f4bae206f79",
        "value_unit": "tunnels",
        "extract_value": "^(\\d+)"
      },
      "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": "Uptime",
      "auto_add": true,
      "check_mode": "passive",
      "check_type": "snmp",
      "parameters": {
        "oid": "1.3.6.1.2.1.1.3.0",
        "unit": "ticks"
      },
      "sort_order": 1,
      "value_type": "gauge",
      "description": "",
      "check_config": {
        "oid": "1.3.6.1.2.1.1.3.0",
        "unit": "ticks"
      },
      "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": "Session count",
      "auto_add": true,
      "check_mode": "passive",
      "check_type": "ssh_script",
      "parameters": {
        "script_id": "67ca9dab-2427-59cf-a71b-59cbe5f200ab",
        "value_unit": "sessions",
        "extract_value": "^(\\d+)"
      },
      "sort_order": 1,
      "value_type": "gauge",
      "description": "",
      "check_config": {
        "script_id": "67ca9dab-2427-59cf-a71b-59cbe5f200ab",
        "value_unit": "sessions",
        "extract_value": "^(\\d+)"
      },
      "is_telemetry": false,
      "interpretation": null,
      "threshold_crit": 900000,
      "threshold_warn": 500000,
      "interval_seconds": 60,
      "threshold_direction": "upper",
      "confirmation_attempts": 1,
      "confirmation_interval_seconds": 10
    },
    {
      "name": "CPU",
      "auto_add": true,
      "check_mode": "passive",
      "check_type": "snmp",
      "parameters": {
        "oid": "1.3.6.1.4.1.12356.101.4.1.3.0",
        "unit": "%"
      },
      "sort_order": 2,
      "value_type": "gauge",
      "description": "",
      "check_config": {
        "oid": "1.3.6.1.4.1.12356.101.4.1.3.0",
        "unit": "%"
      },
      "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": "HA cluster status (sync errors)",
      "auto_add": true,
      "check_mode": "passive",
      "check_type": "ssh_script",
      "parameters": {
        "script_id": "07f20814-d314-5221-855f-b12c8ded6db3",
        "value_unit": "issues",
        "extract_value": "^(\\d+)"
      },
      "sort_order": 2,
      "value_type": "gauge",
      "description": "",
      "check_config": {
        "script_id": "07f20814-d314-5221-855f-b12c8ded6db3",
        "value_unit": "issues",
        "extract_value": "^(\\d+)"
      },
      "is_telemetry": false,
      "interpretation": null,
      "threshold_crit": 1,
      "threshold_warn": 1,
      "interval_seconds": 120,
      "threshold_direction": "upper",
      "confirmation_attempts": 1,
      "confirmation_interval_seconds": 10
    },
    {
      "name": "FortiGuard updates outdated (days)",
      "auto_add": true,
      "check_mode": "passive",
      "check_type": "ssh_script",
      "parameters": {
        "script_id": "e74f8a73-55c5-583c-9e84-5ca30e9a76b3",
        "value_unit": "days",
        "extract_value": "^(\\d+)"
      },
      "sort_order": 3,
      "value_type": "gauge",
      "description": "",
      "check_config": {
        "script_id": "e74f8a73-55c5-583c-9e84-5ca30e9a76b3",
        "value_unit": "days",
        "extract_value": "^(\\d+)"
      },
      "is_telemetry": false,
      "interpretation": null,
      "threshold_crit": 7,
      "threshold_warn": 2,
      "interval_seconds": 3600,
      "threshold_direction": "upper",
      "confirmation_attempts": 1,
      "confirmation_interval_seconds": 10
    },
    {
      "name": "Memory",
      "auto_add": true,
      "check_mode": "passive",
      "check_type": "snmp",
      "parameters": {
        "oid": "1.3.6.1.4.1.12356.101.4.1.4.0",
        "unit": "%"
      },
      "sort_order": 3,
      "value_type": "gauge",
      "description": "",
      "check_config": {
        "oid": "1.3.6.1.4.1.12356.101.4.1.4.0",
        "unit": "%"
      },
      "is_telemetry": false,
      "interpretation": null,
      "threshold_crit": 95,
      "threshold_warn": 85,
      "interval_seconds": 120,
      "threshold_direction": "upper",
      "confirmation_attempts": 1,
      "confirmation_interval_seconds": 10
    },
    {
      "name": "Active Sessions",
      "auto_add": true,
      "check_mode": "passive",
      "check_type": "snmp",
      "parameters": {
        "oid": "1.3.6.1.4.1.12356.101.4.1.8.0"
      },
      "sort_order": 4,
      "value_type": "gauge",
      "description": "",
      "check_config": {
        "oid": "1.3.6.1.4.1.12356.101.4.1.8.0"
      },
      "is_telemetry": false,
      "interpretation": null,
      "threshold_crit": 900000,
      "threshold_warn": 500000,
      "interval_seconds": 120,
      "threshold_direction": "upper",
      "confirmation_attempts": 1,
      "confirmation_interval_seconds": 10
    },
    {
      "name": "VPN Tunnels",
      "auto_add": true,
      "check_mode": "passive",
      "check_type": "snmp",
      "parameters": {
        "oid": "1.3.6.1.4.1.12356.101.12.2.2.1.20.1"
      },
      "sort_order": 5,
      "value_type": "gauge",
      "description": "",
      "check_config": {
        "oid": "1.3.6.1.4.1.12356.101.12.2.2.1.20.1"
      },
      "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": "HA State",
      "auto_add": true,
      "check_mode": "passive",
      "check_type": "snmp",
      "parameters": {
        "oid": "1.3.6.1.4.1.12356.101.13.2.1.1.3.1"
      },
      "sort_order": 6,
      "value_type": "gauge",
      "description": "",
      "check_config": {
        "oid": "1.3.6.1.4.1.12356.101.13.2.1.1.3.1"
      },
      "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": "AV Version",
      "auto_add": true,
      "check_mode": "passive",
      "check_type": "snmp_string",
      "parameters": {
        "oid": "1.3.6.1.4.1.12356.101.4.2.1.0"
      },
      "sort_order": 7,
      "value_type": "status",
      "description": "",
      "check_config": {
        "oid": "1.3.6.1.4.1.12356.101.4.2.1.0"
      },
      "is_telemetry": false,
      "interpretation": null,
      "threshold_crit": null,
      "threshold_warn": null,
      "interval_seconds": 86400,
      "threshold_direction": "upper",
      "confirmation_attempts": 1,
      "confirmation_interval_seconds": 10
    },
    {
      "name": "IPS Version",
      "auto_add": true,
      "check_mode": "passive",
      "check_type": "snmp_string",
      "parameters": {
        "oid": "1.3.6.1.4.1.12356.101.4.2.2.0"
      },
      "sort_order": 8,
      "value_type": "status",
      "description": "",
      "check_config": {
        "oid": "1.3.6.1.4.1.12356.101.4.2.2.0"
      },
      "is_telemetry": false,
      "interpretation": null,
      "threshold_crit": null,
      "threshold_warn": null,
      "interval_seconds": 86400,
      "threshold_direction": "upper",
      "confirmation_attempts": 1,
      "confirmation_interval_seconds": 10
    },
    {
      "name": "Interface 1 Status",
      "auto_add": true,
      "check_mode": "passive",
      "check_type": "snmp",
      "parameters": {
        "oid": "1.3.6.1.2.1.2.2.1.8.1",
        "unit": ""
      },
      "sort_order": 9,
      "value_type": "gauge",
      "description": "",
      "check_config": {
        "oid": "1.3.6.1.2.1.2.2.1.8.1",
        "unit": ""
      },
      "is_telemetry": false,
      "interpretation": null,
      "threshold_crit": null,
      "threshold_warn": null,
      "interval_seconds": 60,
      "threshold_direction": "upper",
      "confirmation_attempts": 1,
      "confirmation_interval_seconds": 10
    },
    {
      "name": "FortiGate — CPU-Auslastung",
      "auto_add": true,
      "check_mode": "passive",
      "check_type": "snmp",
      "parameters": {
        "oid": "1.3.6.1.4.1.12356.101.4.1.3.0",
        "unit": "%"
      },
      "sort_order": 1000,
      "value_type": "gauge",
      "description": "fgSysCpuUsage in % (System-Mittelwert über alle Cores).",
      "check_config": {
        "oid": "1.3.6.1.4.1.12356.101.4.1.3.0",
        "unit": "%"
      },
      "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": "FortiGate — Memory-Auslastung",
      "auto_add": true,
      "check_mode": "passive",
      "check_type": "snmp",
      "parameters": {
        "oid": "1.3.6.1.4.1.12356.101.4.1.4.0",
        "unit": "%"
      },
      "sort_order": 1001,
      "value_type": "gauge",
      "description": "fgSysMemUsage in % (RAM).",
      "check_config": {
        "oid": "1.3.6.1.4.1.12356.101.4.1.4.0",
        "unit": "%"
      },
      "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": "FortiGate — Disk-Auslastung",
      "auto_add": true,
      "check_mode": "passive",
      "check_type": "snmp",
      "parameters": {
        "oid": "1.3.6.1.4.1.12356.101.4.1.6.0",
        "unit": "%"
      },
      "sort_order": 1002,
      "value_type": "gauge",
      "description": "fgSysDiskUsage in % (lokale Disk, kann sich auf Logs/Reports beziehen).",
      "check_config": {
        "oid": "1.3.6.1.4.1.12356.101.4.1.6.0",
        "unit": "%"
      },
      "is_telemetry": false,
      "interpretation": null,
      "threshold_crit": 95,
      "threshold_warn": 80,
      "interval_seconds": 300,
      "threshold_direction": "upper",
      "confirmation_attempts": 1,
      "confirmation_interval_seconds": 10
    },
    {
      "name": "FortiGate — Aktive Sessions",
      "auto_add": true,
      "check_mode": "passive",
      "check_type": "snmp",
      "parameters": {
        "oid": "1.3.6.1.4.1.12356.101.4.1.8.0",
        "unit": ""
      },
      "sort_order": 1003,
      "value_type": "gauge",
      "description": "fgSysSesCount — aktuelle Session-Anzahl auf der Firewall.",
      "check_config": {
        "oid": "1.3.6.1.4.1.12356.101.4.1.8.0",
        "unit": ""
      },
      "is_telemetry": false,
      "interpretation": null,
      "threshold_crit": null,
      "threshold_warn": null,
      "interval_seconds": 60,
      "threshold_direction": "upper",
      "confirmation_attempts": 1,
      "confirmation_interval_seconds": 10
    },
    {
      "name": "FortiGate — VPN-Tunnel up (Aggregat)",
      "auto_add": true,
      "check_mode": "passive",
      "check_type": "snmp_table_state",
      "parameters": {
        "walk_oid": "1.3.6.1.4.1.12356.101.12.2.2.1.20",
        "ok_values": [
          2
        ],
        "crit_values": [
          1
        ],
        "state_labels": {
          "1": "down",
          "2": "up"
        },
        "label_column_oid": "1.3.6.1.4.1.12356.101.12.2.2.1.2"
      },
      "sort_order": 1004,
      "value_type": "gauge",
      "description": "fgVpnTunEntStatus (1.3.6.1.4.1.12356.101.12.2.2.1.20) pro IPSec-Tunnel. 1 = down, 2 = up. Aggregiert: kritisch wenn ein Tunnel down.\n",
      "check_config": {
        "walk_oid": "1.3.6.1.4.1.12356.101.12.2.2.1.20",
        "ok_values": [
          2
        ],
        "crit_values": [
          1
        ],
        "state_labels": {
          "1": "down",
          "2": "up"
        },
        "label_column_oid": "1.3.6.1.4.1.12356.101.12.2.2.1.2"
      },
      "is_telemetry": false,
      "interpretation": null,
      "threshold_crit": null,
      "threshold_warn": null,
      "interval_seconds": 60,
      "threshold_direction": "upper",
      "confirmation_attempts": 1,
      "confirmation_interval_seconds": 10
    },
    {
      "name": "FortiGate — HA-Sync-Status",
      "auto_add": false,
      "check_mode": "passive",
      "check_type": "snmp_string",
      "parameters": {
        "oid": "1.3.6.1.4.1.12356.101.13.1.1.0",
        "value_map": {
          "1": "WARNING",
          "2": "OK",
          "3": "OK"
        }
      },
      "sort_order": 1005,
      "value_type": "gauge",
      "description": "fgHaSystemMode (1.3.6.1.4.1.12356.101.13.1.1.0). 1=standalone, 2=activePassive, 3=activeActive. Wenn HA konfiguriert: nicht-standalone erwartet. Walk-Position darf 1 (standalone) abwählen, falls bewusst keine HA.\n",
      "check_config": {
        "oid": "1.3.6.1.4.1.12356.101.13.1.1.0",
        "value_map": {
          "1": "WARNING",
          "2": "OK",
          "3": "OK"
        }
      },
      "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": "FortiGate — Anzahl HA-Members",
      "auto_add": false,
      "check_mode": "passive",
      "check_type": "snmp",
      "parameters": {
        "oid": "1.3.6.1.4.1.12356.101.13.1.2.0",
        "unit": ""
      },
      "sort_order": 1006,
      "value_type": "gauge",
      "description": "fgHaSystemNumberOfMembers in der HA-Gruppe.",
      "check_config": {
        "oid": "1.3.6.1.4.1.12356.101.13.1.2.0",
        "unit": ""
      },
      "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": "FortiGate — License Days Remaining",
      "auto_add": false,
      "check_mode": "passive",
      "check_type": "snmp",
      "parameters": {
        "oid": "1.3.6.1.4.1.12356.101.4.6.3.4.0",
        "unit": "Tage"
      },
      "sort_order": 1007,
      "value_type": "gauge",
      "description": "fgLicContractExpiry (Days) — Tage bis zur Vertragslaufzeit. Achtung: liefert 0/-1 wenn keine Bewertung möglich.\n",
      "check_config": {
        "oid": "1.3.6.1.4.1.12356.101.4.6.3.4.0",
        "unit": "Tage"
      },
      "is_telemetry": false,
      "interpretation": null,
      "threshold_crit": 7,
      "threshold_warn": 30,
      "interval_seconds": 86400,
      "threshold_direction": "upper",
      "confirmation_attempts": 1,
      "confirmation_interval_seconds": 10
    }
  ],
  "profile": {
    "icon": "shield",
    "name": "Fortinet FortiGate Firewall",
    "tags": [
      "fortinet",
      "fortigate",
      "snmp",
      "vpn",
      "ha"
    ],
    "vendor": "fortinet",
    "category": "firewall",
    "os_family": null,
    "description": "FortiGate SNMP: CPU, Memory, VPN, HA, Sessions, Security Services, Interface.",
    "ip_required": true,
    "port_layout": null,
    "visual_type": null,
    "snmp_enabled": true,
    "agent_capable": false,
    "requires_snmp": true,
    "description_md": "FortiGate SNMP: CPU, Memory, VPN, HA, Sessions, Security Services, Interface.",
    "requires_agent": false,
    "sysoid_patterns": null,
    "sysdescr_patterns": null,
    "requires_collector": true
  },
  "scripts": [
    {
      "name": "VPN IPsec tunnels up",
      "script_id": "101042c5-ea0d-5256-8ebe-1f4bae206f79",
      "is_builtin": true,
      "description": "Auto-registered builtin SSH script.",
      "interpreter": "bash",
      "script_body": "get vpn ipsec tunnel summary 2>/dev/null | grep -c ' up ' || echo 0",
      "expected_output": "nagios"
    },
    {
      "name": "Session count",
      "script_id": "67ca9dab-2427-59cf-a71b-59cbe5f200ab",
      "is_builtin": true,
      "description": "Auto-registered builtin SSH script.",
      "interpreter": "bash",
      "script_body": "get system session status 2>/dev/null | awk '/total/{print $2+0; exit}' || echo 0",
      "expected_output": "nagios"
    },
    {
      "name": "HA cluster status (sync errors)",
      "script_id": "07f20814-d314-5221-855f-b12c8ded6db3",
      "is_builtin": true,
      "description": "Auto-registered builtin SSH script.",
      "interpreter": "bash",
      "script_body": "diagnose sys ha status 2>/dev/null | grep -cE 'out-of-sync|failed' || echo 0",
      "expected_output": "nagios"
    },
    {
      "name": "FortiGuard updates outdated (days)",
      "script_id": "e74f8a73-55c5-583c-9e84-5ca30e9a76b3",
      "is_builtin": true,
      "description": "Auto-registered builtin SSH script.",
      "interpreter": "bash",
      "script_body": "diagnose autoupdate versions 2>/dev/null | awk '/Last Update/{getline; print (systime()-mktime($0))/86400; exit}' || echo 0",
      "expected_output": "nagios"
    }
  ],
  "schema_version": 1
}