From 89095d762aba1dea4515fd49f4fce52753b0df69 Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Wed, 11 Sep 2024 17:05:42 +0300 Subject: [PATCH 01/50] bootstrap integration --- .github/CODEOWNERS | 1 + packages/panw_metrics/_dev/build/build.yml | 3 + .../panw_metrics/_dev/build/docs/README.md | 65 ++ packages/panw_metrics/changelog.yml | 6 + packages/panw_metrics/docs/README.md | 734 ++++++++++++++++++ packages/panw_metrics/img/logo.svg | 11 + packages/panw_metrics/manifest.yml | 36 + 7 files changed, 856 insertions(+) create mode 100644 packages/panw_metrics/_dev/build/build.yml create mode 100644 packages/panw_metrics/_dev/build/docs/README.md create mode 100644 packages/panw_metrics/changelog.yml create mode 100644 packages/panw_metrics/docs/README.md create mode 100644 packages/panw_metrics/img/logo.svg create mode 100644 packages/panw_metrics/manifest.yml diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 14e2deb2e9d..f6badd04253 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -421,3 +421,4 @@ /packages/zoom @elastic/security-service-integrations /packages/zscaler_zia @elastic/security-service-integrations /packages/zscaler_zpa @elastic/security-service-integrations +/packages/panw_metrics @elastic/obs-infraobs-integrations \ No newline at end of file diff --git a/packages/panw_metrics/_dev/build/build.yml b/packages/panw_metrics/_dev/build/build.yml new file mode 100644 index 00000000000..2bfcfc223b0 --- /dev/null +++ b/packages/panw_metrics/_dev/build/build.yml @@ -0,0 +1,3 @@ +dependencies: + ecs: + reference: "git@v8.11.0" diff --git a/packages/panw_metrics/_dev/build/docs/README.md b/packages/panw_metrics/_dev/build/docs/README.md new file mode 100644 index 00000000000..debe90b2bd7 --- /dev/null +++ b/packages/panw_metrics/_dev/build/docs/README.md @@ -0,0 +1,65 @@ +# Palo Alto Networks Integration + +This integration periodically fetches metrics from [Palo Alto Networks](https://www.paloaltonetworks.com/) firewalls and management systems. + +## Compatibility + +The integration uses the [Pango](https://github.com/PaloAltoNetworks/pango) library to collect metrics from Palo Alto Networks firewalls. + +## Metrics + +### interfaces + +The `interfaces` dataset collects detailed network interface statistics from Palo Alto Networks firewalls. It provides information about interface status, traffic throughput, packet counts, error rates, and configuration details for physical, logical, and high-availability (HA) interfaces. + +{{event "interfaces"}} + +The fields reported are: + +**ECS Field Reference** + +Please refer to the following [document](https://www.elastic.co/guide/en/ecs/current/ecs-field-reference.html) for detailed information on ECS fields. + +{{fields "interfaces"}} + +### routing + +The `routing` dataset gathers comprehensive routing information from Palo Alto Networks devices. It includes details about routing protocols (with a focus on BGP), static and dynamic routes, next hops, AS numbers, and peer states. This dataset provides insights into the device's routing table and its interactions with other network devices. + +{{event "routing"}} + +The fields reported are: + +**ECS Field Reference** + +Please refer to the following [document](https://www.elastic.co/guide/en/ecs/current/ecs-field-reference.html) for detailed information on ECS fields. + +{{fields "routing"}} + +### system + +The `system` dataset collects a wide range of system-level metrics from Palo Alto Networks firewalls. This includes CPU usage, memory utilization, disk space, load averages, and process statistics. It also provides information about system uptime, licensed features, file system usage, and hardware component status (such as fans, thermal sensors, and power supplies). + +{{event "system"}} + +The fields reported are: + +**ECS Field Reference** + +Please refer to the following [document](https://www.elastic.co/guide/en/ecs/current/ecs-field-reference.html) for detailed information on ECS fields. + +{{fields "system"}} + +### vpn + +The `vpn` dataset gathers detailed Virtual Private Network (VPN) statistics from Palo Alto Networks devices. It covers both GlobalProtect and IPsec VPN technologies, providing information about active VPN sessions, user connections, tunnel status, encryption details, and performance metrics. This dataset offers insights into VPN usage, security, and performance. + +{{event "vpn"}} + +The fields reported are: + +**ECS Field Reference** + +Please refer to the following [document](https://www.elastic.co/guide/en/ecs/current/ecs-field-reference.html) for detailed information on ECS fields. + +{{fields "vpn"}} \ No newline at end of file diff --git a/packages/panw_metrics/changelog.yml b/packages/panw_metrics/changelog.yml new file mode 100644 index 00000000000..852fd63f81c --- /dev/null +++ b/packages/panw_metrics/changelog.yml @@ -0,0 +1,6 @@ +# newer versions go on top +- version: "0.0.1" + changes: + - description: Initial draft of the package + type: enhancement + link: https://github.com/elastic/integrations/pull/11099 diff --git a/packages/panw_metrics/docs/README.md b/packages/panw_metrics/docs/README.md new file mode 100644 index 00000000000..133e2b74837 --- /dev/null +++ b/packages/panw_metrics/docs/README.md @@ -0,0 +1,734 @@ +# Palo Alto Networks Integration + +This integration periodically fetches metrics from [Palo Alto Networks](https://www.paloaltonetworks.com/) firewalls and management systems. + +## Compatibility + +The integration uses the [Pango](https://github.com/PaloAltoNetworks/pango) library to collect metrics from Palo Alto Networks firewalls. + +## Metrics + +### interfaces + +The `interfaces` dataset collects detailed network interface statistics from Palo Alto Networks firewalls. It provides information about interface status, traffic throughput, packet counts, error rates, and configuration details for physical, logical, and high-availability (HA) interfaces. + +An example event for `interfaces` looks as following: + +```json +{ + "@timestamp": "2024-02-08T10:15:30.123Z", + "agent": { + "ephemeral_id": "a1b2c3d4-e5f6-4321-a987-1234567890ab", + "id": "9876543210-abcdef-0987654321", + "name": "panw-agent-01", + "type": "metricbeat", + "version": "8.16.0" + }, + "data_stream": { + "dataset": "panw.interfaces", + "namespace": "default", + "type": "metrics" + }, + "ecs": { + "version": "8.11.0" + }, + "elastic_agent": { + "id": "2ea50bee-9250-43d1-8d70-949f242aa275", + "snapshot": false, + "version": "8.16.0" + }, + "event": { + "agent_id_status": "verified", + "module": "panw", + "dataset": "panw.vpn", + "duration": 1250000, + "ingested": "2024-02-08T10:15:32Z" + }, + "host": { + "architecture": "x86_64", + "containerized": false, + "hostname": "docker-fleet-agent", + "id": "28da52b32df94b50aff67dfb8f1be3d6", + "ip": [ + "172.24.0.7" + ], + "mac": [ + "02-42-AC-18-00-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.15.0-89-generic", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.6 LTS (Focal Fossa)" + } + }, + "metricset": { + "name": "interfaces", + "period": 10000 + }, + "panw": { + "interfaces": { + "physical": { + "name": "ethernet1/1", + "id": "ethernet1/1", + "type": "Ethernet interface", + "mac": "00:1B:17:00:01:01", + "speed": "1000Mbps", + "duplex": "full", + "state": "up", + "mode": "autoneg", + "full_state": "1000/full/up" + }, + "logical": { + "name": "ethernet1/1.100", + "id": "ethernet1/1.100", + "tag": 100, + "vsys": 1, + "zone": "trust", + "fwd": "yes", + "ip": "192.168.1.1/24" + }, + "ha": { + "enabled": true, + "mode": "active-passive", + "running_sync": "synchronized", + "running_sync_enabled": true, + "local_info": { + "state": "active", + "mgmt_ip": "10.0.0.1", + "platform_model": "PA-3260" + }, + "peer_info": { + "conn_status": "up", + "state": "passive", + "mgmt_ip": "10.0.0.2", + "platform_model": "PA-3260" + } + } + } + } +} +``` + +The fields reported are: + +**ECS Field Reference** + +Please refer to the following [document](https://www.elastic.co/guide/en/ecs/current/ecs-field-reference.html) for detailed information on ECS fields. + +**Exported fields** + +| Field | Description | Type | Unit | +|---|---|---|---| +| @timestamp | Event timestamp. | date | | +| cloud.image.id | Image ID for the cloud instance. | keyword | | +| data_stream.dataset | Data stream dataset. | constant_keyword | | +| data_stream.namespace | Data stream namespace. | constant_keyword | | +| data_stream.type | Data stream type. | constant_keyword | | +| host.containerized | If the host is a container. | boolean | | +| host.os.build | OS build information. | keyword | | +| host.os.codename | OS codename, if any. | keyword | | +| panw.interfaces.ha.enabled | HA enabled | boolean | | +| panw.interfaces.ha.link_monitoring.enabled | Indicates if link monitoring is enabled | boolean | | +| panw.interfaces.ha.link_monitoring.failure_condition | Condition that triggers a link monitoring failure, e.g., "any" | keyword | | +| panw.interfaces.ha.link_monitoring.group.enabled | Indicates if the link monitoring group is enabled | boolean | | +| panw.interfaces.ha.link_monitoring.group.failure_condition | Condition that triggers a failure in the link monitoring group | keyword | | +| panw.interfaces.ha.link_monitoring.group.interface.name | Name of the interface in the link monitoring group | keyword | | +| panw.interfaces.ha.link_monitoring.group.interface.status | Status of the interface in the link monitoring group | keyword | | +| panw.interfaces.ha.link_monitoring.group.name | Name of the link monitoring group | keyword | | +| panw.interfaces.ha.local_info.app_version | The version of the application database | keyword | | +| panw.interfaces.ha.local_info.av_version | The version of the antivirus database | keyword | | +| panw.interfaces.ha.local_info.build_rel | The PAN-OS software version running on the firewall | keyword | | +| panw.interfaces.ha.local_info.gp_client_version | Version of the GlobalProtect client software | keyword | | +| panw.interfaces.ha.local_info.ha1_backup_gateway | Default gateway for the backup HA1 interface | ip | | +| panw.interfaces.ha.local_info.ha1_backup_ipaddr | The backup IP address for the HA1 interface | ip | | +| panw.interfaces.ha.local_info.ha1_backup_macaddr | HA local info HA1 backup MAC address | keyword | | +| panw.interfaces.ha.local_info.ha1_backup_port | HA local info HA1 backup port, e.g. "management" | keyword | | +| panw.interfaces.ha.local_info.ha1_ipaddr | IP Address of HA1 interface, used for heartbeat and management synchronization | ip | | +| panw.interfaces.ha.local_info.ha1_macaddr | HA local info HA1 MAC address | keyword | | +| panw.interfaces.ha.local_info.ha1_port | Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha1" | keyword | | +| panw.interfaces.ha.local_info.ha2_ipaddr | HA local info HA2 IP address | ip | | +| panw.interfaces.ha.local_info.ha2_macaddr | HA local info HA2 MAC address | keyword | | +| panw.interfaces.ha.local_info.ha2_port | Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha2" | keyword | | +| panw.interfaces.ha.local_info.iot_version | HA local info IoT database version | keyword | | +| panw.interfaces.ha.local_info.mgmt_ip | HA local info management IP | ip | | +| panw.interfaces.ha.local_info.mode | HA mode, e.g., "active-active" or "active-passive" | keyword | | +| panw.interfaces.ha.local_info.platform_model | Platform model of the local device | keyword | | +| panw.interfaces.ha.local_info.preemptive | Indicates whether the firewall is configured to preemptively take over as the active unit in an HA setup | boolean | | +| panw.interfaces.ha.local_info.state | HA state of the local device, e.g., "active" or "passive" | keyword | | +| panw.interfaces.ha.local_info.state_duration | Duration in milliseconds of the current state | long | ms | +| panw.interfaces.ha.local_info.state_sync | Status of HA synchronization, e.g., "complete" | keyword | | +| panw.interfaces.ha.local_info.state_sync_type | Type of interface used for HA synchronization | keyword | | +| panw.interfaces.ha.local_info.threat_version | HA local info threat version | keyword | | +| panw.interfaces.ha.local_info.url_version | The version of the URL filtering database | keyword | | +| panw.interfaces.ha.local_info.version | HA configuration info version | long | | +| panw.interfaces.ha.local_info.vpn_client_version | Version of the VPN client (if installed) | keyword | | +| panw.interfaces.ha.mode | HA mode, e.g., "active-active" or "active-passive" | keyword | | +| panw.interfaces.ha.peer_info.conn_ha1.description | Description of the connection type ,e.g., "heartbeat status" | keyword | | +| panw.interfaces.ha.peer_info.conn_ha1.primary | Specifies if the HA1 connection is primary | boolean | | +| panw.interfaces.ha.peer_info.conn_ha1.status | Peer HA1 connection status, e.g., "up" | keyword | | +| panw.interfaces.ha.peer_info.conn_ha1_backup.description | HA peer info connection HA1 backup description | keyword | | +| panw.interfaces.ha.peer_info.conn_ha1_backup.status | HA peer info connection HA1 backup status, e.g., "up" means it is operational | keyword | | +| panw.interfaces.ha.peer_info.conn_ha2.description | HA peer info connection HA2 description | keyword | | +| panw.interfaces.ha.peer_info.conn_ha2.primary | Specifies if the HA2 connection is primary | boolean | | +| panw.interfaces.ha.peer_info.conn_ha2.status | HA peer info connection HA2 status | keyword | | +| panw.interfaces.ha.peer_info.conn_status | Overall status of the HA connections ("up" means all connections are operational) | keyword | | +| panw.interfaces.ha.peer_info.ha1_backup_ipaddr | HA peer info HA1 backup IP address | ip | | +| panw.interfaces.ha.peer_info.ha1_backup_macaddr | HA peer info HA1 backup MAC address | keyword | | +| panw.interfaces.ha.peer_info.ha1_ipaddr | IP address of the HA1 interface on the peer | ip | | +| panw.interfaces.ha.peer_info.ha1_macaddr | HA1 MAC address of the peer | keyword | | +| panw.interfaces.ha.peer_info.ha2_ipaddr | HA peer info HA2 IP address | ip | | +| panw.interfaces.ha.peer_info.ha2_macaddr | HA peer info HA2 MAC address | keyword | | +| panw.interfaces.ha.peer_info.mgmt_ip | Management IP address of the peer firewall | ip | | +| panw.interfaces.ha.peer_info.mode | HA mode configured on the peer firewall, e.g. "Active-Passive" | keyword | | +| panw.interfaces.ha.peer_info.platform_model | Model of the peer firewall | keyword | | +| panw.interfaces.ha.peer_info.preemptive | Indicates if preemption is enabled on the peer firewall | boolean | | +| panw.interfaces.ha.peer_info.priority | HA priority value of the peer firewall | long | | +| panw.interfaces.ha.peer_info.state | Current operational state of the peer firewall (passive means it is in standby mode and not handling traffic) | keyword | | +| panw.interfaces.ha.peer_info.state_duration | How long the peer has been in the current state | long | ms | +| panw.interfaces.ha.running_sync | Indicates the sychronization status of the HA pair, e.g., "synchronized","not-synchronized","synchronizing" | keyword | | +| panw.interfaces.ha.running_sync_enabled | Indicates if running configuration synchronization is enabled | boolean | | +| panw.interfaces.logical.addr | Used to store aditional static IP addresses | keyword | | +| panw.interfaces.logical.addr6 | Logical IPv6 address | keyword | | +| panw.interfaces.logical.dyn_addr | Dynamic addresses, e.g., generated by DHCP | keyword | | +| panw.interfaces.logical.fwd | Indicates if the interface is used for forwarding | keyword | | +| panw.interfaces.logical.id | Logical interface ID | keyword | | +| panw.interfaces.logical.ip | Logical IP Address with subnet mask, e.g., 111.222.333.10/29 | ip | | +| panw.interfaces.logical.name | Logical interface name | keyword | | +| panw.interfaces.logical.tag | VLAN tag associated with this interface | integer | | +| panw.interfaces.logical.vsys | Virtual system to which this interface belongs | integer | | +| panw.interfaces.logical.zone | Logical zone, e.g., "inside" or "outside" | keyword | | +| panw.interfaces.physical.ae_member | For aggregate interfaces, the array of member interfaces | keyword | | +| panw.interfaces.physical.duplex | Duplex configuration, e.g., "full" or "half" | keyword | | +| panw.interfaces.physical.full_state | Physical full state, speed/duplex/state, e.g., "1000/full/up" | keyword | | +| panw.interfaces.physical.id | Physical interface ID | keyword | | +| panw.interfaces.physical.mac | Physical MAC address | keyword | | +| panw.interfaces.physical.mode | Physical interface mode, e.g., autoneg | keyword | | +| panw.interfaces.physical.name | Physical interface name | keyword | | +| panw.interfaces.physical.speed | Physical interface speed | keyword | | +| panw.interfaces.physical.state | Physical interface state: up/down | keyword | | +| panw.interfaces.physical.type | Physical interface type (numeric value in source XML, string value sent to elasticsearch): 0: "Ethernet interface", 1: "Aggregate Ethernet (AE) interface", 2: "High Availability (HA) interface", 3: "VLAN interface", 5: "Loopback interface", 6: "Tunnel interface", 10: "SD-WAN interface", | keyword | | + + +### routing + +The `routing` dataset gathers comprehensive routing information from Palo Alto Networks devices. It includes details about routing protocols (with a focus on BGP), static and dynamic routes, next hops, AS numbers, and peer states. This dataset provides insights into the device's routing table and its interactions with other network devices. + +An example event for `routing` looks as following: + +```json +{ + "@timestamp": "2024-02-08T10:15:30.123Z", + "agent": { + "ephemeral_id": "a1b2c3d4-e5f6-4321-a987-1234567890ab", + "id": "9876543210-abcdef-0987654321", + "name": "paloalto-firewall-01", + "type": "metricbeat", + "version": "8.16.0" + }, + "data_stream": { + "dataset": "panw.routing", + "namespace": "default", + "type": "metrics" + }, + "ecs": { + "version": "8.11.0" + }, + "elastic_agent": { + "id": "2ea50bee-9250-43d1-8d70-949f242aa275", + "snapshot": false, + "version": "8.16.0" + }, + "event": { + "agent_id_status": "verified", + "module": "panw", + "dataset": "panw.vpn", + "duration": 1250000, + "ingested": "2024-02-08T10:15:32Z" + }, + "host": { + "architecture": "x86_64", + "containerized": false, + "hostname": "docker-fleet-agent", + "id": "28da52b32df94b50aff67dfb8f1be3d6", + "ip": [ + "172.24.0.7" + ], + "mac": [ + "02-42-AC-18-00-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.15.0-89-generic", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.6 LTS (Focal Fossa)" + } + }, + "metricset": { + "name": "routing", + "period": 10000 + }, + "panw": { + "routing": { + "bgp": { + "peer_name": "ISP-A", + "virtual_router": "default", + "peer_group": "external_peers", + "peer_router_id": "10.0.0.1", + "remote_as_asn": 65001, + "status": "Established", + "status_duration": 3600, + "password_set": true, + "passive": false, + "peer_address": "203.0.113.1:179", + "local_address": "198.51.100.2:50000", + "peering_type": "External BGP", + "holdtime": 180, + "keepalive": 60, + "msg_update_in": 1000, + "msg_update_out": 500, + "msg_total_in": 5000, + "msg_total_out": 4500, + "last_update_age": 300, + "status_flap_counts": 2, + "established_counts": 10 + } + } + } +} +``` + +The fields reported are: + +**ECS Field Reference** + +Please refer to the following [document](https://www.elastic.co/guide/en/ecs/current/ecs-field-reference.html) for detailed information on ECS fields. + +**Exported fields** + +| Field | Description | Type | Unit | Metric Type | +|---|---|---|---|---| +| @timestamp | Event timestamp. | date | | | +| cloud.image.id | Image ID for the cloud instance. | keyword | | | +| data_stream.dataset | Data stream dataset. | constant_keyword | | | +| data_stream.namespace | Data stream namespace. | constant_keyword | | | +| data_stream.type | Data stream type. | constant_keyword | | | +| host.containerized | If the host is a container. | boolean | | | +| host.os.build | OS build information. | keyword | | | +| host.os.codename | OS codename, if any. | keyword | | | +| panw.routing.bgp.aggregate_confed_as | Indicates that Autonomous System (AS) aggregation is enabled for the confederation | boolean | | | +| panw.routing.bgp.connect_retry_interval | The interval (in seconds) between connection retries | long | s | | +| panw.routing.bgp.established_counts | Number of times the BGP session has successfully transitioned to the "Established" state | long | | counter | +| panw.routing.bgp.holdtime | Time in seconds that the BGP peer will wait for a keepalive message, negotiated between peers | long | s | | +| panw.routing.bgp.holdtime_config | Represents the locally configured hold time on this peer | long | s | | +| panw.routing.bgp.idle_hold | The idle hold time (in seconds) before retrying a connection after failure | long | s | | +| panw.routing.bgp.keepalive | The interval (in seconds) at which BGP keepalive messages are sent, negotiated between peers | long | s | | +| panw.routing.bgp.keepalive_config | The keepalive configured on this peer | long | s | | +| panw.routing.bgp.last_error | The last BGP error message received from the peer | keyword | | | +| panw.routing.bgp.last_update_age | Time in seconds since the last update message was received from the peer | long | s | | +| panw.routing.bgp.local_address | Local address and port used for BGP connection | keyword | | | +| panw.routing.bgp.msg_total_in | Total of all messages received from the peer | long | | counter | +| panw.routing.bgp.msg_total_out | Total of all messages sent to the peer | long | | counter | +| panw.routing.bgp.msg_update_in | The number of BGP UPDATE messages received by the router from this peer | long | | counter | +| panw.routing.bgp.msg_update_out | the number of BGP UPDATE messages sent from the local router to the peer | long | | counter | +| panw.routing.bgp.multi_hop_ttl | Time to Live (TTL) value for multi-hop BGP sessions. | long | | | +| panw.routing.bgp.nexthop_peer | Indicates whether the peer is being used as the next-hop for the routes received from this peer | boolean | | | +| panw.routing.bgp.nexthop_self | Whether the router is configured to use itself as the next-hop for routes sent to this peer | boolean | | | +| panw.routing.bgp.nexthop_thirdparty | Third-party next-hop feature is enabled | boolean | | | +| panw.routing.bgp.open_delay | Delay before sending an Open message (in seconds) | long | s | | +| panw.routing.bgp.orf_entry_received | Number of ORF (Outbound Route Filtering) entries received from the peer | long | | gauge | +| panw.routing.bgp.passive | Indicates if the BGP peer is in passive mode: if yes then router will not initiate a connection to the peer | boolean | | | +| panw.routing.bgp.password_set | Indicates whether a password is set for the BGP peer | boolean | | | +| panw.routing.bgp.peer_address | IP address and port of the peer | keyword | | | +| panw.routing.bgp.peer_group | The name of the BGP peer group this peer belongs to | keyword | | | +| panw.routing.bgp.peer_name | The name of the current peer in the BGP peer group | keyword | | | +| panw.routing.bgp.peer_router_id | BGP peer router ID | ip | | | +| panw.routing.bgp.peering_type | Defines the type of relationship between peers, e.g., "External BGP", "Internal BGP", or "Unspecified" | keyword | | | +| panw.routing.bgp.prefix_limit | The maximum number of prefixes that can be received from the peer (0 = no limit) | long | | | +| panw.routing.bgp.reflector_client | Indicates if the BGP peer is a route reflector client | keyword | | | +| panw.routing.bgp.remote_as_asn | The remote Autonomous System (AS) number of the peer | long | | | +| panw.routing.bgp.same_confederation | Peers in the same confederation exchange routes using internal BGP (iBGP) instead of external BGP (eBGP) | boolean | | | +| panw.routing.bgp.status | The BGP session status, e.g., "Established" means the session is up and running | keyword | | | +| panw.routing.bgp.status_duration | Time in seconds since the current status was set | long | s | | +| panw.routing.bgp.status_flap_counts | Indicates the number of times the BGP session has "flapped" or transitioned between up and down states | long | | counter | +| panw.routing.bgp.virtual_router | The virtual router with which the BGP peer is associated | keyword | | | + + +### system + +The `system` dataset collects a wide range of system-level metrics from Palo Alto Networks firewalls. This includes CPU usage, memory utilization, disk space, load averages, and process statistics. It also provides information about system uptime, licensed features, file system usage, and hardware component status (such as fans, thermal sensors, and power supplies). + +An example event for `system` looks as following: + +```json +{ + "@timestamp": "2024-02-08T10:15:30.123Z", + "agent": { + "ephemeral_id": "a1b2c3d4-e5f6-4321-a987-1234567890ab", + "id": "9876543210-abcdef-0987654321", + "name": "panw-agent-01", + "type": "metricbeat", + "version": "8.16.0" + }, + "data_stream": { + "dataset": "panw.system", + "namespace": "default", + "type": "metrics" + }, + "ecs": { + "version": "8.11.0" + }, + "elastic_agent": { + "id": "2ea50bee-9250-43d1-8d70-949f242aa275", + "snapshot": false, + "version": "8.16.0" + }, + "event": { + "agent_id_status": "verified", + "module": "panw", + "dataset": "panw.vpn", + "duration": 1250000, + "ingested": "2024-02-08T10:15:32Z" + }, + "host": { + "architecture": "x86_64", + "containerized": false, + "hostname": "docker-fleet-agent", + "id": "28da52b32df94b50aff67dfb8f1be3d6", + "ip": [ + "172.24.0.7" + ], + "mac": [ + "02-42-AC-18-00-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.15.0-89-generic", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.6 LTS (Focal Fossa)" + } + }, + "metricset": { + "name": "system", + "period": 10000 + }, + "panw": { + "system": { + "uptime": { + "days": 15, + "hours": 7, + "minutes": 32 + }, + "user_count": 23, + "load_average": { + "1m": 0.75, + "5m": 0.68, + "15m": 0.62 + }, + "tasks": { + "total": 245, + "running": 3, + "sleeping": 242 + }, + "cpu": { + "user": 5.2, + "system": 2.8, + "idle": 92.0 + }, + "memory": { + "total": 16106127360, + "free": 8053063680, + "used": 8053063680 + }, + "swap": { + "total": 4294967296, + "free": 4294967296, + "used": 0 + } + } + }, + "service": { + "type": "panw" + } +} +``` + +The fields reported are: + +**ECS Field Reference** + +Please refer to the following [document](https://www.elastic.co/guide/en/ecs/current/ecs-field-reference.html) for detailed information on ECS fields. + +**Exported fields** + +| Field | Description | Type | Unit | Metric Type | +|---|---|---|---|---| +| @timestamp | Event timestamp. | date | | | +| cloud.image.id | Image ID for the cloud instance. | keyword | | | +| data_stream.dataset | Data stream dataset. | constant_keyword | | | +| data_stream.namespace | Data stream namespace. | constant_keyword | | | +| data_stream.type | Data stream type. | constant_keyword | | | +| host.containerized | If the host is a container. | boolean | | | +| host.os.build | OS build information. | keyword | | | +| host.os.codename | OS codename, if any. | keyword | | | +| panw.system.certificate.db_exp_date | Expiration date, format: 310329235959Z(Mar 29 23:59:59 2031 GMT) | keyword | | | +| panw.system.certificate.db_file | File name of the certificate database | keyword | | | +| panw.system.certificate.db_name | Name of the certificate database | keyword | | | +| panw.system.certificate.db_rev_date | Revision date of the certificate database | keyword | | | +| panw.system.certificate.db_serial_no | Serial number of the certificate database | keyword | | | +| panw.system.certificate.db_status | Status of the certificate database | keyword | | | +| panw.system.certificate.db_type | Type of the certificate database | keyword | | | +| panw.system.certificate.issuer | Issuer of the certificate database | keyword | | | +| panw.system.certificate.issuer_key_hash | Key hash of the issuer of the certificate database | keyword | | | +| panw.system.certificate.issuer_subject_hash | Subject hash of the issuer of the certificate database | keyword | | | +| panw.system.cpu.hi | CPU hardware interrupts | float | percent | gauge | +| panw.system.cpu.idle | CPU idle time | float | percent | gauge | +| panw.system.cpu.nice | CPU usage by processes with a positive nice value | float | percent | gauge | +| panw.system.cpu.steal | CPU steal time | float | percent | gauge | +| panw.system.cpu.system | CPU usage by system processes | float | percent | gauge | +| panw.system.cpu.system_int | CPU software interrupts | float | percent | gauge | +| panw.system.cpu.user | CPU usage by user processes | float | percent | gauge | +| panw.system.cpu.wait | CPU wait time | float | percent | gauge | +| panw.system.fan.alarm | Is there an alarm status of the fan | boolean | | | +| panw.system.fan.description | The description of the fan | keyword | | | +| panw.system.fan.min_rpm | The minimum speed of the fan in RPM | integer | | | +| panw.system.fan.rpm | The speed of the fan in RPM | integer | | gauge | +| panw.system.fan.slot_number | The number of the hardware slot | integer | | | +| panw.system.filesystem.available | Disk space available on the filesystem | float | byte | gauge | +| panw.system.filesystem.mounted | Filesystem mount point | keyword | | | +| panw.system.filesystem.name | Filesystem name | keyword | | | +| panw.system.filesystem.size | Total size of the filesystem | float | byte | gauge | +| panw.system.filesystem.use_percent | Percent of filesystem used | integer | percent | gauge | +| panw.system.filesystem.used | Amount used on the filesystem | float | byte | gauge | +| panw.system.license.auth_code | Authorization code to activate or install the license | keyword | | | +| panw.system.license.description | Description of the licensed feature | text | | | +| panw.system.license.expired | Indicates if the license is expired | boolean | | | +| panw.system.license.expires | Date the license expires, but this is a keyword because value might be "never" | keyword | | | +| panw.system.license.feature | Feature licensed, e.g. Advanced Threat Prevention | keyword | | | +| panw.system.license.issued | Date the license was issued | date | | | +| panw.system.license.serial | Serial number of license | keyword | | | +| panw.system.load_average.15m | Load average in 15 minutes | float | | gauge | +| panw.system.load_average.1m | Load average in 1 minute | float | | gauge | +| panw.system.load_average.5m | Load average in 5 minutes | float | | gauge | +| panw.system.memory.buffer_cache | Memory used for buffers and cache | float | byte | gauge | +| panw.system.memory.free | Free memory | float | byte | gauge | +| panw.system.memory.total | Total memory | float | byte | gauge | +| panw.system.memory.used | Used memory | float | byte | gauge | +| panw.system.power.alarm | Indicates if alarm is active | boolean | | | +| panw.system.power.description | Description field | text | | | +| panw.system.power.maximum_volts | Maximum volts recorded | float | | | +| panw.system.power.minimum_volts | Minimum volts recorded | float | | | +| panw.system.power.slot_number | Slot number field | keyword | | | +| panw.system.power.volts | Current Volts | float | | gauge | +| panw.system.swap.available | Available swap space | float | byte | gauge | +| panw.system.swap.free | Free swap space | float | byte | gauge | +| panw.system.swap.total | Total swap space | float | byte | gauge | +| panw.system.swap.used | Used swap space | float | byte | gauge | +| panw.system.tasks.running | Number of running tasks | long | | gauge | +| panw.system.tasks.sleeping | Number of sleeping tasks | long | | gauge | +| panw.system.tasks.stopped | Number of stopped tasks | long | | gauge | +| panw.system.tasks.total | Total number of tasks | long | | gauge | +| panw.system.tasks.zombie | Number of zombie tasks | long | | gauge | +| panw.system.thermal.alarm | Alarm field | boolean | | | +| panw.system.thermal.degrees_celsius | Degrees Celsius field | float | | gauge | +| panw.system.thermal.description | Description field | text | | | +| panw.system.thermal.maximum_temp | Maximum temperature field | float | | | +| panw.system.thermal.minimum_temp | Minimum temperature field | float | | | +| panw.system.thermal.slot_number | Slot number field | integer | | | +| panw.system.uptime.days | Uptime in days | integer | d | gauge | +| panw.system.uptime.hours | Hours component of uptime | integer | h | gauge | +| panw.system.uptime.minutes | Minutes component of uptime | integer | m | gauge | +| panw.system.user_count | Number of users | long | | gauge | + + +### vpn + +The `vpn` dataset gathers detailed Virtual Private Network (VPN) statistics from Palo Alto Networks devices. It covers both GlobalProtect and IPsec VPN technologies, providing information about active VPN sessions, user connections, tunnel status, encryption details, and performance metrics. This dataset offers insights into VPN usage, security, and performance. + +An example event for `vpn` looks as following: + +```json +{ + "@timestamp": "2024-02-08T10:15:30.123Z", + "agent": { + "ephemeral_id": "a1b2c3d4-e5f6-4321-a987-1234567890ab", + "id": "9876543210-abcdef-0987654321", + "name": "panw-agent-01", + "type": "metricbeat", + "version": "8.16.0" + }, + "data_stream": { + "dataset": "panw.vpn", + "namespace": "default", + "type": "metrics" + }, + "ecs": { + "version": "8.11.0" + }, + "elastic_agent": { + "id": "2ea50bee-9250-43d1-8d70-949f242aa275", + "snapshot": false, + "version": "8.16.0" + }, + "event": { + "agent_id_status": "verified", + "module": "panw", + "dataset": "panw.vpn", + "duration": 1250000, + "ingested": "2024-02-08T10:15:32Z" + }, + "host": { + "architecture": "x86_64", + "containerized": false, + "hostname": "docker-fleet-agent", + "id": "28da52b32df94b50aff67dfb8f1be3d6", + "ip": [ + "172.24.0.7" + ], + "mac": [ + "02-42-AC-18-00-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.15.0-89-generic", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.6 LTS (Focal Fossa)" + } + }, + "metricset": { + "name": "vpn", + "period": 10000 + }, + "panw": { + "vpn": { + "globalprotect": { + "session": { + "domain": "example.com", + "is_local": true, + "username": "john.doe", + "primary_username": "john.doe", + "computer": "LAPTOP-ABC123", + "client": "GlobalProtect", + "vpn_type": "SSL", + "app_version": "5.2.8", + "virtual_ip": "10.0.0.5", + "public_ip": "203.0.113.45", + "tunnel_type": "IPSec", + "client_ip": "192.168.1.100", + "login_time": "2024-02-08T10:15:00.000Z", + "lifetime": 3600 + }, + "gateway": { + "name": "gp-gateway-01", + "current_users": 150, + "previous_users": 145 + }, + "total_current_users": 500, + "total_previous_users": 480 + }, + "ipsec_tunnel": { + "id": "tunnel-001", + "name": "Site-A-to-Site-B", + "gw": "203.0.113.1", + "TSi_ip": "10.0.0.0", + "TSi_prefix": "24", + "TSi_proto": "any", + "TSi_port": 0, + "TSr_ip": "192.168.0.0", + "TSr_prefix": "24", + "TSr_proto": "any", + "TSr_port": 0, + "proto": "ESP", + "mode": "tunnel", + "dh": "group14", + "enc": "aes-256-cbc", + "hash": "sha256", + "life": 28800, + "kb": 102400 + } + } + } +} +``` + +The fields reported are: + +**ECS Field Reference** + +Please refer to the following [document](https://www.elastic.co/guide/en/ecs/current/ecs-field-reference.html) for detailed information on ECS fields. + +**Exported fields** + +| Field | Description | Type | Unit | Metric Type | +|---|---|---|---|---| +| @timestamp | Event timestamp. | date | | | +| cloud.image.id | Image ID for the cloud instance. | keyword | | | +| data_stream.dataset | Data stream dataset. | constant_keyword | | | +| data_stream.namespace | Data stream namespace. | constant_keyword | | | +| data_stream.type | Data stream type. | constant_keyword | | | +| host.containerized | If the host is a container. | boolean | | | +| host.os.build | OS build information. | keyword | | | +| host.os.codename | OS codename, if any. | keyword | | | +| panw.vpn.globalprotect.gateway.current_users | Current number of users connected to the GlobalProtect gateway | long | | gauge | +| panw.vpn.globalprotect.gateway.name | Name of the GlobalProtect gateway | keyword | | | +| panw.vpn.globalprotect.gateway.previous_users | Previous number of users connected to the GlobalProtect gateway | long | | gauge | +| panw.vpn.globalprotect.session.app_version | Application version used in the session | keyword | | | +| panw.vpn.globalprotect.session.client | Client information of the session | keyword | | | +| panw.vpn.globalprotect.session.client_ip | Client IP address of the session | ip | | | +| panw.vpn.globalprotect.session.computer | Computer name in the session | keyword | | | +| panw.vpn.globalprotect.session.domain | Domain of the GlobalProtect session | keyword | | | +| panw.vpn.globalprotect.session.host_id | Host ID of the session | keyword | | | +| panw.vpn.globalprotect.session.is_local | Indicates if the session is local | boolean | | | +| panw.vpn.globalprotect.session.lifetime | Lifetime of the session | long | s | | +| panw.vpn.globalprotect.session.login_time | Login time of the session | date | | | +| panw.vpn.globalprotect.session.login_time_utc | Login time in UTC of the session | date | | | +| panw.vpn.globalprotect.session.primary_username | Primary username of the session | keyword | | | +| panw.vpn.globalprotect.session.public_connection_ipv6 | Public connection IPv6 address of the session | ip | | | +| panw.vpn.globalprotect.session.public_ip | Public IP address of the session | ip | | | +| panw.vpn.globalprotect.session.public_ipv6 | Public IPv6 address of the session | ip | | | +| panw.vpn.globalprotect.session.region_for_config | Region for configuration | keyword | | | +| panw.vpn.globalprotect.session.request_get_config | Request get configuration information of the session | keyword | | | +| panw.vpn.globalprotect.session.request_login | Request login information of the session | keyword | | | +| panw.vpn.globalprotect.session.request_sslvpn_connect | Request SSL VPN connect information of the session | keyword | | | +| panw.vpn.globalprotect.session.source_region | Source region of the session | keyword | | | +| panw.vpn.globalprotect.session.tunnel_type | Type of tunnel used in the session | keyword | | | +| panw.vpn.globalprotect.session.username | Username of the session | keyword | | | +| panw.vpn.globalprotect.session.virtual_ip | Virtual IP address of the session | ip | | | +| panw.vpn.globalprotect.session.virtual_ipv6 | Virtual IPv6 address of the session | ip | | | +| panw.vpn.globalprotect.session.vpn_type | Type of VPN used in the session | keyword | | | +| panw.vpn.globalprotect.total_current_users | Total current number of users connected to GlobalProtect | long | | gauge | +| panw.vpn.globalprotect.total_previous_users | Total previous number of users connected to GlobalProtect | long | | gauge | +| panw.vpn.ipsec_tunnel.TSi_ip | Traffic Selector Initiator IP. This is the local IP (0.0.0.0 means any IP address) | ip | | | +| panw.vpn.ipsec_tunnel.TSi_port | Port number associated with TSi (0 means any port) | long | | | +| panw.vpn.ipsec_tunnel.TSi_prefix | Network prefix for the TSi IP, 0 means no specific network is defined. | keyword | | | +| panw.vpn.ipsec_tunnel.TSi_proto | Protocol associated with the TSi (0 means any protocol) | keyword | | | +| panw.vpn.ipsec_tunnel.TSr_ip | Traffic Selector Responder IP. | ip | | | +| panw.vpn.ipsec_tunnel.TSr_port | TSr port of the IPsec tunnel | long | | | +| panw.vpn.ipsec_tunnel.TSr_prefix | Network prefix for the TSr IP. Similar to TSi_prefix | keyword | | | +| panw.vpn.ipsec_tunnel.TSr_proto | TSr protocol of the IPsec tunnel | keyword | | | +| panw.vpn.ipsec_tunnel.dh | Diffie-Hellman group of the IPsec tunnel | keyword | | | +| panw.vpn.ipsec_tunnel.enc | Encryption algorithm of the IPsec tunnel | keyword | | | +| panw.vpn.ipsec_tunnel.gw | Gateway of the IPsec tunnel | keyword | | | +| panw.vpn.ipsec_tunnel.hash | Hash algorithm of the IPsec tunnel | keyword | | | +| panw.vpn.ipsec_tunnel.id | ID of the IPsec tunnel | keyword | | | +| panw.vpn.ipsec_tunnel.kb | Traffic volume limit for SA rekeying | long | byte | | +| panw.vpn.ipsec_tunnel.life | The lifetime of the IPsec Security Association (SA) in seconds | long | s | | +| panw.vpn.ipsec_tunnel.mode | This specifies the IPsec mode. e.g., 'tunl' | keyword | | | +| panw.vpn.ipsec_tunnel.name | Name of the IPsec tunnel | keyword | | | +| panw.vpn.ipsec_tunnel.proto | Protocol of the IPsec tunnel | keyword | | | diff --git a/packages/panw_metrics/img/logo.svg b/packages/panw_metrics/img/logo.svg new file mode 100644 index 00000000000..194199e03a3 --- /dev/null +++ b/packages/panw_metrics/img/logo.svg @@ -0,0 +1,11 @@ + + PaloAltoNetworks_2020_Logo-svg + + + + + + + \ No newline at end of file diff --git a/packages/panw_metrics/manifest.yml b/packages/panw_metrics/manifest.yml new file mode 100644 index 00000000000..d46cdb275dd --- /dev/null +++ b/packages/panw_metrics/manifest.yml @@ -0,0 +1,36 @@ +format_version: 3.1.4 +name: panw_metrics +title: "Palo Alto Networks Metrics" +version: 0.0.1 +description: "Collect metrics from Palo Alto Networks with Elastic Agent." +type: integration +categories: + - network + - security +conditions: + kibana: + version: "^8.16.0" + elastic: + subscription: "basic" +icons: + - src: /img/logo.svg + title: PANW logo + size: 32x32 + type: image/svg+xml +policy_templates: + - name: panw_metrics + title: Palo Alto Networks metrics + description: Collect metrics from Palo Alto Networks + inputs: + - type: panw/metrics + title: Palo Alto Networks metrics + description: Collect metrics from Palo Alto Networks + input_group: metrics + icons: + - src: /img/logo.svg + title: PANW logo + size: 32x32 + type: image/svg+xml +owner: + github: elastic/obs-infraobs-integrations + type: elastic From 7832f2acbbbe1d0c1950038a0f586625dc78cbed Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Wed, 11 Sep 2024 17:05:50 +0300 Subject: [PATCH 02/50] add interfaces data stream --- .../interfaces/agent/stream/stream.yml.hbs | 6 + .../data_stream/interfaces/fields/agent.yml | 33 ++ .../interfaces/fields/base-fields.yml | 12 + .../data_stream/interfaces/fields/fields.yml | 340 ++++++++++++++++++ .../data_stream/interfaces/manifest.yml | 42 +++ .../data_stream/interfaces/sample_event.json | 97 +++++ 6 files changed, 530 insertions(+) create mode 100644 packages/panw_metrics/data_stream/interfaces/agent/stream/stream.yml.hbs create mode 100644 packages/panw_metrics/data_stream/interfaces/fields/agent.yml create mode 100644 packages/panw_metrics/data_stream/interfaces/fields/base-fields.yml create mode 100644 packages/panw_metrics/data_stream/interfaces/fields/fields.yml create mode 100644 packages/panw_metrics/data_stream/interfaces/manifest.yml create mode 100644 packages/panw_metrics/data_stream/interfaces/sample_event.json diff --git a/packages/panw_metrics/data_stream/interfaces/agent/stream/stream.yml.hbs b/packages/panw_metrics/data_stream/interfaces/agent/stream/stream.yml.hbs new file mode 100644 index 00000000000..d46a320c7d0 --- /dev/null +++ b/packages/panw_metrics/data_stream/interfaces/agent/stream/stream.yml.hbs @@ -0,0 +1,6 @@ +metricsets: ["interfaces"] +period: {{period}} +host_ip: {{host_ip}} +port: {{port}} +apiKey: {{apiKey}} +apiDebugMode: {{apiDebugMode}} \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/interfaces/fields/agent.yml b/packages/panw_metrics/data_stream/interfaces/fields/agent.yml new file mode 100644 index 00000000000..2bc58530bac --- /dev/null +++ b/packages/panw_metrics/data_stream/interfaces/fields/agent.yml @@ -0,0 +1,33 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + diff --git a/packages/panw_metrics/data_stream/interfaces/fields/base-fields.yml b/packages/panw_metrics/data_stream/interfaces/fields/base-fields.yml new file mode 100644 index 00000000000..4da5428ca93 --- /dev/null +++ b/packages/panw_metrics/data_stream/interfaces/fields/base-fields.yml @@ -0,0 +1,12 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: '@timestamp' + type: date + description: Event timestamp. \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/interfaces/fields/fields.yml b/packages/panw_metrics/data_stream/interfaces/fields/fields.yml new file mode 100644 index 00000000000..f1595f29e73 --- /dev/null +++ b/packages/panw_metrics/data_stream/interfaces/fields/fields.yml @@ -0,0 +1,340 @@ +- name: panw.interfaces + type: group + fields: + - name: physical.name + type: keyword + dimension: true + description: > + Physical interface name + - name: physical.id + type: keyword + dimension: true + description: > + Physical interface ID + - name: physical.type + type: keyword + description: > + Physical interface type (numeric value in source XML, string value sent to elasticsearch): + 0: "Ethernet interface", + 1: "Aggregate Ethernet (AE) interface", + 2: "High Availability (HA) interface", + 3: "VLAN interface", + 5: "Loopback interface", + 6: "Tunnel interface", + 10: "SD-WAN interface", + - name: physical.mac + type: keyword + description: > + Physical MAC address + - name: physical.speed + type: keyword + description: > + Physical interface speed + - name: physical.duplex + type: keyword + description: > + Duplex configuration, e.g., "full" or "half" + - name: physical.state + type: keyword + description: > + Physical interface state: up/down + - name: physical.mode + type: keyword + description: > + Physical interface mode, e.g., autoneg + - name: physical.full_state + type: keyword + description: > + Physical full state, speed/duplex/state, e.g., "1000/full/up" + - name: physical.ae_member + type: keyword + description: > + For aggregate interfaces, the array of member interfaces + - name: logical.name + type: keyword + dimension: true + description: > + Logical interface name + - name: logical.id + type: keyword + dimension: true + description: > + Logical interface ID + - name: logical.tag + type: integer + description: > + VLAN tag associated with this interface + - name: logical.vsys + type: integer + description: > + Virtual system to which this interface belongs + - name: logical.zone + type: keyword + dimension: true + description: > + Logical zone, e.g., "inside" or "outside" + - name: logical.fwd + type: keyword + description: > + Indicates if the interface is used for forwarding + - name: logical.ip + type: ip + description: > + Logical IP Address with subnet mask, e.g., 111.222.333.10/29 + - name: logical.addr + type: keyword + description: > + Used to store aditional static IP addresses + - name: logical.dyn_addr + type: keyword + description: > + Dynamic addresses, e.g., generated by DHCP + - name: logical.addr6 + type: keyword + description: > + Logical IPv6 address + # HA Interface fields + - name: ha.enabled + type: boolean + description: > + HA enabled + - name: ha.mode + type: keyword + description: > + HA mode, e.g., "active-active" or "active-passive" + - name: ha.running_sync + type: keyword + description: > + Indicates the sychronization status of the HA pair, e.g., "synchronized","not-synchronized","synchronizing" + - name: ha.running_sync_enabled + type: boolean + description: > + Indicates if running configuration synchronization is enabled + - name: ha.local_info.version + type: long + description: > + HA configuration info version + - name: ha.local_info.state + type: keyword + description: > + HA state of the local device, e.g., "active" or "passive" + - name: ha.local_info.state_duration + type: long + description: > + Duration in milliseconds of the current state + unit: ms + - name: ha.local_info.mgmt_ip + type: ip + description: > + HA local info management IP + - name: ha.local_info.preemptive + type: boolean + description: > + Indicates whether the firewall is configured to preemptively take over as the active unit in an HA setup + - name: ha.local_info.mode + type: keyword + description: > + HA mode, e.g., "active-active" or "active-passive" + - name: ha.local_info.platform_model + type: keyword + dimension: true + description: > + Platform model of the local device + - name: ha.local_info.state_sync + type: keyword + description: > + Status of HA synchronization, e.g., "complete" + - name: ha.local_info.state_sync_type + type: keyword + description: > + Type of interface used for HA synchronization + - name: ha.local_info.ha1_ipaddr + type: ip + description: > + IP Address of HA1 interface, used for heartbeat and management synchronization + - name: ha.local_info.ha1_macaddr + type: keyword + description: > + HA local info HA1 MAC address + - name: ha.local_info.ha1_port + type: keyword + description: > + Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha1" + - name: ha.local_info.ha1_backup_ipaddr + type: ip + description: > + The backup IP address for the HA1 interface + - name: ha.local_info.ha1_backup_macaddr + type: keyword + description: > + HA local info HA1 backup MAC address + - name: ha.local_info.ha1_backup_port + type: keyword + description: > + HA local info HA1 backup port, e.g. "management" + - name: ha.local_info.ha1_backup_gateway + type: ip + description: > + Default gateway for the backup HA1 interface + - name: ha.local_info.ha2_ipaddr + type: ip + description: > + HA local info HA2 IP address + - name: ha.local_info.ha2_macaddr + type: keyword + description: > + HA local info HA2 MAC address + - name: ha.local_info.ha2_port + type: keyword + description: > + Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha2" + - name: ha.local_info.build_rel + type: keyword + description: > + The PAN-OS software version running on the firewall + - name: ha.local_info.url_version + type: keyword + description: > + The version of the URL filtering database + - name: ha.local_info.app_version + type: keyword + description: > + The version of the application database + - name: ha.local_info.iot_version + type: keyword + description: > + HA local info IoT database version + - name: ha.local_info.av_version + type: keyword + description: > + The version of the antivirus database + - name: ha.local_info.threat_version + type: keyword + description: > + HA local info threat version + - name: ha.local_info.vpn_client_version + type: keyword + description: > + Version of the VPN client (if installed) + - name: ha.local_info.gp_client_version + type: keyword + description: > + Version of the GlobalProtect client software + - name: ha.peer_info.conn_status + type: keyword + description: > + Overall status of the HA connections ("up" means all connections are operational) + - name: ha.peer_info.state + type: keyword + description: > + Current operational state of the peer firewall (passive means it is in standby mode and not handling traffic) + - name: ha.peer_info.state_duration + type: long + description: > + How long the peer has been in the current state + unit: ms + - name: ha.peer_info.mgmt_ip + type: ip + description: > + Management IP address of the peer firewall + - name: ha.peer_info.preemptive + type: boolean + description: > + Indicates if preemption is enabled on the peer firewall + - name: ha.peer_info.mode + type: keyword + description: > + HA mode configured on the peer firewall, e.g. "Active-Passive" + - name: ha.peer_info.platform_model + type: keyword + dimension: true + description: > + Model of the peer firewall + - name: ha.peer_info.priority + type: long + description: > + HA priority value of the peer firewall + - name: ha.peer_info.ha1_ipaddr + type: ip + description: > + IP address of the HA1 interface on the peer + - name: ha.peer_info.ha1_macaddr + type: keyword + description: > + HA1 MAC address of the peer + - name: ha.peer_info.ha1_backup_ipaddr + type: ip + description: > + HA peer info HA1 backup IP address + - name: ha.peer_info.ha1_backup_macaddr + type: keyword + description: > + HA peer info HA1 backup MAC address + - name: ha.peer_info.ha2_ipaddr + type: ip + description: > + HA peer info HA2 IP address + - name: ha.peer_info.ha2_macaddr + type: keyword + description: > + HA peer info HA2 MAC address + - name: ha.peer_info.conn_ha1.status + type: keyword + description: > + Peer HA1 connection status, e.g., "up" + - name: ha.peer_info.conn_ha1.primary + type: boolean + description: > + Specifies if the HA1 connection is primary + - name: ha.peer_info.conn_ha1.description + type: keyword + description: > + Description of the connection type ,e.g., "heartbeat status" + - name: ha.peer_info.conn_ha2.status + type: keyword + description: > + HA peer info connection HA2 status + - name: ha.peer_info.conn_ha2.primary + type: boolean + description: > + Specifies if the HA2 connection is primary + - name: ha.peer_info.conn_ha2.description + type: keyword + description: > + HA peer info connection HA2 description + - name: ha.peer_info.conn_ha1_backup.status + type: keyword + description: > + HA peer info connection HA1 backup status, e.g., "up" means it is operational + - name: ha.peer_info.conn_ha1_backup.description + type: keyword + description: > + HA peer info connection HA1 backup description + - name: ha.link_monitoring.enabled + type: boolean + description: > + Indicates if link monitoring is enabled + - name: ha.link_monitoring.failure_condition + type: keyword + description: > + Condition that triggers a link monitoring failure, e.g., "any" + - name: ha.link_monitoring.group.name + type: keyword + description: > + Name of the link monitoring group + - name: ha.link_monitoring.group.enabled + type: boolean + description: > + Indicates if the link monitoring group is enabled + - name: ha.link_monitoring.group.failure_condition + type: keyword + description: > + Condition that triggers a failure in the link monitoring group + - name: ha.link_monitoring.group.interface.name + type: keyword + description: > + Name of the interface in the link monitoring group + - name: ha.link_monitoring.group.interface.status + type: keyword + description: > + Status of the interface in the link monitoring group \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/interfaces/manifest.yml b/packages/panw_metrics/data_stream/interfaces/manifest.yml new file mode 100644 index 00000000000..a9b84762693 --- /dev/null +++ b/packages/panw_metrics/data_stream/interfaces/manifest.yml @@ -0,0 +1,42 @@ +title: "Palo Alto Networks Interfaces" +type: metrics +streams: + - input: panw/metrics + title: Palo Alto Networks interfaces metrics + description: Collect interfaces metrics from Palo Alto Networks. + vars: + - name: period + type: text + title: Period + default: 10s + multi: false + required: true + show_user: true + - name: host_ip + type: text + title: Host IP + default: 127.0.0.1 + multi: false + required: true + show_user: true + - name: port + type: text + title: Port + default: 443 + multi: false + required: false + show_user: true + - name: apiKey + type: text + title: API Key + secret: true + multi: false + required: true + show_user: true + - name: apiDebugMode + type: bool + title: Debug Mode + default: false + multi: false + required: false + show_user: true diff --git a/packages/panw_metrics/data_stream/interfaces/sample_event.json b/packages/panw_metrics/data_stream/interfaces/sample_event.json new file mode 100644 index 00000000000..6493ff08149 --- /dev/null +++ b/packages/panw_metrics/data_stream/interfaces/sample_event.json @@ -0,0 +1,97 @@ +{ + "@timestamp": "2024-02-08T10:15:30.123Z", + "agent": { + "ephemeral_id": "a1b2c3d4-e5f6-4321-a987-1234567890ab", + "id": "9876543210-abcdef-0987654321", + "name": "panw-agent-01", + "type": "metricbeat", + "version": "8.16.0" + }, + "data_stream": { + "dataset": "panw.interfaces", + "namespace": "default", + "type": "metrics" + }, + "ecs": { + "version": "8.11.0" + }, + "elastic_agent": { + "id": "2ea50bee-9250-43d1-8d70-949f242aa275", + "snapshot": false, + "version": "8.16.0" + }, + "event": { + "agent_id_status": "verified", + "module": "panw", + "dataset": "panw.vpn", + "duration": 1250000, + "ingested": "2024-02-08T10:15:32Z" + }, + "host": { + "architecture": "x86_64", + "containerized": false, + "hostname": "docker-fleet-agent", + "id": "28da52b32df94b50aff67dfb8f1be3d6", + "ip": [ + "172.24.0.7" + ], + "mac": [ + "02-42-AC-18-00-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.15.0-89-generic", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.6 LTS (Focal Fossa)" + } + }, + "metricset": { + "name": "interfaces", + "period": 10000 + }, + "panw": { + "interfaces": { + "physical": { + "name": "ethernet1/1", + "id": "ethernet1/1", + "type": "Ethernet interface", + "mac": "00:1B:17:00:01:01", + "speed": "1000Mbps", + "duplex": "full", + "state": "up", + "mode": "autoneg", + "full_state": "1000/full/up" + }, + "logical": { + "name": "ethernet1/1.100", + "id": "ethernet1/1.100", + "tag": 100, + "vsys": 1, + "zone": "trust", + "fwd": "yes", + "ip": "192.168.1.1/24" + }, + "ha": { + "enabled": true, + "mode": "active-passive", + "running_sync": "synchronized", + "running_sync_enabled": true, + "local_info": { + "state": "active", + "mgmt_ip": "10.0.0.1", + "platform_model": "PA-3260" + }, + "peer_info": { + "conn_status": "up", + "state": "passive", + "mgmt_ip": "10.0.0.2", + "platform_model": "PA-3260" + } + } + } + } +} \ No newline at end of file From b66c31552acffe8d6f86b1e6bc80d20a6d05cc16 Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Wed, 11 Sep 2024 17:05:56 +0300 Subject: [PATCH 03/50] add routing data stream --- .../routing/agent/stream/stream.yml.hbs | 6 + .../data_stream/routing/fields/agent.yml | 33 ++++ .../routing/fields/base-fields.yml | 12 ++ .../data_stream/routing/fields/fields.yml | 169 ++++++++++++++++++ .../data_stream/routing/manifest.yml | 42 +++++ .../data_stream/routing/sample_event.json | 83 +++++++++ 6 files changed, 345 insertions(+) create mode 100644 packages/panw_metrics/data_stream/routing/agent/stream/stream.yml.hbs create mode 100644 packages/panw_metrics/data_stream/routing/fields/agent.yml create mode 100644 packages/panw_metrics/data_stream/routing/fields/base-fields.yml create mode 100644 packages/panw_metrics/data_stream/routing/fields/fields.yml create mode 100644 packages/panw_metrics/data_stream/routing/manifest.yml create mode 100644 packages/panw_metrics/data_stream/routing/sample_event.json diff --git a/packages/panw_metrics/data_stream/routing/agent/stream/stream.yml.hbs b/packages/panw_metrics/data_stream/routing/agent/stream/stream.yml.hbs new file mode 100644 index 00000000000..8a82f4e193f --- /dev/null +++ b/packages/panw_metrics/data_stream/routing/agent/stream/stream.yml.hbs @@ -0,0 +1,6 @@ +metricsets: ["routing"] +period: {{period}} +host_ip: {{host_ip}} +port: {{port}} +apiKey: {{apiKey}} +apiDebugMode: {{apiDebugMode}} \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/routing/fields/agent.yml b/packages/panw_metrics/data_stream/routing/fields/agent.yml new file mode 100644 index 00000000000..2bc58530bac --- /dev/null +++ b/packages/panw_metrics/data_stream/routing/fields/agent.yml @@ -0,0 +1,33 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + diff --git a/packages/panw_metrics/data_stream/routing/fields/base-fields.yml b/packages/panw_metrics/data_stream/routing/fields/base-fields.yml new file mode 100644 index 00000000000..4da5428ca93 --- /dev/null +++ b/packages/panw_metrics/data_stream/routing/fields/base-fields.yml @@ -0,0 +1,12 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: '@timestamp' + type: date + description: Event timestamp. \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/routing/fields/fields.yml b/packages/panw_metrics/data_stream/routing/fields/fields.yml new file mode 100644 index 00000000000..e29de7753ce --- /dev/null +++ b/packages/panw_metrics/data_stream/routing/fields/fields.yml @@ -0,0 +1,169 @@ +- name: panw.routing + type: group + fields: + - name: bgp.peer_name + type: keyword + dimension: true + description: > + The name of the current peer in the BGP peer group + - name: bgp.virtual_router + type: keyword + dimension: true + description: > + The virtual router with which the BGP peer is associated + - name: bgp.peer_group + type: keyword + dimension: true + description: > + The name of the BGP peer group this peer belongs to + - name: bgp.peer_router_id + type: ip + description: > + BGP peer router ID + - name: bgp.remote_as_asn + type: long + description: > + The remote Autonomous System (AS) number of the peer + - name: bgp.status + type: keyword + description: > + The BGP session status, e.g., "Established" means the session is up and running + - name: bgp.status_duration + type: long + description: > + Time in seconds since the current status was set + unit: s + - name: bgp.password_set + type: boolean + description: > + Indicates whether a password is set for the BGP peer + - name: bgp.passive + type: boolean + description: > + Indicates if the BGP peer is in passive mode: if yes then router will not initiate a connection to the peer + - name: bgp.multi_hop_ttl + type: long + description: > + Time to Live (TTL) value for multi-hop BGP sessions. + - name: bgp.peer_address + type: keyword + dimension: true + description: > + IP address and port of the peer + - name: bgp.local_address + type: keyword + dimension: true + description: > + Local address and port used for BGP connection + - name: bgp.reflector_client + type: keyword + description: > + Indicates if the BGP peer is a route reflector client + - name: bgp.same_confederation + type: boolean + description: > + Peers in the same confederation exchange routes using internal BGP (iBGP) instead of external BGP (eBGP) + - name: bgp.aggregate_confed_as + type: boolean + description: > + Indicates that Autonomous System (AS) aggregation is enabled for the confederation + - name: bgp.peering_type + type: keyword + dimension: true + description: > + Defines the type of relationship between peers, e.g., "External BGP", "Internal BGP", or "Unspecified" + - name: bgp.connect_retry_interval + type: long + description: > + The interval (in seconds) between connection retries + unit: s + - name: bgp.open_delay + type: long + description: > + Delay before sending an Open message (in seconds) + unit: s + - name: bgp.idle_hold + type: long + description: > + The idle hold time (in seconds) before retrying a connection after failure + unit: s + - name: bgp.prefix_limit + type: long + description: > + The maximum number of prefixes that can be received from the peer (0 = no limit) + - name: bgp.holdtime + type: long + description: > + Time in seconds that the BGP peer will wait for a keepalive message, negotiated between peers + unit: s + - name: bgp.holdtime_config + type: long + description: > + Represents the locally configured hold time on this peer + unit: s + - name: bgp.keepalive + type: long + description: > + The interval (in seconds) at which BGP keepalive messages are sent, negotiated between peers + unit: s + - name: bgp.keepalive_config + type: long + description: > + The keepalive configured on this peer + unit: s + - name: bgp.msg_update_in + type: long + description: > + The number of BGP UPDATE messages received by the router from this peer + metric_type: counter + - name: bgp.msg_update_out + type: long + description: > + the number of BGP UPDATE messages sent from the local router to the peer + metric_type: counter + - name: bgp.msg_total_in + type: long + description: > + Total of all messages received from the peer + metric_type: counter + - name: bgp.msg_total_out + type: long + description: > + Total of all messages sent to the peer + metric_type: counter + - name: bgp.last_update_age + type: long + description: > + Time in seconds since the last update message was received from the peer + unit: s + - name: bgp.last_error + type: keyword + description: > + The last BGP error message received from the peer + - name: bgp.status_flap_counts + type: long + description: > + Indicates the number of times the BGP session has "flapped" or transitioned between up and down states + metric_type: counter + - name: bgp.established_counts + type: long + description: > + Number of times the BGP session has successfully transitioned to the "Established" state + metric_type: counter + - name: bgp.orf_entry_received + type: long + description: > + Number of ORF (Outbound Route Filtering) entries received from the peer + metric_type: gauge + - name: bgp.nexthop_self + type: boolean + description: > + Whether the router is configured to use itself as the next-hop for routes sent to this peer + - name: bgp.nexthop_thirdparty + type: boolean + description: > + Third-party next-hop feature is enabled + - name: bgp.nexthop_peer + type: boolean + description: > + Indicates whether the peer is being used as the next-hop for the routes received from this peer \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/routing/manifest.yml b/packages/panw_metrics/data_stream/routing/manifest.yml new file mode 100644 index 00000000000..f79f70a450e --- /dev/null +++ b/packages/panw_metrics/data_stream/routing/manifest.yml @@ -0,0 +1,42 @@ +title: "Palo Alto Networks Routing" +type: metrics +streams: + - input: panw/metrics + title: Palo Alto Networks routing metrics + description: Collect routing metrics from Palo Alto Networks. + vars: + - name: period + type: text + title: Period + default: 10s + multi: false + required: true + show_user: true + - name: host_ip + type: text + title: Host IP + default: 127.0.0.1 + multi: false + required: true + show_user: true + - name: port + type: text + title: Port + default: 443 + multi: false + required: false + show_user: true + - name: apiKey + type: text + title: API Key + secret: true + multi: false + required: true + show_user: true + - name: apiDebugMode + type: bool + title: Debug Mode + default: false + multi: false + required: false + show_user: true diff --git a/packages/panw_metrics/data_stream/routing/sample_event.json b/packages/panw_metrics/data_stream/routing/sample_event.json new file mode 100644 index 00000000000..16d5d1bd13f --- /dev/null +++ b/packages/panw_metrics/data_stream/routing/sample_event.json @@ -0,0 +1,83 @@ +{ + "@timestamp": "2024-02-08T10:15:30.123Z", + "agent": { + "ephemeral_id": "a1b2c3d4-e5f6-4321-a987-1234567890ab", + "id": "9876543210-abcdef-0987654321", + "name": "paloalto-firewall-01", + "type": "metricbeat", + "version": "8.16.0" + }, + "data_stream": { + "dataset": "panw.routing", + "namespace": "default", + "type": "metrics" + }, + "ecs": { + "version": "8.11.0" + }, + "elastic_agent": { + "id": "2ea50bee-9250-43d1-8d70-949f242aa275", + "snapshot": false, + "version": "8.16.0" + }, + "event": { + "agent_id_status": "verified", + "module": "panw", + "dataset": "panw.vpn", + "duration": 1250000, + "ingested": "2024-02-08T10:15:32Z" + }, + "host": { + "architecture": "x86_64", + "containerized": false, + "hostname": "docker-fleet-agent", + "id": "28da52b32df94b50aff67dfb8f1be3d6", + "ip": [ + "172.24.0.7" + ], + "mac": [ + "02-42-AC-18-00-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.15.0-89-generic", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.6 LTS (Focal Fossa)" + } + }, + "metricset": { + "name": "routing", + "period": 10000 + }, + "panw": { + "routing": { + "bgp": { + "peer_name": "ISP-A", + "virtual_router": "default", + "peer_group": "external_peers", + "peer_router_id": "10.0.0.1", + "remote_as_asn": 65001, + "status": "Established", + "status_duration": 3600, + "password_set": true, + "passive": false, + "peer_address": "203.0.113.1:179", + "local_address": "198.51.100.2:50000", + "peering_type": "External BGP", + "holdtime": 180, + "keepalive": 60, + "msg_update_in": 1000, + "msg_update_out": 500, + "msg_total_in": 5000, + "msg_total_out": 4500, + "last_update_age": 300, + "status_flap_counts": 2, + "established_counts": 10 + } + } + } +} \ No newline at end of file From b8de51130d731f8ea44793af281f08da271f932d Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Wed, 11 Sep 2024 17:06:01 +0300 Subject: [PATCH 04/50] add system data stream --- .../system/agent/stream/stream.yml.hbs | 6 + .../data_stream/system/fields/agent.yml | 33 ++ .../data_stream/system/fields/base-fields.yml | 12 + .../data_stream/system/fields/fields.yml | 344 ++++++++++++++++++ .../data_stream/system/manifest.yml | 42 +++ .../data_stream/system/sample_event.json | 94 +++++ 6 files changed, 531 insertions(+) create mode 100644 packages/panw_metrics/data_stream/system/agent/stream/stream.yml.hbs create mode 100644 packages/panw_metrics/data_stream/system/fields/agent.yml create mode 100644 packages/panw_metrics/data_stream/system/fields/base-fields.yml create mode 100644 packages/panw_metrics/data_stream/system/fields/fields.yml create mode 100644 packages/panw_metrics/data_stream/system/manifest.yml create mode 100644 packages/panw_metrics/data_stream/system/sample_event.json diff --git a/packages/panw_metrics/data_stream/system/agent/stream/stream.yml.hbs b/packages/panw_metrics/data_stream/system/agent/stream/stream.yml.hbs new file mode 100644 index 00000000000..cd64e94f377 --- /dev/null +++ b/packages/panw_metrics/data_stream/system/agent/stream/stream.yml.hbs @@ -0,0 +1,6 @@ +metricsets: ["system"] +period: {{period}} +host_ip: {{host_ip}} +port: {{port}} +apiKey: {{apiKey}} +apiDebugMode: {{apiDebugMode}} \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/system/fields/agent.yml b/packages/panw_metrics/data_stream/system/fields/agent.yml new file mode 100644 index 00000000000..2bc58530bac --- /dev/null +++ b/packages/panw_metrics/data_stream/system/fields/agent.yml @@ -0,0 +1,33 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + diff --git a/packages/panw_metrics/data_stream/system/fields/base-fields.yml b/packages/panw_metrics/data_stream/system/fields/base-fields.yml new file mode 100644 index 00000000000..4da5428ca93 --- /dev/null +++ b/packages/panw_metrics/data_stream/system/fields/base-fields.yml @@ -0,0 +1,12 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: '@timestamp' + type: date + description: Event timestamp. \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/system/fields/fields.yml b/packages/panw_metrics/data_stream/system/fields/fields.yml new file mode 100644 index 00000000000..8d0976c288a --- /dev/null +++ b/packages/panw_metrics/data_stream/system/fields/fields.yml @@ -0,0 +1,344 @@ +- name: panw.system + type: group + fields: + - name: uptime.days + type: integer + description: > + Uptime in days + unit: d + metric_type: gauge + - name: uptime.hours + type: integer + description: > + Hours component of uptime + unit: h + metric_type: gauge + - name: uptime.minutes + type: integer + description: > + Minutes component of uptime + unit: m + metric_type: gauge + - name: user_count + type: long + description: > + Number of users + metric_type: gauge + - name: load_average.1m + type: float + description: > + Load average in 1 minute + metric_type: gauge + - name: load_average.5m + type: float + description: > + Load average in 5 minutes + metric_type: gauge + - name: load_average.15m + type: float + description: > + Load average in 15 minutes + metric_type: gauge + - name: tasks.total + type: long + description: > + Total number of tasks + metric_type: gauge + - name: tasks.running + type: long + description: > + Number of running tasks + metric_type: gauge + - name: tasks.sleeping + type: long + description: > + Number of sleeping tasks + metric_type: gauge + - name: tasks.stopped + type: long + description: > + Number of stopped tasks + metric_type: gauge + - name: tasks.zombie + type: long + description: > + Number of zombie tasks + metric_type: gauge + - name: cpu.user + type: float + description: > + CPU usage by user processes + unit: percent + metric_type: gauge + - name: cpu.system + type: float + description: > + CPU usage by system processes + unit: percent + metric_type: gauge + - name: cpu.nice + type: float + description: > + CPU usage by processes with a positive nice value + unit: percent + metric_type: gauge + - name: cpu.idle + type: float + description: > + CPU idle time + unit: percent + metric_type: gauge + - name: cpu.wait + type: float + description: > + CPU wait time + unit: percent + metric_type: gauge + - name: cpu.hi + type: float + description: > + CPU hardware interrupts + unit: percent + metric_type: gauge + - name: cpu.system_int + type: float + description: > + CPU software interrupts + unit: percent + metric_type: gauge + - name: cpu.steal + type: float + description: > + CPU steal time + unit: percent + metric_type: gauge + - name: memory.total + type: float + description: > + Total memory + unit: byte + metric_type: gauge + - name: memory.free + type: float + description: > + Free memory + unit: byte + metric_type: gauge + - name: memory.used + type: float + description: > + Used memory + unit: byte + metric_type: gauge + - name: memory.buffer_cache + type: float + description: > + Memory used for buffers and cache + unit: byte + metric_type: gauge + - name: swap.total + type: float + description: > + Total swap space + unit: byte + metric_type: gauge + - name: swap.free + type: float + description: > + Free swap space + unit: byte + metric_type: gauge + - name: swap.used + type: float + description: > + Used swap space + unit: byte + metric_type: gauge + - name: swap.available + type: float + description: > + Available swap space + unit: byte + metric_type: gauge + - name: license.feature + type: keyword + dimension: true + description: > + Feature licensed, e.g. Advanced Threat Prevention + - name: license.description + type: text + description: > + Description of the licensed feature + - name: license.serial + type: keyword + dimension: true + description: > + Serial number of license + - name: license.issued + type: date + description: > + Date the license was issued + - name: license.expires + type: keyword + description: > + Date the license expires, but this is a keyword because value might be "never" + - name: license.expired + type: boolean + description: > + Indicates if the license is expired + - name: license.auth_code + type: keyword + description: > + Authorization code to activate or install the license + - name: filesystem.name + type: keyword + dimension: true + description: > + Filesystem name + - name: filesystem.size + type: float + format: bytes + description: > + Total size of the filesystem + unit: byte + metric_type: gauge + - name: filesystem.used + type: float + format: bytes + description: > + Amount used on the filesystem + unit: byte + metric_type: gauge + - name: filesystem.available + type: float + format: bytes + description: > + Disk space available on the filesystem + unit: byte + metric_type: gauge + - name: filesystem.use_percent + type: integer + format: percent + description: > + Percent of filesystem used + unit: percent + metric_type: gauge + - name: filesystem.mounted + type: keyword + dimension: true + description: > + Filesystem mount point + - name: fan.slot_number + type: integer + description: > + The number of the hardware slot + - name: fan.description + type: keyword + description: > + The description of the fan + - name: fan.alarm + type: boolean + description: > + Is there an alarm status of the fan + - name: fan.rpm + type: integer + description: > + The speed of the fan in RPM + metric_type: gauge + - name: fan.min_rpm + type: integer + description: > + The minimum speed of the fan in RPM + - name: thermal.slot_number + type: integer + description: > + Slot number field + - name: thermal.description + type: text + description: > + Description field + - name: thermal.alarm + type: boolean + description: > + Alarm field + - name: thermal.degrees_celsius + type: float + description: > + Degrees Celsius field + metric_type: gauge + - name: thermal.minimum_temp + type: float + description: > + Minimum temperature field + - name: thermal.maximum_temp + type: float + description: > + Maximum temperature field + - name: power.slot_number + type: keyword + description: > + Slot number field + - name: power.description + type: text + description: > + Description field + - name: power.alarm + type: boolean + description: > + Indicates if alarm is active + - name: power.volts + type: float + description: > + Current Volts + metric_type: gauge + - name: power.minimum_volts + type: float + description: > + Minimum volts recorded + - name: power.maximum_volts + type: float + description: > + Maximum volts recorded + - name: certificate.issuer + type: keyword + description: > + Issuer of the certificate database + - name: certificate.issuer_subject_hash + type: keyword + description: > + Subject hash of the issuer of the certificate database + - name: certificate.issuer_key_hash + type: keyword + description: > + Key hash of the issuer of the certificate database + - name: certificate.db_type + type: keyword + dimension: true + description: > + Type of the certificate database + - name: certificate.db_exp_date + type: keyword + description: > + Expiration date, format: 310329235959Z(Mar 29 23:59:59 2031 GMT) + - name: certificate.db_rev_date + type: keyword + description: > + Revision date of the certificate database + - name: certificate.db_serial_no + type: keyword + description: > + Serial number of the certificate database + - name: certificate.db_file + type: keyword + dimension: true + description: > + File name of the certificate database + - name: certificate.db_name + type: keyword + dimension: true + description: > + Name of the certificate database + - name: certificate.db_status + type: keyword + description: > + Status of the certificate database \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/system/manifest.yml b/packages/panw_metrics/data_stream/system/manifest.yml new file mode 100644 index 00000000000..84f6f9a3136 --- /dev/null +++ b/packages/panw_metrics/data_stream/system/manifest.yml @@ -0,0 +1,42 @@ +title: "Palo Alto Networks System" +type: metrics +streams: + - input: panw/metrics + title: Palo Alto Networks system metrics + description: Collect system metrics from Palo Alto Networks. + vars: + - name: period + type: text + title: Period + default: 10s + multi: false + required: true + show_user: true + - name: host_ip + type: text + title: Host IP + default: 127.0.0.1 + multi: false + required: true + show_user: true + - name: port + type: text + title: Port + default: 443 + multi: false + required: false + show_user: true + - name: apiKey + type: text + title: API Key + secret: true + multi: false + required: true + show_user: true + - name: apiDebugMode + type: bool + title: Debug Mode + default: false + multi: false + required: false + show_user: true diff --git a/packages/panw_metrics/data_stream/system/sample_event.json b/packages/panw_metrics/data_stream/system/sample_event.json new file mode 100644 index 00000000000..db81c380ef8 --- /dev/null +++ b/packages/panw_metrics/data_stream/system/sample_event.json @@ -0,0 +1,94 @@ +{ + "@timestamp": "2024-02-08T10:15:30.123Z", + "agent": { + "ephemeral_id": "a1b2c3d4-e5f6-4321-a987-1234567890ab", + "id": "9876543210-abcdef-0987654321", + "name": "panw-agent-01", + "type": "metricbeat", + "version": "8.16.0" + }, + "data_stream": { + "dataset": "panw.system", + "namespace": "default", + "type": "metrics" + }, + "ecs": { + "version": "8.11.0" + }, + "elastic_agent": { + "id": "2ea50bee-9250-43d1-8d70-949f242aa275", + "snapshot": false, + "version": "8.16.0" + }, + "event": { + "agent_id_status": "verified", + "module": "panw", + "dataset": "panw.vpn", + "duration": 1250000, + "ingested": "2024-02-08T10:15:32Z" + }, + "host": { + "architecture": "x86_64", + "containerized": false, + "hostname": "docker-fleet-agent", + "id": "28da52b32df94b50aff67dfb8f1be3d6", + "ip": [ + "172.24.0.7" + ], + "mac": [ + "02-42-AC-18-00-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.15.0-89-generic", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.6 LTS (Focal Fossa)" + } + }, + "metricset": { + "name": "system", + "period": 10000 + }, + "panw": { + "system": { + "uptime": { + "days": 15, + "hours": 7, + "minutes": 32 + }, + "user_count": 23, + "load_average": { + "1m": 0.75, + "5m": 0.68, + "15m": 0.62 + }, + "tasks": { + "total": 245, + "running": 3, + "sleeping": 242 + }, + "cpu": { + "user": 5.2, + "system": 2.8, + "idle": 92.0 + }, + "memory": { + "total": 16106127360, + "free": 8053063680, + "used": 8053063680 + }, + "swap": { + "total": 4294967296, + "free": 4294967296, + "used": 0 + } + } + }, + "service": { + "type": "panw" + } +} \ No newline at end of file From cd64f0e5be4b6ed65d54942204aa684eadaae264 Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Wed, 11 Sep 2024 17:06:08 +0300 Subject: [PATCH 05/50] add vpn data stream --- .../vpn/agent/stream/stream.yml.hbs | 6 + .../data_stream/vpn/fields/agent.yml | 33 +++ .../data_stream/vpn/fields/base-fields.yml | 12 + .../data_stream/vpn/fields/fields.yml | 211 ++++++++++++++++++ .../panw_metrics/data_stream/vpn/manifest.yml | 42 ++++ .../data_stream/vpn/sample_event.json | 105 +++++++++ 6 files changed, 409 insertions(+) create mode 100644 packages/panw_metrics/data_stream/vpn/agent/stream/stream.yml.hbs create mode 100644 packages/panw_metrics/data_stream/vpn/fields/agent.yml create mode 100644 packages/panw_metrics/data_stream/vpn/fields/base-fields.yml create mode 100644 packages/panw_metrics/data_stream/vpn/fields/fields.yml create mode 100644 packages/panw_metrics/data_stream/vpn/manifest.yml create mode 100644 packages/panw_metrics/data_stream/vpn/sample_event.json diff --git a/packages/panw_metrics/data_stream/vpn/agent/stream/stream.yml.hbs b/packages/panw_metrics/data_stream/vpn/agent/stream/stream.yml.hbs new file mode 100644 index 00000000000..90116e96aba --- /dev/null +++ b/packages/panw_metrics/data_stream/vpn/agent/stream/stream.yml.hbs @@ -0,0 +1,6 @@ +metricsets: ["vpn"] +period: {{period}} +host_ip: {{host_ip}} +port: {{port}} +apiKey: {{apiKey}} +apiDebugMode: {{apiDebugMode}} \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/vpn/fields/agent.yml b/packages/panw_metrics/data_stream/vpn/fields/agent.yml new file mode 100644 index 00000000000..2bc58530bac --- /dev/null +++ b/packages/panw_metrics/data_stream/vpn/fields/agent.yml @@ -0,0 +1,33 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + diff --git a/packages/panw_metrics/data_stream/vpn/fields/base-fields.yml b/packages/panw_metrics/data_stream/vpn/fields/base-fields.yml new file mode 100644 index 00000000000..4da5428ca93 --- /dev/null +++ b/packages/panw_metrics/data_stream/vpn/fields/base-fields.yml @@ -0,0 +1,12 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: '@timestamp' + type: date + description: Event timestamp. \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/vpn/fields/fields.yml b/packages/panw_metrics/data_stream/vpn/fields/fields.yml new file mode 100644 index 00000000000..133d90a55ad --- /dev/null +++ b/packages/panw_metrics/data_stream/vpn/fields/fields.yml @@ -0,0 +1,211 @@ +- name: panw.vpn + type: group + fields: + - name: globalprotect.session.domain + type: keyword + dimension: true + description: > + Domain of the GlobalProtect session + - name: globalprotect.session.is_local + type: boolean + description: > + Indicates if the session is local + - name: globalprotect.session.username + type: keyword + dimension: true + description: > + Username of the session + - name: globalprotect.session.primary_username + type: keyword + dimension: true + description: > + Primary username of the session + - name: globalprotect.session.region_for_config + type: keyword + dimension: true + description: > + Region for configuration + - name: globalprotect.session.source_region + type: keyword + dimension: true + description: > + Source region of the session + - name: globalprotect.session.computer + type: keyword + dimension: true + description: > + Computer name in the session + - name: globalprotect.session.client + type: keyword + dimension: true + description: > + Client information of the session + - name: globalprotect.session.vpn_type + type: keyword + dimension: true + description: > + Type of VPN used in the session + - name: globalprotect.session.host_id + type: keyword + dimension: true + description: > + Host ID of the session + - name: globalprotect.session.app_version + type: keyword + description: > + Application version used in the session + - name: globalprotect.session.virtual_ip + type: ip + description: > + Virtual IP address of the session + - name: globalprotect.session.virtual_ipv6 + type: ip + description: > + Virtual IPv6 address of the session + - name: globalprotect.session.public_ip + type: ip + description: > + Public IP address of the session + - name: globalprotect.session.public_ipv6 + type: ip + description: > + Public IPv6 address of the session + - name: globalprotect.session.tunnel_type + type: keyword + description: > + Type of tunnel used in the session + - name: globalprotect.session.public_connection_ipv6 + type: ip + description: > + Public connection IPv6 address of the session + - name: globalprotect.session.client_ip + type: ip + description: > + Client IP address of the session + - name: globalprotect.session.login_time + type: date + description: > + Login time of the session + - name: globalprotect.session.login_time_utc + type: date + description: > + Login time in UTC of the session + - name: globalprotect.session.lifetime + type: long + description: > + Lifetime of the session + unit: s + - name: globalprotect.session.request_login + type: keyword + description: > + Request login information of the session + - name: globalprotect.session.request_get_config + type: keyword + description: > + Request get configuration information of the session + - name: globalprotect.session.request_sslvpn_connect + type: keyword + description: > + Request SSL VPN connect information of the session + - name: globalprotect.gateway.name + type: keyword + dimension: true + description: > + Name of the GlobalProtect gateway + - name: globalprotect.gateway.current_users + type: long + description: > + Current number of users connected to the GlobalProtect gateway + metric_type: gauge + - name: globalprotect.gateway.previous_users + type: long + description: > + Previous number of users connected to the GlobalProtect gateway + metric_type: gauge + - name: globalprotect.total_current_users + type: long + description: > + Total current number of users connected to GlobalProtect + metric_type: gauge + - name: globalprotect.total_previous_users + type: long + description: > + Total previous number of users connected to GlobalProtect + metric_type: gauge + - name: ipsec_tunnel.id + type: keyword + dimension: true + description: > + ID of the IPsec tunnel + - name: ipsec_tunnel.name + type: keyword + dimension: true + description: > + Name of the IPsec tunnel + - name: ipsec_tunnel.gw + type: keyword + dimension: true + description: > + Gateway of the IPsec tunnel + - name: ipsec_tunnel.TSi_ip + type: ip + description: > + Traffic Selector Initiator IP. This is the local IP (0.0.0.0 means any IP address) + - name: ipsec_tunnel.TSi_prefix + type: keyword + description: > + Network prefix for the TSi IP, 0 means no specific network is defined. + - name: ipsec_tunnel.TSi_proto + type: keyword + description: > + Protocol associated with the TSi (0 means any protocol) + - name: ipsec_tunnel.TSi_port + type: long + description: > + Port number associated with TSi (0 means any port) + - name: ipsec_tunnel.TSr_ip + type: ip + description: > + Traffic Selector Responder IP. + - name: ipsec_tunnel.TSr_prefix + type: keyword + description: > + Network prefix for the TSr IP. Similar to TSi_prefix + - name: ipsec_tunnel.TSr_proto + type: keyword + description: > + TSr protocol of the IPsec tunnel + - name: ipsec_tunnel.TSr_port + type: long + description: > + TSr port of the IPsec tunnel + - name: ipsec_tunnel.proto + type: keyword + description: > + Protocol of the IPsec tunnel + - name: ipsec_tunnel.mode + type: keyword + description: > + This specifies the IPsec mode. e.g., 'tunl' + - name: ipsec_tunnel.dh + type: keyword + description: > + Diffie-Hellman group of the IPsec tunnel + - name: ipsec_tunnel.enc + type: keyword + description: > + Encryption algorithm of the IPsec tunnel + - name: ipsec_tunnel.hash + type: keyword + description: > + Hash algorithm of the IPsec tunnel + - name: ipsec_tunnel.life + type: long + description: > + The lifetime of the IPsec Security Association (SA) in seconds + unit: s + - name: ipsec_tunnel.kb + type: long + description: > + Traffic volume limit for SA rekeying + unit: byte \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/vpn/manifest.yml b/packages/panw_metrics/data_stream/vpn/manifest.yml new file mode 100644 index 00000000000..daa1e003c4a --- /dev/null +++ b/packages/panw_metrics/data_stream/vpn/manifest.yml @@ -0,0 +1,42 @@ +title: "Palo Alto Networks VPN" +type: metrics +streams: + - input: panw/metrics + title: Palo Alto Networks system metrics + description: Collect system metrics from Palo Alto Networks. + vars: + - name: period + type: text + title: Period + default: 10s + multi: false + required: true + show_user: true + - name: host_ip + type: text + title: Host IP + default: 127.0.0.1 + multi: false + required: true + show_user: true + - name: port + type: text + title: Port + default: 443 + multi: false + required: false + show_user: true + - name: apiKey + type: text + title: API Key + secret: true + multi: false + required: true + show_user: true + - name: apiDebugMode + type: bool + title: Debug Mode + default: false + multi: false + required: false + show_user: true diff --git a/packages/panw_metrics/data_stream/vpn/sample_event.json b/packages/panw_metrics/data_stream/vpn/sample_event.json new file mode 100644 index 00000000000..e437876ce9c --- /dev/null +++ b/packages/panw_metrics/data_stream/vpn/sample_event.json @@ -0,0 +1,105 @@ +{ + "@timestamp": "2024-02-08T10:15:30.123Z", + "agent": { + "ephemeral_id": "a1b2c3d4-e5f6-4321-a987-1234567890ab", + "id": "9876543210-abcdef-0987654321", + "name": "panw-agent-01", + "type": "metricbeat", + "version": "8.16.0" + }, + "data_stream": { + "dataset": "panw.vpn", + "namespace": "default", + "type": "metrics" + }, + "ecs": { + "version": "8.11.0" + }, + "elastic_agent": { + "id": "2ea50bee-9250-43d1-8d70-949f242aa275", + "snapshot": false, + "version": "8.16.0" + }, + "event": { + "agent_id_status": "verified", + "module": "panw", + "dataset": "panw.vpn", + "duration": 1250000, + "ingested": "2024-02-08T10:15:32Z" + }, + "host": { + "architecture": "x86_64", + "containerized": false, + "hostname": "docker-fleet-agent", + "id": "28da52b32df94b50aff67dfb8f1be3d6", + "ip": [ + "172.24.0.7" + ], + "mac": [ + "02-42-AC-18-00-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.15.0-89-generic", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.6 LTS (Focal Fossa)" + } + }, + "metricset": { + "name": "vpn", + "period": 10000 + }, + "panw": { + "vpn": { + "globalprotect": { + "session": { + "domain": "example.com", + "is_local": true, + "username": "john.doe", + "primary_username": "john.doe", + "computer": "LAPTOP-ABC123", + "client": "GlobalProtect", + "vpn_type": "SSL", + "app_version": "5.2.8", + "virtual_ip": "10.0.0.5", + "public_ip": "203.0.113.45", + "tunnel_type": "IPSec", + "client_ip": "192.168.1.100", + "login_time": "2024-02-08T10:15:00.000Z", + "lifetime": 3600 + }, + "gateway": { + "name": "gp-gateway-01", + "current_users": 150, + "previous_users": 145 + }, + "total_current_users": 500, + "total_previous_users": 480 + }, + "ipsec_tunnel": { + "id": "tunnel-001", + "name": "Site-A-to-Site-B", + "gw": "203.0.113.1", + "TSi_ip": "10.0.0.0", + "TSi_prefix": "24", + "TSi_proto": "any", + "TSi_port": 0, + "TSr_ip": "192.168.0.0", + "TSr_prefix": "24", + "TSr_proto": "any", + "TSr_port": 0, + "proto": "ESP", + "mode": "tunnel", + "dh": "group14", + "enc": "aes-256-cbc", + "hash": "sha256", + "life": 28800, + "kb": 102400 + } + } + } +} \ No newline at end of file From 5c16335069a75d6741b7dd5154042cc634b5b2b9 Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Wed, 11 Sep 2024 17:09:21 +0300 Subject: [PATCH 06/50] remove commented line --- packages/panw_metrics/data_stream/interfaces/fields/fields.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/panw_metrics/data_stream/interfaces/fields/fields.yml b/packages/panw_metrics/data_stream/interfaces/fields/fields.yml index f1595f29e73..02186b9f443 100644 --- a/packages/panw_metrics/data_stream/interfaces/fields/fields.yml +++ b/packages/panw_metrics/data_stream/interfaces/fields/fields.yml @@ -93,7 +93,6 @@ type: keyword description: > Logical IPv6 address - # HA Interface fields - name: ha.enabled type: boolean description: > From fdb4d9e828d0c9f67d79daa69bb50d6baad55114 Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Wed, 11 Sep 2024 17:44:41 +0300 Subject: [PATCH 07/50] remove dataset from sample_event files --- packages/panw_metrics/data_stream/interfaces/sample_event.json | 3 --- packages/panw_metrics/data_stream/routing/sample_event.json | 3 --- packages/panw_metrics/data_stream/system/sample_event.json | 3 --- packages/panw_metrics/data_stream/vpn/sample_event.json | 3 --- 4 files changed, 12 deletions(-) diff --git a/packages/panw_metrics/data_stream/interfaces/sample_event.json b/packages/panw_metrics/data_stream/interfaces/sample_event.json index 6493ff08149..5d7c9a05417 100644 --- a/packages/panw_metrics/data_stream/interfaces/sample_event.json +++ b/packages/panw_metrics/data_stream/interfaces/sample_event.json @@ -8,7 +8,6 @@ "version": "8.16.0" }, "data_stream": { - "dataset": "panw.interfaces", "namespace": "default", "type": "metrics" }, @@ -22,8 +21,6 @@ }, "event": { "agent_id_status": "verified", - "module": "panw", - "dataset": "panw.vpn", "duration": 1250000, "ingested": "2024-02-08T10:15:32Z" }, diff --git a/packages/panw_metrics/data_stream/routing/sample_event.json b/packages/panw_metrics/data_stream/routing/sample_event.json index 16d5d1bd13f..9eab3f20aba 100644 --- a/packages/panw_metrics/data_stream/routing/sample_event.json +++ b/packages/panw_metrics/data_stream/routing/sample_event.json @@ -8,7 +8,6 @@ "version": "8.16.0" }, "data_stream": { - "dataset": "panw.routing", "namespace": "default", "type": "metrics" }, @@ -22,8 +21,6 @@ }, "event": { "agent_id_status": "verified", - "module": "panw", - "dataset": "panw.vpn", "duration": 1250000, "ingested": "2024-02-08T10:15:32Z" }, diff --git a/packages/panw_metrics/data_stream/system/sample_event.json b/packages/panw_metrics/data_stream/system/sample_event.json index db81c380ef8..99b2013361f 100644 --- a/packages/panw_metrics/data_stream/system/sample_event.json +++ b/packages/panw_metrics/data_stream/system/sample_event.json @@ -8,7 +8,6 @@ "version": "8.16.0" }, "data_stream": { - "dataset": "panw.system", "namespace": "default", "type": "metrics" }, @@ -22,8 +21,6 @@ }, "event": { "agent_id_status": "verified", - "module": "panw", - "dataset": "panw.vpn", "duration": 1250000, "ingested": "2024-02-08T10:15:32Z" }, diff --git a/packages/panw_metrics/data_stream/vpn/sample_event.json b/packages/panw_metrics/data_stream/vpn/sample_event.json index e437876ce9c..d9b31d858df 100644 --- a/packages/panw_metrics/data_stream/vpn/sample_event.json +++ b/packages/panw_metrics/data_stream/vpn/sample_event.json @@ -8,7 +8,6 @@ "version": "8.16.0" }, "data_stream": { - "dataset": "panw.vpn", "namespace": "default", "type": "metrics" }, @@ -22,8 +21,6 @@ }, "event": { "agent_id_status": "verified", - "module": "panw", - "dataset": "panw.vpn", "duration": 1250000, "ingested": "2024-02-08T10:15:32Z" }, From 2db8fe535123a802fb445520281c4267ce6d6d5d Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Wed, 11 Sep 2024 18:08:54 +0300 Subject: [PATCH 08/50] group fields in interfaces data stream --- .../data_stream/interfaces/fields/fields.yml | 627 ++++++++---------- 1 file changed, 291 insertions(+), 336 deletions(-) diff --git a/packages/panw_metrics/data_stream/interfaces/fields/fields.yml b/packages/panw_metrics/data_stream/interfaces/fields/fields.yml index 02186b9f443..c15dc962788 100644 --- a/packages/panw_metrics/data_stream/interfaces/fields/fields.yml +++ b/packages/panw_metrics/data_stream/interfaces/fields/fields.yml @@ -1,339 +1,294 @@ - name: panw.interfaces type: group fields: - - name: physical.name - type: keyword - dimension: true - description: > - Physical interface name - - name: physical.id - type: keyword - dimension: true - description: > - Physical interface ID - - name: physical.type - type: keyword - description: > - Physical interface type (numeric value in source XML, string value sent to elasticsearch): - 0: "Ethernet interface", - 1: "Aggregate Ethernet (AE) interface", - 2: "High Availability (HA) interface", - 3: "VLAN interface", - 5: "Loopback interface", - 6: "Tunnel interface", - 10: "SD-WAN interface", - - name: physical.mac - type: keyword - description: > - Physical MAC address - - name: physical.speed - type: keyword - description: > - Physical interface speed - - name: physical.duplex - type: keyword - description: > - Duplex configuration, e.g., "full" or "half" - - name: physical.state - type: keyword - description: > - Physical interface state: up/down - - name: physical.mode - type: keyword - description: > - Physical interface mode, e.g., autoneg - - name: physical.full_state - type: keyword - description: > - Physical full state, speed/duplex/state, e.g., "1000/full/up" - - name: physical.ae_member - type: keyword - description: > - For aggregate interfaces, the array of member interfaces - - name: logical.name - type: keyword - dimension: true - description: > - Logical interface name - - name: logical.id - type: keyword - dimension: true - description: > - Logical interface ID - - name: logical.tag - type: integer - description: > - VLAN tag associated with this interface - - name: logical.vsys - type: integer - description: > - Virtual system to which this interface belongs - - name: logical.zone - type: keyword - dimension: true - description: > - Logical zone, e.g., "inside" or "outside" - - name: logical.fwd - type: keyword - description: > - Indicates if the interface is used for forwarding - - name: logical.ip - type: ip - description: > - Logical IP Address with subnet mask, e.g., 111.222.333.10/29 - - name: logical.addr - type: keyword - description: > - Used to store aditional static IP addresses - - name: logical.dyn_addr - type: keyword - description: > - Dynamic addresses, e.g., generated by DHCP - - name: logical.addr6 - type: keyword - description: > - Logical IPv6 address - - name: ha.enabled - type: boolean - description: > - HA enabled - - name: ha.mode - type: keyword - description: > - HA mode, e.g., "active-active" or "active-passive" - - name: ha.running_sync - type: keyword - description: > - Indicates the sychronization status of the HA pair, e.g., "synchronized","not-synchronized","synchronizing" - - name: ha.running_sync_enabled - type: boolean - description: > - Indicates if running configuration synchronization is enabled - - name: ha.local_info.version - type: long - description: > - HA configuration info version - - name: ha.local_info.state - type: keyword - description: > - HA state of the local device, e.g., "active" or "passive" - - name: ha.local_info.state_duration - type: long - description: > - Duration in milliseconds of the current state - unit: ms - - name: ha.local_info.mgmt_ip - type: ip - description: > - HA local info management IP - - name: ha.local_info.preemptive - type: boolean - description: > - Indicates whether the firewall is configured to preemptively take over as the active unit in an HA setup - - name: ha.local_info.mode - type: keyword - description: > - HA mode, e.g., "active-active" or "active-passive" - - name: ha.local_info.platform_model - type: keyword - dimension: true - description: > - Platform model of the local device - - name: ha.local_info.state_sync - type: keyword - description: > - Status of HA synchronization, e.g., "complete" - - name: ha.local_info.state_sync_type - type: keyword - description: > - Type of interface used for HA synchronization - - name: ha.local_info.ha1_ipaddr - type: ip - description: > - IP Address of HA1 interface, used for heartbeat and management synchronization - - name: ha.local_info.ha1_macaddr - type: keyword - description: > - HA local info HA1 MAC address - - name: ha.local_info.ha1_port - type: keyword - description: > - Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha1" - - name: ha.local_info.ha1_backup_ipaddr - type: ip - description: > - The backup IP address for the HA1 interface - - name: ha.local_info.ha1_backup_macaddr - type: keyword - description: > - HA local info HA1 backup MAC address - - name: ha.local_info.ha1_backup_port - type: keyword - description: > - HA local info HA1 backup port, e.g. "management" - - name: ha.local_info.ha1_backup_gateway - type: ip - description: > - Default gateway for the backup HA1 interface - - name: ha.local_info.ha2_ipaddr - type: ip - description: > - HA local info HA2 IP address - - name: ha.local_info.ha2_macaddr - type: keyword - description: > - HA local info HA2 MAC address - - name: ha.local_info.ha2_port - type: keyword - description: > - Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha2" - - name: ha.local_info.build_rel - type: keyword - description: > - The PAN-OS software version running on the firewall - - name: ha.local_info.url_version - type: keyword - description: > - The version of the URL filtering database - - name: ha.local_info.app_version - type: keyword - description: > - The version of the application database - - name: ha.local_info.iot_version - type: keyword - description: > - HA local info IoT database version - - name: ha.local_info.av_version - type: keyword - description: > - The version of the antivirus database - - name: ha.local_info.threat_version - type: keyword - description: > - HA local info threat version - - name: ha.local_info.vpn_client_version - type: keyword - description: > - Version of the VPN client (if installed) - - name: ha.local_info.gp_client_version - type: keyword - description: > - Version of the GlobalProtect client software - - name: ha.peer_info.conn_status - type: keyword - description: > - Overall status of the HA connections ("up" means all connections are operational) - - name: ha.peer_info.state - type: keyword - description: > - Current operational state of the peer firewall (passive means it is in standby mode and not handling traffic) - - name: ha.peer_info.state_duration - type: long - description: > - How long the peer has been in the current state - unit: ms - - name: ha.peer_info.mgmt_ip - type: ip - description: > - Management IP address of the peer firewall - - name: ha.peer_info.preemptive - type: boolean - description: > - Indicates if preemption is enabled on the peer firewall - - name: ha.peer_info.mode - type: keyword - description: > - HA mode configured on the peer firewall, e.g. "Active-Passive" - - name: ha.peer_info.platform_model - type: keyword - dimension: true - description: > - Model of the peer firewall - - name: ha.peer_info.priority - type: long - description: > - HA priority value of the peer firewall - - name: ha.peer_info.ha1_ipaddr - type: ip - description: > - IP address of the HA1 interface on the peer - - name: ha.peer_info.ha1_macaddr - type: keyword - description: > - HA1 MAC address of the peer - - name: ha.peer_info.ha1_backup_ipaddr - type: ip - description: > - HA peer info HA1 backup IP address - - name: ha.peer_info.ha1_backup_macaddr - type: keyword - description: > - HA peer info HA1 backup MAC address - - name: ha.peer_info.ha2_ipaddr - type: ip - description: > - HA peer info HA2 IP address - - name: ha.peer_info.ha2_macaddr - type: keyword - description: > - HA peer info HA2 MAC address - - name: ha.peer_info.conn_ha1.status - type: keyword - description: > - Peer HA1 connection status, e.g., "up" - - name: ha.peer_info.conn_ha1.primary - type: boolean - description: > - Specifies if the HA1 connection is primary - - name: ha.peer_info.conn_ha1.description - type: keyword - description: > - Description of the connection type ,e.g., "heartbeat status" - - name: ha.peer_info.conn_ha2.status - type: keyword - description: > - HA peer info connection HA2 status - - name: ha.peer_info.conn_ha2.primary - type: boolean - description: > - Specifies if the HA2 connection is primary - - name: ha.peer_info.conn_ha2.description - type: keyword - description: > - HA peer info connection HA2 description - - name: ha.peer_info.conn_ha1_backup.status - type: keyword - description: > - HA peer info connection HA1 backup status, e.g., "up" means it is operational - - name: ha.peer_info.conn_ha1_backup.description - type: keyword - description: > - HA peer info connection HA1 backup description - - name: ha.link_monitoring.enabled - type: boolean - description: > - Indicates if link monitoring is enabled - - name: ha.link_monitoring.failure_condition - type: keyword - description: > - Condition that triggers a link monitoring failure, e.g., "any" - - name: ha.link_monitoring.group.name - type: keyword - description: > - Name of the link monitoring group - - name: ha.link_monitoring.group.enabled - type: boolean - description: > - Indicates if the link monitoring group is enabled - - name: ha.link_monitoring.group.failure_condition - type: keyword - description: > - Condition that triggers a failure in the link monitoring group - - name: ha.link_monitoring.group.interface.name - type: keyword - description: > - Name of the interface in the link monitoring group - - name: ha.link_monitoring.group.interface.status - type: keyword - description: > - Status of the interface in the link monitoring group \ No newline at end of file + - name: physical + type: group + fields: + - name: name + type: keyword + dimension: true + description: Physical interface name + - name: id + type: keyword + dimension: true + description: Physical interface ID + - name: type + type: keyword + description: > + Physical interface type (numeric value in source XML, string value sent to elasticsearch): + 0: "Ethernet interface", + 1: "Aggregate Ethernet (AE) interface", + 2: "High Availability (HA) interface", + 3: "VLAN interface", + 5: "Loopback interface", + 6: "Tunnel interface", + 10: "SD-WAN interface", + - name: mac + type: keyword + description: Physical MAC address + - name: speed + type: keyword + description: Physical interface speed + - name: duplex + type: keyword + description: Duplex configuration, e.g., "full" or "half" + - name: state + type: keyword + description: Physical interface state, up or down + - name: mode + type: keyword + description: Physical interface mode, e.g., autoneg + - name: full_state + type: keyword + description: Physical full state, speed/duplex/state, e.g., "1000/full/up" + - name: ae_member + type: keyword + description: For aggregate interfaces, the array of member interfaces + - name: logical + type: group + fields: + - name: name + type: keyword + dimension: true + description: Logical interface name + - name: id + type: keyword + dimension: true + description: Logical interface ID + - name: tag + type: integer + description: VLAN tag associated with this interface + - name: vsys + type: integer + description: Virtual system to which this interface belongs + - name: zone + type: keyword + dimension: true + description: Logical zone, e.g., "inside" or "outside" + - name: fwd + type: keyword + description: Indicates if the interface is used for forwarding + - name: ip + type: ip + description: Logical IP Address with subnet mask, e.g., 111.222.333.10/29 + - name: addr + type: keyword + description: Used to store aditional static IP addresses + - name: dyn_addr + type: keyword + description: Dynamic addresses, e.g., generated by DHCP + - name: addr6 + type: keyword + description: Logical IPv6 address + - name: ha + type: group + fields: + - name: enabled + type: boolean + description: HA enabled + - name: mode + type: keyword + description: HA mode, e.g., "active-active" or "active-passive" + - name: running_sync + type: keyword + description: Indicates the sychronization status of the HA pair, e.g., "synchronized","not-synchronized","synchronizing" + - name: running_sync_enabled + type: boolean + description: Indicates if running configuration synchronization is enabled + - name: local_info + type: group + fields: + - name: version + type: long + description: HA configuration info version + - name: state + type: keyword + description: HA state of the local device, e.g., "active" or "passive" + - name: state_duration + type: long + description: Duration in milliseconds of the current state + unit: ms + - name: mgmt_ip + type: ip + description: HA local info management IP + - name: preemptive + type: boolean + description: Indicates whether the firewall is configured to preemptively take over as the active unit in an HA setup + - name: mode + type: keyword + description: HA mode, e.g., "active-active" or "active-passive" + - name: platform_model + type: keyword + dimension: true + description: Platform model of the local device + - name: state_sync + type: keyword + description: Status of HA synchronization, e.g., "complete" + - name: state_sync_type + type: keyword + description: Type of interface used for HA synchronization + - name: ha1_ipaddr + type: ip + description: IP Address of HA1 interface, used for heartbeat and management synchronization + - name: ha1_macaddr + type: keyword + description: HA local info HA1 MAC address + - name: ha1_port + type: keyword + description: Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha1" + - name: ha1_backup_ipaddr + type: ip + description: The backup IP address for the HA1 interface + - name: ha1_backup_macaddr + type: keyword + description: HA local info HA1 backup MAC address + - name: ha1_backup_port + type: keyword + description: HA local info HA1 backup port, e.g. "management" + - name: ha1_backup_gateway + type: ip + description: Default gateway for the backup HA1 interface + - name: ha2_ipaddr + type: ip + description: HA local info HA2 IP address + - name: ha2_macaddr + type: keyword + description: HA local info HA2 MAC address + - name: ha2_port + type: keyword + description: Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha2" + - name: build_rel + type: keyword + description: The PAN-OS software version running on the firewall + - name: url_version + type: keyword + description: The version of the URL filtering database + - name: app_version + type: keyword + description: The version of the application database + - name: iot_version + type: keyword + description: HA local info IoT database version + - name: av_version + type: keyword + description: The version of the antivirus database + - name: threat_version + type: keyword + description: HA local info threat version + - name: vpn_client_version + type: keyword + description: Version of the VPN client (if installed) + - name: gp_client_version + type: keyword + description: Version of the GlobalProtect client software + - name: peer_info + type: group + fields: + - name: conn_status + type: keyword + description: Overall status of the HA connections ("up" means all connections are operational) + - name: state + type: keyword + description: Current operational state of the peer firewall (passive means it is in standby mode and not handling traffic) + - name: state_duration + type: long + description: How long the peer has been in the current state + metric_type: gauge + unit: ms + - name: mgmt_ip + type: ip + description: Management IP address of the peer firewall + - name: preemptive + type: boolean + description: Indicates if preemption is enabled on the peer firewall + - name: mode + type: keyword + description: HA mode configured on the peer firewall, e.g. "Active-Passive" + - name: platform_model + type: keyword + dimension: true + description: Model of the peer firewall + - name: priority + type: long + description: HA priority value of the peer firewall + - name: ha1_ipaddr + type: ip + description: IP address of the HA1 interface on the peer + - name: ha1_macaddr + type: keyword + description: HA1 MAC address of the peer + - name: ha1_backup_ipaddr + type: ip + description: HA peer info HA1 backup IP address + - name: ha1_backup_macaddr + type: keyword + description: HA peer info HA1 backup MAC address + - name: ha2_ipaddr + type: ip + description: HA peer info HA2 IP address + - name: ha2_macaddr + type: keyword + description: HA peer info HA2 MAC address + - name: conn_ha1 + type: group + fields: + - name: status + type: keyword + description: Peer HA1 connection status, e.g., "up" + - name: primary + type: boolean + description: Specifies if the HA1 connection is primary + - name: description + type: keyword + description: Description of the connection type ,e.g., "heartbeat status" + - name: conn_ha2 + type: group + fields: + - name: status + type: keyword + description: HA peer info connection HA2 status + - name: primary + type: boolean + description: Specifies if the HA2 connection is primary + - name: description + type: keyword + description: HA peer info connection HA2 description + - name: conn_ha1_backup + type: group + fields: + - name: status + type: keyword + description: HA peer info connection HA1 backup status, e.g., "up" means it is operational + - name: description + type: keyword + description: HA peer info connection HA1 backup description + - name: link_monitoring + type: group + fields: + - name: enabled + type: boolean + description: Indicates if link monitoring is enabled + - name: failure_condition + type: keyword + description: Condition that triggers a link monitoring failure, e.g., "any" + - name: group + type: group + fields: + - name: name + type: keyword + description: Name of the link monitoring group + - name: enabled + type: boolean + description: Indicates if the link monitoring group is enabled + - name: failure_condition + type: keyword + description: Condition that triggers a failure in the link monitoring group + - name: interface + type: group + fields: + - name: name + type: keyword + description: Name of the interface in the link monitoring group + - name: status + type: keyword + description: Status of the interface in the link monitoring group \ No newline at end of file From a46c91787814a3c1f8cfb5001b46fee8baa3b4a3 Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Wed, 11 Sep 2024 18:09:01 +0300 Subject: [PATCH 09/50] group fields in routing data stream --- .../data_stream/routing/fields/fields.yml | 299 ++++++++---------- 1 file changed, 133 insertions(+), 166 deletions(-) diff --git a/packages/panw_metrics/data_stream/routing/fields/fields.yml b/packages/panw_metrics/data_stream/routing/fields/fields.yml index e29de7753ce..acfc7cc35c7 100644 --- a/packages/panw_metrics/data_stream/routing/fields/fields.yml +++ b/packages/panw_metrics/data_stream/routing/fields/fields.yml @@ -1,169 +1,136 @@ - name: panw.routing type: group fields: - - name: bgp.peer_name - type: keyword - dimension: true - description: > - The name of the current peer in the BGP peer group - - name: bgp.virtual_router - type: keyword - dimension: true - description: > - The virtual router with which the BGP peer is associated - - name: bgp.peer_group - type: keyword - dimension: true - description: > - The name of the BGP peer group this peer belongs to - - name: bgp.peer_router_id - type: ip - description: > - BGP peer router ID - - name: bgp.remote_as_asn - type: long - description: > - The remote Autonomous System (AS) number of the peer - - name: bgp.status - type: keyword - description: > - The BGP session status, e.g., "Established" means the session is up and running - - name: bgp.status_duration - type: long - description: > - Time in seconds since the current status was set - unit: s - - name: bgp.password_set - type: boolean - description: > - Indicates whether a password is set for the BGP peer - - name: bgp.passive - type: boolean - description: > - Indicates if the BGP peer is in passive mode: if yes then router will not initiate a connection to the peer - - name: bgp.multi_hop_ttl - type: long - description: > - Time to Live (TTL) value for multi-hop BGP sessions. - - name: bgp.peer_address - type: keyword - dimension: true - description: > - IP address and port of the peer - - name: bgp.local_address - type: keyword - dimension: true - description: > - Local address and port used for BGP connection - - name: bgp.reflector_client - type: keyword - description: > - Indicates if the BGP peer is a route reflector client - - name: bgp.same_confederation - type: boolean - description: > - Peers in the same confederation exchange routes using internal BGP (iBGP) instead of external BGP (eBGP) - - name: bgp.aggregate_confed_as - type: boolean - description: > - Indicates that Autonomous System (AS) aggregation is enabled for the confederation - - name: bgp.peering_type - type: keyword - dimension: true - description: > - Defines the type of relationship between peers, e.g., "External BGP", "Internal BGP", or "Unspecified" - - name: bgp.connect_retry_interval - type: long - description: > - The interval (in seconds) between connection retries - unit: s - - name: bgp.open_delay - type: long - description: > - Delay before sending an Open message (in seconds) - unit: s - - name: bgp.idle_hold - type: long - description: > - The idle hold time (in seconds) before retrying a connection after failure - unit: s - - name: bgp.prefix_limit - type: long - description: > - The maximum number of prefixes that can be received from the peer (0 = no limit) - - name: bgp.holdtime - type: long - description: > - Time in seconds that the BGP peer will wait for a keepalive message, negotiated between peers - unit: s - - name: bgp.holdtime_config - type: long - description: > - Represents the locally configured hold time on this peer - unit: s - - name: bgp.keepalive - type: long - description: > - The interval (in seconds) at which BGP keepalive messages are sent, negotiated between peers - unit: s - - name: bgp.keepalive_config - type: long - description: > - The keepalive configured on this peer - unit: s - - name: bgp.msg_update_in - type: long - description: > - The number of BGP UPDATE messages received by the router from this peer - metric_type: counter - - name: bgp.msg_update_out - type: long - description: > - the number of BGP UPDATE messages sent from the local router to the peer - metric_type: counter - - name: bgp.msg_total_in - type: long - description: > - Total of all messages received from the peer - metric_type: counter - - name: bgp.msg_total_out - type: long - description: > - Total of all messages sent to the peer - metric_type: counter - - name: bgp.last_update_age - type: long - description: > - Time in seconds since the last update message was received from the peer - unit: s - - name: bgp.last_error - type: keyword - description: > - The last BGP error message received from the peer - - name: bgp.status_flap_counts - type: long - description: > - Indicates the number of times the BGP session has "flapped" or transitioned between up and down states - metric_type: counter - - name: bgp.established_counts - type: long - description: > - Number of times the BGP session has successfully transitioned to the "Established" state - metric_type: counter - - name: bgp.orf_entry_received - type: long - description: > - Number of ORF (Outbound Route Filtering) entries received from the peer - metric_type: gauge - - name: bgp.nexthop_self - type: boolean - description: > - Whether the router is configured to use itself as the next-hop for routes sent to this peer - - name: bgp.nexthop_thirdparty - type: boolean - description: > - Third-party next-hop feature is enabled - - name: bgp.nexthop_peer - type: boolean - description: > - Indicates whether the peer is being used as the next-hop for the routes received from this peer \ No newline at end of file + - name: bgp + type: group + fields: + - name: peer_name + type: keyword + dimension: true + description: The name of the current peer in the BGP peer group + - name: virtual_router + type: keyword + dimension: true + description: The virtual router with which the BGP peer is associated + - name: peer_group + type: keyword + dimension: true + description: The name of the BGP peer group this peer belongs to + - name: peer_router_id + type: ip + description: BGP peer router ID + - name: remote_as_asn + type: long + description: The remote Autonomous System (AS) number of the peer + - name: status + type: keyword + description: The BGP session status, e.g., "Established" means the session is up and running + - name: status_duration + type: long + description: Time in seconds since the current status was set + unit: s + - name: password_set + type: boolean + description: Indicates whether a password is set for the BGP peer + - name: passive + type: boolean + description: Indicates if the BGP peer is in passive mode, if yes then router will not initiate a connection to the peer + - name: multi_hop_ttl + type: long + description: Time to Live (TTL) value for multi-hop BGP sessions. + - name: peer_address + type: keyword + dimension: true + description: IP address and port of the peer + - name: local_address + type: keyword + dimension: true + description: Local address and port used for BGP connection + - name: reflector_client + type: keyword + description: Indicates if the BGP peer is a route reflector client + - name: same_confederation + type: boolean + description: Peers in the same confederation exchange routes using internal BGP (iBGP) instead of external BGP (eBGP) + - name: aggregate_confed_as + type: boolean + description: Indicates that Autonomous System (AS) aggregation is enabled for the confederation + - name: peering_type + type: keyword + dimension: true + description: Defines the type of relationship between peers, e.g., "External BGP", "Internal BGP", or "Unspecified" + - name: connect_retry_interval + type: long + description: The interval (in seconds) between connection retries + unit: s + - name: open_delay + type: long + description: Delay before sending an Open message (in seconds) + unit: s + - name: idle_hold + type: long + description: The idle hold time (in seconds) before retrying a connection after failure + unit: s + - name: prefix_limit + type: long + description: The maximum number of prefixes that can be received from the peer (0 = no limit) + - name: holdtime + type: long + description: Time in seconds that the BGP peer will wait for a keepalive message, negotiated between peers + unit: s + - name: holdtime_config + type: long + description: Represents the locally configured hold time on this peer + unit: s + - name: keepalive + type: long + description: The interval (in seconds) at which BGP keepalive messages are sent, negotiated between peers + unit: s + - name: keepalive_config + type: long + description: The keepalive configured on this peer + unit: s + - name: msg_update_in + type: long + description: The number of BGP UPDATE messages received by the router from this peer + metric_type: counter + - name: msg_update_out + type: long + description: the number of BGP UPDATE messages sent from the local router to the peer + metric_type: counter + - name: msg_total_in + type: long + description: Total of all messages received from the peer + metric_type: counter + - name: msg_total_out + type: long + description: Total of all messages sent to the peer + metric_type: counter + - name: last_update_age + type: long + description: Time in seconds since the last update message was received from the peer + unit: s + - name: last_error + type: keyword + description: The last BGP error message received from the peer + - name: status_flap_counts + type: long + description: Indicates the number of times the BGP session has "flapped" or transitioned between up and down states + metric_type: counter + - name: established_counts + type: long + description: Number of times the BGP session has successfully transitioned to the "Established" state + metric_type: counter + - name: orf_entry_received + type: long + description: Number of ORF (Outbound Route Filtering) entries received from the peer + metric_type: gauge + - name: nexthop_self + type: boolean + description: Whether the router is configured to use itself as the next-hop for routes sent to this peer + - name: nexthop_thirdparty + type: boolean + description: Third-party next-hop feature is enabled + - name: nexthop_peer + type: boolean + description: Indicates whether the peer is being used as the next-hop for the routes received from this peer \ No newline at end of file From e476d33a7944d51f4c7f6ad4416a1e5509b247b7 Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Wed, 11 Sep 2024 18:09:07 +0300 Subject: [PATCH 10/50] group fields in system data stream --- .../data_stream/system/fields/fields.yml | 649 +++++++++--------- 1 file changed, 310 insertions(+), 339 deletions(-) diff --git a/packages/panw_metrics/data_stream/system/fields/fields.yml b/packages/panw_metrics/data_stream/system/fields/fields.yml index 8d0976c288a..8241bb05dab 100644 --- a/packages/panw_metrics/data_stream/system/fields/fields.yml +++ b/packages/panw_metrics/data_stream/system/fields/fields.yml @@ -1,344 +1,315 @@ - name: panw.system type: group fields: - - name: uptime.days - type: integer - description: > - Uptime in days - unit: d - metric_type: gauge - - name: uptime.hours - type: integer - description: > - Hours component of uptime - unit: h - metric_type: gauge - - name: uptime.minutes - type: integer - description: > - Minutes component of uptime - unit: m - metric_type: gauge + - name: uptime + type: group + fields: + - name: days + type: integer + description: Uptime in days + unit: d + metric_type: gauge + - name: hours + type: integer + description: Hours component of uptime + unit: h + metric_type: gauge + - name: minutes + type: integer + description: Minutes component of uptime + unit: m + metric_type: gauge - name: user_count type: long - description: > - Number of users - metric_type: gauge - - name: load_average.1m - type: float - description: > - Load average in 1 minute - metric_type: gauge - - name: load_average.5m - type: float - description: > - Load average in 5 minutes - metric_type: gauge - - name: load_average.15m - type: float - description: > - Load average in 15 minutes - metric_type: gauge - - name: tasks.total - type: long - description: > - Total number of tasks - metric_type: gauge - - name: tasks.running - type: long - description: > - Number of running tasks - metric_type: gauge - - name: tasks.sleeping - type: long - description: > - Number of sleeping tasks - metric_type: gauge - - name: tasks.stopped - type: long - description: > - Number of stopped tasks - metric_type: gauge - - name: tasks.zombie - type: long - description: > - Number of zombie tasks - metric_type: gauge - - name: cpu.user - type: float - description: > - CPU usage by user processes - unit: percent - metric_type: gauge - - name: cpu.system - type: float - description: > - CPU usage by system processes - unit: percent - metric_type: gauge - - name: cpu.nice - type: float - description: > - CPU usage by processes with a positive nice value - unit: percent - metric_type: gauge - - name: cpu.idle - type: float - description: > - CPU idle time - unit: percent - metric_type: gauge - - name: cpu.wait - type: float - description: > - CPU wait time - unit: percent - metric_type: gauge - - name: cpu.hi - type: float - description: > - CPU hardware interrupts - unit: percent - metric_type: gauge - - name: cpu.system_int - type: float - description: > - CPU software interrupts - unit: percent - metric_type: gauge - - name: cpu.steal - type: float - description: > - CPU steal time - unit: percent - metric_type: gauge - - name: memory.total - type: float - description: > - Total memory - unit: byte - metric_type: gauge - - name: memory.free - type: float - description: > - Free memory - unit: byte - metric_type: gauge - - name: memory.used - type: float - description: > - Used memory - unit: byte - metric_type: gauge - - name: memory.buffer_cache - type: float - description: > - Memory used for buffers and cache - unit: byte - metric_type: gauge - - name: swap.total - type: float - description: > - Total swap space - unit: byte - metric_type: gauge - - name: swap.free - type: float - description: > - Free swap space - unit: byte - metric_type: gauge - - name: swap.used - type: float - description: > - Used swap space - unit: byte - metric_type: gauge - - name: swap.available - type: float - description: > - Available swap space - unit: byte - metric_type: gauge - - name: license.feature - type: keyword - dimension: true - description: > - Feature licensed, e.g. Advanced Threat Prevention - - name: license.description - type: text - description: > - Description of the licensed feature - - name: license.serial - type: keyword - dimension: true - description: > - Serial number of license - - name: license.issued - type: date - description: > - Date the license was issued - - name: license.expires - type: keyword - description: > - Date the license expires, but this is a keyword because value might be "never" - - name: license.expired - type: boolean - description: > - Indicates if the license is expired - - name: license.auth_code - type: keyword - description: > - Authorization code to activate or install the license - - name: filesystem.name - type: keyword - dimension: true - description: > - Filesystem name - - name: filesystem.size - type: float - format: bytes - description: > - Total size of the filesystem - unit: byte - metric_type: gauge - - name: filesystem.used - type: float - format: bytes - description: > - Amount used on the filesystem - unit: byte - metric_type: gauge - - name: filesystem.available - type: float - format: bytes - description: > - Disk space available on the filesystem - unit: byte - metric_type: gauge - - name: filesystem.use_percent - type: integer - format: percent - description: > - Percent of filesystem used - unit: percent - metric_type: gauge - - name: filesystem.mounted - type: keyword - dimension: true - description: > - Filesystem mount point - - name: fan.slot_number - type: integer - description: > - The number of the hardware slot - - name: fan.description - type: keyword - description: > - The description of the fan - - name: fan.alarm - type: boolean - description: > - Is there an alarm status of the fan - - name: fan.rpm - type: integer - description: > - The speed of the fan in RPM - metric_type: gauge - - name: fan.min_rpm - type: integer - description: > - The minimum speed of the fan in RPM - - name: thermal.slot_number - type: integer - description: > - Slot number field - - name: thermal.description - type: text - description: > - Description field - - name: thermal.alarm - type: boolean - description: > - Alarm field - - name: thermal.degrees_celsius - type: float - description: > - Degrees Celsius field - metric_type: gauge - - name: thermal.minimum_temp - type: float - description: > - Minimum temperature field - - name: thermal.maximum_temp - type: float - description: > - Maximum temperature field - - name: power.slot_number - type: keyword - description: > - Slot number field - - name: power.description - type: text - description: > - Description field - - name: power.alarm - type: boolean - description: > - Indicates if alarm is active - - name: power.volts - type: float - description: > - Current Volts - metric_type: gauge - - name: power.minimum_volts - type: float - description: > - Minimum volts recorded - - name: power.maximum_volts - type: float - description: > - Maximum volts recorded - - name: certificate.issuer - type: keyword - description: > - Issuer of the certificate database - - name: certificate.issuer_subject_hash - type: keyword - description: > - Subject hash of the issuer of the certificate database - - name: certificate.issuer_key_hash - type: keyword - description: > - Key hash of the issuer of the certificate database - - name: certificate.db_type - type: keyword - dimension: true - description: > - Type of the certificate database - - name: certificate.db_exp_date - type: keyword - description: > - Expiration date, format: 310329235959Z(Mar 29 23:59:59 2031 GMT) - - name: certificate.db_rev_date - type: keyword - description: > - Revision date of the certificate database - - name: certificate.db_serial_no - type: keyword - description: > - Serial number of the certificate database - - name: certificate.db_file - type: keyword - dimension: true - description: > - File name of the certificate database - - name: certificate.db_name - type: keyword - dimension: true - description: > - Name of the certificate database - - name: certificate.db_status - type: keyword - description: > - Status of the certificate database \ No newline at end of file + description: Number of users + metric_type: gauge + - name: load_average + type: group + fields: + - name: 1m + type: float + description: Load average in 1 minute + metric_type: gauge + - name: 5m + type: float + description: Load average in 5 minutes + metric_type: gauge + - name: 15m + type: float + description: Load average in 15 minutes + metric_type: gauge + - name: tasks + type: group + fields: + - name: total + type: long + description: Total number of tasks + metric_type: gauge + - name: running + type: long + description: Number of running tasks + metric_type: gauge + - name: sleeping + type: long + description: Number of sleeping tasks + metric_type: gauge + - name: stopped + type: long + description: Number of stopped tasks + metric_type: gauge + - name: zombie + type: long + description: Number of zombie tasks + metric_type: gauge + - name: cpu + type: group + fields: + - name: user + type: float + description: CPU usage by user processes + unit: percent + metric_type: gauge + - name: system + type: float + description: CPU usage by system processes + unit: percent + metric_type: gauge + - name: nice + type: float + description: CPU usage by processes with a positive nice value + unit: percent + metric_type: gauge + - name: idle + type: float + description: CPU idle time + unit: percent + metric_type: gauge + - name: wait + type: float + description: CPU wait time + unit: percent + metric_type: gauge + - name: hi + type: float + description: CPU hardware interrupts + unit: percent + metric_type: gauge + - name: system_int + type: float + description: CPU software interrupts + unit: percent + metric_type: gauge + - name: steal + type: float + description: CPU steal time + unit: percent + metric_type: gauge + - name: memory + type: group + fields: + - name: total + type: float + description: Total memory + unit: byte + metric_type: gauge + - name: free + type: float + description: Free memory + unit: byte + metric_type: gauge + - name: used + type: float + description: Used memory + unit: byte + metric_type: gauge + - name: buffer_cache + type: float + description: Memory used for buffers and cache + unit: byte + metric_type: gauge + - name: swap + type: group + fields: + - name: total + type: float + description: Total swap space + unit: byte + metric_type: gauge + - name: free + type: float + description: Free swap space + unit: byte + metric_type: gauge + - name: used + type: float + description: Used swap space + unit: byte + metric_type: gauge + - name: available + type: float + description: Available swap space + unit: byte + metric_type: gauge + - name: license + type: group + fields: + - name: feature + type: keyword + dimension: true + description: Feature licensed, e.g. Advanced Threat Prevention + - name: description + type: text + description: Description of the licensed feature + - name: serial + type: keyword + dimension: true + description: Serial number of license + - name: issued + type: date + description: Date the license was issued + - name: expires + type: keyword + description: Date the license expires, but this is a keyword because value might be "never" + - name: expired + type: boolean + description: Indicates if the license is expired + - name: auth_code + type: keyword + description: Authorization code to activate or install the license + - name: filesystem + type: group + fields: + - name: name + type: keyword + dimension: true + description: Filesystem name + - name: size + type: float + format: bytes + description: Total size of the filesystem + unit: byte + metric_type: gauge + - name: used + type: float + format: bytes + description: Amount used on the filesystem + unit: byte + metric_type: gauge + - name: available + type: float + format: bytes + description: Disk space available on the filesystem + unit: byte + metric_type: gauge + - name: use_percent + type: integer + format: percent + description: Percent of filesystem used + unit: percent + metric_type: gauge + - name: mounted + type: keyword + dimension: true + description: Filesystem mount point + - name: fan + type: group + fields: + - name: slot_number + type: integer + description: The number of the hardware slot + - name: description + type: keyword + description: The description of the fan + - name: alarm + type: boolean + description: Is there an alarm status of the fan + - name: rpm + type: integer + description: The speed of the fan in RPM + metric_type: gauge + - name: min_rpm + type: integer + metric_type: gauge + description: The minimum speed of the fan in RPM + - name: thermal + type: group + fields: + - name: slot_number + type: integer + description: Slot number field + - name: description + type: text + description: Description field + - name: alarm + type: boolean + description: Alarm field + - name: degrees_celsius + type: float + description: Degrees Celsius field + metric_type: gauge + - name: minimum_temp + type: float + metric_type: gauge + description: Minimum temperature field + - name: maximum_temp + type: float + metric_type: gauge + description: Maximum temperature field + - name: power + type: group + fields: + - name: slot_number + type: keyword + description: Slot number field + - name: description + type: text + description: Description field + - name: alarm + type: boolean + description: Indicates if alarm is active + - name: volts + type: float + description: Current Volts + metric_type: gauge + - name: minimum_volts + type: float + description: Minimum volts recorded + - name: maximum_volts + type: float + description: Maximum volts recorded + - name: certificate + type: group + fields: + - name: issuer + type: keyword + description: Issuer of the certificate database + - name: issuer_subject_hash + type: keyword + description: Subject hash of the issuer of the certificate database + - name: issuer_key_hash + type: keyword + description: Key hash of the issuer of the certificate database + - name: db_type + type: keyword + dimension: true + description: Type of the certificate database + - name: db_exp_date + type: keyword + description: Expiration date, format, 310329235959Z(Mar 29 23:59:59 2031 GMT) + - name: db_rev_date + type: keyword + description: Revision date of the certificate database + - name: db_serial_no + type: keyword + description: Serial number of the certificate database + - name: db_file + type: keyword + dimension: true + description: File name of the certificate database + - name: db_name + type: keyword + dimension: true + description: Name of the certificate database + - name: db_status + type: keyword + description: Status of the certificate database \ No newline at end of file From f97f4405236b2fa7c6755e91004f111fc4dc1d91 Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Wed, 11 Sep 2024 18:09:14 +0300 Subject: [PATCH 11/50] group fields in vpn data stream --- .../data_stream/vpn/fields/fields.yml | 381 ++++++++---------- 1 file changed, 173 insertions(+), 208 deletions(-) diff --git a/packages/panw_metrics/data_stream/vpn/fields/fields.yml b/packages/panw_metrics/data_stream/vpn/fields/fields.yml index 133d90a55ad..8a0fb44b488 100644 --- a/packages/panw_metrics/data_stream/vpn/fields/fields.yml +++ b/packages/panw_metrics/data_stream/vpn/fields/fields.yml @@ -1,211 +1,176 @@ - name: panw.vpn type: group fields: - - name: globalprotect.session.domain - type: keyword - dimension: true - description: > - Domain of the GlobalProtect session - - name: globalprotect.session.is_local - type: boolean - description: > - Indicates if the session is local - - name: globalprotect.session.username - type: keyword - dimension: true - description: > - Username of the session - - name: globalprotect.session.primary_username - type: keyword - dimension: true - description: > - Primary username of the session - - name: globalprotect.session.region_for_config - type: keyword - dimension: true - description: > - Region for configuration - - name: globalprotect.session.source_region - type: keyword - dimension: true - description: > - Source region of the session - - name: globalprotect.session.computer - type: keyword - dimension: true - description: > - Computer name in the session - - name: globalprotect.session.client - type: keyword - dimension: true - description: > - Client information of the session - - name: globalprotect.session.vpn_type - type: keyword - dimension: true - description: > - Type of VPN used in the session - - name: globalprotect.session.host_id - type: keyword - dimension: true - description: > - Host ID of the session - - name: globalprotect.session.app_version - type: keyword - description: > - Application version used in the session - - name: globalprotect.session.virtual_ip - type: ip - description: > - Virtual IP address of the session - - name: globalprotect.session.virtual_ipv6 - type: ip - description: > - Virtual IPv6 address of the session - - name: globalprotect.session.public_ip - type: ip - description: > - Public IP address of the session - - name: globalprotect.session.public_ipv6 - type: ip - description: > - Public IPv6 address of the session - - name: globalprotect.session.tunnel_type - type: keyword - description: > - Type of tunnel used in the session - - name: globalprotect.session.public_connection_ipv6 - type: ip - description: > - Public connection IPv6 address of the session - - name: globalprotect.session.client_ip - type: ip - description: > - Client IP address of the session - - name: globalprotect.session.login_time - type: date - description: > - Login time of the session - - name: globalprotect.session.login_time_utc - type: date - description: > - Login time in UTC of the session - - name: globalprotect.session.lifetime - type: long - description: > - Lifetime of the session - unit: s - - name: globalprotect.session.request_login - type: keyword - description: > - Request login information of the session - - name: globalprotect.session.request_get_config - type: keyword - description: > - Request get configuration information of the session - - name: globalprotect.session.request_sslvpn_connect - type: keyword - description: > - Request SSL VPN connect information of the session - - name: globalprotect.gateway.name - type: keyword - dimension: true - description: > - Name of the GlobalProtect gateway - - name: globalprotect.gateway.current_users - type: long - description: > - Current number of users connected to the GlobalProtect gateway - metric_type: gauge - - name: globalprotect.gateway.previous_users - type: long - description: > - Previous number of users connected to the GlobalProtect gateway - metric_type: gauge - - name: globalprotect.total_current_users - type: long - description: > - Total current number of users connected to GlobalProtect - metric_type: gauge - - name: globalprotect.total_previous_users - type: long - description: > - Total previous number of users connected to GlobalProtect - metric_type: gauge - - name: ipsec_tunnel.id - type: keyword - dimension: true - description: > - ID of the IPsec tunnel - - name: ipsec_tunnel.name - type: keyword - dimension: true - description: > - Name of the IPsec tunnel - - name: ipsec_tunnel.gw - type: keyword - dimension: true - description: > - Gateway of the IPsec tunnel - - name: ipsec_tunnel.TSi_ip - type: ip - description: > - Traffic Selector Initiator IP. This is the local IP (0.0.0.0 means any IP address) - - name: ipsec_tunnel.TSi_prefix - type: keyword - description: > - Network prefix for the TSi IP, 0 means no specific network is defined. - - name: ipsec_tunnel.TSi_proto - type: keyword - description: > - Protocol associated with the TSi (0 means any protocol) - - name: ipsec_tunnel.TSi_port - type: long - description: > - Port number associated with TSi (0 means any port) - - name: ipsec_tunnel.TSr_ip - type: ip - description: > - Traffic Selector Responder IP. - - name: ipsec_tunnel.TSr_prefix - type: keyword - description: > - Network prefix for the TSr IP. Similar to TSi_prefix - - name: ipsec_tunnel.TSr_proto - type: keyword - description: > - TSr protocol of the IPsec tunnel - - name: ipsec_tunnel.TSr_port - type: long - description: > - TSr port of the IPsec tunnel - - name: ipsec_tunnel.proto - type: keyword - description: > - Protocol of the IPsec tunnel - - name: ipsec_tunnel.mode - type: keyword - description: > - This specifies the IPsec mode. e.g., 'tunl' - - name: ipsec_tunnel.dh - type: keyword - description: > - Diffie-Hellman group of the IPsec tunnel - - name: ipsec_tunnel.enc - type: keyword - description: > - Encryption algorithm of the IPsec tunnel - - name: ipsec_tunnel.hash - type: keyword - description: > - Hash algorithm of the IPsec tunnel - - name: ipsec_tunnel.life - type: long - description: > - The lifetime of the IPsec Security Association (SA) in seconds - unit: s - - name: ipsec_tunnel.kb - type: long - description: > - Traffic volume limit for SA rekeying - unit: byte \ No newline at end of file + - name: globalprotect + type: group + fields: + - name: session + type: group + fields: + - name: domain + type: keyword + dimension: true + description: Domain of the GlobalProtect session + - name: is_local + type: boolean + description: Indicates if the session is local + - name: username + type: keyword + dimension: true + description: Username of the session + - name: primary_username + type: keyword + dimension: true + description: Primary username of the session + - name: region_for_config + type: keyword + dimension: true + description: Region for configuration + - name: source_region + type: keyword + dimension: true + description: Source region of the session + - name: computer + type: keyword + dimension: true + description: Computer name in the session + - name: client + type: keyword + dimension: true + description: Client information of the session + - name: vpn_type + type: keyword + dimension: true + description: Type of VPN used in the session + - name: host_id + type: keyword + dimension: true + description: Host ID of the session + - name: app_version + type: keyword + description: Application version used in the session + - name: virtual_ip + type: ip + description: Virtual IP address of the session + - name: virtual_ipv6 + type: ip + description: Virtual IPv6 address of the session + - name: public_ip + type: ip + description: Public IP address of the session + - name: public_ipv6 + type: ip + description: Public IPv6 address of the session + - name: tunnel_type + type: keyword + description: Type of tunnel used in the session + - name: public_connection_ipv6 + type: ip + description: Public connection IPv6 address of the session + - name: client_ip + type: ip + description: Client IP address of the session + - name: login_time + type: date + description: Login time of the session + - name: login_time_utc + type: date + description: Login time in UTC of the session + - name: lifetime + type: long + description: Lifetime of the session + unit: s + - name: request_login + type: keyword + description: Request login information of the session + - name: request_get_config + type: keyword + description: Request get configuration information of the session + - name: request_sslvpn_connect + type: keyword + description: Request SSL VPN connect information of the session + - name: gateway + type: group + fields: + - name: name + type: keyword + dimension: true + description: Name of the GlobalProtect gateway + - name: current_users + type: long + description: Current number of users connected to the GlobalProtect gateway + metric_type: gauge + - name: previous_users + type: long + description: Previous number of users connected to the GlobalProtect gateway + metric_type: gauge + - name: total_current_users + type: long + description: Total current number of users connected to GlobalProtect + metric_type: gauge + - name: total_previous_users + type: long + description: Total previous number of users connected to GlobalProtect + metric_type: gauge + - name: ipsec_tunnel + type: group + fields: + - name: id + type: keyword + dimension: true + description: ID of the IPsec tunnel + - name: name + type: keyword + dimension: true + description: Name of the IPsec tunnel + - name: gw + type: keyword + dimension: true + description: Gateway of the IPsec tunnel + - name: TSi_ip + type: ip + description: Traffic Selector Initiator IP. This is the local IP (0.0.0.0 means any IP address) + - name: TSi_prefix + type: keyword + description: Network prefix for the TSi IP, 0 means no specific network is defined. + - name: TSi_proto + type: keyword + description: Protocol associated with the TSi (0 means any protocol) + - name: TSi_port + type: long + description: Port number associated with TSi (0 means any port) + - name: TSr_ip + type: ip + description: Traffic Selector Responder IP. + - name: TSr_prefix + type: keyword + description: Network prefix for the TSr IP. Similar to TSi_prefix + - name: TSr_proto + type: keyword + description: TSr protocol of the IPsec tunnel + - name: TSr_port + type: long + description: TSr port of the IPsec tunnel + - name: proto + type: keyword + description: Protocol of the IPsec tunnel + - name: mode + type: keyword + description: This specifies the IPsec mode. e.g., 'tunl' + - name: dh + type: keyword + description: Diffie-Hellman group of the IPsec tunnel + - name: enc + type: keyword + description: Encryption algorithm of the IPsec tunnel + - name: hash + type: keyword + description: Hash algorithm of the IPsec tunnel + - name: life + type: long + description: The lifetime of the IPsec Security Association (SA) in seconds + unit: s + - name: kb + type: long + description: Traffic volume limit for SA rekeying + unit: byte \ No newline at end of file From 5864b120c246e735cfead55f039e0561974c291f Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Wed, 11 Sep 2024 18:18:02 +0300 Subject: [PATCH 12/50] lint and build docs --- .../interfaces/fields/base-fields.yml | 2 +- .../data_stream/interfaces/fields/fields.yml | 12 +- .../routing/fields/base-fields.yml | 2 +- .../data_stream/routing/fields/fields.yml | 2 +- .../data_stream/system/fields/base-fields.yml | 2 +- .../data_stream/system/fields/fields.yml | 2 +- .../data_stream/vpn/fields/base-fields.yml | 2 +- .../data_stream/vpn/fields/fields.yml | 2 +- packages/panw_metrics/docs/README.md | 202 ++++++++---------- 9 files changed, 104 insertions(+), 124 deletions(-) diff --git a/packages/panw_metrics/data_stream/interfaces/fields/base-fields.yml b/packages/panw_metrics/data_stream/interfaces/fields/base-fields.yml index 4da5428ca93..7c798f4534c 100644 --- a/packages/panw_metrics/data_stream/interfaces/fields/base-fields.yml +++ b/packages/panw_metrics/data_stream/interfaces/fields/base-fields.yml @@ -9,4 +9,4 @@ description: Data stream namespace. - name: '@timestamp' type: date - description: Event timestamp. \ No newline at end of file + description: Event timestamp. diff --git a/packages/panw_metrics/data_stream/interfaces/fields/fields.yml b/packages/panw_metrics/data_stream/interfaces/fields/fields.yml index c15dc962788..90afbc9c8d2 100644 --- a/packages/panw_metrics/data_stream/interfaces/fields/fields.yml +++ b/packages/panw_metrics/data_stream/interfaces/fields/fields.yml @@ -14,15 +14,7 @@ description: Physical interface ID - name: type type: keyword - description: > - Physical interface type (numeric value in source XML, string value sent to elasticsearch): - 0: "Ethernet interface", - 1: "Aggregate Ethernet (AE) interface", - 2: "High Availability (HA) interface", - 3: "VLAN interface", - 5: "Loopback interface", - 6: "Tunnel interface", - 10: "SD-WAN interface", + description: Physical interface type - name: mac type: keyword description: Physical MAC address @@ -291,4 +283,4 @@ description: Name of the interface in the link monitoring group - name: status type: keyword - description: Status of the interface in the link monitoring group \ No newline at end of file + description: Status of the interface in the link monitoring group diff --git a/packages/panw_metrics/data_stream/routing/fields/base-fields.yml b/packages/panw_metrics/data_stream/routing/fields/base-fields.yml index 4da5428ca93..7c798f4534c 100644 --- a/packages/panw_metrics/data_stream/routing/fields/base-fields.yml +++ b/packages/panw_metrics/data_stream/routing/fields/base-fields.yml @@ -9,4 +9,4 @@ description: Data stream namespace. - name: '@timestamp' type: date - description: Event timestamp. \ No newline at end of file + description: Event timestamp. diff --git a/packages/panw_metrics/data_stream/routing/fields/fields.yml b/packages/panw_metrics/data_stream/routing/fields/fields.yml index acfc7cc35c7..7743abfc676 100644 --- a/packages/panw_metrics/data_stream/routing/fields/fields.yml +++ b/packages/panw_metrics/data_stream/routing/fields/fields.yml @@ -133,4 +133,4 @@ description: Third-party next-hop feature is enabled - name: nexthop_peer type: boolean - description: Indicates whether the peer is being used as the next-hop for the routes received from this peer \ No newline at end of file + description: Indicates whether the peer is being used as the next-hop for the routes received from this peer diff --git a/packages/panw_metrics/data_stream/system/fields/base-fields.yml b/packages/panw_metrics/data_stream/system/fields/base-fields.yml index 4da5428ca93..7c798f4534c 100644 --- a/packages/panw_metrics/data_stream/system/fields/base-fields.yml +++ b/packages/panw_metrics/data_stream/system/fields/base-fields.yml @@ -9,4 +9,4 @@ description: Data stream namespace. - name: '@timestamp' type: date - description: Event timestamp. \ No newline at end of file + description: Event timestamp. diff --git a/packages/panw_metrics/data_stream/system/fields/fields.yml b/packages/panw_metrics/data_stream/system/fields/fields.yml index 8241bb05dab..ad92ec97dfd 100644 --- a/packages/panw_metrics/data_stream/system/fields/fields.yml +++ b/packages/panw_metrics/data_stream/system/fields/fields.yml @@ -312,4 +312,4 @@ description: Name of the certificate database - name: db_status type: keyword - description: Status of the certificate database \ No newline at end of file + description: Status of the certificate database diff --git a/packages/panw_metrics/data_stream/vpn/fields/base-fields.yml b/packages/panw_metrics/data_stream/vpn/fields/base-fields.yml index 4da5428ca93..7c798f4534c 100644 --- a/packages/panw_metrics/data_stream/vpn/fields/base-fields.yml +++ b/packages/panw_metrics/data_stream/vpn/fields/base-fields.yml @@ -9,4 +9,4 @@ description: Data stream namespace. - name: '@timestamp' type: date - description: Event timestamp. \ No newline at end of file + description: Event timestamp. diff --git a/packages/panw_metrics/data_stream/vpn/fields/fields.yml b/packages/panw_metrics/data_stream/vpn/fields/fields.yml index 8a0fb44b488..25dabfc4dcf 100644 --- a/packages/panw_metrics/data_stream/vpn/fields/fields.yml +++ b/packages/panw_metrics/data_stream/vpn/fields/fields.yml @@ -173,4 +173,4 @@ - name: kb type: long description: Traffic volume limit for SA rekeying - unit: byte \ No newline at end of file + unit: byte diff --git a/packages/panw_metrics/docs/README.md b/packages/panw_metrics/docs/README.md index 133e2b74837..1aceaa650db 100644 --- a/packages/panw_metrics/docs/README.md +++ b/packages/panw_metrics/docs/README.md @@ -25,7 +25,6 @@ An example event for `interfaces` looks as following: "version": "8.16.0" }, "data_stream": { - "dataset": "panw.interfaces", "namespace": "default", "type": "metrics" }, @@ -39,8 +38,6 @@ An example event for `interfaces` looks as following: }, "event": { "agent_id_status": "verified", - "module": "panw", - "dataset": "panw.vpn", "duration": 1250000, "ingested": "2024-02-08T10:15:32Z" }, @@ -122,96 +119,96 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur **Exported fields** -| Field | Description | Type | Unit | -|---|---|---|---| -| @timestamp | Event timestamp. | date | | -| cloud.image.id | Image ID for the cloud instance. | keyword | | -| data_stream.dataset | Data stream dataset. | constant_keyword | | -| data_stream.namespace | Data stream namespace. | constant_keyword | | -| data_stream.type | Data stream type. | constant_keyword | | -| host.containerized | If the host is a container. | boolean | | -| host.os.build | OS build information. | keyword | | -| host.os.codename | OS codename, if any. | keyword | | -| panw.interfaces.ha.enabled | HA enabled | boolean | | -| panw.interfaces.ha.link_monitoring.enabled | Indicates if link monitoring is enabled | boolean | | -| panw.interfaces.ha.link_monitoring.failure_condition | Condition that triggers a link monitoring failure, e.g., "any" | keyword | | -| panw.interfaces.ha.link_monitoring.group.enabled | Indicates if the link monitoring group is enabled | boolean | | -| panw.interfaces.ha.link_monitoring.group.failure_condition | Condition that triggers a failure in the link monitoring group | keyword | | -| panw.interfaces.ha.link_monitoring.group.interface.name | Name of the interface in the link monitoring group | keyword | | -| panw.interfaces.ha.link_monitoring.group.interface.status | Status of the interface in the link monitoring group | keyword | | -| panw.interfaces.ha.link_monitoring.group.name | Name of the link monitoring group | keyword | | -| panw.interfaces.ha.local_info.app_version | The version of the application database | keyword | | -| panw.interfaces.ha.local_info.av_version | The version of the antivirus database | keyword | | -| panw.interfaces.ha.local_info.build_rel | The PAN-OS software version running on the firewall | keyword | | -| panw.interfaces.ha.local_info.gp_client_version | Version of the GlobalProtect client software | keyword | | -| panw.interfaces.ha.local_info.ha1_backup_gateway | Default gateway for the backup HA1 interface | ip | | -| panw.interfaces.ha.local_info.ha1_backup_ipaddr | The backup IP address for the HA1 interface | ip | | -| panw.interfaces.ha.local_info.ha1_backup_macaddr | HA local info HA1 backup MAC address | keyword | | -| panw.interfaces.ha.local_info.ha1_backup_port | HA local info HA1 backup port, e.g. "management" | keyword | | -| panw.interfaces.ha.local_info.ha1_ipaddr | IP Address of HA1 interface, used for heartbeat and management synchronization | ip | | -| panw.interfaces.ha.local_info.ha1_macaddr | HA local info HA1 MAC address | keyword | | -| panw.interfaces.ha.local_info.ha1_port | Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha1" | keyword | | -| panw.interfaces.ha.local_info.ha2_ipaddr | HA local info HA2 IP address | ip | | -| panw.interfaces.ha.local_info.ha2_macaddr | HA local info HA2 MAC address | keyword | | -| panw.interfaces.ha.local_info.ha2_port | Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha2" | keyword | | -| panw.interfaces.ha.local_info.iot_version | HA local info IoT database version | keyword | | -| panw.interfaces.ha.local_info.mgmt_ip | HA local info management IP | ip | | -| panw.interfaces.ha.local_info.mode | HA mode, e.g., "active-active" or "active-passive" | keyword | | -| panw.interfaces.ha.local_info.platform_model | Platform model of the local device | keyword | | -| panw.interfaces.ha.local_info.preemptive | Indicates whether the firewall is configured to preemptively take over as the active unit in an HA setup | boolean | | -| panw.interfaces.ha.local_info.state | HA state of the local device, e.g., "active" or "passive" | keyword | | -| panw.interfaces.ha.local_info.state_duration | Duration in milliseconds of the current state | long | ms | -| panw.interfaces.ha.local_info.state_sync | Status of HA synchronization, e.g., "complete" | keyword | | -| panw.interfaces.ha.local_info.state_sync_type | Type of interface used for HA synchronization | keyword | | -| panw.interfaces.ha.local_info.threat_version | HA local info threat version | keyword | | -| panw.interfaces.ha.local_info.url_version | The version of the URL filtering database | keyword | | -| panw.interfaces.ha.local_info.version | HA configuration info version | long | | -| panw.interfaces.ha.local_info.vpn_client_version | Version of the VPN client (if installed) | keyword | | -| panw.interfaces.ha.mode | HA mode, e.g., "active-active" or "active-passive" | keyword | | -| panw.interfaces.ha.peer_info.conn_ha1.description | Description of the connection type ,e.g., "heartbeat status" | keyword | | -| panw.interfaces.ha.peer_info.conn_ha1.primary | Specifies if the HA1 connection is primary | boolean | | -| panw.interfaces.ha.peer_info.conn_ha1.status | Peer HA1 connection status, e.g., "up" | keyword | | -| panw.interfaces.ha.peer_info.conn_ha1_backup.description | HA peer info connection HA1 backup description | keyword | | -| panw.interfaces.ha.peer_info.conn_ha1_backup.status | HA peer info connection HA1 backup status, e.g., "up" means it is operational | keyword | | -| panw.interfaces.ha.peer_info.conn_ha2.description | HA peer info connection HA2 description | keyword | | -| panw.interfaces.ha.peer_info.conn_ha2.primary | Specifies if the HA2 connection is primary | boolean | | -| panw.interfaces.ha.peer_info.conn_ha2.status | HA peer info connection HA2 status | keyword | | -| panw.interfaces.ha.peer_info.conn_status | Overall status of the HA connections ("up" means all connections are operational) | keyword | | -| panw.interfaces.ha.peer_info.ha1_backup_ipaddr | HA peer info HA1 backup IP address | ip | | -| panw.interfaces.ha.peer_info.ha1_backup_macaddr | HA peer info HA1 backup MAC address | keyword | | -| panw.interfaces.ha.peer_info.ha1_ipaddr | IP address of the HA1 interface on the peer | ip | | -| panw.interfaces.ha.peer_info.ha1_macaddr | HA1 MAC address of the peer | keyword | | -| panw.interfaces.ha.peer_info.ha2_ipaddr | HA peer info HA2 IP address | ip | | -| panw.interfaces.ha.peer_info.ha2_macaddr | HA peer info HA2 MAC address | keyword | | -| panw.interfaces.ha.peer_info.mgmt_ip | Management IP address of the peer firewall | ip | | -| panw.interfaces.ha.peer_info.mode | HA mode configured on the peer firewall, e.g. "Active-Passive" | keyword | | -| panw.interfaces.ha.peer_info.platform_model | Model of the peer firewall | keyword | | -| panw.interfaces.ha.peer_info.preemptive | Indicates if preemption is enabled on the peer firewall | boolean | | -| panw.interfaces.ha.peer_info.priority | HA priority value of the peer firewall | long | | -| panw.interfaces.ha.peer_info.state | Current operational state of the peer firewall (passive means it is in standby mode and not handling traffic) | keyword | | -| panw.interfaces.ha.peer_info.state_duration | How long the peer has been in the current state | long | ms | -| panw.interfaces.ha.running_sync | Indicates the sychronization status of the HA pair, e.g., "synchronized","not-synchronized","synchronizing" | keyword | | -| panw.interfaces.ha.running_sync_enabled | Indicates if running configuration synchronization is enabled | boolean | | -| panw.interfaces.logical.addr | Used to store aditional static IP addresses | keyword | | -| panw.interfaces.logical.addr6 | Logical IPv6 address | keyword | | -| panw.interfaces.logical.dyn_addr | Dynamic addresses, e.g., generated by DHCP | keyword | | -| panw.interfaces.logical.fwd | Indicates if the interface is used for forwarding | keyword | | -| panw.interfaces.logical.id | Logical interface ID | keyword | | -| panw.interfaces.logical.ip | Logical IP Address with subnet mask, e.g., 111.222.333.10/29 | ip | | -| panw.interfaces.logical.name | Logical interface name | keyword | | -| panw.interfaces.logical.tag | VLAN tag associated with this interface | integer | | -| panw.interfaces.logical.vsys | Virtual system to which this interface belongs | integer | | -| panw.interfaces.logical.zone | Logical zone, e.g., "inside" or "outside" | keyword | | -| panw.interfaces.physical.ae_member | For aggregate interfaces, the array of member interfaces | keyword | | -| panw.interfaces.physical.duplex | Duplex configuration, e.g., "full" or "half" | keyword | | -| panw.interfaces.physical.full_state | Physical full state, speed/duplex/state, e.g., "1000/full/up" | keyword | | -| panw.interfaces.physical.id | Physical interface ID | keyword | | -| panw.interfaces.physical.mac | Physical MAC address | keyword | | -| panw.interfaces.physical.mode | Physical interface mode, e.g., autoneg | keyword | | -| panw.interfaces.physical.name | Physical interface name | keyword | | -| panw.interfaces.physical.speed | Physical interface speed | keyword | | -| panw.interfaces.physical.state | Physical interface state: up/down | keyword | | -| panw.interfaces.physical.type | Physical interface type (numeric value in source XML, string value sent to elasticsearch): 0: "Ethernet interface", 1: "Aggregate Ethernet (AE) interface", 2: "High Availability (HA) interface", 3: "VLAN interface", 5: "Loopback interface", 6: "Tunnel interface", 10: "SD-WAN interface", | keyword | | +| Field | Description | Type | Unit | Metric Type | +|---|---|---|---|---| +| @timestamp | Event timestamp. | date | | | +| cloud.image.id | Image ID for the cloud instance. | keyword | | | +| data_stream.dataset | Data stream dataset. | constant_keyword | | | +| data_stream.namespace | Data stream namespace. | constant_keyword | | | +| data_stream.type | Data stream type. | constant_keyword | | | +| host.containerized | If the host is a container. | boolean | | | +| host.os.build | OS build information. | keyword | | | +| host.os.codename | OS codename, if any. | keyword | | | +| panw.interfaces.ha.enabled | HA enabled | boolean | | | +| panw.interfaces.ha.link_monitoring.enabled | Indicates if link monitoring is enabled | boolean | | | +| panw.interfaces.ha.link_monitoring.failure_condition | Condition that triggers a link monitoring failure, e.g., "any" | keyword | | | +| panw.interfaces.ha.link_monitoring.group.enabled | Indicates if the link monitoring group is enabled | boolean | | | +| panw.interfaces.ha.link_monitoring.group.failure_condition | Condition that triggers a failure in the link monitoring group | keyword | | | +| panw.interfaces.ha.link_monitoring.group.interface.name | Name of the interface in the link monitoring group | keyword | | | +| panw.interfaces.ha.link_monitoring.group.interface.status | Status of the interface in the link monitoring group | keyword | | | +| panw.interfaces.ha.link_monitoring.group.name | Name of the link monitoring group | keyword | | | +| panw.interfaces.ha.local_info.app_version | The version of the application database | keyword | | | +| panw.interfaces.ha.local_info.av_version | The version of the antivirus database | keyword | | | +| panw.interfaces.ha.local_info.build_rel | The PAN-OS software version running on the firewall | keyword | | | +| panw.interfaces.ha.local_info.gp_client_version | Version of the GlobalProtect client software | keyword | | | +| panw.interfaces.ha.local_info.ha1_backup_gateway | Default gateway for the backup HA1 interface | ip | | | +| panw.interfaces.ha.local_info.ha1_backup_ipaddr | The backup IP address for the HA1 interface | ip | | | +| panw.interfaces.ha.local_info.ha1_backup_macaddr | HA local info HA1 backup MAC address | keyword | | | +| panw.interfaces.ha.local_info.ha1_backup_port | HA local info HA1 backup port, e.g. "management" | keyword | | | +| panw.interfaces.ha.local_info.ha1_ipaddr | IP Address of HA1 interface, used for heartbeat and management synchronization | ip | | | +| panw.interfaces.ha.local_info.ha1_macaddr | HA local info HA1 MAC address | keyword | | | +| panw.interfaces.ha.local_info.ha1_port | Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha1" | keyword | | | +| panw.interfaces.ha.local_info.ha2_ipaddr | HA local info HA2 IP address | ip | | | +| panw.interfaces.ha.local_info.ha2_macaddr | HA local info HA2 MAC address | keyword | | | +| panw.interfaces.ha.local_info.ha2_port | Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha2" | keyword | | | +| panw.interfaces.ha.local_info.iot_version | HA local info IoT database version | keyword | | | +| panw.interfaces.ha.local_info.mgmt_ip | HA local info management IP | ip | | | +| panw.interfaces.ha.local_info.mode | HA mode, e.g., "active-active" or "active-passive" | keyword | | | +| panw.interfaces.ha.local_info.platform_model | Platform model of the local device | keyword | | | +| panw.interfaces.ha.local_info.preemptive | Indicates whether the firewall is configured to preemptively take over as the active unit in an HA setup | boolean | | | +| panw.interfaces.ha.local_info.state | HA state of the local device, e.g., "active" or "passive" | keyword | | | +| panw.interfaces.ha.local_info.state_duration | Duration in milliseconds of the current state | long | ms | | +| panw.interfaces.ha.local_info.state_sync | Status of HA synchronization, e.g., "complete" | keyword | | | +| panw.interfaces.ha.local_info.state_sync_type | Type of interface used for HA synchronization | keyword | | | +| panw.interfaces.ha.local_info.threat_version | HA local info threat version | keyword | | | +| panw.interfaces.ha.local_info.url_version | The version of the URL filtering database | keyword | | | +| panw.interfaces.ha.local_info.version | HA configuration info version | long | | | +| panw.interfaces.ha.local_info.vpn_client_version | Version of the VPN client (if installed) | keyword | | | +| panw.interfaces.ha.mode | HA mode, e.g., "active-active" or "active-passive" | keyword | | | +| panw.interfaces.ha.peer_info.conn_ha1.description | Description of the connection type ,e.g., "heartbeat status" | keyword | | | +| panw.interfaces.ha.peer_info.conn_ha1.primary | Specifies if the HA1 connection is primary | boolean | | | +| panw.interfaces.ha.peer_info.conn_ha1.status | Peer HA1 connection status, e.g., "up" | keyword | | | +| panw.interfaces.ha.peer_info.conn_ha1_backup.description | HA peer info connection HA1 backup description | keyword | | | +| panw.interfaces.ha.peer_info.conn_ha1_backup.status | HA peer info connection HA1 backup status, e.g., "up" means it is operational | keyword | | | +| panw.interfaces.ha.peer_info.conn_ha2.description | HA peer info connection HA2 description | keyword | | | +| panw.interfaces.ha.peer_info.conn_ha2.primary | Specifies if the HA2 connection is primary | boolean | | | +| panw.interfaces.ha.peer_info.conn_ha2.status | HA peer info connection HA2 status | keyword | | | +| panw.interfaces.ha.peer_info.conn_status | Overall status of the HA connections ("up" means all connections are operational) | keyword | | | +| panw.interfaces.ha.peer_info.ha1_backup_ipaddr | HA peer info HA1 backup IP address | ip | | | +| panw.interfaces.ha.peer_info.ha1_backup_macaddr | HA peer info HA1 backup MAC address | keyword | | | +| panw.interfaces.ha.peer_info.ha1_ipaddr | IP address of the HA1 interface on the peer | ip | | | +| panw.interfaces.ha.peer_info.ha1_macaddr | HA1 MAC address of the peer | keyword | | | +| panw.interfaces.ha.peer_info.ha2_ipaddr | HA peer info HA2 IP address | ip | | | +| panw.interfaces.ha.peer_info.ha2_macaddr | HA peer info HA2 MAC address | keyword | | | +| panw.interfaces.ha.peer_info.mgmt_ip | Management IP address of the peer firewall | ip | | | +| panw.interfaces.ha.peer_info.mode | HA mode configured on the peer firewall, e.g. "Active-Passive" | keyword | | | +| panw.interfaces.ha.peer_info.platform_model | Model of the peer firewall | keyword | | | +| panw.interfaces.ha.peer_info.preemptive | Indicates if preemption is enabled on the peer firewall | boolean | | | +| panw.interfaces.ha.peer_info.priority | HA priority value of the peer firewall | long | | | +| panw.interfaces.ha.peer_info.state | Current operational state of the peer firewall (passive means it is in standby mode and not handling traffic) | keyword | | | +| panw.interfaces.ha.peer_info.state_duration | How long the peer has been in the current state | long | ms | gauge | +| panw.interfaces.ha.running_sync | Indicates the sychronization status of the HA pair, e.g., "synchronized","not-synchronized","synchronizing" | keyword | | | +| panw.interfaces.ha.running_sync_enabled | Indicates if running configuration synchronization is enabled | boolean | | | +| panw.interfaces.logical.addr | Used to store aditional static IP addresses | keyword | | | +| panw.interfaces.logical.addr6 | Logical IPv6 address | keyword | | | +| panw.interfaces.logical.dyn_addr | Dynamic addresses, e.g., generated by DHCP | keyword | | | +| panw.interfaces.logical.fwd | Indicates if the interface is used for forwarding | keyword | | | +| panw.interfaces.logical.id | Logical interface ID | keyword | | | +| panw.interfaces.logical.ip | Logical IP Address with subnet mask, e.g., 111.222.333.10/29 | ip | | | +| panw.interfaces.logical.name | Logical interface name | keyword | | | +| panw.interfaces.logical.tag | VLAN tag associated with this interface | integer | | | +| panw.interfaces.logical.vsys | Virtual system to which this interface belongs | integer | | | +| panw.interfaces.logical.zone | Logical zone, e.g., "inside" or "outside" | keyword | | | +| panw.interfaces.physical.ae_member | For aggregate interfaces, the array of member interfaces | keyword | | | +| panw.interfaces.physical.duplex | Duplex configuration, e.g., "full" or "half" | keyword | | | +| panw.interfaces.physical.full_state | Physical full state, speed/duplex/state, e.g., "1000/full/up" | keyword | | | +| panw.interfaces.physical.id | Physical interface ID | keyword | | | +| panw.interfaces.physical.mac | Physical MAC address | keyword | | | +| panw.interfaces.physical.mode | Physical interface mode, e.g., autoneg | keyword | | | +| panw.interfaces.physical.name | Physical interface name | keyword | | | +| panw.interfaces.physical.speed | Physical interface speed | keyword | | | +| panw.interfaces.physical.state | Physical interface state, up or down | keyword | | | +| panw.interfaces.physical.type | Physical interface type | keyword | | | ### routing @@ -231,7 +228,6 @@ An example event for `routing` looks as following: "version": "8.16.0" }, "data_stream": { - "dataset": "panw.routing", "namespace": "default", "type": "metrics" }, @@ -245,8 +241,6 @@ An example event for `routing` looks as following: }, "event": { "agent_id_status": "verified", - "module": "panw", - "dataset": "panw.vpn", "duration": 1250000, "ingested": "2024-02-08T10:15:32Z" }, @@ -345,7 +339,7 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | panw.routing.bgp.nexthop_thirdparty | Third-party next-hop feature is enabled | boolean | | | | panw.routing.bgp.open_delay | Delay before sending an Open message (in seconds) | long | s | | | panw.routing.bgp.orf_entry_received | Number of ORF (Outbound Route Filtering) entries received from the peer | long | | gauge | -| panw.routing.bgp.passive | Indicates if the BGP peer is in passive mode: if yes then router will not initiate a connection to the peer | boolean | | | +| panw.routing.bgp.passive | Indicates if the BGP peer is in passive mode, if yes then router will not initiate a connection to the peer | boolean | | | | panw.routing.bgp.password_set | Indicates whether a password is set for the BGP peer | boolean | | | | panw.routing.bgp.peer_address | IP address and port of the peer | keyword | | | | panw.routing.bgp.peer_group | The name of the BGP peer group this peer belongs to | keyword | | | @@ -379,7 +373,6 @@ An example event for `system` looks as following: "version": "8.16.0" }, "data_stream": { - "dataset": "panw.system", "namespace": "default", "type": "metrics" }, @@ -393,8 +386,6 @@ An example event for `system` looks as following: }, "event": { "agent_id_status": "verified", - "module": "panw", - "dataset": "panw.vpn", "duration": 1250000, "ingested": "2024-02-08T10:15:32Z" }, @@ -483,7 +474,7 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | host.containerized | If the host is a container. | boolean | | | | host.os.build | OS build information. | keyword | | | | host.os.codename | OS codename, if any. | keyword | | | -| panw.system.certificate.db_exp_date | Expiration date, format: 310329235959Z(Mar 29 23:59:59 2031 GMT) | keyword | | | +| panw.system.certificate.db_exp_date | Expiration date, format, 310329235959Z(Mar 29 23:59:59 2031 GMT) | keyword | | | | panw.system.certificate.db_file | File name of the certificate database | keyword | | | | panw.system.certificate.db_name | Name of the certificate database | keyword | | | | panw.system.certificate.db_rev_date | Revision date of the certificate database | keyword | | | @@ -503,7 +494,7 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | panw.system.cpu.wait | CPU wait time | float | percent | gauge | | panw.system.fan.alarm | Is there an alarm status of the fan | boolean | | | | panw.system.fan.description | The description of the fan | keyword | | | -| panw.system.fan.min_rpm | The minimum speed of the fan in RPM | integer | | | +| panw.system.fan.min_rpm | The minimum speed of the fan in RPM | integer | | gauge | | panw.system.fan.rpm | The speed of the fan in RPM | integer | | gauge | | panw.system.fan.slot_number | The number of the hardware slot | integer | | | | panw.system.filesystem.available | Disk space available on the filesystem | float | byte | gauge | @@ -544,8 +535,8 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | panw.system.thermal.alarm | Alarm field | boolean | | | | panw.system.thermal.degrees_celsius | Degrees Celsius field | float | | gauge | | panw.system.thermal.description | Description field | text | | | -| panw.system.thermal.maximum_temp | Maximum temperature field | float | | | -| panw.system.thermal.minimum_temp | Minimum temperature field | float | | | +| panw.system.thermal.maximum_temp | Maximum temperature field | float | | gauge | +| panw.system.thermal.minimum_temp | Minimum temperature field | float | | gauge | | panw.system.thermal.slot_number | Slot number field | integer | | | | panw.system.uptime.days | Uptime in days | integer | d | gauge | | panw.system.uptime.hours | Hours component of uptime | integer | h | gauge | @@ -570,7 +561,6 @@ An example event for `vpn` looks as following: "version": "8.16.0" }, "data_stream": { - "dataset": "panw.vpn", "namespace": "default", "type": "metrics" }, @@ -584,8 +574,6 @@ An example event for `vpn` looks as following: }, "event": { "agent_id_status": "verified", - "module": "panw", - "dataset": "panw.vpn", "duration": 1250000, "ingested": "2024-02-08T10:15:32Z" }, From 84531cbe6ba7717476a4ce5eb416e5cfef276d4a Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Wed, 11 Sep 2024 19:10:31 +0300 Subject: [PATCH 13/50] fix title and description in vpn manifest --- packages/panw_metrics/data_stream/vpn/manifest.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/panw_metrics/data_stream/vpn/manifest.yml b/packages/panw_metrics/data_stream/vpn/manifest.yml index daa1e003c4a..6012cf9ae9c 100644 --- a/packages/panw_metrics/data_stream/vpn/manifest.yml +++ b/packages/panw_metrics/data_stream/vpn/manifest.yml @@ -2,8 +2,8 @@ title: "Palo Alto Networks VPN" type: metrics streams: - input: panw/metrics - title: Palo Alto Networks system metrics - description: Collect system metrics from Palo Alto Networks. + title: Palo Alto Networks vpn metrics + description: Collect vpn metrics from Palo Alto Networks. vars: - name: period type: text From 4469e540616f9fc979f1ede67b597e999022d294 Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Thu, 12 Sep 2024 15:10:21 +0300 Subject: [PATCH 14/50] move ipsec_tunnel metrics to routing --- .../data_stream/routing/fields/fields.yml | 62 ++++++++++++++++++ .../data_stream/vpn/fields/fields.yml | 64 +------------------ packages/panw_metrics/docs/README.md | 36 +++++------ 3 files changed, 81 insertions(+), 81 deletions(-) diff --git a/packages/panw_metrics/data_stream/routing/fields/fields.yml b/packages/panw_metrics/data_stream/routing/fields/fields.yml index 7743abfc676..c5bdf88168e 100644 --- a/packages/panw_metrics/data_stream/routing/fields/fields.yml +++ b/packages/panw_metrics/data_stream/routing/fields/fields.yml @@ -134,3 +134,65 @@ - name: nexthop_peer type: boolean description: Indicates whether the peer is being used as the next-hop for the routes received from this peer + - name: ipsec_tunnel + type: group + fields: + - name: id + type: keyword + dimension: true + description: ID of the IPsec tunnel + - name: name + type: keyword + dimension: true + description: Name of the IPsec tunnel + - name: gw + type: keyword + dimension: true + description: Gateway of the IPsec tunnel + - name: TSi_ip + type: ip + description: Traffic Selector Initiator IP. This is the local IP (0.0.0.0 means any IP address) + - name: TSi_prefix + type: keyword + description: Network prefix for the TSi IP, 0 means no specific network is defined. + - name: TSi_proto + type: keyword + description: Protocol associated with the TSi (0 means any protocol) + - name: TSi_port + type: long + description: Port number associated with TSi (0 means any port) + - name: TSr_ip + type: ip + description: Traffic Selector Responder IP. + - name: TSr_prefix + type: keyword + description: Network prefix for the TSr IP. Similar to TSi_prefix + - name: TSr_proto + type: keyword + description: TSr protocol of the IPsec tunnel + - name: TSr_port + type: long + description: TSr port of the IPsec tunnel + - name: proto + type: keyword + description: Protocol of the IPsec tunnel + - name: mode + type: keyword + description: This specifies the IPsec mode. e.g., 'tunl' + - name: dh + type: keyword + description: Diffie-Hellman group of the IPsec tunnel + - name: enc + type: keyword + description: Encryption algorithm of the IPsec tunnel + - name: hash + type: keyword + description: Hash algorithm of the IPsec tunnel + - name: life + type: long + description: The lifetime of the IPsec Security Association (SA) in seconds + unit: s + - name: kb + type: long + description: Traffic volume limit for SA rekeying + unit: byte \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/vpn/fields/fields.yml b/packages/panw_metrics/data_stream/vpn/fields/fields.yml index 25dabfc4dcf..1dd86ced677 100644 --- a/packages/panw_metrics/data_stream/vpn/fields/fields.yml +++ b/packages/panw_metrics/data_stream/vpn/fields/fields.yml @@ -111,66 +111,4 @@ - name: total_previous_users type: long description: Total previous number of users connected to GlobalProtect - metric_type: gauge - - name: ipsec_tunnel - type: group - fields: - - name: id - type: keyword - dimension: true - description: ID of the IPsec tunnel - - name: name - type: keyword - dimension: true - description: Name of the IPsec tunnel - - name: gw - type: keyword - dimension: true - description: Gateway of the IPsec tunnel - - name: TSi_ip - type: ip - description: Traffic Selector Initiator IP. This is the local IP (0.0.0.0 means any IP address) - - name: TSi_prefix - type: keyword - description: Network prefix for the TSi IP, 0 means no specific network is defined. - - name: TSi_proto - type: keyword - description: Protocol associated with the TSi (0 means any protocol) - - name: TSi_port - type: long - description: Port number associated with TSi (0 means any port) - - name: TSr_ip - type: ip - description: Traffic Selector Responder IP. - - name: TSr_prefix - type: keyword - description: Network prefix for the TSr IP. Similar to TSi_prefix - - name: TSr_proto - type: keyword - description: TSr protocol of the IPsec tunnel - - name: TSr_port - type: long - description: TSr port of the IPsec tunnel - - name: proto - type: keyword - description: Protocol of the IPsec tunnel - - name: mode - type: keyword - description: This specifies the IPsec mode. e.g., 'tunl' - - name: dh - type: keyword - description: Diffie-Hellman group of the IPsec tunnel - - name: enc - type: keyword - description: Encryption algorithm of the IPsec tunnel - - name: hash - type: keyword - description: Hash algorithm of the IPsec tunnel - - name: life - type: long - description: The lifetime of the IPsec Security Association (SA) in seconds - unit: s - - name: kb - type: long - description: Traffic volume limit for SA rekeying - unit: byte + metric_type: gauge \ No newline at end of file diff --git a/packages/panw_metrics/docs/README.md b/packages/panw_metrics/docs/README.md index 1aceaa650db..d8058e862fc 100644 --- a/packages/panw_metrics/docs/README.md +++ b/packages/panw_metrics/docs/README.md @@ -354,6 +354,24 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | panw.routing.bgp.status_duration | Time in seconds since the current status was set | long | s | | | panw.routing.bgp.status_flap_counts | Indicates the number of times the BGP session has "flapped" or transitioned between up and down states | long | | counter | | panw.routing.bgp.virtual_router | The virtual router with which the BGP peer is associated | keyword | | | +| panw.routing.ipsec_tunnel.TSi_ip | Traffic Selector Initiator IP. This is the local IP (0.0.0.0 means any IP address) | ip | | | +| panw.routing.ipsec_tunnel.TSi_port | Port number associated with TSi (0 means any port) | long | | | +| panw.routing.ipsec_tunnel.TSi_prefix | Network prefix for the TSi IP, 0 means no specific network is defined. | keyword | | | +| panw.routing.ipsec_tunnel.TSi_proto | Protocol associated with the TSi (0 means any protocol) | keyword | | | +| panw.routing.ipsec_tunnel.TSr_ip | Traffic Selector Responder IP. | ip | | | +| panw.routing.ipsec_tunnel.TSr_port | TSr port of the IPsec tunnel | long | | | +| panw.routing.ipsec_tunnel.TSr_prefix | Network prefix for the TSr IP. Similar to TSi_prefix | keyword | | | +| panw.routing.ipsec_tunnel.TSr_proto | TSr protocol of the IPsec tunnel | keyword | | | +| panw.routing.ipsec_tunnel.dh | Diffie-Hellman group of the IPsec tunnel | keyword | | | +| panw.routing.ipsec_tunnel.enc | Encryption algorithm of the IPsec tunnel | keyword | | | +| panw.routing.ipsec_tunnel.gw | Gateway of the IPsec tunnel | keyword | | | +| panw.routing.ipsec_tunnel.hash | Hash algorithm of the IPsec tunnel | keyword | | | +| panw.routing.ipsec_tunnel.id | ID of the IPsec tunnel | keyword | | | +| panw.routing.ipsec_tunnel.kb | Traffic volume limit for SA rekeying | long | byte | | +| panw.routing.ipsec_tunnel.life | The lifetime of the IPsec Security Association (SA) in seconds | long | s | | +| panw.routing.ipsec_tunnel.mode | This specifies the IPsec mode. e.g., 'tunl' | keyword | | | +| panw.routing.ipsec_tunnel.name | Name of the IPsec tunnel | keyword | | | +| panw.routing.ipsec_tunnel.proto | Protocol of the IPsec tunnel | keyword | | | ### system @@ -702,21 +720,3 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | panw.vpn.globalprotect.session.vpn_type | Type of VPN used in the session | keyword | | | | panw.vpn.globalprotect.total_current_users | Total current number of users connected to GlobalProtect | long | | gauge | | panw.vpn.globalprotect.total_previous_users | Total previous number of users connected to GlobalProtect | long | | gauge | -| panw.vpn.ipsec_tunnel.TSi_ip | Traffic Selector Initiator IP. This is the local IP (0.0.0.0 means any IP address) | ip | | | -| panw.vpn.ipsec_tunnel.TSi_port | Port number associated with TSi (0 means any port) | long | | | -| panw.vpn.ipsec_tunnel.TSi_prefix | Network prefix for the TSi IP, 0 means no specific network is defined. | keyword | | | -| panw.vpn.ipsec_tunnel.TSi_proto | Protocol associated with the TSi (0 means any protocol) | keyword | | | -| panw.vpn.ipsec_tunnel.TSr_ip | Traffic Selector Responder IP. | ip | | | -| panw.vpn.ipsec_tunnel.TSr_port | TSr port of the IPsec tunnel | long | | | -| panw.vpn.ipsec_tunnel.TSr_prefix | Network prefix for the TSr IP. Similar to TSi_prefix | keyword | | | -| panw.vpn.ipsec_tunnel.TSr_proto | TSr protocol of the IPsec tunnel | keyword | | | -| panw.vpn.ipsec_tunnel.dh | Diffie-Hellman group of the IPsec tunnel | keyword | | | -| panw.vpn.ipsec_tunnel.enc | Encryption algorithm of the IPsec tunnel | keyword | | | -| panw.vpn.ipsec_tunnel.gw | Gateway of the IPsec tunnel | keyword | | | -| panw.vpn.ipsec_tunnel.hash | Hash algorithm of the IPsec tunnel | keyword | | | -| panw.vpn.ipsec_tunnel.id | ID of the IPsec tunnel | keyword | | | -| panw.vpn.ipsec_tunnel.kb | Traffic volume limit for SA rekeying | long | byte | | -| panw.vpn.ipsec_tunnel.life | The lifetime of the IPsec Security Association (SA) in seconds | long | s | | -| panw.vpn.ipsec_tunnel.mode | This specifies the IPsec mode. e.g., 'tunl' | keyword | | | -| panw.vpn.ipsec_tunnel.name | Name of the IPsec tunnel | keyword | | | -| panw.vpn.ipsec_tunnel.proto | Protocol of the IPsec tunnel | keyword | | | From 755e5b84c808d70d0ad22a109eac5d0425c4d07e Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Thu, 12 Sep 2024 15:12:54 +0300 Subject: [PATCH 15/50] add placeholder for configuration in docs --- packages/panw_metrics/_dev/build/docs/README.md | 2 ++ packages/panw_metrics/docs/README.md | 2 ++ 2 files changed, 4 insertions(+) diff --git a/packages/panw_metrics/_dev/build/docs/README.md b/packages/panw_metrics/_dev/build/docs/README.md index debe90b2bd7..1e3cccd9740 100644 --- a/packages/panw_metrics/_dev/build/docs/README.md +++ b/packages/panw_metrics/_dev/build/docs/README.md @@ -6,6 +6,8 @@ This integration periodically fetches metrics from [Palo Alto Networks](https:// The integration uses the [Pango](https://github.com/PaloAltoNetworks/pango) library to collect metrics from Palo Alto Networks firewalls. +## Configuration + ## Metrics ### interfaces diff --git a/packages/panw_metrics/docs/README.md b/packages/panw_metrics/docs/README.md index d8058e862fc..3e389a115b4 100644 --- a/packages/panw_metrics/docs/README.md +++ b/packages/panw_metrics/docs/README.md @@ -6,6 +6,8 @@ This integration periodically fetches metrics from [Palo Alto Networks](https:// The integration uses the [Pango](https://github.com/PaloAltoNetworks/pango) library to collect metrics from Palo Alto Networks firewalls. +## Configuration + ## Metrics ### interfaces From aaab4adda6bf20d340870cb06fc94ac06ffe3e61 Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Thu, 12 Sep 2024 15:19:59 +0300 Subject: [PATCH 16/50] update interfaces dataset docs --- packages/panw_metrics/_dev/build/docs/README.md | 2 +- packages/panw_metrics/docs/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/panw_metrics/_dev/build/docs/README.md b/packages/panw_metrics/_dev/build/docs/README.md index 1e3cccd9740..bdaa2ae4c3c 100644 --- a/packages/panw_metrics/_dev/build/docs/README.md +++ b/packages/panw_metrics/_dev/build/docs/README.md @@ -12,7 +12,7 @@ The integration uses the [Pango](https://github.com/PaloAltoNetworks/pango) libr ### interfaces -The `interfaces` dataset collects detailed network interface statistics from Palo Alto Networks firewalls. It provides information about interface status, traffic throughput, packet counts, error rates, and configuration details for physical, logical, and high-availability (HA) interfaces. +The `interfaces` dataset collects detailed network interface statistics from Palo Alto Networks firewalls. It provides information about interface status, traffic throughput, packet counts, error rates, and configuration details, including physical, logical, and high-availability (HA) interfaces. {{event "interfaces"}} diff --git a/packages/panw_metrics/docs/README.md b/packages/panw_metrics/docs/README.md index 3e389a115b4..704e0a6fce1 100644 --- a/packages/panw_metrics/docs/README.md +++ b/packages/panw_metrics/docs/README.md @@ -12,7 +12,7 @@ The integration uses the [Pango](https://github.com/PaloAltoNetworks/pango) libr ### interfaces -The `interfaces` dataset collects detailed network interface statistics from Palo Alto Networks firewalls. It provides information about interface status, traffic throughput, packet counts, error rates, and configuration details for physical, logical, and high-availability (HA) interfaces. +The `interfaces` dataset collects detailed network interface statistics from Palo Alto Networks firewalls. It provides information about interface status, traffic throughput, packet counts, error rates, and configuration details, including physical, logical, and high-availability (HA) interfaces. An example event for `interfaces` looks as following: From abdce3a563ca451be1a0827ac534bbf984e0036c Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Thu, 12 Sep 2024 15:42:45 +0300 Subject: [PATCH 17/50] move ipsec_tunnel metrics to routing in sample events --- .../data_stream/routing/fields/fields.yml | 2 +- .../data_stream/routing/sample_event.json | 20 ++++++++++ .../data_stream/vpn/fields/fields.yml | 2 +- .../data_stream/vpn/sample_event.json | 20 ---------- packages/panw_metrics/docs/README.md | 40 +++++++++---------- 5 files changed, 42 insertions(+), 42 deletions(-) diff --git a/packages/panw_metrics/data_stream/routing/fields/fields.yml b/packages/panw_metrics/data_stream/routing/fields/fields.yml index c5bdf88168e..de71f802483 100644 --- a/packages/panw_metrics/data_stream/routing/fields/fields.yml +++ b/packages/panw_metrics/data_stream/routing/fields/fields.yml @@ -195,4 +195,4 @@ - name: kb type: long description: Traffic volume limit for SA rekeying - unit: byte \ No newline at end of file + unit: byte diff --git a/packages/panw_metrics/data_stream/routing/sample_event.json b/packages/panw_metrics/data_stream/routing/sample_event.json index 9eab3f20aba..1890d7fcd7f 100644 --- a/packages/panw_metrics/data_stream/routing/sample_event.json +++ b/packages/panw_metrics/data_stream/routing/sample_event.json @@ -74,6 +74,26 @@ "last_update_age": 300, "status_flap_counts": 2, "established_counts": 10 + }, + "ipsec_tunnel": { + "id": "tunnel-001", + "name": "Site-A-to-Site-B", + "gw": "203.0.113.1", + "TSi_ip": "10.0.0.0", + "TSi_prefix": "24", + "TSi_proto": "any", + "TSi_port": 0, + "TSr_ip": "192.168.0.0", + "TSr_prefix": "24", + "TSr_proto": "any", + "TSr_port": 0, + "proto": "ESP", + "mode": "tunnel", + "dh": "group14", + "enc": "aes-256-cbc", + "hash": "sha256", + "life": 28800, + "kb": 102400 } } } diff --git a/packages/panw_metrics/data_stream/vpn/fields/fields.yml b/packages/panw_metrics/data_stream/vpn/fields/fields.yml index 1dd86ced677..8ce9dc24675 100644 --- a/packages/panw_metrics/data_stream/vpn/fields/fields.yml +++ b/packages/panw_metrics/data_stream/vpn/fields/fields.yml @@ -111,4 +111,4 @@ - name: total_previous_users type: long description: Total previous number of users connected to GlobalProtect - metric_type: gauge \ No newline at end of file + metric_type: gauge diff --git a/packages/panw_metrics/data_stream/vpn/sample_event.json b/packages/panw_metrics/data_stream/vpn/sample_event.json index d9b31d858df..525f7b1b23b 100644 --- a/packages/panw_metrics/data_stream/vpn/sample_event.json +++ b/packages/panw_metrics/data_stream/vpn/sample_event.json @@ -76,26 +76,6 @@ }, "total_current_users": 500, "total_previous_users": 480 - }, - "ipsec_tunnel": { - "id": "tunnel-001", - "name": "Site-A-to-Site-B", - "gw": "203.0.113.1", - "TSi_ip": "10.0.0.0", - "TSi_prefix": "24", - "TSi_proto": "any", - "TSi_port": 0, - "TSr_ip": "192.168.0.0", - "TSr_prefix": "24", - "TSr_proto": "any", - "TSr_port": 0, - "proto": "ESP", - "mode": "tunnel", - "dh": "group14", - "enc": "aes-256-cbc", - "hash": "sha256", - "life": 28800, - "kb": 102400 } } } diff --git a/packages/panw_metrics/docs/README.md b/packages/panw_metrics/docs/README.md index 704e0a6fce1..d6e8531f1ba 100644 --- a/packages/panw_metrics/docs/README.md +++ b/packages/panw_metrics/docs/README.md @@ -296,6 +296,26 @@ An example event for `routing` looks as following: "last_update_age": 300, "status_flap_counts": 2, "established_counts": 10 + }, + "ipsec_tunnel": { + "id": "tunnel-001", + "name": "Site-A-to-Site-B", + "gw": "203.0.113.1", + "TSi_ip": "10.0.0.0", + "TSi_prefix": "24", + "TSi_proto": "any", + "TSi_port": 0, + "TSr_ip": "192.168.0.0", + "TSr_prefix": "24", + "TSr_proto": "any", + "TSr_port": 0, + "proto": "ESP", + "mode": "tunnel", + "dh": "group14", + "enc": "aes-256-cbc", + "hash": "sha256", + "life": 28800, + "kb": 102400 } } } @@ -649,26 +669,6 @@ An example event for `vpn` looks as following: }, "total_current_users": 500, "total_previous_users": 480 - }, - "ipsec_tunnel": { - "id": "tunnel-001", - "name": "Site-A-to-Site-B", - "gw": "203.0.113.1", - "TSi_ip": "10.0.0.0", - "TSi_prefix": "24", - "TSi_proto": "any", - "TSi_port": 0, - "TSr_ip": "192.168.0.0", - "TSr_prefix": "24", - "TSr_proto": "any", - "TSr_port": 0, - "proto": "ESP", - "mode": "tunnel", - "dh": "group14", - "enc": "aes-256-cbc", - "hash": "sha256", - "life": 28800, - "kb": 102400 } } } From f8c814aaad3f4562e760bec34aec83be6e1715e6 Mon Sep 17 00:00:00 2001 From: dparkerelastic Date: Wed, 25 Sep 2024 13:56:03 -0400 Subject: [PATCH 18/50] version 1.0.0 and test push --- packages/panw_metrics/manifest.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/panw_metrics/manifest.yml b/packages/panw_metrics/manifest.yml index d46cdb275dd..5d213c8ec4f 100644 --- a/packages/panw_metrics/manifest.yml +++ b/packages/panw_metrics/manifest.yml @@ -1,7 +1,7 @@ format_version: 3.1.4 name: panw_metrics title: "Palo Alto Networks Metrics" -version: 0.0.1 +version: 1.0.0 description: "Collect metrics from Palo Alto Networks with Elastic Agent." type: integration categories: From 2fbba03d6a859c371d411692c71f0f08a5fcfd44 Mon Sep 17 00:00:00 2001 From: dparkerelastic Date: Wed, 25 Sep 2024 18:54:36 -0400 Subject: [PATCH 19/50] add fields --- .../panw_metrics/_dev/build/docs/README.md | 2 +- packages/panw_metrics/changelog.yml | 2 +- .../interfaces/agent/stream/stream.yml.hbs | 4 +- .../data_stream/interfaces/fields/fields.yml | 768 +++++++++++------- .../data_stream/interfaces/manifest.yml | 4 +- .../routing/agent/stream/stream.yml.hbs | 4 +- .../data_stream/routing/fields/fields.yml | 387 +++++---- .../data_stream/routing/manifest.yml | 4 +- .../system/agent/stream/stream.yml.hbs | 4 +- .../data_stream/system/fields/fields.yml | 662 ++++++++------- .../data_stream/system/manifest.yml | 4 +- .../vpn/agent/stream/stream.yml.hbs | 4 +- .../data_stream/vpn/fields/fields.yml | 261 +++--- .../panw_metrics/data_stream/vpn/manifest.yml | 4 +- packages/panw_metrics/docs/README.md | 547 ++++++------- packages/panw_metrics/manifest.yml | 5 +- 16 files changed, 1471 insertions(+), 1195 deletions(-) diff --git a/packages/panw_metrics/_dev/build/docs/README.md b/packages/panw_metrics/_dev/build/docs/README.md index bdaa2ae4c3c..e549ff88b63 100644 --- a/packages/panw_metrics/_dev/build/docs/README.md +++ b/packages/panw_metrics/_dev/build/docs/README.md @@ -7,7 +7,7 @@ This integration periodically fetches metrics from [Palo Alto Networks](https:// The integration uses the [Pango](https://github.com/PaloAltoNetworks/pango) library to collect metrics from Palo Alto Networks firewalls. ## Configuration - +The 1.0 release of this integration can be configured to work with one firewall: multiple firewalls in one integration policy is not supported, nor has it been tested with Panorama. To collect metrics from multiple firewalls with this release, create a separate a integration policy for each with the specific host ip of the firewall and api key. ## Metrics ### interfaces diff --git a/packages/panw_metrics/changelog.yml b/packages/panw_metrics/changelog.yml index 852fd63f81c..34856bc220a 100644 --- a/packages/panw_metrics/changelog.yml +++ b/packages/panw_metrics/changelog.yml @@ -1,5 +1,5 @@ # newer versions go on top -- version: "0.0.1" +- version: "1.0.0" changes: - description: Initial draft of the package type: enhancement diff --git a/packages/panw_metrics/data_stream/interfaces/agent/stream/stream.yml.hbs b/packages/panw_metrics/data_stream/interfaces/agent/stream/stream.yml.hbs index d46a320c7d0..6a8ccac8fa8 100644 --- a/packages/panw_metrics/data_stream/interfaces/agent/stream/stream.yml.hbs +++ b/packages/panw_metrics/data_stream/interfaces/agent/stream/stream.yml.hbs @@ -2,5 +2,5 @@ metricsets: ["interfaces"] period: {{period}} host_ip: {{host_ip}} port: {{port}} -apiKey: {{apiKey}} -apiDebugMode: {{apiDebugMode}} \ No newline at end of file +api_key: {{api_key}} +api_debug_mode: {{api_debug_mode}} \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/interfaces/fields/fields.yml b/packages/panw_metrics/data_stream/interfaces/fields/fields.yml index 90afbc9c8d2..6a051ec83d3 100644 --- a/packages/panw_metrics/data_stream/interfaces/fields/fields.yml +++ b/packages/panw_metrics/data_stream/interfaces/fields/fields.yml @@ -1,286 +1,486 @@ -- name: panw.interfaces +- name: interfaces type: group + description: > + interfaces + fields: - - name: physical - type: group - fields: - - name: name - type: keyword - dimension: true - description: Physical interface name - - name: id - type: keyword - dimension: true - description: Physical interface ID - - name: type - type: keyword - description: Physical interface type - - name: mac - type: keyword - description: Physical MAC address - - name: speed - type: keyword - description: Physical interface speed - - name: duplex - type: keyword - description: Duplex configuration, e.g., "full" or "half" - - name: state - type: keyword - description: Physical interface state, up or down - - name: mode - type: keyword - description: Physical interface mode, e.g., autoneg - - name: full_state - type: keyword - description: Physical full state, speed/duplex/state, e.g., "1000/full/up" - - name: ae_member - type: keyword - description: For aggregate interfaces, the array of member interfaces - - name: logical - type: group - fields: - - name: name - type: keyword - dimension: true - description: Logical interface name - - name: id - type: keyword - dimension: true - description: Logical interface ID - - name: tag - type: integer - description: VLAN tag associated with this interface - - name: vsys - type: integer - description: Virtual system to which this interface belongs - - name: zone - type: keyword - dimension: true - description: Logical zone, e.g., "inside" or "outside" - - name: fwd - type: keyword - description: Indicates if the interface is used for forwarding - - name: ip - type: ip - description: Logical IP Address with subnet mask, e.g., 111.222.333.10/29 - - name: addr - type: keyword - description: Used to store aditional static IP addresses - - name: dyn_addr - type: keyword - description: Dynamic addresses, e.g., generated by DHCP - - name: addr6 - type: keyword - description: Logical IPv6 address - - name: ha - type: group - fields: - - name: enabled - type: boolean - description: HA enabled - - name: mode - type: keyword - description: HA mode, e.g., "active-active" or "active-passive" - - name: running_sync - type: keyword - description: Indicates the sychronization status of the HA pair, e.g., "synchronized","not-synchronized","synchronizing" - - name: running_sync_enabled - type: boolean - description: Indicates if running configuration synchronization is enabled - - name: local_info - type: group - fields: - - name: version - type: long - description: HA configuration info version - - name: state - type: keyword - description: HA state of the local device, e.g., "active" or "passive" - - name: state_duration - type: long - description: Duration in milliseconds of the current state - unit: ms - - name: mgmt_ip - type: ip - description: HA local info management IP - - name: preemptive - type: boolean - description: Indicates whether the firewall is configured to preemptively take over as the active unit in an HA setup - - name: mode - type: keyword - description: HA mode, e.g., "active-active" or "active-passive" - - name: platform_model - type: keyword - dimension: true - description: Platform model of the local device - - name: state_sync - type: keyword - description: Status of HA synchronization, e.g., "complete" - - name: state_sync_type - type: keyword - description: Type of interface used for HA synchronization - - name: ha1_ipaddr - type: ip - description: IP Address of HA1 interface, used for heartbeat and management synchronization - - name: ha1_macaddr - type: keyword - description: HA local info HA1 MAC address - - name: ha1_port - type: keyword - description: Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha1" - - name: ha1_backup_ipaddr - type: ip - description: The backup IP address for the HA1 interface - - name: ha1_backup_macaddr - type: keyword - description: HA local info HA1 backup MAC address - - name: ha1_backup_port - type: keyword - description: HA local info HA1 backup port, e.g. "management" - - name: ha1_backup_gateway - type: ip - description: Default gateway for the backup HA1 interface - - name: ha2_ipaddr - type: ip - description: HA local info HA2 IP address - - name: ha2_macaddr - type: keyword - description: HA local info HA2 MAC address - - name: ha2_port - type: keyword - description: Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha2" - - name: build_rel - type: keyword - description: The PAN-OS software version running on the firewall - - name: url_version - type: keyword - description: The version of the URL filtering database - - name: app_version - type: keyword - description: The version of the application database - - name: iot_version - type: keyword - description: HA local info IoT database version - - name: av_version - type: keyword - description: The version of the antivirus database - - name: threat_version - type: keyword - description: HA local info threat version - - name: vpn_client_version - type: keyword - description: Version of the VPN client (if installed) - - name: gp_client_version - type: keyword - description: Version of the GlobalProtect client software - - name: peer_info - type: group - fields: - - name: conn_status - type: keyword - description: Overall status of the HA connections ("up" means all connections are operational) - - name: state - type: keyword - description: Current operational state of the peer firewall (passive means it is in standby mode and not handling traffic) - - name: state_duration - type: long - description: How long the peer has been in the current state - metric_type: gauge - unit: ms - - name: mgmt_ip - type: ip - description: Management IP address of the peer firewall - - name: preemptive - type: boolean - description: Indicates if preemption is enabled on the peer firewall - - name: mode - type: keyword - description: HA mode configured on the peer firewall, e.g. "Active-Passive" - - name: platform_model - type: keyword - dimension: true - description: Model of the peer firewall - - name: priority - type: long - description: HA priority value of the peer firewall - - name: ha1_ipaddr - type: ip - description: IP address of the HA1 interface on the peer - - name: ha1_macaddr - type: keyword - description: HA1 MAC address of the peer - - name: ha1_backup_ipaddr - type: ip - description: HA peer info HA1 backup IP address - - name: ha1_backup_macaddr - type: keyword - description: HA peer info HA1 backup MAC address - - name: ha2_ipaddr - type: ip - description: HA peer info HA2 IP address - - name: ha2_macaddr - type: keyword - description: HA peer info HA2 MAC address - - name: conn_ha1 - type: group - fields: - - name: status - type: keyword - description: Peer HA1 connection status, e.g., "up" - - name: primary - type: boolean - description: Specifies if the HA1 connection is primary - - name: description - type: keyword - description: Description of the connection type ,e.g., "heartbeat status" - - name: conn_ha2 - type: group - fields: - - name: status - type: keyword - description: HA peer info connection HA2 status - - name: primary - type: boolean - description: Specifies if the HA2 connection is primary - - name: description - type: keyword - description: HA peer info connection HA2 description - - name: conn_ha1_backup - type: group - fields: - - name: status - type: keyword - description: HA peer info connection HA1 backup status, e.g., "up" means it is operational - - name: description - type: keyword - description: HA peer info connection HA1 backup description - - name: link_monitoring - type: group - fields: - - name: enabled - type: boolean - description: Indicates if link monitoring is enabled - - name: failure_condition - type: keyword - description: Condition that triggers a link monitoring failure, e.g., "any" - - name: group - type: group - fields: - - name: name - type: keyword - description: Name of the link monitoring group - - name: enabled - type: boolean - description: Indicates if the link monitoring group is enabled - - name: failure_condition - type: keyword - description: Condition that triggers a failure in the link monitoring group - - name: interface - type: group - fields: - - name: name - type: keyword - description: Name of the interface in the link monitoring group - - name: status - type: keyword - description: Status of the interface in the link monitoring group + - name: physical.name + type: keyword + description: > + Physical interface name + + - name: physical.id + type: keyword + description: > + Physical interface ID + + - name: physical.type + type: keyword + description: > + Physical interface type (numeric value in source XML, string value sent to elasticsearch): + + 0: "Ethernet interface", + 1: "Aggregate Ethernet (AE) interface", + 2: "High Availability (HA) interface", + 3: "VLAN interface", + 5: "Loopback interface", + 6: "Tunnel interface", + 10: "SD-WAN interface", + - name: physical.mac + type: keyword + description: > + Physical MAC address + + - name: physical.speed + type: keyword + description: > + Physical interface speed + + - name: physical.duplex + type: keyword + description: > + Duplex configuration, e.g., "full" or "half" + + - name: physical.state + type: keyword + description: > + Physical interface state: up/down + + - name: physical.mode + type: keyword + description: > + Physical interface mode, e.g., autoneg + + - name: physical.full_state + type: keyword + description: > + Physical full state, speed/duplex/state, e.g., "1000/full/up" + + - name: physical.ae_member + type: keyword + description: > + For aggregate interfaces, the array of member interfaces + + - name: logical.name + type: keyword + description: > + Logical interface name + + - name: logical.id + type: keyword + description: > + Logical interface ID + + - name: logical.tag + type: integer + description: > + VLAN tag associated with this interface + + - name: logical.vsys + type: integer + description: "Virtual system to which this interface belongs \n" + - name: logical.zone + type: keyword + description: > + Logical zone, e.g., "inside" or "outside" + + - name: logical.fwd + type: keyword + description: > + Indicates if the interface is used for forwarding + + - name: logical.ip + type: ip + description: > + Logical IP Address with subnet mask, e.g., 111.222.333.10/29 + + - name: logical.addr + type: keyword + description: > + Used to store additional static IP addresses + + - name: logical.dyn_addr + type: keyword + description: > + Dynamic addresses, e.g., generated by DHCP + + - name: logical.addr6 + type: keyword + description: "Logical IPv6 address \n" + # HA Interface fields + - name: ha.enabled + type: boolean + description: > + HA enabled + + - name: ha.mode + type: keyword + description: > + HA mode, e.g., "active-active" or "active-passive" + + - name: ha.running_sync + type: keyword + description: > + Indicates the sychronization status of the HA pair, e.g., "synchronized","not-synchronized","synchronizing" + + - name: ha.running_sync_enabled + type: boolean + description: > + Indicates if running configuration synchronization is enabled + + - name: ha.local_info.version + type: long + description: > + HA configuration info version + + - name: ha.local_info.state + type: keyword + description: > + HA state of the local device, e.g., "active" or "passive" + + - name: ha.local_info.state_duration.sec + type: long + description: > + Duration in seconds of the current state + + - name: ha.local_info.mgmt_ip + type: ip + description: > + HA local info management IP + + - name: ha.local_info.preemptive + type: boolean + description: > + Indicates whether the firewall is configured to preemptively take over as the active unit in an HA setup + + - name: ha.local_info.mode + type: keyword + description: > + HA mode, e.g., "active-active" or "active-passive" + + - name: ha.local_info.platform_model + type: keyword + description: > + Platform model of the local device + + - name: ha.local_info.state_sync + type: keyword + description: > + Status of HA synchronization, e.g., "complete" + + - name: ha.local_info.state_sync_type + type: keyword + description: > + Type of interface used for HA synchronization + + - name: ha.local_info.ha1_ipaddr + type: ip + description: > + IP Address of HA1 interface, used for heartbeat and management synchronization + + - name: ha.local_info.ha1_macaddr + type: keyword + description: > + HA local info HA1 MAC address + + - name: ha.local_info.ha1_port + type: keyword + description: > + Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha1" + + - name: ha.local_info.ha1_backup_ipaddr + type: ip + description: > + The backup IP address for the HA1 interface + + - name: ha.local_info.ha1_backup_macaddr + type: keyword + description: > + HA local info HA1 backup MAC address + + - name: ha.local_info.ha1_backup_port + type: keyword + description: > + HA local info HA1 backup port, e.g. "management" + + - name: ha.local_info.ha1_backup_gateway + type: ip + description: "Default gateway for the backup HA1 interface \n" + - name: ha.local_info.ha2_ipaddr + type: ip + description: > + HA local info HA2 IP address + + - name: ha.local_info.ha2_macaddr + type: keyword + description: > + HA local info HA2 MAC address + + - name: ha.local_info.ha2_port + type: keyword + description: > + Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha2" + + - name: ha.local_info.build_rel + type: keyword + description: "The PAN-OS software version running on the firewall \n" + - name: ha.local_info.url_version + type: keyword + description: "The version of the URL filtering database \n" + - name: ha.local_info.app_version + type: keyword + description: "The version of the application database \n" + - name: ha.local_info.iot_version + type: keyword + description: > + HA local info IoT database version + + - name: ha.local_info.av_version + type: keyword + description: > + The version of the antivirus database + + - name: ha.local_info.threat_version + type: keyword + description: > + HA local info threat version + + - name: ha.local_info.vpn_client_version + type: keyword + description: > + Version of the VPN client (if installed) + + - name: ha.local_info.gp_client_version + type: keyword + description: "Version of the GlobalProtect client software \n" + - name: ha.peer_info.conn_status + type: keyword + description: > + Overall status of the HA connections ("up" means all connections are operational) + + - name: ha.peer_info.state + type: keyword + description: > + Current operational state of the peer firewall (passive means it is in standby mode and not handling traffic) + + - name: ha.peer_info.state_duration.sec + type: long + description: > + How long the peer has been in the current state in seconds + + - name: ha.peer_info.mgmt_ip + type: ip + description: > + Management IP address of the peer firewall + + - name: ha.peer_info.preemptive + type: boolean + description: > + Indicates if preemption is enabled on the peer firewall + + - name: ha.peer_info.mode + type: keyword + description: > + HA mode configured on the peer firewall, e.g. "Active-Passive" + + - name: ha.peer_info.platform_model + type: keyword + description: "Model of the peer firewall \n" + - name: ha.peer_info.priority + type: long + description: > + HA priority value of the peer firewall + + - name: ha.peer_info.ha1_ipaddr + type: ip + description: > + IP address of the HA1 interface on the peer + + - name: ha.peer_info.ha1_macaddr + type: keyword + description: > + HA1 MAC address of the peer + + - name: ha.peer_info.ha1_backup_ipaddr + type: ip + description: > + HA peer info HA1 backup IP address + + - name: ha.peer_info.ha1_backup_macaddr + type: keyword + description: > + HA peer info HA1 backup MAC address + + - name: ha.peer_info.ha2_ipaddr + type: ip + description: > + HA peer info HA2 IP address + + - name: ha.peer_info.ha2_macaddr + type: keyword + description: > + HA peer info HA2 MAC address + + - name: ha.peer_info.conn_ha1.status + type: keyword + description: > + Peer HA1 connection status, e.g., "up" + + - name: ha.peer_info.conn_ha1.primary + type: boolean + description: > + Specifies if the HA1 connection is primary + + - name: ha.peer_info.conn_ha1.description + type: keyword + description: > + Description of the connection type ,e.g., "heartbeat status" + + - name: ha.peer_info.conn_ha2.status + type: keyword + description: > + HA peer info connection HA2 status + + - name: ha.peer_info.conn_ha2.primary + type: boolean + description: > + Specifies if the HA2 connection is primary + + - name: ha.peer_info.conn_ha2.description + type: keyword + description: > + HA peer info connection HA2 description + + - name: ha.peer_info.conn_ha1_backup.status + type: keyword + description: > + HA peer info connection HA1 backup status, e.g., "up" means it is operational + + - name: ha.peer_info.conn_ha1_backup.description + type: keyword + description: > + HA peer info connection HA1 backup description + + - name: ha.link_monitoring.enabled + type: boolean + description: > + Indicates if link monitoring is enabled + + - name: ha.link_monitoring.failure_condition + type: keyword + description: > + Condition that triggers a link monitoring failure, e.g., "any" + + - name: ha.link_monitoring.group.name + type: keyword + description: > + Name of the link monitoring group + + - name: ha.link_monitoring.group.enabled + type: boolean + description: > + Indicates if the link monitoring group is enabled + + - name: ha.link_monitoring.group.failure_condition + type: keyword + description: > + Condition that triggers a failure in the link monitoring group + + - name: ha.link_monitoring.group.interface.name + type: keyword + description: > + Name of the interface in the link monitoring group + + - name: ha.link_monitoring.group.interface.status + type: keyword + description: > + Status of the interface in the link monitoring group + + - name: ipsec_tunnel.id + type: keyword + description: > + ID of the IPsec tunnel + + - name: ipsec_tunnel.name + type: keyword + description: > + Name of the IPsec tunnel + + - name: ipsec_tunnel.gw + type: keyword + description: > + Gateway of the IPsec tunnel + + - name: ipsec_tunnel.TSi_ip + type: ip + description: > + Traffic Selector Initiator IP. This is the local IP (0.0.0.0 means any IP address) + + - name: ipsec_tunnel.TSi_prefix + type: keyword + description: > + Network prefix for the TSi IP, 0 means no specific network is defined. + + - name: ipsec_tunnel.TSi_proto + type: keyword + description: > + Protocol associated with the TSi (0 means any protocol) + + - name: ipsec_tunnel.TSi_port + type: long + description: > + Port number associated with TSi (0 means any port) + + - name: ipsec_tunnel.TSr_ip + type: ip + description: > + Traffic Selector Responder IP. + + - name: ipsec_tunnel.TSr_prefix + type: keyword + description: > + Network prefix for the TSr IP. Similar to TSi_prefix + + - name: ipsec_tunnel.TSr_proto + type: keyword + description: > + TSr protocol of the IPsec tunnel + + - name: ipsec_tunnel.TSr_port + type: long + description: > + TSr port of the IPsec tunnel + + - name: ipsec_tunnel.proto + type: keyword + description: > + Protocol of the IPsec tunnel + + - name: ipsec_tunnel.mode + type: keyword + description: > + This specifies the IPsec mode. e.g., 'tunl' + + - name: ipsec_tunnel.dh + type: keyword + description: > + Diffie-Hellman group of the IPsec tunnel + + - name: ipsec_tunnel.enc + type: keyword + description: > + Encryption algorithm of the IPsec tunnel + + - name: ipsec_tunnel.hash + type: keyword + description: > + Hash algorithm of the IPsec tunnel + + - name: ipsec_tunnel.life.sec + type: long + description: > + The lifetime of the IPsec Security Association (SA) in seconds + + - name: ipsec_tunnel.kb + type: long + description: "Traffic volume limit for SA rekeying " diff --git a/packages/panw_metrics/data_stream/interfaces/manifest.yml b/packages/panw_metrics/data_stream/interfaces/manifest.yml index a9b84762693..23656e45b71 100644 --- a/packages/panw_metrics/data_stream/interfaces/manifest.yml +++ b/packages/panw_metrics/data_stream/interfaces/manifest.yml @@ -26,14 +26,14 @@ streams: multi: false required: false show_user: true - - name: apiKey + - name: api_key type: text title: API Key secret: true multi: false required: true show_user: true - - name: apiDebugMode + - name: api_debug_mode type: bool title: Debug Mode default: false diff --git a/packages/panw_metrics/data_stream/routing/agent/stream/stream.yml.hbs b/packages/panw_metrics/data_stream/routing/agent/stream/stream.yml.hbs index 8a82f4e193f..6aa4aa06c85 100644 --- a/packages/panw_metrics/data_stream/routing/agent/stream/stream.yml.hbs +++ b/packages/panw_metrics/data_stream/routing/agent/stream/stream.yml.hbs @@ -2,5 +2,5 @@ metricsets: ["routing"] period: {{period}} host_ip: {{host_ip}} port: {{port}} -apiKey: {{apiKey}} -apiDebugMode: {{apiDebugMode}} \ No newline at end of file +api_key: {{api_key}} +api_debug_mode: {{api_debug_mode}} \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/routing/fields/fields.yml b/packages/panw_metrics/data_stream/routing/fields/fields.yml index de71f802483..3207af61b18 100644 --- a/packages/panw_metrics/data_stream/routing/fields/fields.yml +++ b/packages/panw_metrics/data_stream/routing/fields/fields.yml @@ -1,198 +1,193 @@ -- name: panw.routing +- name: routing type: group + description: > + routing + fields: - - name: bgp - type: group - fields: - - name: peer_name - type: keyword - dimension: true - description: The name of the current peer in the BGP peer group - - name: virtual_router - type: keyword - dimension: true - description: The virtual router with which the BGP peer is associated - - name: peer_group - type: keyword - dimension: true - description: The name of the BGP peer group this peer belongs to - - name: peer_router_id - type: ip - description: BGP peer router ID - - name: remote_as_asn - type: long - description: The remote Autonomous System (AS) number of the peer - - name: status - type: keyword - description: The BGP session status, e.g., "Established" means the session is up and running - - name: status_duration - type: long - description: Time in seconds since the current status was set - unit: s - - name: password_set - type: boolean - description: Indicates whether a password is set for the BGP peer - - name: passive - type: boolean - description: Indicates if the BGP peer is in passive mode, if yes then router will not initiate a connection to the peer - - name: multi_hop_ttl - type: long - description: Time to Live (TTL) value for multi-hop BGP sessions. - - name: peer_address - type: keyword - dimension: true - description: IP address and port of the peer - - name: local_address - type: keyword - dimension: true - description: Local address and port used for BGP connection - - name: reflector_client - type: keyword - description: Indicates if the BGP peer is a route reflector client - - name: same_confederation - type: boolean - description: Peers in the same confederation exchange routes using internal BGP (iBGP) instead of external BGP (eBGP) - - name: aggregate_confed_as - type: boolean - description: Indicates that Autonomous System (AS) aggregation is enabled for the confederation - - name: peering_type - type: keyword - dimension: true - description: Defines the type of relationship between peers, e.g., "External BGP", "Internal BGP", or "Unspecified" - - name: connect_retry_interval - type: long - description: The interval (in seconds) between connection retries - unit: s - - name: open_delay - type: long - description: Delay before sending an Open message (in seconds) - unit: s - - name: idle_hold - type: long - description: The idle hold time (in seconds) before retrying a connection after failure - unit: s - - name: prefix_limit - type: long - description: The maximum number of prefixes that can be received from the peer (0 = no limit) - - name: holdtime - type: long - description: Time in seconds that the BGP peer will wait for a keepalive message, negotiated between peers - unit: s - - name: holdtime_config - type: long - description: Represents the locally configured hold time on this peer - unit: s - - name: keepalive - type: long - description: The interval (in seconds) at which BGP keepalive messages are sent, negotiated between peers - unit: s - - name: keepalive_config - type: long - description: The keepalive configured on this peer - unit: s - - name: msg_update_in - type: long - description: The number of BGP UPDATE messages received by the router from this peer - metric_type: counter - - name: msg_update_out - type: long - description: the number of BGP UPDATE messages sent from the local router to the peer - metric_type: counter - - name: msg_total_in - type: long - description: Total of all messages received from the peer - metric_type: counter - - name: msg_total_out - type: long - description: Total of all messages sent to the peer - metric_type: counter - - name: last_update_age - type: long - description: Time in seconds since the last update message was received from the peer - unit: s - - name: last_error - type: keyword - description: The last BGP error message received from the peer - - name: status_flap_counts - type: long - description: Indicates the number of times the BGP session has "flapped" or transitioned between up and down states - metric_type: counter - - name: established_counts - type: long - description: Number of times the BGP session has successfully transitioned to the "Established" state - metric_type: counter - - name: orf_entry_received - type: long - description: Number of ORF (Outbound Route Filtering) entries received from the peer - metric_type: gauge - - name: nexthop_self - type: boolean - description: Whether the router is configured to use itself as the next-hop for routes sent to this peer - - name: nexthop_thirdparty - type: boolean - description: Third-party next-hop feature is enabled - - name: nexthop_peer - type: boolean - description: Indicates whether the peer is being used as the next-hop for the routes received from this peer - - name: ipsec_tunnel - type: group - fields: - - name: id - type: keyword - dimension: true - description: ID of the IPsec tunnel - - name: name - type: keyword - dimension: true - description: Name of the IPsec tunnel - - name: gw - type: keyword - dimension: true - description: Gateway of the IPsec tunnel - - name: TSi_ip - type: ip - description: Traffic Selector Initiator IP. This is the local IP (0.0.0.0 means any IP address) - - name: TSi_prefix - type: keyword - description: Network prefix for the TSi IP, 0 means no specific network is defined. - - name: TSi_proto - type: keyword - description: Protocol associated with the TSi (0 means any protocol) - - name: TSi_port - type: long - description: Port number associated with TSi (0 means any port) - - name: TSr_ip - type: ip - description: Traffic Selector Responder IP. - - name: TSr_prefix - type: keyword - description: Network prefix for the TSr IP. Similar to TSi_prefix - - name: TSr_proto - type: keyword - description: TSr protocol of the IPsec tunnel - - name: TSr_port - type: long - description: TSr port of the IPsec tunnel - - name: proto - type: keyword - description: Protocol of the IPsec tunnel - - name: mode - type: keyword - description: This specifies the IPsec mode. e.g., 'tunl' - - name: dh - type: keyword - description: Diffie-Hellman group of the IPsec tunnel - - name: enc - type: keyword - description: Encryption algorithm of the IPsec tunnel - - name: hash - type: keyword - description: Hash algorithm of the IPsec tunnel - - name: life - type: long - description: The lifetime of the IPsec Security Association (SA) in seconds - unit: s - - name: kb - type: long - description: Traffic volume limit for SA rekeying - unit: byte + - name: bgp.peer_name + type: keyword + description: > + The name of the current peer in the BGP peer group + + - name: bgp.virtual_router + type: keyword + description: > + The virtual router with which the BGP peer is associated + + - name: bgp.peer_group + type: keyword + description: > + The name of the BGP peer group this peer belongs to + + - name: bgp.peer_router_id + type: ip + description: > + BGP peer router ID + + - name: bgp.remote_as_asn + type: long + description: > + The remote Autonomous System (AS) number of the peer + + - name: bgp.status + type: keyword + description: > + The BGP session status, e.g., "Established" means the session is up and running + + - name: bgp.status_duration.sec + type: long + description: > + Time in seconds since the current status was set + + - name: bgp.password_set + type: boolean + description: > + Indicates whether a password is set for the BGP peer + + - name: bgp.passive + type: boolean + description: > + Indicates if the BGP peer is in passive mode: if yes then router will not initiate a connection to the peer + + - name: bgp.multi_hop_ttl + type: long + description: > + Time to Live (TTL) value for multi-hop BGP sessions. Units are the number of hops. + + - name: bgp.peer_ip + type: ip + description: > + IP address of the peer + + - name: bgp.peer_port + type: long + description: > + Port number of the peer + + - name: bgp.local_ip + type: ip + description: > + Local ip address used for BGP connection + + - name: bgp.local_port + type: long + description: "Local port number used for BGP connection \n" + - name: bgp.reflector_client + type: keyword + description: > + Specifies the BGP peer relationship to route reflectors, e.g. "client", "not-client", "meshed-client" + + - name: bgp.same_confederation + type: boolean + description: > + Peers in the same confederation exchange routes using internal BGP (iBGP) instead of external BGP (eBGP) + + - name: bgp.aggregate_confed_as + type: boolean + description: > + Indicates that Autonomous System (AS) aggregation is enabled for the confederation + + - name: bgp.peering_type + type: keyword + description: > + Defines the type of relationship between peers, e.g., "External BGP", "Internal BGP", or "Unspecified" + + - name: bgp.connect_retry_interval.sec + type: long + description: > + The interval (in seconds) between connection retries + + - name: bgp.open_delay.sec + type: long + description: > + Delay before sending an Open message (in seconds) + + - name: bgp.idle_hold.sec + type: long + description: > + The idle hold time (in seconds) before retrying a connection after failure + + - name: bgp.prefix_limit + type: long + description: > + The maximum number of prefixes that can be received from the peer (0 = no limit) + + - name: bgp.holdtime.sec + type: long + description: > + Time in seconds that the BGP peer will wait for a keepalive message, negotiated between peers + + - name: bgp.holdtime_config.sec + type: long + description: > + Represents the locally configured hold time on this peer (in seconds) + + - name: bgp.keepalive.sec + type: long + description: > + The interval (in seconds) at which BGP keepalive messages are sent, negotiated between peers + + - name: bgp.keepalive_config.sec + type: long + description: > + The keepalive configured on this peer + + - name: bgp.msg_update_in.count + type: long + description: > + The number of BGP UPDATE messages received by the router from this peer + + - name: bgp.msg_update_out.count + type: long + description: > + the number of BGP UPDATE messages sent from the local router to the peer + + - name: bgp.msg_total_in.count + type: long + description: > + Total of all messages received from the peer + + - name: bgp.msg_total_out.count + type: long + description: > + Total of all messages sent to the peer + + - name: bgp.last_update_age.sec + type: long + description: > + Time in seconds since the last update message was received from the peer + + - name: bgp.last_error + type: keyword + description: > + The last BGP error message received from the peer + + - name: bgp.status_flap_counts + type: long + description: > + Indicates the number of times the BGP session has "flapped" or transitioned between up and down states + + - name: bgp.established_counts + type: long + description: > + Number of times the BGP session has successfully transitioned to the "Established" state + + - name: bgp.orf_entry_received + type: long + description: > + Number of ORF (Outbound Route Filtering) entries received from the peer + + - name: bgp.nexthop_self + type: boolean + description: > + Whether the router is configured to use itself as the next-hop for routes sent to this peer + + - name: bgp.nexthop_thirdparty + type: boolean + description: > + Third-party next-hop feature is enabled + + - name: bgp.nexthop_peer + type: boolean + description: >- + Indicates whether the peer is being used as the next-hop for the routes received from this peer diff --git a/packages/panw_metrics/data_stream/routing/manifest.yml b/packages/panw_metrics/data_stream/routing/manifest.yml index f79f70a450e..ad965338926 100644 --- a/packages/panw_metrics/data_stream/routing/manifest.yml +++ b/packages/panw_metrics/data_stream/routing/manifest.yml @@ -26,14 +26,14 @@ streams: multi: false required: false show_user: true - - name: apiKey + - name: api_key type: text title: API Key secret: true multi: false required: true show_user: true - - name: apiDebugMode + - name: api_debug_mode type: bool title: Debug Mode default: false diff --git a/packages/panw_metrics/data_stream/system/agent/stream/stream.yml.hbs b/packages/panw_metrics/data_stream/system/agent/stream/stream.yml.hbs index cd64e94f377..63abca94897 100644 --- a/packages/panw_metrics/data_stream/system/agent/stream/stream.yml.hbs +++ b/packages/panw_metrics/data_stream/system/agent/stream/stream.yml.hbs @@ -2,5 +2,5 @@ metricsets: ["system"] period: {{period}} host_ip: {{host_ip}} port: {{port}} -apiKey: {{apiKey}} -apiDebugMode: {{apiDebugMode}} \ No newline at end of file +api_key: {{api_key}} +api_debug_mode: {{api_debug_mode}} \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/system/fields/fields.yml b/packages/panw_metrics/data_stream/system/fields/fields.yml index ad92ec97dfd..ed4b5d83cc3 100644 --- a/packages/panw_metrics/data_stream/system/fields/fields.yml +++ b/packages/panw_metrics/data_stream/system/fields/fields.yml @@ -1,315 +1,355 @@ -- name: panw.system +- name: system type: group + description: > + system + fields: - - name: uptime - type: group - fields: - - name: days - type: integer - description: Uptime in days - unit: d - metric_type: gauge - - name: hours - type: integer - description: Hours component of uptime - unit: h - metric_type: gauge - - name: minutes - type: integer - description: Minutes component of uptime - unit: m - metric_type: gauge + - name: uptime.days + type: integer + description: > + Uptime in days + + - name: uptime.hours + type: integer + description: > + Hours component of uptime + + - name: uptime.minutes + type: integer + description: > + Minutes component of uptime + - name: user_count type: long - description: Number of users - metric_type: gauge - - name: load_average - type: group - fields: - - name: 1m - type: float - description: Load average in 1 minute - metric_type: gauge - - name: 5m - type: float - description: Load average in 5 minutes - metric_type: gauge - - name: 15m - type: float - description: Load average in 15 minutes - metric_type: gauge - - name: tasks - type: group - fields: - - name: total - type: long - description: Total number of tasks - metric_type: gauge - - name: running - type: long - description: Number of running tasks - metric_type: gauge - - name: sleeping - type: long - description: Number of sleeping tasks - metric_type: gauge - - name: stopped - type: long - description: Number of stopped tasks - metric_type: gauge - - name: zombie - type: long - description: Number of zombie tasks - metric_type: gauge - - name: cpu - type: group - fields: - - name: user - type: float - description: CPU usage by user processes - unit: percent - metric_type: gauge - - name: system - type: float - description: CPU usage by system processes - unit: percent - metric_type: gauge - - name: nice - type: float - description: CPU usage by processes with a positive nice value - unit: percent - metric_type: gauge - - name: idle - type: float - description: CPU idle time - unit: percent - metric_type: gauge - - name: wait - type: float - description: CPU wait time - unit: percent - metric_type: gauge - - name: hi - type: float - description: CPU hardware interrupts - unit: percent - metric_type: gauge - - name: system_int - type: float - description: CPU software interrupts - unit: percent - metric_type: gauge - - name: steal - type: float - description: CPU steal time - unit: percent - metric_type: gauge - - name: memory - type: group - fields: - - name: total - type: float - description: Total memory - unit: byte - metric_type: gauge - - name: free - type: float - description: Free memory - unit: byte - metric_type: gauge - - name: used - type: float - description: Used memory - unit: byte - metric_type: gauge - - name: buffer_cache - type: float - description: Memory used for buffers and cache - unit: byte - metric_type: gauge - - name: swap - type: group - fields: - - name: total - type: float - description: Total swap space - unit: byte - metric_type: gauge - - name: free - type: float - description: Free swap space - unit: byte - metric_type: gauge - - name: used - type: float - description: Used swap space - unit: byte - metric_type: gauge - - name: available - type: float - description: Available swap space - unit: byte - metric_type: gauge - - name: license - type: group - fields: - - name: feature - type: keyword - dimension: true - description: Feature licensed, e.g. Advanced Threat Prevention - - name: description - type: text - description: Description of the licensed feature - - name: serial - type: keyword - dimension: true - description: Serial number of license - - name: issued - type: date - description: Date the license was issued - - name: expires - type: keyword - description: Date the license expires, but this is a keyword because value might be "never" - - name: expired - type: boolean - description: Indicates if the license is expired - - name: auth_code - type: keyword - description: Authorization code to activate or install the license - - name: filesystem - type: group - fields: - - name: name - type: keyword - dimension: true - description: Filesystem name - - name: size - type: float - format: bytes - description: Total size of the filesystem - unit: byte - metric_type: gauge - - name: used - type: float - format: bytes - description: Amount used on the filesystem - unit: byte - metric_type: gauge - - name: available - type: float - format: bytes - description: Disk space available on the filesystem - unit: byte - metric_type: gauge - - name: use_percent - type: integer - format: percent - description: Percent of filesystem used - unit: percent - metric_type: gauge - - name: mounted - type: keyword - dimension: true - description: Filesystem mount point - - name: fan - type: group - fields: - - name: slot_number - type: integer - description: The number of the hardware slot - - name: description - type: keyword - description: The description of the fan - - name: alarm - type: boolean - description: Is there an alarm status of the fan - - name: rpm - type: integer - description: The speed of the fan in RPM - metric_type: gauge - - name: min_rpm - type: integer - metric_type: gauge - description: The minimum speed of the fan in RPM - - name: thermal - type: group - fields: - - name: slot_number - type: integer - description: Slot number field - - name: description - type: text - description: Description field - - name: alarm - type: boolean - description: Alarm field - - name: degrees_celsius - type: float - description: Degrees Celsius field - metric_type: gauge - - name: minimum_temp - type: float - metric_type: gauge - description: Minimum temperature field - - name: maximum_temp - type: float - metric_type: gauge - description: Maximum temperature field - - name: power - type: group - fields: - - name: slot_number - type: keyword - description: Slot number field - - name: description - type: text - description: Description field - - name: alarm - type: boolean - description: Indicates if alarm is active - - name: volts - type: float - description: Current Volts - metric_type: gauge - - name: minimum_volts - type: float - description: Minimum volts recorded - - name: maximum_volts - type: float - description: Maximum volts recorded - - name: certificate - type: group - fields: - - name: issuer - type: keyword - description: Issuer of the certificate database - - name: issuer_subject_hash - type: keyword - description: Subject hash of the issuer of the certificate database - - name: issuer_key_hash - type: keyword - description: Key hash of the issuer of the certificate database - - name: db_type - type: keyword - dimension: true - description: Type of the certificate database - - name: db_exp_date - type: keyword - description: Expiration date, format, 310329235959Z(Mar 29 23:59:59 2031 GMT) - - name: db_rev_date - type: keyword - description: Revision date of the certificate database - - name: db_serial_no - type: keyword - description: Serial number of the certificate database - - name: db_file - type: keyword - dimension: true - description: File name of the certificate database - - name: db_name - type: keyword - dimension: true - description: Name of the certificate database - - name: db_status - type: keyword - description: Status of the certificate database + description: > + Number of users + + - name: load_average.1m + type: float + description: > + Load average in 1 minute + + - name: load_average.5m + type: float + description: > + Load average in 5 minutes + + - name: load_average.15m + type: float + description: > + Load average in 15 minutes + + - name: tasks.total + type: long + description: > + Total number of tasks + + - name: tasks.running + type: long + description: > + Number of running tasks + + - name: tasks.sleeping + type: long + description: > + Number of sleeping tasks + + - name: tasks.stopped + type: long + description: > + Number of stopped tasks + + - name: tasks.zombie + type: long + description: > + Number of zombie tasks + + - name: cpu.user + type: float + description: > + CPU usage by user processes + + - name: cpu.system + type: float + description: > + CPU usage by system processes + + - name: cpu.nice + type: float + description: > + CPU usage by processes with a positive nice value + + - name: cpu.idle + type: float + description: > + CPU idle time + + - name: cpu.wait + type: float + description: > + CPU wait time + + - name: cpu.hi + type: float + description: > + CPU hardware interrupts + + - name: cpu.system_int + type: float + description: > + CPU software interrupts + + - name: cpu.steal + type: float + description: > + CPU steal time + + - name: memory.total + type: float + description: > + Total memory + + - name: memory.free + type: float + description: > + Free memory + + - name: memory.used + type: float + description: > + Used memory + + - name: memory.buffer_cache + type: float + description: > + Memory used for buffers and cache + + - name: swap.total + type: float + description: > + Total swap space + + - name: swap.free + type: float + description: > + Free swap space + + - name: swap.used + type: float + description: > + Used swap space + + - name: swap.available + type: float + description: > + Available swap space + + - name: license.feature + type: keyword + description: > + Feature licensed, e.g. Advanced Threat Prevention + + - name: license.description + type: text + description: > + Description of the licensed feature + + - name: license.serial + type: keyword + description: > + Serial number of license + + - name: license.issued + type: date + description: > + Date the license was issued + + - name: license.expires + type: date + description: > + Date the license expires - not set if license never expires + + - name: license.never_expires + type: boolean + description: > + Indicates if the license never expires + + - name: license.expired + type: boolean + description: > + Indicates if the license is expired + + - name: license.auth_code + type: keyword + description: > + Authorization code to activate or install the license + + - name: filesystem.name + type: keyword + description: > + Filesystem name + + - name: filesystem.size + type: float + format: bytes + description: > + Total size of the filesystem + + - name: filesystem.used + type: float + format: bytes + description: > + Amount used on the filesystem + + - name: filesystem.available + type: float + format: bytes + description: > + Disk space available on the filesystem + + - name: filesystem.use_percent + type: integer + format: percent + description: > + Percent of filesystem used + + - name: filesystem.mounted + type: keyword + description: > + Filesystem mount point + + - name: fan.slot_number + type: integer + description: > + The number of the hardware slot + + - name: fan.description + type: keyword + description: > + The description of the fan + + - name: fan.alarm + type: boolean + description: > + Is there an alarm status of the fan + + - name: fan.rpm + type: integer + description: > + The speed of the fan in RPM + + - name: fan.min_rpm + type: integer + description: > + The minimum speed of the fan in RPM + + - name: thermal.slot_number + type: integer + description: > + Slot number field + + - name: thermal.description + type: text + description: > + Description field + + - name: thermal.alarm + type: boolean + description: > + Alarm field + + - name: thermal.degrees_celsius + type: float + description: > + Degrees Celsius field + + - name: thermal.minimum_temp + type: float + description: > + Minimum temperature field + + - name: thermal.maximum_temp + type: float + description: > + Maximum temperature field + + - name: power.slot_number + type: integer + description: > + Slot number field + + - name: power.description + type: text + description: > + Description field + + - name: power.alarm + type: boolean + description: > + Indicates if alarm is active + + - name: power.volts + type: float + description: > + Current Volts + + - name: power.minimum_volts + type: float + description: > + Minimum volts recorded + + - name: power.maximum_volts + type: float + description: > + Maximum volts recorded + + - name: certificate.issuer + type: keyword + description: > + issuer field + + - name: certificate.issuer_subject_hash + type: keyword + description: > + issuer_subject_hash field + + - name: certificate.issuer_key_hash + type: keyword + description: > + issuer_key_hash field + + - name: certificate.db_type + type: keyword + description: > + db_type field + + - name: certificate.db_exp_date + type: keyword + description: > + expiration date, format: 310329235959Z(Mar 29 23:59:59 2031 GMT) + + - name: certificate.db_rev_date + type: keyword + description: > + db_rev_date field + + - name: certificate.db_serial_no + type: keyword + description: > + db_serial_no field + + - name: certificate.db_file + type: keyword + description: > + db_file field + + - name: certificate.db_name + type: keyword + description: > + db_name field + + - name: certificate.db_status + type: keyword + description: > + db_status field + diff --git a/packages/panw_metrics/data_stream/system/manifest.yml b/packages/panw_metrics/data_stream/system/manifest.yml index 84f6f9a3136..53f0126838b 100644 --- a/packages/panw_metrics/data_stream/system/manifest.yml +++ b/packages/panw_metrics/data_stream/system/manifest.yml @@ -26,14 +26,14 @@ streams: multi: false required: false show_user: true - - name: apiKey + - name: api_key type: text title: API Key secret: true multi: false required: true show_user: true - - name: apiDebugMode + - name: api_debug_mode type: bool title: Debug Mode default: false diff --git a/packages/panw_metrics/data_stream/vpn/agent/stream/stream.yml.hbs b/packages/panw_metrics/data_stream/vpn/agent/stream/stream.yml.hbs index 90116e96aba..347faa13b41 100644 --- a/packages/panw_metrics/data_stream/vpn/agent/stream/stream.yml.hbs +++ b/packages/panw_metrics/data_stream/vpn/agent/stream/stream.yml.hbs @@ -2,5 +2,5 @@ metricsets: ["vpn"] period: {{period}} host_ip: {{host_ip}} port: {{port}} -apiKey: {{apiKey}} -apiDebugMode: {{apiDebugMode}} \ No newline at end of file +api_key: {{api_key}} +api_debug_mode: {{api_debug_mode}} \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/vpn/fields/fields.yml b/packages/panw_metrics/data_stream/vpn/fields/fields.yml index 8ce9dc24675..f42cdad8753 100644 --- a/packages/panw_metrics/data_stream/vpn/fields/fields.yml +++ b/packages/panw_metrics/data_stream/vpn/fields/fields.yml @@ -1,114 +1,151 @@ -- name: panw.vpn +- name: vpn type: group + description: > + vpn + fields: - - name: globalprotect - type: group - fields: - - name: session - type: group - fields: - - name: domain - type: keyword - dimension: true - description: Domain of the GlobalProtect session - - name: is_local - type: boolean - description: Indicates if the session is local - - name: username - type: keyword - dimension: true - description: Username of the session - - name: primary_username - type: keyword - dimension: true - description: Primary username of the session - - name: region_for_config - type: keyword - dimension: true - description: Region for configuration - - name: source_region - type: keyword - dimension: true - description: Source region of the session - - name: computer - type: keyword - dimension: true - description: Computer name in the session - - name: client - type: keyword - dimension: true - description: Client information of the session - - name: vpn_type - type: keyword - dimension: true - description: Type of VPN used in the session - - name: host_id - type: keyword - dimension: true - description: Host ID of the session - - name: app_version - type: keyword - description: Application version used in the session - - name: virtual_ip - type: ip - description: Virtual IP address of the session - - name: virtual_ipv6 - type: ip - description: Virtual IPv6 address of the session - - name: public_ip - type: ip - description: Public IP address of the session - - name: public_ipv6 - type: ip - description: Public IPv6 address of the session - - name: tunnel_type - type: keyword - description: Type of tunnel used in the session - - name: public_connection_ipv6 - type: ip - description: Public connection IPv6 address of the session - - name: client_ip - type: ip - description: Client IP address of the session - - name: login_time - type: date - description: Login time of the session - - name: login_time_utc - type: date - description: Login time in UTC of the session - - name: lifetime - type: long - description: Lifetime of the session - unit: s - - name: request_login - type: keyword - description: Request login information of the session - - name: request_get_config - type: keyword - description: Request get configuration information of the session - - name: request_sslvpn_connect - type: keyword - description: Request SSL VPN connect information of the session - - name: gateway - type: group - fields: - - name: name - type: keyword - dimension: true - description: Name of the GlobalProtect gateway - - name: current_users - type: long - description: Current number of users connected to the GlobalProtect gateway - metric_type: gauge - - name: previous_users - type: long - description: Previous number of users connected to the GlobalProtect gateway - metric_type: gauge - - name: total_current_users - type: long - description: Total current number of users connected to GlobalProtect - metric_type: gauge - - name: total_previous_users - type: long - description: Total previous number of users connected to GlobalProtect - metric_type: gauge + - name: globalprotect.session.domain + type: keyword + description: > + Domain of the GlobalProtect session + + - name: globalprotect.session.is_local + type: boolean + description: > + Indicates if the session is local + + - name: globalprotect.session.username + type: keyword + description: > + Username of the session + + - name: globalprotect.session.primary_username + type: keyword + description: > + Primary username of the session + + - name: globalprotect.session.region_for_config + type: keyword + description: > + Region for configuration + + - name: globalprotect.session.source_region + type: keyword + description: > + Source region of the session + + - name: globalprotect.session.computer + type: keyword + description: > + Computer name in the session + + - name: globalprotect.session.client + type: keyword + description: > + Client information of the session + + - name: globalprotect.session.vpn_type + type: keyword + description: > + Type of VPN used in the session + + - name: globalprotect.session.host_id + type: keyword + description: > + Host ID of the session + + - name: globalprotect.session.app_version + type: keyword + description: > + Application version used in the session + + - name: globalprotect.session.virtual_ip + type: ip + description: > + Virtual IP address of the session + + - name: globalprotect.session.virtual_ipv6 + type: ip + description: > + Virtual IPv6 address of the session + + - name: globalprotect.session.public_ip + type: ip + description: > + Public IP address of the session + + - name: globalprotect.session.public_ipv6 + type: ip + description: > + Public IPv6 address of the session + + - name: globalprotect.session.tunnel_type + type: keyword + description: > + Type of tunnel used in the session + + - name: globalprotect.session.public_connection_ipv6 + type: ip + description: > + Public connection IPv6 address of the session + + - name: globalprotect.session.client_ip + type: ip + description: > + Client IP address of the session + + - name: globalprotect.session.login_time + type: date + description: > + Login time of the session + + - name: globalprotect.session.login_time_utc + type: date + description: > + Login time in UTC of the session + + - name: globalprotect.session.lifetime + type: long + description: > + Lifetime of the session + + - name: globalprotect.session.request_login + type: keyword + description: > + Request login information of the session + + - name: globalprotect.session.request_get_config + type: keyword + description: > + Request get configuration information of the session + + - name: globalprotect.session.request_sslvpn_connect + type: keyword + description: > + Request SSL VPN connect information of the session + + - name: globalprotect.gateway.name + type: keyword + description: > + Name of the GlobalProtect gateway + + - name: globalprotect.gateway.current_users + type: long + description: > + Current number of users connected to the GlobalProtect gateway + + - name: globalprotect.gateway.previous_users + type: long + description: > + Previous number of users connected to the GlobalProtect gateway + + - name: globalprotect.total_current_users + type: long + description: > + Total current number of users connected to GlobalProtect gateway + + - name: globalprotect.total_previous_users + type: long + description: > + Total previous number of users connected to GlobalProtect gateway + diff --git a/packages/panw_metrics/data_stream/vpn/manifest.yml b/packages/panw_metrics/data_stream/vpn/manifest.yml index 6012cf9ae9c..487db889d29 100644 --- a/packages/panw_metrics/data_stream/vpn/manifest.yml +++ b/packages/panw_metrics/data_stream/vpn/manifest.yml @@ -26,14 +26,14 @@ streams: multi: false required: false show_user: true - - name: apiKey + - name: api_key type: text title: API Key secret: true multi: false required: true show_user: true - - name: apiDebugMode + - name: api_debug_mode type: bool title: Debug Mode default: false diff --git a/packages/panw_metrics/docs/README.md b/packages/panw_metrics/docs/README.md index d6e8531f1ba..0dd22858fe4 100644 --- a/packages/panw_metrics/docs/README.md +++ b/packages/panw_metrics/docs/README.md @@ -7,7 +7,7 @@ This integration periodically fetches metrics from [Palo Alto Networks](https:// The integration uses the [Pango](https://github.com/PaloAltoNetworks/pango) library to collect metrics from Palo Alto Networks firewalls. ## Configuration - +The 1.0 release of this integration can be configured to work with one firewall: multiple firewalls in one integration policy is not supported, nor has it been tested with Panorama. To collect metrics from multiple firewalls with this release, create a separate a integration policy for each with the specific host ip of the firewall and api key. ## Metrics ### interfaces @@ -121,96 +121,114 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur **Exported fields** -| Field | Description | Type | Unit | Metric Type | -|---|---|---|---|---| -| @timestamp | Event timestamp. | date | | | -| cloud.image.id | Image ID for the cloud instance. | keyword | | | -| data_stream.dataset | Data stream dataset. | constant_keyword | | | -| data_stream.namespace | Data stream namespace. | constant_keyword | | | -| data_stream.type | Data stream type. | constant_keyword | | | -| host.containerized | If the host is a container. | boolean | | | -| host.os.build | OS build information. | keyword | | | -| host.os.codename | OS codename, if any. | keyword | | | -| panw.interfaces.ha.enabled | HA enabled | boolean | | | -| panw.interfaces.ha.link_monitoring.enabled | Indicates if link monitoring is enabled | boolean | | | -| panw.interfaces.ha.link_monitoring.failure_condition | Condition that triggers a link monitoring failure, e.g., "any" | keyword | | | -| panw.interfaces.ha.link_monitoring.group.enabled | Indicates if the link monitoring group is enabled | boolean | | | -| panw.interfaces.ha.link_monitoring.group.failure_condition | Condition that triggers a failure in the link monitoring group | keyword | | | -| panw.interfaces.ha.link_monitoring.group.interface.name | Name of the interface in the link monitoring group | keyword | | | -| panw.interfaces.ha.link_monitoring.group.interface.status | Status of the interface in the link monitoring group | keyword | | | -| panw.interfaces.ha.link_monitoring.group.name | Name of the link monitoring group | keyword | | | -| panw.interfaces.ha.local_info.app_version | The version of the application database | keyword | | | -| panw.interfaces.ha.local_info.av_version | The version of the antivirus database | keyword | | | -| panw.interfaces.ha.local_info.build_rel | The PAN-OS software version running on the firewall | keyword | | | -| panw.interfaces.ha.local_info.gp_client_version | Version of the GlobalProtect client software | keyword | | | -| panw.interfaces.ha.local_info.ha1_backup_gateway | Default gateway for the backup HA1 interface | ip | | | -| panw.interfaces.ha.local_info.ha1_backup_ipaddr | The backup IP address for the HA1 interface | ip | | | -| panw.interfaces.ha.local_info.ha1_backup_macaddr | HA local info HA1 backup MAC address | keyword | | | -| panw.interfaces.ha.local_info.ha1_backup_port | HA local info HA1 backup port, e.g. "management" | keyword | | | -| panw.interfaces.ha.local_info.ha1_ipaddr | IP Address of HA1 interface, used for heartbeat and management synchronization | ip | | | -| panw.interfaces.ha.local_info.ha1_macaddr | HA local info HA1 MAC address | keyword | | | -| panw.interfaces.ha.local_info.ha1_port | Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha1" | keyword | | | -| panw.interfaces.ha.local_info.ha2_ipaddr | HA local info HA2 IP address | ip | | | -| panw.interfaces.ha.local_info.ha2_macaddr | HA local info HA2 MAC address | keyword | | | -| panw.interfaces.ha.local_info.ha2_port | Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha2" | keyword | | | -| panw.interfaces.ha.local_info.iot_version | HA local info IoT database version | keyword | | | -| panw.interfaces.ha.local_info.mgmt_ip | HA local info management IP | ip | | | -| panw.interfaces.ha.local_info.mode | HA mode, e.g., "active-active" or "active-passive" | keyword | | | -| panw.interfaces.ha.local_info.platform_model | Platform model of the local device | keyword | | | -| panw.interfaces.ha.local_info.preemptive | Indicates whether the firewall is configured to preemptively take over as the active unit in an HA setup | boolean | | | -| panw.interfaces.ha.local_info.state | HA state of the local device, e.g., "active" or "passive" | keyword | | | -| panw.interfaces.ha.local_info.state_duration | Duration in milliseconds of the current state | long | ms | | -| panw.interfaces.ha.local_info.state_sync | Status of HA synchronization, e.g., "complete" | keyword | | | -| panw.interfaces.ha.local_info.state_sync_type | Type of interface used for HA synchronization | keyword | | | -| panw.interfaces.ha.local_info.threat_version | HA local info threat version | keyword | | | -| panw.interfaces.ha.local_info.url_version | The version of the URL filtering database | keyword | | | -| panw.interfaces.ha.local_info.version | HA configuration info version | long | | | -| panw.interfaces.ha.local_info.vpn_client_version | Version of the VPN client (if installed) | keyword | | | -| panw.interfaces.ha.mode | HA mode, e.g., "active-active" or "active-passive" | keyword | | | -| panw.interfaces.ha.peer_info.conn_ha1.description | Description of the connection type ,e.g., "heartbeat status" | keyword | | | -| panw.interfaces.ha.peer_info.conn_ha1.primary | Specifies if the HA1 connection is primary | boolean | | | -| panw.interfaces.ha.peer_info.conn_ha1.status | Peer HA1 connection status, e.g., "up" | keyword | | | -| panw.interfaces.ha.peer_info.conn_ha1_backup.description | HA peer info connection HA1 backup description | keyword | | | -| panw.interfaces.ha.peer_info.conn_ha1_backup.status | HA peer info connection HA1 backup status, e.g., "up" means it is operational | keyword | | | -| panw.interfaces.ha.peer_info.conn_ha2.description | HA peer info connection HA2 description | keyword | | | -| panw.interfaces.ha.peer_info.conn_ha2.primary | Specifies if the HA2 connection is primary | boolean | | | -| panw.interfaces.ha.peer_info.conn_ha2.status | HA peer info connection HA2 status | keyword | | | -| panw.interfaces.ha.peer_info.conn_status | Overall status of the HA connections ("up" means all connections are operational) | keyword | | | -| panw.interfaces.ha.peer_info.ha1_backup_ipaddr | HA peer info HA1 backup IP address | ip | | | -| panw.interfaces.ha.peer_info.ha1_backup_macaddr | HA peer info HA1 backup MAC address | keyword | | | -| panw.interfaces.ha.peer_info.ha1_ipaddr | IP address of the HA1 interface on the peer | ip | | | -| panw.interfaces.ha.peer_info.ha1_macaddr | HA1 MAC address of the peer | keyword | | | -| panw.interfaces.ha.peer_info.ha2_ipaddr | HA peer info HA2 IP address | ip | | | -| panw.interfaces.ha.peer_info.ha2_macaddr | HA peer info HA2 MAC address | keyword | | | -| panw.interfaces.ha.peer_info.mgmt_ip | Management IP address of the peer firewall | ip | | | -| panw.interfaces.ha.peer_info.mode | HA mode configured on the peer firewall, e.g. "Active-Passive" | keyword | | | -| panw.interfaces.ha.peer_info.platform_model | Model of the peer firewall | keyword | | | -| panw.interfaces.ha.peer_info.preemptive | Indicates if preemption is enabled on the peer firewall | boolean | | | -| panw.interfaces.ha.peer_info.priority | HA priority value of the peer firewall | long | | | -| panw.interfaces.ha.peer_info.state | Current operational state of the peer firewall (passive means it is in standby mode and not handling traffic) | keyword | | | -| panw.interfaces.ha.peer_info.state_duration | How long the peer has been in the current state | long | ms | gauge | -| panw.interfaces.ha.running_sync | Indicates the sychronization status of the HA pair, e.g., "synchronized","not-synchronized","synchronizing" | keyword | | | -| panw.interfaces.ha.running_sync_enabled | Indicates if running configuration synchronization is enabled | boolean | | | -| panw.interfaces.logical.addr | Used to store aditional static IP addresses | keyword | | | -| panw.interfaces.logical.addr6 | Logical IPv6 address | keyword | | | -| panw.interfaces.logical.dyn_addr | Dynamic addresses, e.g., generated by DHCP | keyword | | | -| panw.interfaces.logical.fwd | Indicates if the interface is used for forwarding | keyword | | | -| panw.interfaces.logical.id | Logical interface ID | keyword | | | -| panw.interfaces.logical.ip | Logical IP Address with subnet mask, e.g., 111.222.333.10/29 | ip | | | -| panw.interfaces.logical.name | Logical interface name | keyword | | | -| panw.interfaces.logical.tag | VLAN tag associated with this interface | integer | | | -| panw.interfaces.logical.vsys | Virtual system to which this interface belongs | integer | | | -| panw.interfaces.logical.zone | Logical zone, e.g., "inside" or "outside" | keyword | | | -| panw.interfaces.physical.ae_member | For aggregate interfaces, the array of member interfaces | keyword | | | -| panw.interfaces.physical.duplex | Duplex configuration, e.g., "full" or "half" | keyword | | | -| panw.interfaces.physical.full_state | Physical full state, speed/duplex/state, e.g., "1000/full/up" | keyword | | | -| panw.interfaces.physical.id | Physical interface ID | keyword | | | -| panw.interfaces.physical.mac | Physical MAC address | keyword | | | -| panw.interfaces.physical.mode | Physical interface mode, e.g., autoneg | keyword | | | -| panw.interfaces.physical.name | Physical interface name | keyword | | | -| panw.interfaces.physical.speed | Physical interface speed | keyword | | | -| panw.interfaces.physical.state | Physical interface state, up or down | keyword | | | -| panw.interfaces.physical.type | Physical interface type | keyword | | | +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| host.containerized | If the host is a container. | boolean | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| interfaces.ha.enabled | HA enabled | boolean | +| interfaces.ha.link_monitoring.enabled | Indicates if link monitoring is enabled | boolean | +| interfaces.ha.link_monitoring.failure_condition | Condition that triggers a link monitoring failure, e.g., "any" | keyword | +| interfaces.ha.link_monitoring.group.enabled | Indicates if the link monitoring group is enabled | boolean | +| interfaces.ha.link_monitoring.group.failure_condition | Condition that triggers a failure in the link monitoring group | keyword | +| interfaces.ha.link_monitoring.group.interface.name | Name of the interface in the link monitoring group | keyword | +| interfaces.ha.link_monitoring.group.interface.status | Status of the interface in the link monitoring group | keyword | +| interfaces.ha.link_monitoring.group.name | Name of the link monitoring group | keyword | +| interfaces.ha.local_info.app_version | The version of the application database | keyword | +| interfaces.ha.local_info.av_version | The version of the antivirus database | keyword | +| interfaces.ha.local_info.build_rel | The PAN-OS software version running on the firewall | keyword | +| interfaces.ha.local_info.gp_client_version | Version of the GlobalProtect client software | keyword | +| interfaces.ha.local_info.ha1_backup_gateway | Default gateway for the backup HA1 interface | ip | +| interfaces.ha.local_info.ha1_backup_ipaddr | The backup IP address for the HA1 interface | ip | +| interfaces.ha.local_info.ha1_backup_macaddr | HA local info HA1 backup MAC address | keyword | +| interfaces.ha.local_info.ha1_backup_port | HA local info HA1 backup port, e.g. "management" | keyword | +| interfaces.ha.local_info.ha1_ipaddr | IP Address of HA1 interface, used for heartbeat and management synchronization | ip | +| interfaces.ha.local_info.ha1_macaddr | HA local info HA1 MAC address | keyword | +| interfaces.ha.local_info.ha1_port | Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha1" | keyword | +| interfaces.ha.local_info.ha2_ipaddr | HA local info HA2 IP address | ip | +| interfaces.ha.local_info.ha2_macaddr | HA local info HA2 MAC address | keyword | +| interfaces.ha.local_info.ha2_port | Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha2" | keyword | +| interfaces.ha.local_info.iot_version | HA local info IoT database version | keyword | +| interfaces.ha.local_info.mgmt_ip | HA local info management IP | ip | +| interfaces.ha.local_info.mode | HA mode, e.g., "active-active" or "active-passive" | keyword | +| interfaces.ha.local_info.platform_model | Platform model of the local device | keyword | +| interfaces.ha.local_info.preemptive | Indicates whether the firewall is configured to preemptively take over as the active unit in an HA setup | boolean | +| interfaces.ha.local_info.state | HA state of the local device, e.g., "active" or "passive" | keyword | +| interfaces.ha.local_info.state_duration.sec | Duration in seconds of the current state | long | +| interfaces.ha.local_info.state_sync | Status of HA synchronization, e.g., "complete" | keyword | +| interfaces.ha.local_info.state_sync_type | Type of interface used for HA synchronization | keyword | +| interfaces.ha.local_info.threat_version | HA local info threat version | keyword | +| interfaces.ha.local_info.url_version | The version of the URL filtering database | keyword | +| interfaces.ha.local_info.version | HA configuration info version | long | +| interfaces.ha.local_info.vpn_client_version | Version of the VPN client (if installed) | keyword | +| interfaces.ha.mode | HA mode, e.g., "active-active" or "active-passive" | keyword | +| interfaces.ha.peer_info.conn_ha1.description | Description of the connection type ,e.g., "heartbeat status" | keyword | +| interfaces.ha.peer_info.conn_ha1.primary | Specifies if the HA1 connection is primary | boolean | +| interfaces.ha.peer_info.conn_ha1.status | Peer HA1 connection status, e.g., "up" | keyword | +| interfaces.ha.peer_info.conn_ha1_backup.description | HA peer info connection HA1 backup description | keyword | +| interfaces.ha.peer_info.conn_ha1_backup.status | HA peer info connection HA1 backup status, e.g., "up" means it is operational | keyword | +| interfaces.ha.peer_info.conn_ha2.description | HA peer info connection HA2 description | keyword | +| interfaces.ha.peer_info.conn_ha2.primary | Specifies if the HA2 connection is primary | boolean | +| interfaces.ha.peer_info.conn_ha2.status | HA peer info connection HA2 status | keyword | +| interfaces.ha.peer_info.conn_status | Overall status of the HA connections ("up" means all connections are operational) | keyword | +| interfaces.ha.peer_info.ha1_backup_ipaddr | HA peer info HA1 backup IP address | ip | +| interfaces.ha.peer_info.ha1_backup_macaddr | HA peer info HA1 backup MAC address | keyword | +| interfaces.ha.peer_info.ha1_ipaddr | IP address of the HA1 interface on the peer | ip | +| interfaces.ha.peer_info.ha1_macaddr | HA1 MAC address of the peer | keyword | +| interfaces.ha.peer_info.ha2_ipaddr | HA peer info HA2 IP address | ip | +| interfaces.ha.peer_info.ha2_macaddr | HA peer info HA2 MAC address | keyword | +| interfaces.ha.peer_info.mgmt_ip | Management IP address of the peer firewall | ip | +| interfaces.ha.peer_info.mode | HA mode configured on the peer firewall, e.g. "Active-Passive" | keyword | +| interfaces.ha.peer_info.platform_model | Model of the peer firewall | keyword | +| interfaces.ha.peer_info.preemptive | Indicates if preemption is enabled on the peer firewall | boolean | +| interfaces.ha.peer_info.priority | HA priority value of the peer firewall | long | +| interfaces.ha.peer_info.state | Current operational state of the peer firewall (passive means it is in standby mode and not handling traffic) | keyword | +| interfaces.ha.peer_info.state_duration.sec | How long the peer has been in the current state in seconds | long | +| interfaces.ha.running_sync | Indicates the sychronization status of the HA pair, e.g., "synchronized","not-synchronized","synchronizing" | keyword | +| interfaces.ha.running_sync_enabled | Indicates if running configuration synchronization is enabled | boolean | +| interfaces.ipsec_tunnel.TSi_ip | Traffic Selector Initiator IP. This is the local IP (0.0.0.0 means any IP address) | ip | +| interfaces.ipsec_tunnel.TSi_port | Port number associated with TSi (0 means any port) | long | +| interfaces.ipsec_tunnel.TSi_prefix | Network prefix for the TSi IP, 0 means no specific network is defined. | keyword | +| interfaces.ipsec_tunnel.TSi_proto | Protocol associated with the TSi (0 means any protocol) | keyword | +| interfaces.ipsec_tunnel.TSr_ip | Traffic Selector Responder IP. | ip | +| interfaces.ipsec_tunnel.TSr_port | TSr port of the IPsec tunnel | long | +| interfaces.ipsec_tunnel.TSr_prefix | Network prefix for the TSr IP. Similar to TSi_prefix | keyword | +| interfaces.ipsec_tunnel.TSr_proto | TSr protocol of the IPsec tunnel | keyword | +| interfaces.ipsec_tunnel.dh | Diffie-Hellman group of the IPsec tunnel | keyword | +| interfaces.ipsec_tunnel.enc | Encryption algorithm of the IPsec tunnel | keyword | +| interfaces.ipsec_tunnel.gw | Gateway of the IPsec tunnel | keyword | +| interfaces.ipsec_tunnel.hash | Hash algorithm of the IPsec tunnel | keyword | +| interfaces.ipsec_tunnel.id | ID of the IPsec tunnel | keyword | +| interfaces.ipsec_tunnel.kb | Traffic volume limit for SA rekeying | long | +| interfaces.ipsec_tunnel.life.sec | The lifetime of the IPsec Security Association (SA) in seconds | long | +| interfaces.ipsec_tunnel.mode | This specifies the IPsec mode. e.g., 'tunl' | keyword | +| interfaces.ipsec_tunnel.name | Name of the IPsec tunnel | keyword | +| interfaces.ipsec_tunnel.proto | Protocol of the IPsec tunnel | keyword | +| interfaces.logical.addr | Used to store additional static IP addresses | keyword | +| interfaces.logical.addr6 | Logical IPv6 address | keyword | +| interfaces.logical.dyn_addr | Dynamic addresses, e.g., generated by DHCP | keyword | +| interfaces.logical.fwd | Indicates if the interface is used for forwarding | keyword | +| interfaces.logical.id | Logical interface ID | keyword | +| interfaces.logical.ip | Logical IP Address with subnet mask, e.g., 111.222.333.10/29 | ip | +| interfaces.logical.name | Logical interface name | keyword | +| interfaces.logical.tag | VLAN tag associated with this interface | integer | +| interfaces.logical.vsys | Virtual system to which this interface belongs | integer | +| interfaces.logical.zone | Logical zone, e.g., "inside" or "outside" | keyword | +| interfaces.physical.ae_member | For aggregate interfaces, the array of member interfaces | keyword | +| interfaces.physical.duplex | Duplex configuration, e.g., "full" or "half" | keyword | +| interfaces.physical.full_state | Physical full state, speed/duplex/state, e.g., "1000/full/up" | keyword | +| interfaces.physical.id | Physical interface ID | keyword | +| interfaces.physical.mac | Physical MAC address | keyword | +| interfaces.physical.mode | Physical interface mode, e.g., autoneg | keyword | +| interfaces.physical.name | Physical interface name | keyword | +| interfaces.physical.speed | Physical interface speed | keyword | +| interfaces.physical.state | Physical interface state: up/down | keyword | +| interfaces.physical.type | Physical interface type (numeric value in source XML, string value sent to elasticsearch): 0: "Ethernet interface", 1: "Aggregate Ethernet (AE) interface", 2: "High Availability (HA) interface", 3: "VLAN interface", 5: "Loopback interface", 6: "Tunnel interface", 10: "SD-WAN interface", | keyword | ### routing @@ -330,70 +348,54 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur **Exported fields** -| Field | Description | Type | Unit | Metric Type | -|---|---|---|---|---| -| @timestamp | Event timestamp. | date | | | -| cloud.image.id | Image ID for the cloud instance. | keyword | | | -| data_stream.dataset | Data stream dataset. | constant_keyword | | | -| data_stream.namespace | Data stream namespace. | constant_keyword | | | -| data_stream.type | Data stream type. | constant_keyword | | | -| host.containerized | If the host is a container. | boolean | | | -| host.os.build | OS build information. | keyword | | | -| host.os.codename | OS codename, if any. | keyword | | | -| panw.routing.bgp.aggregate_confed_as | Indicates that Autonomous System (AS) aggregation is enabled for the confederation | boolean | | | -| panw.routing.bgp.connect_retry_interval | The interval (in seconds) between connection retries | long | s | | -| panw.routing.bgp.established_counts | Number of times the BGP session has successfully transitioned to the "Established" state | long | | counter | -| panw.routing.bgp.holdtime | Time in seconds that the BGP peer will wait for a keepalive message, negotiated between peers | long | s | | -| panw.routing.bgp.holdtime_config | Represents the locally configured hold time on this peer | long | s | | -| panw.routing.bgp.idle_hold | The idle hold time (in seconds) before retrying a connection after failure | long | s | | -| panw.routing.bgp.keepalive | The interval (in seconds) at which BGP keepalive messages are sent, negotiated between peers | long | s | | -| panw.routing.bgp.keepalive_config | The keepalive configured on this peer | long | s | | -| panw.routing.bgp.last_error | The last BGP error message received from the peer | keyword | | | -| panw.routing.bgp.last_update_age | Time in seconds since the last update message was received from the peer | long | s | | -| panw.routing.bgp.local_address | Local address and port used for BGP connection | keyword | | | -| panw.routing.bgp.msg_total_in | Total of all messages received from the peer | long | | counter | -| panw.routing.bgp.msg_total_out | Total of all messages sent to the peer | long | | counter | -| panw.routing.bgp.msg_update_in | The number of BGP UPDATE messages received by the router from this peer | long | | counter | -| panw.routing.bgp.msg_update_out | the number of BGP UPDATE messages sent from the local router to the peer | long | | counter | -| panw.routing.bgp.multi_hop_ttl | Time to Live (TTL) value for multi-hop BGP sessions. | long | | | -| panw.routing.bgp.nexthop_peer | Indicates whether the peer is being used as the next-hop for the routes received from this peer | boolean | | | -| panw.routing.bgp.nexthop_self | Whether the router is configured to use itself as the next-hop for routes sent to this peer | boolean | | | -| panw.routing.bgp.nexthop_thirdparty | Third-party next-hop feature is enabled | boolean | | | -| panw.routing.bgp.open_delay | Delay before sending an Open message (in seconds) | long | s | | -| panw.routing.bgp.orf_entry_received | Number of ORF (Outbound Route Filtering) entries received from the peer | long | | gauge | -| panw.routing.bgp.passive | Indicates if the BGP peer is in passive mode, if yes then router will not initiate a connection to the peer | boolean | | | -| panw.routing.bgp.password_set | Indicates whether a password is set for the BGP peer | boolean | | | -| panw.routing.bgp.peer_address | IP address and port of the peer | keyword | | | -| panw.routing.bgp.peer_group | The name of the BGP peer group this peer belongs to | keyword | | | -| panw.routing.bgp.peer_name | The name of the current peer in the BGP peer group | keyword | | | -| panw.routing.bgp.peer_router_id | BGP peer router ID | ip | | | -| panw.routing.bgp.peering_type | Defines the type of relationship between peers, e.g., "External BGP", "Internal BGP", or "Unspecified" | keyword | | | -| panw.routing.bgp.prefix_limit | The maximum number of prefixes that can be received from the peer (0 = no limit) | long | | | -| panw.routing.bgp.reflector_client | Indicates if the BGP peer is a route reflector client | keyword | | | -| panw.routing.bgp.remote_as_asn | The remote Autonomous System (AS) number of the peer | long | | | -| panw.routing.bgp.same_confederation | Peers in the same confederation exchange routes using internal BGP (iBGP) instead of external BGP (eBGP) | boolean | | | -| panw.routing.bgp.status | The BGP session status, e.g., "Established" means the session is up and running | keyword | | | -| panw.routing.bgp.status_duration | Time in seconds since the current status was set | long | s | | -| panw.routing.bgp.status_flap_counts | Indicates the number of times the BGP session has "flapped" or transitioned between up and down states | long | | counter | -| panw.routing.bgp.virtual_router | The virtual router with which the BGP peer is associated | keyword | | | -| panw.routing.ipsec_tunnel.TSi_ip | Traffic Selector Initiator IP. This is the local IP (0.0.0.0 means any IP address) | ip | | | -| panw.routing.ipsec_tunnel.TSi_port | Port number associated with TSi (0 means any port) | long | | | -| panw.routing.ipsec_tunnel.TSi_prefix | Network prefix for the TSi IP, 0 means no specific network is defined. | keyword | | | -| panw.routing.ipsec_tunnel.TSi_proto | Protocol associated with the TSi (0 means any protocol) | keyword | | | -| panw.routing.ipsec_tunnel.TSr_ip | Traffic Selector Responder IP. | ip | | | -| panw.routing.ipsec_tunnel.TSr_port | TSr port of the IPsec tunnel | long | | | -| panw.routing.ipsec_tunnel.TSr_prefix | Network prefix for the TSr IP. Similar to TSi_prefix | keyword | | | -| panw.routing.ipsec_tunnel.TSr_proto | TSr protocol of the IPsec tunnel | keyword | | | -| panw.routing.ipsec_tunnel.dh | Diffie-Hellman group of the IPsec tunnel | keyword | | | -| panw.routing.ipsec_tunnel.enc | Encryption algorithm of the IPsec tunnel | keyword | | | -| panw.routing.ipsec_tunnel.gw | Gateway of the IPsec tunnel | keyword | | | -| panw.routing.ipsec_tunnel.hash | Hash algorithm of the IPsec tunnel | keyword | | | -| panw.routing.ipsec_tunnel.id | ID of the IPsec tunnel | keyword | | | -| panw.routing.ipsec_tunnel.kb | Traffic volume limit for SA rekeying | long | byte | | -| panw.routing.ipsec_tunnel.life | The lifetime of the IPsec Security Association (SA) in seconds | long | s | | -| panw.routing.ipsec_tunnel.mode | This specifies the IPsec mode. e.g., 'tunl' | keyword | | | -| panw.routing.ipsec_tunnel.name | Name of the IPsec tunnel | keyword | | | -| panw.routing.ipsec_tunnel.proto | Protocol of the IPsec tunnel | keyword | | | +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| host.containerized | If the host is a container. | boolean | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| routing.bgp.aggregate_confed_as | Indicates that Autonomous System (AS) aggregation is enabled for the confederation | boolean | +| routing.bgp.connect_retry_interval.sec | The interval (in seconds) between connection retries | long | +| routing.bgp.established_counts | Number of times the BGP session has successfully transitioned to the "Established" state | long | +| routing.bgp.holdtime.sec | Time in seconds that the BGP peer will wait for a keepalive message, negotiated between peers | long | +| routing.bgp.holdtime_config.sec | Represents the locally configured hold time on this peer (in seconds) | long | +| routing.bgp.idle_hold.sec | The idle hold time (in seconds) before retrying a connection after failure | long | +| routing.bgp.keepalive.sec | The interval (in seconds) at which BGP keepalive messages are sent, negotiated between peers | long | +| routing.bgp.keepalive_config.sec | The keepalive configured on this peer | long | +| routing.bgp.last_error | The last BGP error message received from the peer | keyword | +| routing.bgp.last_update_age.sec | Time in seconds since the last update message was received from the peer | long | +| routing.bgp.local_ip | Local ip address used for BGP connection | ip | +| routing.bgp.local_port | Local port number used for BGP connection | long | +| routing.bgp.msg_total_in.count | Total of all messages received from the peer | long | +| routing.bgp.msg_total_out.count | Total of all messages sent to the peer | long | +| routing.bgp.msg_update_in.count | The number of BGP UPDATE messages received by the router from this peer | long | +| routing.bgp.msg_update_out.count | the number of BGP UPDATE messages sent from the local router to the peer | long | +| routing.bgp.multi_hop_ttl | Time to Live (TTL) value for multi-hop BGP sessions. Units are the number of hops. | long | +| routing.bgp.nexthop_peer | Indicates whether the peer is being used as the next-hop for the routes received from this peer | boolean | +| routing.bgp.nexthop_self | Whether the router is configured to use itself as the next-hop for routes sent to this peer | boolean | +| routing.bgp.nexthop_thirdparty | Third-party next-hop feature is enabled | boolean | +| routing.bgp.open_delay.sec | Delay before sending an Open message (in seconds) | long | +| routing.bgp.orf_entry_received | Number of ORF (Outbound Route Filtering) entries received from the peer | long | +| routing.bgp.passive | Indicates if the BGP peer is in passive mode: if yes then router will not initiate a connection to the peer | boolean | +| routing.bgp.password_set | Indicates whether a password is set for the BGP peer | boolean | +| routing.bgp.peer_group | The name of the BGP peer group this peer belongs to | keyword | +| routing.bgp.peer_ip | IP address of the peer | ip | +| routing.bgp.peer_name | The name of the current peer in the BGP peer group | keyword | +| routing.bgp.peer_port | Port number of the peer | long | +| routing.bgp.peer_router_id | BGP peer router ID | ip | +| routing.bgp.peering_type | Defines the type of relationship between peers, e.g., "External BGP", "Internal BGP", or "Unspecified" | keyword | +| routing.bgp.prefix_limit | The maximum number of prefixes that can be received from the peer (0 = no limit) | long | +| routing.bgp.reflector_client | Specifies the BGP peer relationship to route reflectors, e.g. "client", "not-client", "meshed-client" | keyword | +| routing.bgp.remote_as_asn | The remote Autonomous System (AS) number of the peer | long | +| routing.bgp.same_confederation | Peers in the same confederation exchange routes using internal BGP (iBGP) instead of external BGP (eBGP) | boolean | +| routing.bgp.status | The BGP session status, e.g., "Established" means the session is up and running | keyword | +| routing.bgp.status_duration.sec | Time in seconds since the current status was set | long | +| routing.bgp.status_flap_counts | Indicates the number of times the BGP session has "flapped" or transitioned between up and down states | long | +| routing.bgp.virtual_router | The virtual router with which the BGP peer is associated | keyword | ### system @@ -504,84 +506,85 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur **Exported fields** -| Field | Description | Type | Unit | Metric Type | -|---|---|---|---|---| -| @timestamp | Event timestamp. | date | | | -| cloud.image.id | Image ID for the cloud instance. | keyword | | | -| data_stream.dataset | Data stream dataset. | constant_keyword | | | -| data_stream.namespace | Data stream namespace. | constant_keyword | | | -| data_stream.type | Data stream type. | constant_keyword | | | -| host.containerized | If the host is a container. | boolean | | | -| host.os.build | OS build information. | keyword | | | -| host.os.codename | OS codename, if any. | keyword | | | -| panw.system.certificate.db_exp_date | Expiration date, format, 310329235959Z(Mar 29 23:59:59 2031 GMT) | keyword | | | -| panw.system.certificate.db_file | File name of the certificate database | keyword | | | -| panw.system.certificate.db_name | Name of the certificate database | keyword | | | -| panw.system.certificate.db_rev_date | Revision date of the certificate database | keyword | | | -| panw.system.certificate.db_serial_no | Serial number of the certificate database | keyword | | | -| panw.system.certificate.db_status | Status of the certificate database | keyword | | | -| panw.system.certificate.db_type | Type of the certificate database | keyword | | | -| panw.system.certificate.issuer | Issuer of the certificate database | keyword | | | -| panw.system.certificate.issuer_key_hash | Key hash of the issuer of the certificate database | keyword | | | -| panw.system.certificate.issuer_subject_hash | Subject hash of the issuer of the certificate database | keyword | | | -| panw.system.cpu.hi | CPU hardware interrupts | float | percent | gauge | -| panw.system.cpu.idle | CPU idle time | float | percent | gauge | -| panw.system.cpu.nice | CPU usage by processes with a positive nice value | float | percent | gauge | -| panw.system.cpu.steal | CPU steal time | float | percent | gauge | -| panw.system.cpu.system | CPU usage by system processes | float | percent | gauge | -| panw.system.cpu.system_int | CPU software interrupts | float | percent | gauge | -| panw.system.cpu.user | CPU usage by user processes | float | percent | gauge | -| panw.system.cpu.wait | CPU wait time | float | percent | gauge | -| panw.system.fan.alarm | Is there an alarm status of the fan | boolean | | | -| panw.system.fan.description | The description of the fan | keyword | | | -| panw.system.fan.min_rpm | The minimum speed of the fan in RPM | integer | | gauge | -| panw.system.fan.rpm | The speed of the fan in RPM | integer | | gauge | -| panw.system.fan.slot_number | The number of the hardware slot | integer | | | -| panw.system.filesystem.available | Disk space available on the filesystem | float | byte | gauge | -| panw.system.filesystem.mounted | Filesystem mount point | keyword | | | -| panw.system.filesystem.name | Filesystem name | keyword | | | -| panw.system.filesystem.size | Total size of the filesystem | float | byte | gauge | -| panw.system.filesystem.use_percent | Percent of filesystem used | integer | percent | gauge | -| panw.system.filesystem.used | Amount used on the filesystem | float | byte | gauge | -| panw.system.license.auth_code | Authorization code to activate or install the license | keyword | | | -| panw.system.license.description | Description of the licensed feature | text | | | -| panw.system.license.expired | Indicates if the license is expired | boolean | | | -| panw.system.license.expires | Date the license expires, but this is a keyword because value might be "never" | keyword | | | -| panw.system.license.feature | Feature licensed, e.g. Advanced Threat Prevention | keyword | | | -| panw.system.license.issued | Date the license was issued | date | | | -| panw.system.license.serial | Serial number of license | keyword | | | -| panw.system.load_average.15m | Load average in 15 minutes | float | | gauge | -| panw.system.load_average.1m | Load average in 1 minute | float | | gauge | -| panw.system.load_average.5m | Load average in 5 minutes | float | | gauge | -| panw.system.memory.buffer_cache | Memory used for buffers and cache | float | byte | gauge | -| panw.system.memory.free | Free memory | float | byte | gauge | -| panw.system.memory.total | Total memory | float | byte | gauge | -| panw.system.memory.used | Used memory | float | byte | gauge | -| panw.system.power.alarm | Indicates if alarm is active | boolean | | | -| panw.system.power.description | Description field | text | | | -| panw.system.power.maximum_volts | Maximum volts recorded | float | | | -| panw.system.power.minimum_volts | Minimum volts recorded | float | | | -| panw.system.power.slot_number | Slot number field | keyword | | | -| panw.system.power.volts | Current Volts | float | | gauge | -| panw.system.swap.available | Available swap space | float | byte | gauge | -| panw.system.swap.free | Free swap space | float | byte | gauge | -| panw.system.swap.total | Total swap space | float | byte | gauge | -| panw.system.swap.used | Used swap space | float | byte | gauge | -| panw.system.tasks.running | Number of running tasks | long | | gauge | -| panw.system.tasks.sleeping | Number of sleeping tasks | long | | gauge | -| panw.system.tasks.stopped | Number of stopped tasks | long | | gauge | -| panw.system.tasks.total | Total number of tasks | long | | gauge | -| panw.system.tasks.zombie | Number of zombie tasks | long | | gauge | -| panw.system.thermal.alarm | Alarm field | boolean | | | -| panw.system.thermal.degrees_celsius | Degrees Celsius field | float | | gauge | -| panw.system.thermal.description | Description field | text | | | -| panw.system.thermal.maximum_temp | Maximum temperature field | float | | gauge | -| panw.system.thermal.minimum_temp | Minimum temperature field | float | | gauge | -| panw.system.thermal.slot_number | Slot number field | integer | | | -| panw.system.uptime.days | Uptime in days | integer | d | gauge | -| panw.system.uptime.hours | Hours component of uptime | integer | h | gauge | -| panw.system.uptime.minutes | Minutes component of uptime | integer | m | gauge | -| panw.system.user_count | Number of users | long | | gauge | +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| host.containerized | If the host is a container. | boolean | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| system.certificate.db_exp_date | expiration date, format: 310329235959Z(Mar 29 23:59:59 2031 GMT) | keyword | +| system.certificate.db_file | db_file field | keyword | +| system.certificate.db_name | db_name field | keyword | +| system.certificate.db_rev_date | db_rev_date field | keyword | +| system.certificate.db_serial_no | db_serial_no field | keyword | +| system.certificate.db_status | db_status field | keyword | +| system.certificate.db_type | db_type field | keyword | +| system.certificate.issuer | issuer field | keyword | +| system.certificate.issuer_key_hash | issuer_key_hash field | keyword | +| system.certificate.issuer_subject_hash | issuer_subject_hash field | keyword | +| system.cpu.hi | CPU hardware interrupts | float | +| system.cpu.idle | CPU idle time | float | +| system.cpu.nice | CPU usage by processes with a positive nice value | float | +| system.cpu.steal | CPU steal time | float | +| system.cpu.system | CPU usage by system processes | float | +| system.cpu.system_int | CPU software interrupts | float | +| system.cpu.user | CPU usage by user processes | float | +| system.cpu.wait | CPU wait time | float | +| system.fan.alarm | Is there an alarm status of the fan | boolean | +| system.fan.description | The description of the fan | keyword | +| system.fan.min_rpm | The minimum speed of the fan in RPM | integer | +| system.fan.rpm | The speed of the fan in RPM | integer | +| system.fan.slot_number | The number of the hardware slot | integer | +| system.filesystem.available | Disk space available on the filesystem | float | +| system.filesystem.mounted | Filesystem mount point | keyword | +| system.filesystem.name | Filesystem name | keyword | +| system.filesystem.size | Total size of the filesystem | float | +| system.filesystem.use_percent | Percent of filesystem used | integer | +| system.filesystem.used | Amount used on the filesystem | float | +| system.license.auth_code | Authorization code to activate or install the license | keyword | +| system.license.description | Description of the licensed feature | text | +| system.license.expired | Indicates if the license is expired | boolean | +| system.license.expires | Date the license expires - not set if license never expires | date | +| system.license.feature | Feature licensed, e.g. Advanced Threat Prevention | keyword | +| system.license.issued | Date the license was issued | date | +| system.license.never_expires | Indicates if the license never expires | boolean | +| system.license.serial | Serial number of license | keyword | +| system.load_average.15m | Load average in 15 minutes | float | +| system.load_average.1m | Load average in 1 minute | float | +| system.load_average.5m | Load average in 5 minutes | float | +| system.memory.buffer_cache | Memory used for buffers and cache | float | +| system.memory.free | Free memory | float | +| system.memory.total | Total memory | float | +| system.memory.used | Used memory | float | +| system.power.alarm | Indicates if alarm is active | boolean | +| system.power.description | Description field | text | +| system.power.maximum_volts | Maximum volts recorded | float | +| system.power.minimum_volts | Minimum volts recorded | float | +| system.power.slot_number | Slot number field | integer | +| system.power.volts | Current Volts | float | +| system.swap.available | Available swap space | float | +| system.swap.free | Free swap space | float | +| system.swap.total | Total swap space | float | +| system.swap.used | Used swap space | float | +| system.tasks.running | Number of running tasks | long | +| system.tasks.sleeping | Number of sleeping tasks | long | +| system.tasks.stopped | Number of stopped tasks | long | +| system.tasks.total | Total number of tasks | long | +| system.tasks.zombie | Number of zombie tasks | long | +| system.thermal.alarm | Alarm field | boolean | +| system.thermal.degrees_celsius | Degrees Celsius field | float | +| system.thermal.description | Description field | text | +| system.thermal.maximum_temp | Maximum temperature field | float | +| system.thermal.minimum_temp | Minimum temperature field | float | +| system.thermal.slot_number | Slot number field | integer | +| system.uptime.days | Uptime in days | integer | +| system.uptime.hours | Hours component of uptime | integer | +| system.uptime.minutes | Minutes component of uptime | integer | +| system.user_count | Number of users | long | ### vpn @@ -683,42 +686,42 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur **Exported fields** -| Field | Description | Type | Unit | Metric Type | -|---|---|---|---|---| -| @timestamp | Event timestamp. | date | | | -| cloud.image.id | Image ID for the cloud instance. | keyword | | | -| data_stream.dataset | Data stream dataset. | constant_keyword | | | -| data_stream.namespace | Data stream namespace. | constant_keyword | | | -| data_stream.type | Data stream type. | constant_keyword | | | -| host.containerized | If the host is a container. | boolean | | | -| host.os.build | OS build information. | keyword | | | -| host.os.codename | OS codename, if any. | keyword | | | -| panw.vpn.globalprotect.gateway.current_users | Current number of users connected to the GlobalProtect gateway | long | | gauge | -| panw.vpn.globalprotect.gateway.name | Name of the GlobalProtect gateway | keyword | | | -| panw.vpn.globalprotect.gateway.previous_users | Previous number of users connected to the GlobalProtect gateway | long | | gauge | -| panw.vpn.globalprotect.session.app_version | Application version used in the session | keyword | | | -| panw.vpn.globalprotect.session.client | Client information of the session | keyword | | | -| panw.vpn.globalprotect.session.client_ip | Client IP address of the session | ip | | | -| panw.vpn.globalprotect.session.computer | Computer name in the session | keyword | | | -| panw.vpn.globalprotect.session.domain | Domain of the GlobalProtect session | keyword | | | -| panw.vpn.globalprotect.session.host_id | Host ID of the session | keyword | | | -| panw.vpn.globalprotect.session.is_local | Indicates if the session is local | boolean | | | -| panw.vpn.globalprotect.session.lifetime | Lifetime of the session | long | s | | -| panw.vpn.globalprotect.session.login_time | Login time of the session | date | | | -| panw.vpn.globalprotect.session.login_time_utc | Login time in UTC of the session | date | | | -| panw.vpn.globalprotect.session.primary_username | Primary username of the session | keyword | | | -| panw.vpn.globalprotect.session.public_connection_ipv6 | Public connection IPv6 address of the session | ip | | | -| panw.vpn.globalprotect.session.public_ip | Public IP address of the session | ip | | | -| panw.vpn.globalprotect.session.public_ipv6 | Public IPv6 address of the session | ip | | | -| panw.vpn.globalprotect.session.region_for_config | Region for configuration | keyword | | | -| panw.vpn.globalprotect.session.request_get_config | Request get configuration information of the session | keyword | | | -| panw.vpn.globalprotect.session.request_login | Request login information of the session | keyword | | | -| panw.vpn.globalprotect.session.request_sslvpn_connect | Request SSL VPN connect information of the session | keyword | | | -| panw.vpn.globalprotect.session.source_region | Source region of the session | keyword | | | -| panw.vpn.globalprotect.session.tunnel_type | Type of tunnel used in the session | keyword | | | -| panw.vpn.globalprotect.session.username | Username of the session | keyword | | | -| panw.vpn.globalprotect.session.virtual_ip | Virtual IP address of the session | ip | | | -| panw.vpn.globalprotect.session.virtual_ipv6 | Virtual IPv6 address of the session | ip | | | -| panw.vpn.globalprotect.session.vpn_type | Type of VPN used in the session | keyword | | | -| panw.vpn.globalprotect.total_current_users | Total current number of users connected to GlobalProtect | long | | gauge | -| panw.vpn.globalprotect.total_previous_users | Total previous number of users connected to GlobalProtect | long | | gauge | +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| host.containerized | If the host is a container. | boolean | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| vpn.globalprotect.gateway.current_users | Current number of users connected to the GlobalProtect gateway | long | +| vpn.globalprotect.gateway.name | Name of the GlobalProtect gateway | keyword | +| vpn.globalprotect.gateway.previous_users | Previous number of users connected to the GlobalProtect gateway | long | +| vpn.globalprotect.session.app_version | Application version used in the session | keyword | +| vpn.globalprotect.session.client | Client information of the session | keyword | +| vpn.globalprotect.session.client_ip | Client IP address of the session | ip | +| vpn.globalprotect.session.computer | Computer name in the session | keyword | +| vpn.globalprotect.session.domain | Domain of the GlobalProtect session | keyword | +| vpn.globalprotect.session.host_id | Host ID of the session | keyword | +| vpn.globalprotect.session.is_local | Indicates if the session is local | boolean | +| vpn.globalprotect.session.lifetime | Lifetime of the session | long | +| vpn.globalprotect.session.login_time | Login time of the session | date | +| vpn.globalprotect.session.login_time_utc | Login time in UTC of the session | date | +| vpn.globalprotect.session.primary_username | Primary username of the session | keyword | +| vpn.globalprotect.session.public_connection_ipv6 | Public connection IPv6 address of the session | ip | +| vpn.globalprotect.session.public_ip | Public IP address of the session | ip | +| vpn.globalprotect.session.public_ipv6 | Public IPv6 address of the session | ip | +| vpn.globalprotect.session.region_for_config | Region for configuration | keyword | +| vpn.globalprotect.session.request_get_config | Request get configuration information of the session | keyword | +| vpn.globalprotect.session.request_login | Request login information of the session | keyword | +| vpn.globalprotect.session.request_sslvpn_connect | Request SSL VPN connect information of the session | keyword | +| vpn.globalprotect.session.source_region | Source region of the session | keyword | +| vpn.globalprotect.session.tunnel_type | Type of tunnel used in the session | keyword | +| vpn.globalprotect.session.username | Username of the session | keyword | +| vpn.globalprotect.session.virtual_ip | Virtual IP address of the session | ip | +| vpn.globalprotect.session.virtual_ipv6 | Virtual IPv6 address of the session | ip | +| vpn.globalprotect.session.vpn_type | Type of VPN used in the session | keyword | +| vpn.globalprotect.total_current_users | Total current number of users connected to GlobalProtect gateway | long | +| vpn.globalprotect.total_previous_users | Total previous number of users connected to GlobalProtect gateway | long | diff --git a/packages/panw_metrics/manifest.yml b/packages/panw_metrics/manifest.yml index 5d213c8ec4f..ae4389254f1 100644 --- a/packages/panw_metrics/manifest.yml +++ b/packages/panw_metrics/manifest.yml @@ -2,14 +2,15 @@ format_version: 3.1.4 name: panw_metrics title: "Palo Alto Networks Metrics" version: 1.0.0 -description: "Collect metrics from Palo Alto Networks with Elastic Agent." +description: > + "This integration periodically fetches metrics from [Palo Alto Networks](https://www.paloaltonetworks.com/) firewalls and management systems." type: integration categories: - network - security conditions: kibana: - version: "^8.16.0" + version: "^8.15.2" elastic: subscription: "basic" icons: From 2fdda11d2c3325c72ccdf6191393b1ec7851e309 Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Thu, 26 Sep 2024 23:38:46 +0300 Subject: [PATCH 20/50] fix config params --- .../data_stream/interfaces/agent/stream/stream.yml.hbs | 4 ++-- packages/panw_metrics/data_stream/interfaces/manifest.yml | 4 ++-- .../data_stream/routing/agent/stream/stream.yml.hbs | 4 ++-- packages/panw_metrics/data_stream/routing/manifest.yml | 4 ++-- .../data_stream/system/agent/stream/stream.yml.hbs | 4 ++-- packages/panw_metrics/data_stream/system/manifest.yml | 4 ++-- .../panw_metrics/data_stream/vpn/agent/stream/stream.yml.hbs | 4 ++-- packages/panw_metrics/data_stream/vpn/manifest.yml | 4 ++-- 8 files changed, 16 insertions(+), 16 deletions(-) diff --git a/packages/panw_metrics/data_stream/interfaces/agent/stream/stream.yml.hbs b/packages/panw_metrics/data_stream/interfaces/agent/stream/stream.yml.hbs index d46a320c7d0..6a8ccac8fa8 100644 --- a/packages/panw_metrics/data_stream/interfaces/agent/stream/stream.yml.hbs +++ b/packages/panw_metrics/data_stream/interfaces/agent/stream/stream.yml.hbs @@ -2,5 +2,5 @@ metricsets: ["interfaces"] period: {{period}} host_ip: {{host_ip}} port: {{port}} -apiKey: {{apiKey}} -apiDebugMode: {{apiDebugMode}} \ No newline at end of file +api_key: {{api_key}} +api_debug_mode: {{api_debug_mode}} \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/interfaces/manifest.yml b/packages/panw_metrics/data_stream/interfaces/manifest.yml index a9b84762693..23656e45b71 100644 --- a/packages/panw_metrics/data_stream/interfaces/manifest.yml +++ b/packages/panw_metrics/data_stream/interfaces/manifest.yml @@ -26,14 +26,14 @@ streams: multi: false required: false show_user: true - - name: apiKey + - name: api_key type: text title: API Key secret: true multi: false required: true show_user: true - - name: apiDebugMode + - name: api_debug_mode type: bool title: Debug Mode default: false diff --git a/packages/panw_metrics/data_stream/routing/agent/stream/stream.yml.hbs b/packages/panw_metrics/data_stream/routing/agent/stream/stream.yml.hbs index 8a82f4e193f..6aa4aa06c85 100644 --- a/packages/panw_metrics/data_stream/routing/agent/stream/stream.yml.hbs +++ b/packages/panw_metrics/data_stream/routing/agent/stream/stream.yml.hbs @@ -2,5 +2,5 @@ metricsets: ["routing"] period: {{period}} host_ip: {{host_ip}} port: {{port}} -apiKey: {{apiKey}} -apiDebugMode: {{apiDebugMode}} \ No newline at end of file +api_key: {{api_key}} +api_debug_mode: {{api_debug_mode}} \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/routing/manifest.yml b/packages/panw_metrics/data_stream/routing/manifest.yml index f79f70a450e..ad965338926 100644 --- a/packages/panw_metrics/data_stream/routing/manifest.yml +++ b/packages/panw_metrics/data_stream/routing/manifest.yml @@ -26,14 +26,14 @@ streams: multi: false required: false show_user: true - - name: apiKey + - name: api_key type: text title: API Key secret: true multi: false required: true show_user: true - - name: apiDebugMode + - name: api_debug_mode type: bool title: Debug Mode default: false diff --git a/packages/panw_metrics/data_stream/system/agent/stream/stream.yml.hbs b/packages/panw_metrics/data_stream/system/agent/stream/stream.yml.hbs index cd64e94f377..63abca94897 100644 --- a/packages/panw_metrics/data_stream/system/agent/stream/stream.yml.hbs +++ b/packages/panw_metrics/data_stream/system/agent/stream/stream.yml.hbs @@ -2,5 +2,5 @@ metricsets: ["system"] period: {{period}} host_ip: {{host_ip}} port: {{port}} -apiKey: {{apiKey}} -apiDebugMode: {{apiDebugMode}} \ No newline at end of file +api_key: {{api_key}} +api_debug_mode: {{api_debug_mode}} \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/system/manifest.yml b/packages/panw_metrics/data_stream/system/manifest.yml index 84f6f9a3136..53f0126838b 100644 --- a/packages/panw_metrics/data_stream/system/manifest.yml +++ b/packages/panw_metrics/data_stream/system/manifest.yml @@ -26,14 +26,14 @@ streams: multi: false required: false show_user: true - - name: apiKey + - name: api_key type: text title: API Key secret: true multi: false required: true show_user: true - - name: apiDebugMode + - name: api_debug_mode type: bool title: Debug Mode default: false diff --git a/packages/panw_metrics/data_stream/vpn/agent/stream/stream.yml.hbs b/packages/panw_metrics/data_stream/vpn/agent/stream/stream.yml.hbs index 90116e96aba..347faa13b41 100644 --- a/packages/panw_metrics/data_stream/vpn/agent/stream/stream.yml.hbs +++ b/packages/panw_metrics/data_stream/vpn/agent/stream/stream.yml.hbs @@ -2,5 +2,5 @@ metricsets: ["vpn"] period: {{period}} host_ip: {{host_ip}} port: {{port}} -apiKey: {{apiKey}} -apiDebugMode: {{apiDebugMode}} \ No newline at end of file +api_key: {{api_key}} +api_debug_mode: {{api_debug_mode}} \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/vpn/manifest.yml b/packages/panw_metrics/data_stream/vpn/manifest.yml index 6012cf9ae9c..487db889d29 100644 --- a/packages/panw_metrics/data_stream/vpn/manifest.yml +++ b/packages/panw_metrics/data_stream/vpn/manifest.yml @@ -26,14 +26,14 @@ streams: multi: false required: false show_user: true - - name: apiKey + - name: api_key type: text title: API Key secret: true multi: false required: true show_user: true - - name: apiDebugMode + - name: api_debug_mode type: bool title: Debug Mode default: false From 1d6292cff56a663da8f4a6c0230a4f3523a4e1ab Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Thu, 26 Sep 2024 23:39:02 +0300 Subject: [PATCH 21/50] fix min kibana version --- packages/panw_metrics/manifest.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/panw_metrics/manifest.yml b/packages/panw_metrics/manifest.yml index 5d213c8ec4f..b1028d1bb51 100644 --- a/packages/panw_metrics/manifest.yml +++ b/packages/panw_metrics/manifest.yml @@ -9,7 +9,7 @@ categories: - security conditions: kibana: - version: "^8.16.0" + version: "^8.15.2" elastic: subscription: "basic" icons: From eb1a263350d9f215ff63ac00e0f31a7be5f5aae1 Mon Sep 17 00:00:00 2001 From: dparkerelastic Date: Thu, 26 Sep 2024 17:03:30 -0400 Subject: [PATCH 22/50] moved version back to 0.0.1 --- packages/panw_metrics/changelog.yml | 2 +- packages/panw_metrics/manifest.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/panw_metrics/changelog.yml b/packages/panw_metrics/changelog.yml index 34856bc220a..852fd63f81c 100644 --- a/packages/panw_metrics/changelog.yml +++ b/packages/panw_metrics/changelog.yml @@ -1,5 +1,5 @@ # newer versions go on top -- version: "1.0.0" +- version: "0.0.1" changes: - description: Initial draft of the package type: enhancement diff --git a/packages/panw_metrics/manifest.yml b/packages/panw_metrics/manifest.yml index ae4389254f1..349c177e910 100644 --- a/packages/panw_metrics/manifest.yml +++ b/packages/panw_metrics/manifest.yml @@ -1,7 +1,7 @@ format_version: 3.1.4 name: panw_metrics title: "Palo Alto Networks Metrics" -version: 1.0.0 +version: 0.0.1 description: > "This integration periodically fetches metrics from [Palo Alto Networks](https://www.paloaltonetworks.com/) firewalls and management systems." type: integration From 724c0bc33a48206731f61780a2e27ea845b2004c Mon Sep 17 00:00:00 2001 From: dparkerelastic Date: Sat, 28 Sep 2024 13:18:43 -0400 Subject: [PATCH 23/50] field fixes --- .../data_stream/interfaces/fields/fields.yml | 51 +- packages/panw_metrics/docs/README.md | 20 +- ...-323c0ebd-8b21-4a73-a969-511ef844434c.json | 1420 +++++++++++++++++ ...-b852ed05-eafa-4f8f-b6cc-df7c1ad7f257.json | 573 +++++++ packages/panw_metrics/manifest.yml | 2 +- 5 files changed, 2030 insertions(+), 36 deletions(-) create mode 100644 packages/panw_metrics/kibana/dashboard/panw_metrics-323c0ebd-8b21-4a73-a969-511ef844434c.json create mode 100644 packages/panw_metrics/kibana/dashboard/panw_metrics-b852ed05-eafa-4f8f-b6cc-df7c1ad7f257.json diff --git a/packages/panw_metrics/data_stream/interfaces/fields/fields.yml b/packages/panw_metrics/data_stream/interfaces/fields/fields.yml index 6a051ec83d3..ed987f21a47 100644 --- a/packages/panw_metrics/data_stream/interfaces/fields/fields.yml +++ b/packages/panw_metrics/data_stream/interfaces/fields/fields.yml @@ -78,7 +78,7 @@ - name: logical.vsys type: integer - description: "Virtual system to which this interface belongs \n" + description: "Virtual system to which this interface belongs" - name: logical.zone type: keyword description: > @@ -90,9 +90,9 @@ Indicates if the interface is used for forwarding - name: logical.ip - type: ip + type: keyword description: > - Logical IP Address with subnet mask, e.g., 111.222.333.10/29 + Logical IP Address with subnet mask, e.g., 111.222.333.10/29. Can also be "N/A" - name: logical.addr type: keyword @@ -106,7 +106,8 @@ - name: logical.addr6 type: keyword - description: "Logical IPv6 address \n" + description: "Logical IPv6 address" + # HA Interface fields - name: ha.enabled type: boolean @@ -144,9 +145,9 @@ Duration in seconds of the current state - name: ha.local_info.mgmt_ip - type: ip + type: ip_range description: > - HA local info management IP + HA local info management IP, in CIDR format. - name: ha.local_info.preemptive type: boolean @@ -174,9 +175,9 @@ Type of interface used for HA synchronization - name: ha.local_info.ha1_ipaddr - type: ip + type: ip_range description: > - IP Address of HA1 interface, used for heartbeat and management synchronization + IP Address of HA1 interface, used for heartbeat and management synchronization, in CIDR format. - name: ha.local_info.ha1_macaddr type: keyword @@ -189,9 +190,9 @@ Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha1" - name: ha.local_info.ha1_backup_ipaddr - type: ip + type: ip_range description: > - The backup IP address for the HA1 interface + The backup IP address for the HA1 interface, in CIDR format. - name: ha.local_info.ha1_backup_macaddr type: keyword @@ -204,12 +205,12 @@ HA local info HA1 backup port, e.g. "management" - name: ha.local_info.ha1_backup_gateway - type: ip - description: "Default gateway for the backup HA1 interface \n" + type: ip_range + description: "Default gateway for the backup HA1 interface" - name: ha.local_info.ha2_ipaddr - type: ip + type: ip_range description: > - HA local info HA2 IP address + HA local info HA2 IP address, in CIDR format. - name: ha.local_info.ha2_macaddr type: keyword @@ -223,13 +224,13 @@ - name: ha.local_info.build_rel type: keyword - description: "The PAN-OS software version running on the firewall \n" + description: "The PAN-OS software version running on the firewall" - name: ha.local_info.url_version type: keyword - description: "The version of the URL filtering database \n" + description: "The version of the URL filtering database" - name: ha.local_info.app_version type: keyword - description: "The version of the application database \n" + description: "The version of the application database" - name: ha.local_info.iot_version type: keyword description: > @@ -252,7 +253,7 @@ - name: ha.local_info.gp_client_version type: keyword - description: "Version of the GlobalProtect client software \n" + description: "Version of the GlobalProtect client software" - name: ha.peer_info.conn_status type: keyword description: > @@ -269,9 +270,9 @@ How long the peer has been in the current state in seconds - name: ha.peer_info.mgmt_ip - type: ip + type: ip_range description: > - Management IP address of the peer firewall + Management IP address of the peer firewall. This is in CIDR format. - name: ha.peer_info.preemptive type: boolean @@ -285,7 +286,7 @@ - name: ha.peer_info.platform_model type: keyword - description: "Model of the peer firewall \n" + description: "Model of the peer firewall" - name: ha.peer_info.priority type: long description: > @@ -294,7 +295,7 @@ - name: ha.peer_info.ha1_ipaddr type: ip description: > - IP address of the HA1 interface on the peer + IP address of the HA1 interface on the peer, in CIDR format. - name: ha.peer_info.ha1_macaddr type: keyword @@ -304,7 +305,7 @@ - name: ha.peer_info.ha1_backup_ipaddr type: ip description: > - HA peer info HA1 backup IP address + HA peer info HA1 backup IP address, in CIDR format. - name: ha.peer_info.ha1_backup_macaddr type: keyword @@ -312,9 +313,9 @@ HA peer info HA1 backup MAC address - name: ha.peer_info.ha2_ipaddr - type: ip + type: ip_range description: > - HA peer info HA2 IP address + HA peer info HA2 IP address, in CIDR format. - name: ha.peer_info.ha2_macaddr type: keyword diff --git a/packages/panw_metrics/docs/README.md b/packages/panw_metrics/docs/README.md index 0dd22858fe4..a0411f94557 100644 --- a/packages/panw_metrics/docs/README.md +++ b/packages/panw_metrics/docs/README.md @@ -143,18 +143,18 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | interfaces.ha.local_info.av_version | The version of the antivirus database | keyword | | interfaces.ha.local_info.build_rel | The PAN-OS software version running on the firewall | keyword | | interfaces.ha.local_info.gp_client_version | Version of the GlobalProtect client software | keyword | -| interfaces.ha.local_info.ha1_backup_gateway | Default gateway for the backup HA1 interface | ip | -| interfaces.ha.local_info.ha1_backup_ipaddr | The backup IP address for the HA1 interface | ip | +| interfaces.ha.local_info.ha1_backup_gateway | Default gateway for the backup HA1 interface | ip_range | +| interfaces.ha.local_info.ha1_backup_ipaddr | The backup IP address for the HA1 interface, in CIDR format. | ip_range | | interfaces.ha.local_info.ha1_backup_macaddr | HA local info HA1 backup MAC address | keyword | | interfaces.ha.local_info.ha1_backup_port | HA local info HA1 backup port, e.g. "management" | keyword | -| interfaces.ha.local_info.ha1_ipaddr | IP Address of HA1 interface, used for heartbeat and management synchronization | ip | +| interfaces.ha.local_info.ha1_ipaddr | IP Address of HA1 interface, used for heartbeat and management synchronization, in CIDR format. | ip_range | | interfaces.ha.local_info.ha1_macaddr | HA local info HA1 MAC address | keyword | | interfaces.ha.local_info.ha1_port | Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha1" | keyword | -| interfaces.ha.local_info.ha2_ipaddr | HA local info HA2 IP address | ip | +| interfaces.ha.local_info.ha2_ipaddr | HA local info HA2 IP address, in CIDR format. | ip_range | | interfaces.ha.local_info.ha2_macaddr | HA local info HA2 MAC address | keyword | | interfaces.ha.local_info.ha2_port | Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha2" | keyword | | interfaces.ha.local_info.iot_version | HA local info IoT database version | keyword | -| interfaces.ha.local_info.mgmt_ip | HA local info management IP | ip | +| interfaces.ha.local_info.mgmt_ip | HA local info management IP, in CIDR format. | ip_range | | interfaces.ha.local_info.mode | HA mode, e.g., "active-active" or "active-passive" | keyword | | interfaces.ha.local_info.platform_model | Platform model of the local device | keyword | | interfaces.ha.local_info.preemptive | Indicates whether the firewall is configured to preemptively take over as the active unit in an HA setup | boolean | @@ -176,13 +176,13 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | interfaces.ha.peer_info.conn_ha2.primary | Specifies if the HA2 connection is primary | boolean | | interfaces.ha.peer_info.conn_ha2.status | HA peer info connection HA2 status | keyword | | interfaces.ha.peer_info.conn_status | Overall status of the HA connections ("up" means all connections are operational) | keyword | -| interfaces.ha.peer_info.ha1_backup_ipaddr | HA peer info HA1 backup IP address | ip | +| interfaces.ha.peer_info.ha1_backup_ipaddr | HA peer info HA1 backup IP address, in CIDR format. | ip | | interfaces.ha.peer_info.ha1_backup_macaddr | HA peer info HA1 backup MAC address | keyword | -| interfaces.ha.peer_info.ha1_ipaddr | IP address of the HA1 interface on the peer | ip | +| interfaces.ha.peer_info.ha1_ipaddr | IP address of the HA1 interface on the peer, in CIDR format. | ip | | interfaces.ha.peer_info.ha1_macaddr | HA1 MAC address of the peer | keyword | -| interfaces.ha.peer_info.ha2_ipaddr | HA peer info HA2 IP address | ip | +| interfaces.ha.peer_info.ha2_ipaddr | HA peer info HA2 IP address, in CIDR format. | ip_range | | interfaces.ha.peer_info.ha2_macaddr | HA peer info HA2 MAC address | keyword | -| interfaces.ha.peer_info.mgmt_ip | Management IP address of the peer firewall | ip | +| interfaces.ha.peer_info.mgmt_ip | Management IP address of the peer firewall. This is in CIDR format. | ip_range | | interfaces.ha.peer_info.mode | HA mode configured on the peer firewall, e.g. "Active-Passive" | keyword | | interfaces.ha.peer_info.platform_model | Model of the peer firewall | keyword | | interfaces.ha.peer_info.preemptive | Indicates if preemption is enabled on the peer firewall | boolean | @@ -214,7 +214,7 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | interfaces.logical.dyn_addr | Dynamic addresses, e.g., generated by DHCP | keyword | | interfaces.logical.fwd | Indicates if the interface is used for forwarding | keyword | | interfaces.logical.id | Logical interface ID | keyword | -| interfaces.logical.ip | Logical IP Address with subnet mask, e.g., 111.222.333.10/29 | ip | +| interfaces.logical.ip | Logical IP Address with subnet mask, e.g., 111.222.333.10/29. Can also be "N/A" | keyword | | interfaces.logical.name | Logical interface name | keyword | | interfaces.logical.tag | VLAN tag associated with this interface | integer | | interfaces.logical.vsys | Virtual system to which this interface belongs | integer | diff --git a/packages/panw_metrics/kibana/dashboard/panw_metrics-323c0ebd-8b21-4a73-a969-511ef844434c.json b/packages/panw_metrics/kibana/dashboard/panw_metrics-323c0ebd-8b21-4a73-a969-511ef844434c.json new file mode 100644 index 00000000000..4f6a97365e8 --- /dev/null +++ b/packages/panw_metrics/kibana/dashboard/panw_metrics-323c0ebd-8b21-4a73-a969-511ef844434c.json @@ -0,0 +1,1420 @@ +{ + "attributes": { + "controlGroupInput": { + "chainingSystem": "HIERARCHICAL", + "controlStyle": "oneLine", + "ignoreParentSettingsJSON": { + "ignoreFilters": false, + "ignoreQuery": false, + "ignoreTimerange": false, + "ignoreValidations": false + }, + "panelsJSON": { + "b6299f3c-17e7-4663-8a63-3c856c683ea8": { + "explicitInput": { + "enhancements": {}, + "fieldName": "observer.ip", + "grow": false, + "id": "b6299f3c-17e7-4663-8a63-3c856c683ea8", + "searchTechnique": "prefix", + "selectedOptions": [ + "10.200.99.13" + ], + "title": "observer.ip", + "width": "medium" + }, + "grow": false, + "order": 0, + "type": "optionsListControl", + "width": "medium" + } + }, + "showApplySelections": false + }, + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [ + { + "$state": { + "store": "appState" + }, + "meta": { + "alias": null, + "disabled": false, + "field": "event.dataset", + "indexRefName": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "key": "event.dataset", + "negate": false, + "params": { + "query": "panw_metrics.system" + }, + "type": "phrase" + }, + "query": { + "match_phrase": { + "event.dataset": "panw_metrics.system" + } + } + } + ], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "optionsJSON": { + "hidePanelTitles": false, + "syncColors": false, + "syncCursor": true, + "syncTooltips": false, + "useMargins": true + }, + "panelsJSON": [ + { + "embeddableConfig": { + "attributes": { + "references": [ + { + "id": "metrics-*", + "name": "indexpattern-datasource-layer-84d94cdf-99fe-43f4-b520-8343a94355b6", + "type": "index-pattern" + } + ], + "state": { + "adHocDataViews": {}, + "datasourceStates": { + "formBased": { + "layers": { + "84d94cdf-99fe-43f4-b520-8343a94355b6": { + "columnOrder": [ + "6c356040-3aaf-4d3f-abb5-131eec233680", + "799e8f5f-8751-41aa-af71-55e5b61fa89e", + "9b2e8a4f-81f2-486c-a4e0-9219e35303e3" + ], + "columns": { + "6c356040-3aaf-4d3f-abb5-131eec233680": { + "customLabel": true, + "dataType": "number", + "filter": { + "language": "kuery", + "query": "\"panw.system.uptime.days\": *" + }, + "isBucketed": false, + "label": "Days", + "operationType": "last_value", + "params": { + "sortField": "@timestamp" + }, + "scale": "ratio", + "sourceField": "panw.system.uptime.days" + }, + "799e8f5f-8751-41aa-af71-55e5b61fa89e": { + "customLabel": true, + "dataType": "number", + "filter": { + "language": "kuery", + "query": "\"panw.system.uptime.hours\": *" + }, + "isBucketed": false, + "label": "Hours", + "operationType": "last_value", + "params": { + "sortField": "@timestamp" + }, + "scale": "ratio", + "sourceField": "panw.system.uptime.hours" + }, + "9b2e8a4f-81f2-486c-a4e0-9219e35303e3": { + "customLabel": true, + "dataType": "number", + "filter": { + "language": "kuery", + "query": "\"panw.system.uptime.minutes\": *" + }, + "isBucketed": false, + "label": "Minutes", + "operationType": "last_value", + "params": { + "sortField": "@timestamp" + }, + "scale": "ratio", + "sourceField": "panw.system.uptime.minutes" + } + }, + "incompleteColumns": {}, + "sampling": 1 + } + } + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "filters": [], + "internalReferences": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "columns": [ + { + "columnId": "6c356040-3aaf-4d3f-abb5-131eec233680", + "isTransposed": false + }, + { + "columnId": "799e8f5f-8751-41aa-af71-55e5b61fa89e", + "isTransposed": false + }, + { + "columnId": "9b2e8a4f-81f2-486c-a4e0-9219e35303e3", + "isTransposed": false + } + ], + "layerId": "84d94cdf-99fe-43f4-b520-8343a94355b6", + "layerType": "data" + } + }, + "title": "", + "type": "lens", + "visualizationType": "lnsDatatable" + }, + "enhancements": {} + }, + "gridData": { + "h": 6, + "i": "19dc313f-122c-4589-9cb4-f2ee8a306aeb", + "w": 11, + "x": 0, + "y": 0 + }, + "panelIndex": "19dc313f-122c-4589-9cb4-f2ee8a306aeb", + "title": "Up Time", + "type": "lens" + }, + { + "embeddableConfig": { + "attributes": { + "references": [ + { + "id": "metrics-*", + "name": "indexpattern-datasource-layer-ef579182-b6a5-4392-a32e-2cc104fed1ef", + "type": "index-pattern" + } + ], + "state": { + "adHocDataViews": {}, + "datasourceStates": { + "formBased": { + "layers": { + "ef579182-b6a5-4392-a32e-2cc104fed1ef": { + "columnOrder": [ + "905a04aa-1710-4cb4-bf5a-d2b312177d55", + "deb6ef95-c478-4813-b0d9-69e4a25385d5", + "de5c6831-fb44-488c-a2d0-1c9168f51317", + "65c51155-3397-479c-ae16-1d5f92b497c9", + "437b6d5b-4b0a-466e-8d6b-02f5e7c6a146", + "951b20c4-dd2b-4ec1-be9b-eff9a2c107e5", + "8f8e0e79-3e25-4cba-abf7-a4887722b403", + "f7a662cc-3b57-49cf-9dad-f72d1d79fd64" + ], + "columns": { + "437b6d5b-4b0a-466e-8d6b-02f5e7c6a146": { + "customLabel": true, + "dataType": "number", + "filter": { + "language": "kuery", + "query": "\"panw.system.cpu.wait\": *" + }, + "isBucketed": false, + "label": "Wait", + "operationType": "last_value", + "params": { + "sortField": "@timestamp" + }, + "scale": "ratio", + "sourceField": "panw.system.cpu.wait" + }, + "65c51155-3397-479c-ae16-1d5f92b497c9": { + "customLabel": true, + "dataType": "number", + "filter": { + "language": "kuery", + "query": "\"panw.system.cpu.idle\": *" + }, + "isBucketed": false, + "label": "Idle", + "operationType": "last_value", + "params": { + "sortField": "@timestamp" + }, + "scale": "ratio", + "sourceField": "panw.system.cpu.idle" + }, + "8f8e0e79-3e25-4cba-abf7-a4887722b403": { + "customLabel": true, + "dataType": "number", + "filter": { + "language": "kuery", + "query": "\"panw.system.cpu.system_int\": *" + }, + "isBucketed": false, + "label": "System Interrupt", + "operationType": "last_value", + "params": { + "sortField": "@timestamp" + }, + "scale": "ratio", + "sourceField": "panw.system.cpu.system_int" + }, + "905a04aa-1710-4cb4-bf5a-d2b312177d55": { + "customLabel": true, + "dataType": "number", + "filter": { + "language": "kuery", + "query": "\"panw.system.cpu.user\": *" + }, + "isBucketed": false, + "label": "User", + "operationType": "last_value", + "params": { + "sortField": "@timestamp" + }, + "scale": "ratio", + "sourceField": "panw.system.cpu.user" + }, + "951b20c4-dd2b-4ec1-be9b-eff9a2c107e5": { + "customLabel": true, + "dataType": "number", + "filter": { + "language": "kuery", + "query": "\"panw.system.cpu.hi\": *" + }, + "isBucketed": false, + "label": "HW Interrupt", + "operationType": "last_value", + "params": { + "sortField": "@timestamp" + }, + "scale": "ratio", + "sourceField": "panw.system.cpu.hi" + }, + "de5c6831-fb44-488c-a2d0-1c9168f51317": { + "customLabel": true, + "dataType": "number", + "filter": { + "language": "kuery", + "query": "\"panw.system.cpu.nice\": *" + }, + "isBucketed": false, + "label": "Nice", + "operationType": "last_value", + "params": { + "sortField": "@timestamp" + }, + "scale": "ratio", + "sourceField": "panw.system.cpu.nice" + }, + "deb6ef95-c478-4813-b0d9-69e4a25385d5": { + "customLabel": true, + "dataType": "number", + "filter": { + "language": "kuery", + "query": "\"panw.system.cpu.system\": *" + }, + "isBucketed": false, + "label": "System", + "operationType": "last_value", + "params": { + "sortField": "@timestamp" + }, + "scale": "ratio", + "sourceField": "panw.system.cpu.system" + }, + "f7a662cc-3b57-49cf-9dad-f72d1d79fd64": { + "customLabel": true, + "dataType": "number", + "filter": { + "language": "kuery", + "query": "\"panw.system.cpu.steal\": *" + }, + "isBucketed": false, + "label": "Steal", + "operationType": "last_value", + "params": { + "sortField": "@timestamp" + }, + "scale": "ratio", + "sourceField": "panw.system.cpu.steal" + } + }, + "incompleteColumns": {}, + "sampling": 1 + } + } + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "filters": [], + "internalReferences": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "columns": [ + { + "columnId": "905a04aa-1710-4cb4-bf5a-d2b312177d55", + "isTransposed": false + }, + { + "columnId": "deb6ef95-c478-4813-b0d9-69e4a25385d5", + "isTransposed": false + }, + { + "columnId": "de5c6831-fb44-488c-a2d0-1c9168f51317", + "isTransposed": false + }, + { + "columnId": "65c51155-3397-479c-ae16-1d5f92b497c9", + "isTransposed": false + }, + { + "columnId": "437b6d5b-4b0a-466e-8d6b-02f5e7c6a146", + "isTransposed": false + }, + { + "columnId": "8f8e0e79-3e25-4cba-abf7-a4887722b403", + "isMetric": true, + "isTransposed": false + }, + { + "columnId": "951b20c4-dd2b-4ec1-be9b-eff9a2c107e5", + "isTransposed": false + }, + { + "columnId": "f7a662cc-3b57-49cf-9dad-f72d1d79fd64", + "isTransposed": false + } + ], + "layerId": "ef579182-b6a5-4392-a32e-2cc104fed1ef", + "layerType": "data" + } + }, + "title": "", + "type": "lens", + "visualizationType": "lnsDatatable" + }, + "enhancements": {} + }, + "gridData": { + "h": 6, + "i": "e9979bc0-3d3a-4eef-80a5-9dc75a2a1501", + "w": 23, + "x": 11, + "y": 0 + }, + "panelIndex": "e9979bc0-3d3a-4eef-80a5-9dc75a2a1501", + "title": "CPU", + "type": "lens" + }, + { + "embeddableConfig": { + "attributes": { + "references": [ + { + "id": "metrics-*", + "name": "indexpattern-datasource-layer-d518bbf9-bd15-4582-9a24-ef33e5ee5002", + "type": "index-pattern" + } + ], + "state": { + "adHocDataViews": {}, + "datasourceStates": { + "formBased": { + "layers": { + "d518bbf9-bd15-4582-9a24-ef33e5ee5002": { + "columnOrder": [ + "9602f473-59a3-443d-8c5a-ddd4672fa3b3" + ], + "columns": { + "9602f473-59a3-443d-8c5a-ddd4672fa3b3": { + "customLabel": true, + "dataType": "boolean", + "filter": { + "language": "kuery", + "query": "panw.system.fan.alarm:true " + }, + "isBucketed": false, + "label": "Alarm Count", + "operationType": "last_value", + "params": { + "sortField": "@timestamp" + }, + "scale": "ratio", + "sourceField": "panw.system.fan.alarm" + } + }, + "incompleteColumns": {} + } + } + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "filters": [], + "internalReferences": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "accessor": "9602f473-59a3-443d-8c5a-ddd4672fa3b3", + "layerId": "d518bbf9-bd15-4582-9a24-ef33e5ee5002", + "layerType": "data" + } + }, + "title": "", + "type": "lens", + "visualizationType": "lnsLegacyMetric" + }, + "enhancements": {} + }, + "gridData": { + "h": 6, + "i": "f5e1a80e-ffc0-4ede-bd24-87beb30f886f", + "w": 7, + "x": 34, + "y": 0 + }, + "panelIndex": "f5e1a80e-ffc0-4ede-bd24-87beb30f886f", + "title": "Fan Alarms", + "type": "lens" + }, + { + "embeddableConfig": { + "attributes": { + "references": [ + { + "id": "metrics-*", + "name": "indexpattern-datasource-layer-d518bbf9-bd15-4582-9a24-ef33e5ee5002", + "type": "index-pattern" + } + ], + "state": { + "adHocDataViews": {}, + "datasourceStates": { + "formBased": { + "layers": { + "d518bbf9-bd15-4582-9a24-ef33e5ee5002": { + "columnOrder": [ + "9602f473-59a3-443d-8c5a-ddd4672fa3b3" + ], + "columns": { + "9602f473-59a3-443d-8c5a-ddd4672fa3b3": { + "customLabel": true, + "dataType": "number", + "filter": { + "language": "kuery", + "query": "panw.system.fan.alarm:true " + }, + "isBucketed": false, + "label": "Alarm Count", + "operationType": "unique_count", + "params": { + "emptyAsNull": true + }, + "scale": "ratio", + "sourceField": "panw.system.power.alarm" + } + }, + "incompleteColumns": {} + } + } + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "filters": [], + "internalReferences": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "accessor": "9602f473-59a3-443d-8c5a-ddd4672fa3b3", + "layerId": "d518bbf9-bd15-4582-9a24-ef33e5ee5002", + "layerType": "data" + } + }, + "title": "", + "type": "lens", + "visualizationType": "lnsLegacyMetric" + }, + "enhancements": {} + }, + "gridData": { + "h": 6, + "i": "c63b417d-7b03-432d-ba25-c7c2effda1d4", + "w": 7, + "x": 41, + "y": 0 + }, + "panelIndex": "c63b417d-7b03-432d-ba25-c7c2effda1d4", + "title": "Power Alarms", + "type": "lens" + }, + { + "embeddableConfig": { + "attributes": { + "references": [ + { + "id": "metrics-*", + "name": "indexpattern-datasource-layer-28c3773b-a896-466c-8a93-412deeb3313d", + "type": "index-pattern" + } + ], + "state": { + "adHocDataViews": {}, + "datasourceStates": { + "formBased": { + "layers": { + "28c3773b-a896-466c-8a93-412deeb3313d": { + "columnOrder": [ + "c7e7355e-e81d-465c-abcb-3344e49c9366", + "0a0e84ce-cd78-46c5-be35-733b4af304ff", + "d757c3e9-593a-4f46-8df3-a004b522701d", + "a1334703-ed06-4934-8e4b-94028c12e490", + "ad8cb1f6-3e19-4446-9df8-f3c1ba8912b2", + "2dd79849-48ba-42d4-81c4-34dfe4427826" + ], + "columns": { + "0a0e84ce-cd78-46c5-be35-733b4af304ff": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Mounted", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "d757c3e9-593a-4f46-8df3-a004b522701d", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 5 + }, + "scale": "ordinal", + "sourceField": "panw.system.filesystem.mounted" + }, + "2dd79849-48ba-42d4-81c4-34dfe4427826": { + "customLabel": true, + "dataType": "number", + "filter": { + "language": "kuery", + "query": "\"panw.system.filesystem.use_percent\": *" + }, + "isBucketed": false, + "label": "Percent Used", + "operationType": "last_value", + "params": { + "format": { + "id": "number", + "params": { + "decimals": 0 + } + }, + "sortField": "@timestamp" + }, + "scale": "ratio", + "sourceField": "panw.system.filesystem.use_percent" + }, + "a1334703-ed06-4934-8e4b-94028c12e490": { + "customLabel": true, + "dataType": "number", + "filter": { + "language": "kuery", + "query": "\"panw.system.filesystem.used\": *" + }, + "isBucketed": false, + "label": "Used", + "operationType": "last_value", + "params": { + "format": { + "id": "bytes", + "params": { + "decimals": 1 + } + }, + "sortField": "@timestamp" + }, + "scale": "ratio", + "sourceField": "panw.system.filesystem.used" + }, + "ad8cb1f6-3e19-4446-9df8-f3c1ba8912b2": { + "customLabel": true, + "dataType": "number", + "filter": { + "language": "kuery", + "query": "\"panw.system.filesystem.available\": *" + }, + "isBucketed": false, + "label": "Available", + "operationType": "last_value", + "params": { + "format": { + "id": "bytes", + "params": { + "decimals": 1 + } + }, + "sortField": "@timestamp" + }, + "scale": "ratio", + "sourceField": "panw.system.filesystem.available" + }, + "c7e7355e-e81d-465c-abcb-3344e49c9366": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Filesystem", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderAgg": { + "dataType": "number", + "isBucketed": false, + "label": "Maximum of oracle.tablespace.data_file.size.free.bytes", + "operationType": "max", + "params": { + "emptyAsNull": true + }, + "scale": "ratio", + "sourceField": "oracle.tablespace.data_file.size.free.bytes" + }, + "orderBy": { + "type": "custom" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 5 + }, + "scale": "ordinal", + "sourceField": "panw.system.filesystem.name" + }, + "d757c3e9-593a-4f46-8df3-a004b522701d": { + "customLabel": true, + "dataType": "number", + "filter": { + "language": "kuery", + "query": "\"panw.system.filesystem.size\": *" + }, + "isBucketed": false, + "label": "Filesystem Size", + "operationType": "last_value", + "params": { + "format": { + "id": "bytes", + "params": { + "decimals": 1 + } + }, + "sortField": "@timestamp" + }, + "scale": "ratio", + "sourceField": "panw.system.filesystem.size" + } + }, + "incompleteColumns": {}, + "sampling": 1 + } + } + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "filters": [], + "internalReferences": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "columns": [ + { + "columnId": "c7e7355e-e81d-465c-abcb-3344e49c9366", + "isTransposed": false + }, + { + "columnId": "0a0e84ce-cd78-46c5-be35-733b4af304ff", + "isTransposed": false + }, + { + "columnId": "d757c3e9-593a-4f46-8df3-a004b522701d", + "isTransposed": false, + "width": 142 + }, + { + "columnId": "a1334703-ed06-4934-8e4b-94028c12e490", + "isTransposed": false, + "width": 123.6 + }, + { + "columnId": "ad8cb1f6-3e19-4446-9df8-f3c1ba8912b2", + "isTransposed": false, + "width": 124.1 + }, + { + "columnId": "2dd79849-48ba-42d4-81c4-34dfe4427826", + "hidden": false, + "isTransposed": false + } + ], + "layerId": "28c3773b-a896-466c-8a93-412deeb3313d", + "layerType": "data" + } + }, + "title": "", + "type": "lens", + "visualizationType": "lnsDatatable" + }, + "enhancements": {} + }, + "gridData": { + "h": 15, + "i": "bbde7c83-0b1d-4c2f-8baf-12b15785d30b", + "w": 24, + "x": 0, + "y": 6 + }, + "panelIndex": "bbde7c83-0b1d-4c2f-8baf-12b15785d30b", + "title": "Disk Usage", + "type": "lens" + }, + { + "embeddableConfig": { + "attributes": { + "references": [ + { + "id": "metrics-*", + "name": "indexpattern-datasource-layer-93308fd4-919e-470f-94cd-e05e7d89f7f7", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "indexpattern-datasource-layer-ed5168bf-932a-4c12-9d93-3cbbcff1de60", + "type": "index-pattern" + } + ], + "state": { + "adHocDataViews": {}, + "datasourceStates": { + "formBased": { + "layers": { + "93308fd4-919e-470f-94cd-e05e7d89f7f7": { + "columnOrder": [ + "311360c1-eb5c-436c-9553-8f6aadc91ea5", + "54ba8425-cf85-4a41-bc14-eb717409f9d4", + "9156b77d-c585-4cfc-b23a-baa727bebfbd", + "72cd3b18-27a6-4a62-a650-bbe5f09cbac5" + ], + "columns": { + "311360c1-eb5c-436c-9553-8f6aadc91ea5": { + "dataType": "date", + "isBucketed": true, + "label": "@timestamp", + "operationType": "date_histogram", + "params": { + "dropPartials": false, + "includeEmptyRows": true, + "interval": "m" + }, + "scale": "interval", + "sourceField": "@timestamp" + }, + "54ba8425-cf85-4a41-bc14-eb717409f9d4": { + "customLabel": true, + "dataType": "number", + "filter": { + "language": "kuery", + "query": "\"panw.system.memory.buffer_cache\": *" + }, + "isBucketed": false, + "label": "BufferCache", + "operationType": "last_value", + "params": { + "format": { + "id": "bytes", + "params": { + "decimals": 2 + } + }, + "sortField": "@timestamp" + }, + "scale": "ratio", + "sourceField": "panw.system.memory.buffer_cache" + }, + "72cd3b18-27a6-4a62-a650-bbe5f09cbac5": { + "customLabel": true, + "dataType": "number", + "filter": { + "language": "kuery", + "query": "\"panw.system.memory.free\": *" + }, + "isBucketed": false, + "label": "Free", + "operationType": "last_value", + "params": { + "format": { + "id": "bytes", + "params": { + "decimals": 0 + } + }, + "sortField": "@timestamp" + }, + "scale": "ratio", + "sourceField": "panw.system.memory.free" + }, + "9156b77d-c585-4cfc-b23a-baa727bebfbd": { + "customLabel": true, + "dataType": "number", + "filter": { + "language": "kuery", + "query": "\"panw.system.memory.used\": *" + }, + "isBucketed": false, + "label": "Used", + "operationType": "last_value", + "params": { + "format": { + "id": "bytes", + "params": { + "decimals": 0 + } + }, + "sortField": "@timestamp" + }, + "scale": "ratio", + "sourceField": "panw.system.memory.used" + } + }, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "sampling": 1 + }, + "ed5168bf-932a-4c12-9d93-3cbbcff1de60": { + "columnOrder": [ + "610f362a-3ad7-482a-b513-8259accdea4e" + ], + "columns": { + "610f362a-3ad7-482a-b513-8259accdea4e": { + "customLabel": true, + "dataType": "number", + "filter": { + "language": "kuery", + "query": "\"panw.system.memory.total\": *" + }, + "isBucketed": false, + "label": "TotalMemory", + "operationType": "last_value", + "params": { + "format": { + "id": "bytes", + "params": { + "decimals": 2 + } + }, + "sortField": "@timestamp" + }, + "scale": "ratio", + "sourceField": "panw.system.memory.total" + } + }, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "linkToLayers": [], + "sampling": 1 + } + } + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "filters": [], + "internalReferences": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "axisTitlesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "fittingFunction": "None", + "gridlinesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "labelsOrientation": { + "x": 0, + "yLeft": 0, + "yRight": 0 + }, + "layers": [ + { + "accessors": [ + "72cd3b18-27a6-4a62-a650-bbe5f09cbac5", + "54ba8425-cf85-4a41-bc14-eb717409f9d4", + "9156b77d-c585-4cfc-b23a-baa727bebfbd" + ], + "colorMapping": { + "assignments": [], + "colorMode": { + "type": "categorical" + }, + "paletteId": "eui_amsterdam_color_blind", + "specialAssignments": [ + { + "color": { + "type": "loop" + }, + "rule": { + "type": "other" + }, + "touched": false + } + ] + }, + "layerId": "93308fd4-919e-470f-94cd-e05e7d89f7f7", + "layerType": "data", + "position": "top", + "seriesType": "bar_stacked", + "showGridlines": false, + "xAccessor": "311360c1-eb5c-436c-9553-8f6aadc91ea5" + }, + { + "accessors": [ + "610f362a-3ad7-482a-b513-8259accdea4e" + ], + "layerId": "ed5168bf-932a-4c12-9d93-3cbbcff1de60", + "layerType": "referenceLine", + "yConfig": [ + { + "axisMode": "left", + "forAccessor": "610f362a-3ad7-482a-b513-8259accdea4e", + "icon": "asterisk", + "iconPosition": "left", + "textVisibility": true + } + ] + } + ], + "legend": { + "isVisible": true, + "position": "right" + }, + "preferredSeriesType": "bar_stacked", + "tickLabelsVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "valueLabels": "hide" + } + }, + "title": "", + "type": "lens", + "visualizationType": "lnsXY" + }, + "enhancements": {} + }, + "gridData": { + "h": 15, + "i": "cf3ac26c-5e4f-453d-937d-e345270a8a61", + "w": 24, + "x": 24, + "y": 6 + }, + "panelIndex": "cf3ac26c-5e4f-453d-937d-e345270a8a61", + "title": "Memory", + "type": "lens" + }, + { + "embeddableConfig": { + "attributes": { + "references": [ + { + "id": "metrics-*", + "name": "indexpattern-datasource-layer-36de673c-5822-45a3-8465-9ea14d9bdba8", + "type": "index-pattern" + } + ], + "state": { + "adHocDataViews": {}, + "datasourceStates": { + "formBased": { + "layers": { + "36de673c-5822-45a3-8465-9ea14d9bdba8": { + "columnOrder": [ + "7e6e5ee1-4eea-4c3f-ae4b-c93b9b649b2b", + "a7488650-e737-43c4-abad-3e6fc791303e", + "ecdaca56-827c-4c4b-9dc0-56b5d331a2b6", + "0939b98f-d573-4951-aed0-a85303e19855", + "d5074c95-04ef-4640-90d3-903a5b81f256", + "47e76e1e-7945-4185-941e-dfb453f88d64", + "06880a20-0051-4812-9198-73759ba3240e" + ], + "columns": { + "06880a20-0051-4812-9198-73759ba3240e": { + "dataType": "number", + "isBucketed": false, + "label": "Count of records", + "operationType": "count", + "params": { + "emptyAsNull": true + }, + "scale": "ratio", + "sourceField": "___records___" + }, + "0939b98f-d573-4951-aed0-a85303e19855": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Date Issued", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "fallback": false, + "type": "alphabetical" + }, + "orderDirection": "asc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.system.license.issued" + }, + "47e76e1e-7945-4185-941e-dfb453f88d64": { + "customLabel": true, + "dataType": "boolean", + "isBucketed": true, + "label": "Expired", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "06880a20-0051-4812-9198-73759ba3240e", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.system.license.expired" + }, + "7e6e5ee1-4eea-4c3f-ae4b-c93b9b649b2b": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Feature", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "fallback": false, + "type": "alphabetical" + }, + "orderDirection": "asc", + "otherBucket": false, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.system.license.feature" + }, + "a7488650-e737-43c4-abad-3e6fc791303e": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Description", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "06880a20-0051-4812-9198-73759ba3240e", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.system.license.description" + }, + "d5074c95-04ef-4640-90d3-903a5b81f256": { + "customLabel": true, + "dataType": "boolean", + "isBucketed": true, + "label": "Never Expires", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "06880a20-0051-4812-9198-73759ba3240e", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.system.license.never_expires" + }, + "ecdaca56-827c-4c4b-9dc0-56b5d331a2b6": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Date Expires", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "06880a20-0051-4812-9198-73759ba3240e", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.system.license.expires" + } + }, + "incompleteColumns": {}, + "sampling": 1 + } + } + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "filters": [], + "internalReferences": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "columns": [ + { + "columnId": "7e6e5ee1-4eea-4c3f-ae4b-c93b9b649b2b", + "isTransposed": false, + "width": 176.57142857142858 + }, + { + "columnId": "0939b98f-d573-4951-aed0-a85303e19855", + "isMetric": false, + "isTransposed": false, + "width": 199.57142857142858 + }, + { + "columnId": "d5074c95-04ef-4640-90d3-903a5b81f256", + "isTransposed": false + }, + { + "columnId": "47e76e1e-7945-4185-941e-dfb453f88d64", + "isTransposed": false + }, + { + "columnId": "a7488650-e737-43c4-abad-3e6fc791303e", + "isTransposed": false + }, + { + "columnId": "ecdaca56-827c-4c4b-9dc0-56b5d331a2b6", + "isTransposed": false + }, + { + "columnId": "06880a20-0051-4812-9198-73759ba3240e", + "isMetric": true, + "isTransposed": false + } + ], + "layerId": "36de673c-5822-45a3-8465-9ea14d9bdba8", + "layerType": "data" + } + }, + "title": "", + "type": "lens", + "visualizationType": "lnsDatatable" + }, + "enhancements": {} + }, + "gridData": { + "h": 12, + "i": "5b0ea34a-9df4-4f4b-a589-bbd6aa08438f", + "w": 48, + "x": 0, + "y": 21 + }, + "panelIndex": "5b0ea34a-9df4-4f4b-a589-bbd6aa08438f", + "title": "LIcenses", + "type": "lens" + } + ], + "timeRestore": false, + "title": "PANW System Resources (Detail)", + "version": 2 + }, + "coreMigrationVersion": "8.8.0", + "created_at": "2024-09-26T22:02:07.958Z", + "created_by": "u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0", + "id": "panw_metrics-323c0ebd-8b21-4a73-a969-511ef844434c", + "managed": false, + "references": [ + { + "id": "metrics-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "19dc313f-122c-4589-9cb4-f2ee8a306aeb:indexpattern-datasource-layer-84d94cdf-99fe-43f4-b520-8343a94355b6", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "e9979bc0-3d3a-4eef-80a5-9dc75a2a1501:indexpattern-datasource-layer-ef579182-b6a5-4392-a32e-2cc104fed1ef", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "f5e1a80e-ffc0-4ede-bd24-87beb30f886f:indexpattern-datasource-layer-d518bbf9-bd15-4582-9a24-ef33e5ee5002", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "c63b417d-7b03-432d-ba25-c7c2effda1d4:indexpattern-datasource-layer-d518bbf9-bd15-4582-9a24-ef33e5ee5002", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "bbde7c83-0b1d-4c2f-8baf-12b15785d30b:indexpattern-datasource-layer-28c3773b-a896-466c-8a93-412deeb3313d", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "cf3ac26c-5e4f-453d-937d-e345270a8a61:indexpattern-datasource-layer-93308fd4-919e-470f-94cd-e05e7d89f7f7", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "cf3ac26c-5e4f-453d-937d-e345270a8a61:indexpattern-datasource-layer-ed5168bf-932a-4c12-9d93-3cbbcff1de60", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "5b0ea34a-9df4-4f4b-a589-bbd6aa08438f:indexpattern-datasource-layer-36de673c-5822-45a3-8465-9ea14d9bdba8", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "controlGroup_b6299f3c-17e7-4663-8a63-3c856c683ea8:optionsListDataView", + "type": "index-pattern" + } + ], + "type": "dashboard", + "typeMigrationVersion": "10.2.0", + "updated_by": "u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0" +} \ No newline at end of file diff --git a/packages/panw_metrics/kibana/dashboard/panw_metrics-b852ed05-eafa-4f8f-b6cc-df7c1ad7f257.json b/packages/panw_metrics/kibana/dashboard/panw_metrics-b852ed05-eafa-4f8f-b6cc-df7c1ad7f257.json new file mode 100644 index 00000000000..7cea0cc21e7 --- /dev/null +++ b/packages/panw_metrics/kibana/dashboard/panw_metrics-b852ed05-eafa-4f8f-b6cc-df7c1ad7f257.json @@ -0,0 +1,573 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [ + { + "$state": { + "store": "appState" + }, + "meta": { + "alias": null, + "disabled": false, + "field": "event.dataset", + "indexRefName": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "key": "event.dataset", + "negate": false, + "params": { + "query": "panw_metrics.routing" + }, + "type": "phrase" + }, + "query": { + "match_phrase": { + "event.dataset": "panw_metrics.routing" + } + } + } + ], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "optionsJSON": { + "hidePanelTitles": false, + "syncColors": false, + "syncCursor": true, + "syncTooltips": false, + "useMargins": true + }, + "panelsJSON": [ + { + "embeddableConfig": { + "attributes": { + "references": [ + { + "id": "metrics-*", + "name": "indexpattern-datasource-layer-853bca20-9ae1-4cf0-ae48-975775575fec", + "type": "index-pattern" + } + ], + "state": { + "adHocDataViews": {}, + "datasourceStates": { + "formBased": { + "layers": { + "853bca20-9ae1-4cf0-ae48-975775575fec": { + "columnOrder": [ + "4ed9e769-6bc4-4b15-8970-2ee408e538da", + "e979cba0-9935-4bfa-9006-c74bb7b496e4" + ], + "columns": { + "4ed9e769-6bc4-4b15-8970-2ee408e538da": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Peer Group", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "e979cba0-9935-4bfa-9006-c74bb7b496e4", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 10 + }, + "scale": "ordinal", + "sourceField": "panw.routing.bgp.peer_group" + }, + "e979cba0-9935-4bfa-9006-c74bb7b496e4": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Member Count", + "operationType": "unique_count", + "params": { + "emptyAsNull": true + }, + "scale": "ratio", + "sourceField": "panw.routing.bgp.local_ip" + } + }, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "sampling": 1 + } + } + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "filters": [], + "internalReferences": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "columns": [ + { + "columnId": "4ed9e769-6bc4-4b15-8970-2ee408e538da" + }, + { + "columnId": "e979cba0-9935-4bfa-9006-c74bb7b496e4" + } + ], + "layerId": "853bca20-9ae1-4cf0-ae48-975775575fec", + "layerType": "data" + } + }, + "title": "", + "type": "lens", + "visualizationType": "lnsDatatable" + }, + "enhancements": {} + }, + "gridData": { + "h": 18, + "i": "fc81bc43-0063-443e-8a5a-df0897874191", + "w": 16, + "x": 0, + "y": 0 + }, + "panelIndex": "fc81bc43-0063-443e-8a5a-df0897874191", + "title": "Peer Groups", + "type": "lens" + }, + { + "embeddableConfig": { + "attributes": { + "references": [ + { + "id": "metrics-*", + "name": "indexpattern-datasource-layer-7cd7506a-06f0-4ddf-8138-e049a82e2f6d", + "type": "index-pattern" + } + ], + "state": { + "adHocDataViews": {}, + "datasourceStates": { + "formBased": { + "layers": { + "7cd7506a-06f0-4ddf-8138-e049a82e2f6d": { + "columnOrder": [ + "709d7d72-3d36-4d46-9ceb-fa8f9ff69095", + "1453d27b-e00b-4bf0-855d-ab38294da771", + "7ff1c847-4f36-4293-9610-283301210865", + "efd7348c-303a-423f-994a-64364c32cd94", + "12d0ee16-6fae-4ba7-873f-d134e9198897" + ], + "columns": { + "12d0ee16-6fae-4ba7-873f-d134e9198897": { + "dataType": "number", + "isBucketed": false, + "label": "Count of records", + "operationType": "count", + "params": { + "emptyAsNull": true + }, + "scale": "ratio", + "sourceField": "___records___" + }, + "1453d27b-e00b-4bf0-855d-ab38294da771": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "From IP", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "12d0ee16-6fae-4ba7-873f-d134e9198897", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.routing.bgp.local_ip" + }, + "709d7d72-3d36-4d46-9ceb-fa8f9ff69095": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Peer Group", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "12d0ee16-6fae-4ba7-873f-d134e9198897", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.routing.bgp.peer_group" + }, + "7ff1c847-4f36-4293-9610-283301210865": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "To IP", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "12d0ee16-6fae-4ba7-873f-d134e9198897", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.routing.bgp.peer_ip" + }, + "efd7348c-303a-423f-994a-64364c32cd94": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Router ID", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "12d0ee16-6fae-4ba7-873f-d134e9198897", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.routing.bgp.peer_router_id" + } + }, + "incompleteColumns": {}, + "sampling": 1 + } + } + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "filters": [], + "internalReferences": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "columns": [ + { + "columnId": "709d7d72-3d36-4d46-9ceb-fa8f9ff69095", + "isTransposed": false + }, + { + "columnId": "7ff1c847-4f36-4293-9610-283301210865", + "isTransposed": false + }, + { + "columnId": "efd7348c-303a-423f-994a-64364c32cd94", + "isMetric": false, + "isTransposed": false + }, + { + "columnId": "12d0ee16-6fae-4ba7-873f-d134e9198897", + "hidden": true, + "isTransposed": false + }, + { + "columnId": "1453d27b-e00b-4bf0-855d-ab38294da771", + "isMetric": false, + "isTransposed": false + } + ], + "layerId": "7cd7506a-06f0-4ddf-8138-e049a82e2f6d", + "layerType": "data" + } + }, + "title": "", + "type": "lens", + "visualizationType": "lnsDatatable" + }, + "enhancements": {} + }, + "gridData": { + "h": 18, + "i": "d1eff82e-248b-411d-a020-ae20ff7f5c48", + "w": 30, + "x": 16, + "y": 0 + }, + "panelIndex": "d1eff82e-248b-411d-a020-ae20ff7f5c48", + "title": "Peers", + "type": "lens" + }, + { + "embeddableConfig": { + "attributes": { + "references": [ + { + "id": "metrics-*", + "name": "indexpattern-datasource-layer-61096ec2-4285-4898-8e43-f36b815c0dc7", + "type": "index-pattern" + } + ], + "state": { + "adHocDataViews": {}, + "datasourceStates": { + "formBased": { + "layers": { + "61096ec2-4285-4898-8e43-f36b815c0dc7": { + "columnOrder": [ + "38793a33-5e5e-420d-9fb0-f23a847336f3", + "4c48ea8c-3899-4ad4-9656-b61e4f58332b", + "e8b20eb8-c5ea-4ac6-a50c-02de3d3f53ad" + ], + "columns": { + "38793a33-5e5e-420d-9fb0-f23a847336f3": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Peers", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "4c48ea8c-3899-4ad4-9656-b61e4f58332b", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": false, + "parentFormat": { + "id": "terms" + }, + "secondaryFields": [], + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.routing.bgp.local_ip" + }, + "4c48ea8c-3899-4ad4-9656-b61e4f58332b": { + "customLabel": true, + "dataType": "number", + "filter": { + "language": "kuery", + "query": "\"panw.routing.bgp.msg_total_in\": *" + }, + "isBucketed": false, + "label": "Total IN", + "operationType": "last_value", + "params": { + "sortField": "@timestamp" + }, + "scale": "ratio", + "sourceField": "panw.routing.bgp.msg_total_in" + }, + "e8b20eb8-c5ea-4ac6-a50c-02de3d3f53ad": { + "customLabel": true, + "dataType": "number", + "filter": { + "language": "kuery", + "query": "\"panw.routing.bgp.msg_total_out\": *" + }, + "isBucketed": false, + "label": "Total OUT", + "operationType": "last_value", + "params": { + "sortField": "@timestamp" + }, + "scale": "ratio", + "sourceField": "panw.routing.bgp.msg_total_out" + } + }, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "sampling": 1 + } + } + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "filters": [], + "internalReferences": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "axisTitlesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "fittingFunction": "None", + "gridlinesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "labelsOrientation": { + "x": 0, + "yLeft": 0, + "yRight": 0 + }, + "layers": [ + { + "accessors": [ + "4c48ea8c-3899-4ad4-9656-b61e4f58332b", + "e8b20eb8-c5ea-4ac6-a50c-02de3d3f53ad" + ], + "colorMapping": { + "assignments": [], + "colorMode": { + "type": "categorical" + }, + "paletteId": "eui_amsterdam_color_blind", + "specialAssignments": [ + { + "color": { + "type": "loop" + }, + "rule": { + "type": "other" + }, + "touched": false + } + ] + }, + "layerId": "61096ec2-4285-4898-8e43-f36b815c0dc7", + "layerType": "data", + "position": "top", + "seriesType": "bar_horizontal_stacked", + "showGridlines": false, + "xAccessor": "38793a33-5e5e-420d-9fb0-f23a847336f3" + } + ], + "legend": { + "isVisible": true, + "position": "right" + }, + "preferredSeriesType": "bar_horizontal_stacked", + "tickLabelsVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "valueLabels": "hide" + } + }, + "title": "", + "type": "lens", + "visualizationType": "lnsXY" + }, + "enhancements": {} + }, + "gridData": { + "h": 15, + "i": "c48c28ca-a174-4920-8ca6-c8368b11584c", + "w": 24, + "x": 0, + "y": 18 + }, + "panelIndex": "c48c28ca-a174-4920-8ca6-c8368b11584c", + "title": "Messages per Peer", + "type": "lens" + } + ], + "timeRestore": false, + "title": "PANW BGP", + "version": 2 + }, + "coreMigrationVersion": "8.8.0", + "created_at": "2024-09-26T22:47:08.685Z", + "created_by": "u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0", + "id": "panw_metrics-b852ed05-eafa-4f8f-b6cc-df7c1ad7f257", + "managed": false, + "references": [ + { + "id": "metrics-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "fc81bc43-0063-443e-8a5a-df0897874191:indexpattern-datasource-layer-853bca20-9ae1-4cf0-ae48-975775575fec", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "d1eff82e-248b-411d-a020-ae20ff7f5c48:indexpattern-datasource-layer-7cd7506a-06f0-4ddf-8138-e049a82e2f6d", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "c48c28ca-a174-4920-8ca6-c8368b11584c:indexpattern-datasource-layer-61096ec2-4285-4898-8e43-f36b815c0dc7", + "type": "index-pattern" + } + ], + "type": "dashboard", + "typeMigrationVersion": "10.2.0", + "updated_by": "u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0" +} \ No newline at end of file diff --git a/packages/panw_metrics/manifest.yml b/packages/panw_metrics/manifest.yml index 349c177e910..4555189cf63 100644 --- a/packages/panw_metrics/manifest.yml +++ b/packages/panw_metrics/manifest.yml @@ -1,7 +1,7 @@ format_version: 3.1.4 name: panw_metrics title: "Palo Alto Networks Metrics" -version: 0.0.1 +version: "0.0.1" description: > "This integration periodically fetches metrics from [Palo Alto Networks](https://www.paloaltonetworks.com/) firewalls and management systems." type: integration From 22045b9886abca650f669fb622987f4409caf90c Mon Sep 17 00:00:00 2001 From: dparkerelastic Date: Sun, 29 Sep 2024 12:47:54 -0400 Subject: [PATCH 24/50] Added dashboards. Still need to address the dynamic template in ecs@mappings that maps anything ending in ip to ip type. I deleted this template locally because it was not honoring my keyword and ip_range field mappings. I still cannot install this integration in 8.15.2 due to an "unsupported input" error when the agent policy is created. This happens with docker elasticsearch and in the cloud. Everything works fine with 8.15.2-SNAPSHOT running in Docker. I have not been able to find more debugging information on the cause of the error. --- ...-a8cb4123-a6d3-48a7-aa23-b40427821182.json | 525 ++++++ ...-f8f0b70a-01cf-497d-89ac-a3e2c0d6bbb7.json | 1587 +++++++++++++++++ 2 files changed, 2112 insertions(+) create mode 100644 packages/panw_metrics/kibana/dashboard/panw_metrics-a8cb4123-a6d3-48a7-aa23-b40427821182.json create mode 100644 packages/panw_metrics/kibana/dashboard/panw_metrics-f8f0b70a-01cf-497d-89ac-a3e2c0d6bbb7.json diff --git a/packages/panw_metrics/kibana/dashboard/panw_metrics-a8cb4123-a6d3-48a7-aa23-b40427821182.json b/packages/panw_metrics/kibana/dashboard/panw_metrics-a8cb4123-a6d3-48a7-aa23-b40427821182.json new file mode 100644 index 00000000000..35f8d923fcd --- /dev/null +++ b/packages/panw_metrics/kibana/dashboard/panw_metrics-a8cb4123-a6d3-48a7-aa23-b40427821182.json @@ -0,0 +1,525 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [ + { + "$state": { + "store": "appState" + }, + "meta": { + "alias": null, + "disabled": false, + "field": "event.dataset", + "indexRefName": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "key": "event.dataset", + "negate": false, + "params": { + "query": "panw_metrics.vpn" + }, + "type": "phrase" + }, + "query": { + "match_phrase": { + "event.dataset": "panw_metrics.vpn" + } + } + } + ], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "optionsJSON": { + "hidePanelTitles": false, + "syncColors": false, + "syncCursor": true, + "syncTooltips": false, + "useMargins": true + }, + "panelsJSON": [ + { + "embeddableConfig": { + "attributes": { + "references": [ + { + "id": "metrics-*", + "name": "indexpattern-datasource-layer-fae93e77-35f6-4b38-91a2-fe9457238e69", + "type": "index-pattern" + } + ], + "state": { + "adHocDataViews": {}, + "datasourceStates": { + "formBased": { + "layers": { + "fae93e77-35f6-4b38-91a2-fe9457238e69": { + "columnOrder": [ + "f0624b44-c950-4001-86b6-1e194f1fd194", + "ff496ebe-09cf-4a41-beae-f76fb48280ca" + ], + "columns": { + "f0624b44-c950-4001-86b6-1e194f1fd194": { + "dataType": "string", + "isBucketed": true, + "label": "Top value of panw.vpn.globalprotect.gateway.name", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "ff496ebe-09cf-4a41-beae-f76fb48280ca", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": false, + "parentFormat": { + "id": "terms" + }, + "size": 1 + }, + "scale": "ordinal", + "sourceField": "panw.vpn.globalprotect.gateway.name" + }, + "ff496ebe-09cf-4a41-beae-f76fb48280ca": { + "customLabel": true, + "dataType": "number", + "filter": { + "language": "kuery", + "query": "\"panw.vpn.globalprotect.gateway.current_users\": *" + }, + "isBucketed": false, + "label": "Current Users", + "operationType": "last_value", + "params": { + "sortField": "@timestamp" + }, + "scale": "ratio", + "sourceField": "panw.vpn.globalprotect.gateway.current_users" + } + }, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "sampling": 1 + } + } + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "filters": [], + "internalReferences": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "breakdownByAccessor": "f0624b44-c950-4001-86b6-1e194f1fd194", + "layerId": "fae93e77-35f6-4b38-91a2-fe9457238e69", + "layerType": "data", + "metricAccessor": "ff496ebe-09cf-4a41-beae-f76fb48280ca" + } + }, + "title": "", + "type": "lens", + "visualizationType": "lnsMetric" + }, + "enhancements": {} + }, + "gridData": { + "h": 7, + "i": "3d3ec772-3948-4363-9247-eed5148d011c", + "w": 9, + "x": 0, + "y": 0 + }, + "panelIndex": "3d3ec772-3948-4363-9247-eed5148d011c", + "type": "lens" + }, + { + "embeddableConfig": { + "attributes": { + "references": [ + { + "id": "metrics-*", + "name": "indexpattern-datasource-layer-32d68d60-ef81-402f-aa34-13b4f3b9a394", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "1ce1141d-b6ed-48cc-8d5b-4314a120f947", + "type": "index-pattern" + } + ], + "state": { + "adHocDataViews": {}, + "datasourceStates": { + "formBased": { + "layers": { + "32d68d60-ef81-402f-aa34-13b4f3b9a394": { + "columnOrder": [ + "68820aa9-e51d-4f55-9e53-96c78df4fc45", + "af1cea40-b5a7-4e91-b8e4-230a812b50c8", + "1a323a19-603e-42bb-9273-c139bdce609c", + "96d62b6e-fafd-49c7-ae30-1df9b312ed6e", + "b120c442-bbd6-4e95-a28e-caa24a876c4b", + "fac9fac0-12b4-4c9c-8b6a-cd1f0eafa61d", + "b531d8fb-a0f6-4cbc-a214-b990182758e2", + "379dc4ae-09f8-4f2a-be6d-690d31f7fa42", + "6e45ed00-f6b4-4170-aed1-3f2ecda73757" + ], + "columns": { + "1a323a19-603e-42bb-9273-c139bdce609c": { + "customLabel": true, + "dataType": "ip", + "isBucketed": true, + "label": "Client IP", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "379dc4ae-09f8-4f2a-be6d-690d31f7fa42", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "vpn.globalprotect.session.client_ip" + }, + "379dc4ae-09f8-4f2a-be6d-690d31f7fa42": { + "dataType": "number", + "isBucketed": false, + "label": "Count of records", + "operationType": "count", + "params": { + "emptyAsNull": true + }, + "scale": "ratio", + "sourceField": "___records___" + }, + "68820aa9-e51d-4f55-9e53-96c78df4fc45": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Gateway", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "379dc4ae-09f8-4f2a-be6d-690d31f7fa42", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": false, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "vpn.globalprotect.gateway.name" + }, + "6e45ed00-f6b4-4170-aed1-3f2ecda73757": { + "dataType": "number", + "isBucketed": false, + "label": "Median of vpn.globalprotect.session.lifetime", + "operationType": "median", + "params": { + "emptyAsNull": true + }, + "scale": "ratio", + "sourceField": "vpn.globalprotect.session.lifetime" + }, + "96d62b6e-fafd-49c7-ae30-1df9b312ed6e": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Username", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "379dc4ae-09f8-4f2a-be6d-690d31f7fa42", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "vpn.globalprotect.session.primary_username" + }, + "af1cea40-b5a7-4e91-b8e4-230a812b50c8": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Client Computer", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "379dc4ae-09f8-4f2a-be6d-690d31f7fa42", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "vpn.globalprotect.session.computer" + }, + "b120c442-bbd6-4e95-a28e-caa24a876c4b": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Domain", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "379dc4ae-09f8-4f2a-be6d-690d31f7fa42", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 19 + }, + "scale": "ordinal", + "sourceField": "vpn.globalprotect.session.domain" + }, + "b531d8fb-a0f6-4cbc-a214-b990182758e2": { + "customLabel": true, + "dataType": "boolean", + "isBucketed": true, + "label": "Local", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "379dc4ae-09f8-4f2a-be6d-690d31f7fa42", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 19 + }, + "scale": "ordinal", + "sourceField": "vpn.globalprotect.session.is_local" + }, + "fac9fac0-12b4-4c9c-8b6a-cd1f0eafa61d": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Type", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "379dc4ae-09f8-4f2a-be6d-690d31f7fa42", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "vpn.globalprotect.session.tunnel_type" + } + }, + "incompleteColumns": {}, + "sampling": 1 + } + } + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "filters": [ + { + "$state": { + "store": "appState" + }, + "meta": { + "alias": null, + "disabled": false, + "field": "event.dataset", + "index": "1ce1141d-b6ed-48cc-8d5b-4314a120f947", + "key": "event.dataset", + "negate": false, + "params": { + "query": "panw.vpn" + }, + "type": "phrase" + }, + "query": { + "match_phrase": { + "event.dataset": "panw.vpn" + } + } + } + ], + "internalReferences": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "columns": [ + { + "columnId": "68820aa9-e51d-4f55-9e53-96c78df4fc45", + "isTransposed": false + }, + { + "columnId": "af1cea40-b5a7-4e91-b8e4-230a812b50c8", + "isTransposed": false + }, + { + "columnId": "1a323a19-603e-42bb-9273-c139bdce609c", + "isTransposed": false + }, + { + "columnId": "96d62b6e-fafd-49c7-ae30-1df9b312ed6e", + "isTransposed": false + }, + { + "columnId": "b120c442-bbd6-4e95-a28e-caa24a876c4b", + "isTransposed": false + }, + { + "columnId": "fac9fac0-12b4-4c9c-8b6a-cd1f0eafa61d", + "isTransposed": false + }, + { + "columnId": "b531d8fb-a0f6-4cbc-a214-b990182758e2", + "isTransposed": false + }, + { + "columnId": "379dc4ae-09f8-4f2a-be6d-690d31f7fa42", + "hidden": true, + "isMetric": true, + "isTransposed": false + }, + { + "columnId": "6e45ed00-f6b4-4170-aed1-3f2ecda73757", + "isTransposed": false + } + ], + "layerId": "32d68d60-ef81-402f-aa34-13b4f3b9a394", + "layerType": "data" + } + }, + "title": "", + "type": "lens", + "visualizationType": "lnsDatatable" + }, + "enhancements": {} + }, + "gridData": { + "h": 15, + "i": "8f30eb25-c2d1-4b73-b3c4-60a28e32f03e", + "w": 33, + "x": 9, + "y": 0 + }, + "panelIndex": "8f30eb25-c2d1-4b73-b3c4-60a28e32f03e", + "title": "Current Sessions", + "type": "lens" + } + ], + "timeRestore": false, + "title": "PANW GlobalProtect", + "version": 2 + }, + "coreMigrationVersion": "8.8.0", + "created_at": "2024-09-29T16:09:36.268Z", + "created_by": "u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0", + "id": "panw_metrics-a8cb4123-a6d3-48a7-aa23-b40427821182", + "managed": false, + "references": [ + { + "id": "metrics-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "3d3ec772-3948-4363-9247-eed5148d011c:indexpattern-datasource-layer-fae93e77-35f6-4b38-91a2-fe9457238e69", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "8f30eb25-c2d1-4b73-b3c4-60a28e32f03e:indexpattern-datasource-layer-32d68d60-ef81-402f-aa34-13b4f3b9a394", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "8f30eb25-c2d1-4b73-b3c4-60a28e32f03e:1ce1141d-b6ed-48cc-8d5b-4314a120f947", + "type": "index-pattern" + } + ], + "type": "dashboard", + "typeMigrationVersion": "10.2.0", + "updated_by": "u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0" +} \ No newline at end of file diff --git a/packages/panw_metrics/kibana/dashboard/panw_metrics-f8f0b70a-01cf-497d-89ac-a3e2c0d6bbb7.json b/packages/panw_metrics/kibana/dashboard/panw_metrics-f8f0b70a-01cf-497d-89ac-a3e2c0d6bbb7.json new file mode 100644 index 00000000000..3ccb2dc2c21 --- /dev/null +++ b/packages/panw_metrics/kibana/dashboard/panw_metrics-f8f0b70a-01cf-497d-89ac-a3e2c0d6bbb7.json @@ -0,0 +1,1587 @@ +{ + "attributes": { + "controlGroupInput": { + "chainingSystem": "HIERARCHICAL", + "controlStyle": "oneLine", + "ignoreParentSettingsJSON": { + "ignoreFilters": false, + "ignoreQuery": false, + "ignoreTimerange": false, + "ignoreValidations": false + }, + "panelsJSON": { + "5b8b93a6-f1e3-4a55-a3b1-d2ee69bec2a6": { + "explicitInput": { + "enhancements": {}, + "fieldName": "observer.ip", + "grow": false, + "id": "5b8b93a6-f1e3-4a55-a3b1-d2ee69bec2a6", + "searchTechnique": "prefix", + "selectedOptions": [ + "10.200.99.13" + ], + "title": "observer.ip", + "width": "medium" + }, + "grow": false, + "order": 0, + "type": "optionsListControl", + "width": "medium" + } + }, + "showApplySelections": false + }, + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [ + { + "$state": { + "store": "appState" + }, + "meta": { + "alias": null, + "disabled": false, + "field": "event.dataset", + "indexRefName": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "key": "event.dataset", + "negate": false, + "params": { + "query": "panw_metrics.interfaces" + }, + "type": "phrase" + }, + "query": { + "match_phrase": { + "event.dataset": "panw_metrics.interfaces" + } + } + } + ], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "optionsJSON": { + "hidePanelTitles": false, + "syncColors": false, + "syncCursor": true, + "syncTooltips": false, + "useMargins": true + }, + "panelsJSON": [ + { + "embeddableConfig": { + "attributes": { + "references": [ + { + "id": "metrics-*", + "name": "indexpattern-datasource-layer-0bc09006-fc66-4c44-988c-3fc6151319cc", + "type": "index-pattern" + } + ], + "state": { + "adHocDataViews": {}, + "datasourceStates": { + "formBased": { + "layers": { + "0bc09006-fc66-4c44-988c-3fc6151319cc": { + "columnOrder": [ + "8563481a-ced9-44d0-a95d-acf39bac4f75", + "f1932147-2ada-47a0-a954-899b426d5e8b", + "6eff7e67-0123-4dd8-accc-27d0ac1b3e9b", + "2d445f09-fcb5-4fa6-bdc5-9e0b315c8ed3", + "fa15af9a-afcd-4649-8e08-ddf98b7cbf71", + "fff96276-4165-46f8-b62d-e77b7fed1395", + "c97ce536-6dc7-4731-b9c7-c71a8170b336", + "e0e8acb2-fef4-47e4-8b5c-a636dacb621c" + ], + "columns": { + "2d445f09-fcb5-4fa6-bdc5-9e0b315c8ed3": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Speed", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "e0e8acb2-fef4-47e4-8b5c-a636dacb621c", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.interfaces.physical.speed" + }, + "6eff7e67-0123-4dd8-accc-27d0ac1b3e9b": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Duplex", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "e0e8acb2-fef4-47e4-8b5c-a636dacb621c", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.interfaces.physical.duplex" + }, + "8563481a-ced9-44d0-a95d-acf39bac4f75": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Name", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "e0e8acb2-fef4-47e4-8b5c-a636dacb621c", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.interfaces.physical.name" + }, + "c97ce536-6dc7-4731-b9c7-c71a8170b336": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "State", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "e0e8acb2-fef4-47e4-8b5c-a636dacb621c", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.interfaces.physical.state" + }, + "e0e8acb2-fef4-47e4-8b5c-a636dacb621c": { + "dataType": "number", + "isBucketed": false, + "label": "Count of records", + "operationType": "count", + "params": { + "emptyAsNull": true + }, + "scale": "ratio", + "sourceField": "___records___" + }, + "f1932147-2ada-47a0-a954-899b426d5e8b": { + "customLabel": true, + "dataType": "number", + "isBucketed": true, + "label": "ID", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "e0e8acb2-fef4-47e4-8b5c-a636dacb621c", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.interfaces.physical.id" + }, + "fa15af9a-afcd-4649-8e08-ddf98b7cbf71": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Type", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "e0e8acb2-fef4-47e4-8b5c-a636dacb621c", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.interfaces.physical.type" + }, + "fff96276-4165-46f8-b62d-e77b7fed1395": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Mode", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "e0e8acb2-fef4-47e4-8b5c-a636dacb621c", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.interfaces.physical.mode" + } + }, + "incompleteColumns": {}, + "sampling": 1 + } + } + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "filters": [], + "internalReferences": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "columns": [ + { + "columnId": "8563481a-ced9-44d0-a95d-acf39bac4f75", + "isTransposed": false + }, + { + "columnId": "6eff7e67-0123-4dd8-accc-27d0ac1b3e9b", + "isMetric": false, + "isTransposed": false + }, + { + "columnId": "2d445f09-fcb5-4fa6-bdc5-9e0b315c8ed3", + "isTransposed": false + }, + { + "columnId": "fa15af9a-afcd-4649-8e08-ddf98b7cbf71", + "isTransposed": false + }, + { + "columnId": "fff96276-4165-46f8-b62d-e77b7fed1395", + "isTransposed": false + }, + { + "columnId": "c97ce536-6dc7-4731-b9c7-c71a8170b336", + "isTransposed": false + }, + { + "columnId": "e0e8acb2-fef4-47e4-8b5c-a636dacb621c", + "hidden": true, + "isTransposed": false + }, + { + "columnId": "f1932147-2ada-47a0-a954-899b426d5e8b", + "isMetric": false, + "isTransposed": false + } + ], + "layerId": "0bc09006-fc66-4c44-988c-3fc6151319cc", + "layerType": "data" + } + }, + "title": "", + "type": "lens", + "visualizationType": "lnsDatatable" + }, + "enhancements": {} + }, + "gridData": { + "h": 18, + "i": "b38b1b60-8e9e-48a3-a4ef-db4270243736", + "w": 27, + "x": 0, + "y": 0 + }, + "panelIndex": "b38b1b60-8e9e-48a3-a4ef-db4270243736", + "title": "Physical Interfaces", + "type": "lens" + }, + { + "embeddableConfig": { + "attributes": { + "references": [ + { + "id": "metrics-*", + "name": "indexpattern-datasource-layer-d5fddad1-5faa-418a-808e-cdb47ba28e4f", + "type": "index-pattern" + } + ], + "state": { + "adHocDataViews": {}, + "datasourceStates": { + "formBased": { + "layers": { + "d5fddad1-5faa-418a-808e-cdb47ba28e4f": { + "columnOrder": [ + "97d9e906-77ad-4205-b91b-90c2c1530f82", + "1955783b-c416-4c60-a7a0-761c97783ce4", + "865e5b10-80b0-4e89-bcea-a181ed9f92ce", + "1bb6da99-aa4a-4e83-9b8c-7e7fce621e3a", + "49329f96-5495-49d6-9fb1-f004e47aafbd", + "5fa88d86-6bd7-4ac5-a43b-0ce636be5fca" + ], + "columns": { + "1955783b-c416-4c60-a7a0-761c97783ce4": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "IP", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "5fa88d86-6bd7-4ac5-a43b-0ce636be5fca", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.interfaces.logical.ip" + }, + "1bb6da99-aa4a-4e83-9b8c-7e7fce621e3a": { + "customLabel": true, + "dataType": "number", + "isBucketed": true, + "label": "VLAN Tag", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "5fa88d86-6bd7-4ac5-a43b-0ce636be5fca", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.interfaces.logical.tag" + }, + "49329f96-5495-49d6-9fb1-f004e47aafbd": { + "customLabel": true, + "dataType": "number", + "isBucketed": true, + "label": "Virtual System", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "5fa88d86-6bd7-4ac5-a43b-0ce636be5fca", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.interfaces.logical.vsys" + }, + "5fa88d86-6bd7-4ac5-a43b-0ce636be5fca": { + "dataType": "number", + "isBucketed": false, + "label": "Count of records", + "operationType": "count", + "params": { + "emptyAsNull": true + }, + "scale": "ratio", + "sourceField": "___records___" + }, + "865e5b10-80b0-4e89-bcea-a181ed9f92ce": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Zone", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "5fa88d86-6bd7-4ac5-a43b-0ce636be5fca", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.interfaces.logical.zone" + }, + "97d9e906-77ad-4205-b91b-90c2c1530f82": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Name", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "5fa88d86-6bd7-4ac5-a43b-0ce636be5fca", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": false, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.interfaces.logical.name" + } + }, + "incompleteColumns": {}, + "sampling": 1 + } + } + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "filters": [], + "internalReferences": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "columns": [ + { + "columnId": "97d9e906-77ad-4205-b91b-90c2c1530f82", + "isTransposed": false + }, + { + "columnId": "1955783b-c416-4c60-a7a0-761c97783ce4", + "isTransposed": false + }, + { + "columnId": "865e5b10-80b0-4e89-bcea-a181ed9f92ce", + "isTransposed": false + }, + { + "columnId": "5fa88d86-6bd7-4ac5-a43b-0ce636be5fca", + "hidden": true, + "isMetric": true, + "isTransposed": false + }, + { + "columnId": "1bb6da99-aa4a-4e83-9b8c-7e7fce621e3a", + "isMetric": false, + "isTransposed": false + }, + { + "columnId": "49329f96-5495-49d6-9fb1-f004e47aafbd", + "isMetric": false, + "isTransposed": false + } + ], + "layerId": "d5fddad1-5faa-418a-808e-cdb47ba28e4f", + "layerType": "data" + } + }, + "title": "", + "type": "lens", + "visualizationType": "lnsDatatable" + }, + "enhancements": {} + }, + "gridData": { + "h": 18, + "i": "a6e39853-be2b-4271-a37d-39add2be7622", + "w": 21, + "x": 27, + "y": 0 + }, + "panelIndex": "a6e39853-be2b-4271-a37d-39add2be7622", + "title": "Logical Interfaces", + "type": "lens" + }, + { + "embeddableConfig": { + "attributes": { + "references": [ + { + "id": "metrics-*", + "name": "indexpattern-datasource-layer-2ae143b9-8527-4bac-bff5-5a5415946625", + "type": "index-pattern" + } + ], + "state": { + "adHocDataViews": {}, + "datasourceStates": { + "formBased": { + "layers": { + "2ae143b9-8527-4bac-bff5-5a5415946625": { + "columnOrder": [ + "7d89a264-e7fc-4e32-ad1e-d45d61b01757", + "b6392b7f-c29f-49f9-8f91-8f1c1c0f2a6e", + "e8c20f1f-1eac-49e1-8244-8c05664e0ca7", + "b9bdffc2-7550-4e9a-be56-f4da56bb64f6", + "c8c630b7-b762-4730-9ee2-ebbc1e20a99a", + "4fc3d4d2-8540-41cf-8a92-94a2cde191ab", + "37b92e54-6f33-4d9c-b4df-921fa2b60113" + ], + "columns": { + "37b92e54-6f33-4d9c-b4df-921fa2b60113": { + "dataType": "number", + "isBucketed": false, + "label": "Count of records", + "operationType": "count", + "params": { + "emptyAsNull": true + }, + "scale": "ratio", + "sourceField": "___records___" + }, + "4fc3d4d2-8540-41cf-8a92-94a2cde191ab": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Encryption Algorithm", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "37b92e54-6f33-4d9c-b4df-921fa2b60113", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.interfaces.ipsec_tunnel.hash" + }, + "7d89a264-e7fc-4e32-ad1e-d45d61b01757": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Tunnel Name", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "37b92e54-6f33-4d9c-b4df-921fa2b60113", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.interfaces.ipsec_tunnel.name" + }, + "b6392b7f-c29f-49f9-8f91-8f1c1c0f2a6e": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Gateway", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "37b92e54-6f33-4d9c-b4df-921fa2b60113", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.interfaces.ipsec_tunnel.gw" + }, + "b9bdffc2-7550-4e9a-be56-f4da56bb64f6": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Protocol", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "37b92e54-6f33-4d9c-b4df-921fa2b60113", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.interfaces.ipsec_tunnel.proto" + }, + "c8c630b7-b762-4730-9ee2-ebbc1e20a99a": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Mode", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "37b92e54-6f33-4d9c-b4df-921fa2b60113", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.interfaces.ipsec_tunnel.mode" + }, + "e8c20f1f-1eac-49e1-8244-8c05664e0ca7": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Traffic Selector Responder IP", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "37b92e54-6f33-4d9c-b4df-921fa2b60113", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.interfaces.ipsec_tunnel.TSr_ip" + } + }, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "sampling": 1 + } + } + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "filters": [], + "internalReferences": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "columns": [ + { + "columnId": "7d89a264-e7fc-4e32-ad1e-d45d61b01757", + "isMetric": false, + "isTransposed": false + }, + { + "columnId": "b6392b7f-c29f-49f9-8f91-8f1c1c0f2a6e", + "isTransposed": false, + "width": 191.83333333333334 + }, + { + "columnId": "e8c20f1f-1eac-49e1-8244-8c05664e0ca7", + "isTransposed": false + }, + { + "columnId": "b9bdffc2-7550-4e9a-be56-f4da56bb64f6", + "isTransposed": false + }, + { + "columnId": "37b92e54-6f33-4d9c-b4df-921fa2b60113", + "hidden": true, + "isMetric": true, + "isTransposed": false + }, + { + "columnId": "c8c630b7-b762-4730-9ee2-ebbc1e20a99a", + "isMetric": false, + "isTransposed": false + }, + { + "columnId": "4fc3d4d2-8540-41cf-8a92-94a2cde191ab", + "isMetric": false, + "isTransposed": false + } + ], + "layerId": "2ae143b9-8527-4bac-bff5-5a5415946625", + "layerType": "data" + } + }, + "title": "", + "type": "lens", + "visualizationType": "lnsDatatable" + }, + "enhancements": {} + }, + "gridData": { + "h": 13, + "i": "97d4f450-b6be-47e5-b87e-7c847e035bf9", + "w": 24, + "x": 0, + "y": 18 + }, + "panelIndex": "97d4f450-b6be-47e5-b87e-7c847e035bf9", + "title": "IPsec Tunnels", + "type": "lens" + }, + { + "embeddableConfig": { + "attributes": { + "references": [ + { + "id": "metrics-*", + "name": "indexpattern-datasource-layer-7e1403ac-ced7-4233-b2e9-ec9d2ba5fc90", + "type": "index-pattern" + } + ], + "state": { + "adHocDataViews": {}, + "datasourceStates": { + "formBased": { + "layers": { + "7e1403ac-ced7-4233-b2e9-ec9d2ba5fc90": { + "columnOrder": [ + "28ba1f53-e795-4b00-85bb-069083c0e3a0", + "08ae75d6-8b7d-47af-adc5-3a98b891ff92", + "98648eeb-4e67-45c1-a806-6c35dcd3b142", + "3c0759e0-833d-4008-8f1e-04e7dc59ce6a", + "0c2f9134-86e9-43d3-91f8-15a96685fd3f", + "31c2f8f1-e8c5-4f26-aa67-3d4fcf9f43a1" + ], + "columns": { + "08ae75d6-8b7d-47af-adc5-3a98b891ff92": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "HA Mode", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "31c2f8f1-e8c5-4f26-aa67-3d4fcf9f43a1", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 3 + }, + "scale": "ordinal", + "sourceField": "panw.interfaces.ha.mode" + }, + "0c2f9134-86e9-43d3-91f8-15a96685fd3f": { + "customLabel": true, + "dataType": "boolean", + "isBucketed": true, + "label": "Link Monitoring Enabled", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "31c2f8f1-e8c5-4f26-aa67-3d4fcf9f43a1", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 3 + }, + "scale": "ordinal", + "sourceField": "panw.interfaces.ha.link_monitoring.enabled" + }, + "28ba1f53-e795-4b00-85bb-069083c0e3a0": { + "customLabel": true, + "dataType": "boolean", + "isBucketed": true, + "label": "HA Enabled", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "31c2f8f1-e8c5-4f26-aa67-3d4fcf9f43a1", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 5 + }, + "scale": "ordinal", + "sourceField": "panw.interfaces.ha.enabled" + }, + "31c2f8f1-e8c5-4f26-aa67-3d4fcf9f43a1": { + "dataType": "number", + "isBucketed": false, + "label": "Count of records", + "operationType": "count", + "params": { + "emptyAsNull": true + }, + "scale": "ratio", + "sourceField": "___records___" + }, + "3c0759e0-833d-4008-8f1e-04e7dc59ce6a": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Sync Status", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "31c2f8f1-e8c5-4f26-aa67-3d4fcf9f43a1", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 3 + }, + "scale": "ordinal", + "sourceField": "panw.interfaces.ha.running_sync" + }, + "98648eeb-4e67-45c1-a806-6c35dcd3b142": { + "customLabel": true, + "dataType": "boolean", + "isBucketed": true, + "label": "Sync Enabed", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "31c2f8f1-e8c5-4f26-aa67-3d4fcf9f43a1", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 3 + }, + "scale": "ordinal", + "sourceField": "panw.interfaces.ha.running_sync_enabled" + } + }, + "incompleteColumns": {}, + "sampling": 1 + } + } + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "filters": [], + "internalReferences": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "columns": [ + { + "columnId": "28ba1f53-e795-4b00-85bb-069083c0e3a0", + "isTransposed": false + }, + { + "columnId": "0c2f9134-86e9-43d3-91f8-15a96685fd3f", + "isMetric": false, + "isTransposed": false + }, + { + "columnId": "08ae75d6-8b7d-47af-adc5-3a98b891ff92", + "isTransposed": false + }, + { + "columnId": "3c0759e0-833d-4008-8f1e-04e7dc59ce6a", + "isTransposed": false + }, + { + "columnId": "31c2f8f1-e8c5-4f26-aa67-3d4fcf9f43a1", + "hidden": true, + "isTransposed": false + }, + { + "columnId": "98648eeb-4e67-45c1-a806-6c35dcd3b142", + "isMetric": false, + "isTransposed": false + } + ], + "layerId": "7e1403ac-ced7-4233-b2e9-ec9d2ba5fc90", + "layerType": "data" + } + }, + "title": "", + "type": "lens", + "visualizationType": "lnsDatatable" + }, + "enhancements": {} + }, + "gridData": { + "h": 5, + "i": "4c872954-8afd-46e7-b7e3-6339a71099af", + "w": 24, + "x": 24, + "y": 18 + }, + "panelIndex": "4c872954-8afd-46e7-b7e3-6339a71099af", + "title": "HA Summary", + "type": "lens" + }, + { + "embeddableConfig": { + "attributes": { + "references": [ + { + "id": "metrics-*", + "name": "indexpattern-datasource-layer-71d658f8-244e-4247-8f37-8a5f07d9ca3f", + "type": "index-pattern" + } + ], + "state": { + "adHocDataViews": {}, + "datasourceStates": { + "formBased": { + "layers": { + "71d658f8-244e-4247-8f37-8a5f07d9ca3f": { + "columnOrder": [ + "f2b1d8ff-5a2a-4b28-a06c-644e62f659be", + "1b6be5ae-8071-4756-a13a-94890c583ab3", + "307ce5cc-28de-4ce2-99f1-94dbfcdeb9c7", + "e103e9fd-d0d6-4267-9886-1de2324c195c", + "92d3b5a1-8118-40cc-b6f4-e17ecdaea24d" + ], + "columns": { + "1b6be5ae-8071-4756-a13a-94890c583ab3": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "HA1 IP", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "92d3b5a1-8118-40cc-b6f4-e17ecdaea24d", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 3 + }, + "scale": "ordinal", + "sourceField": "panw.interfaces.ha.local_info.ha1_ipaddr" + }, + "307ce5cc-28de-4ce2-99f1-94dbfcdeb9c7": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "HA2 IP", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "92d3b5a1-8118-40cc-b6f4-e17ecdaea24d", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 3 + }, + "scale": "ordinal", + "sourceField": "panw.interfaces.ha.local_info.ha2_ipaddr" + }, + "92d3b5a1-8118-40cc-b6f4-e17ecdaea24d": { + "dataType": "number", + "isBucketed": false, + "label": "Count of records", + "operationType": "count", + "params": { + "emptyAsNull": true + }, + "scale": "ratio", + "sourceField": "___records___" + }, + "e103e9fd-d0d6-4267-9886-1de2324c195c": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Preemptive", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "92d3b5a1-8118-40cc-b6f4-e17ecdaea24d", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 3 + }, + "scale": "ordinal", + "sourceField": "panw.interfaces.ha.local_info.preemptive" + }, + "f2b1d8ff-5a2a-4b28-a06c-644e62f659be": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "State", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "92d3b5a1-8118-40cc-b6f4-e17ecdaea24d", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 3 + }, + "scale": "ordinal", + "sourceField": "panw.interfaces.ha.local_info.state" + } + }, + "incompleteColumns": {}, + "sampling": 1 + } + } + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "filters": [], + "internalReferences": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "columns": [ + { + "columnId": "f2b1d8ff-5a2a-4b28-a06c-644e62f659be", + "isTransposed": false + }, + { + "columnId": "1b6be5ae-8071-4756-a13a-94890c583ab3", + "isMetric": false, + "isTransposed": false + }, + { + "columnId": "307ce5cc-28de-4ce2-99f1-94dbfcdeb9c7", + "isTransposed": false + }, + { + "columnId": "92d3b5a1-8118-40cc-b6f4-e17ecdaea24d", + "hidden": true, + "isTransposed": false, + "width": 153.83333333333334 + }, + { + "columnId": "e103e9fd-d0d6-4267-9886-1de2324c195c", + "isMetric": false, + "isTransposed": false + } + ], + "layerId": "71d658f8-244e-4247-8f37-8a5f07d9ca3f", + "layerType": "data" + } + }, + "title": "", + "type": "lens", + "visualizationType": "lnsDatatable" + }, + "enhancements": {} + }, + "gridData": { + "h": 4, + "i": "1378b43d-6b52-4da4-ba75-4d7a159e2443", + "w": 24, + "x": 24, + "y": 23 + }, + "panelIndex": "1378b43d-6b52-4da4-ba75-4d7a159e2443", + "title": "HA Local Node", + "type": "lens" + }, + { + "embeddableConfig": { + "attributes": { + "references": [ + { + "id": "metrics-*", + "name": "indexpattern-datasource-layer-71d658f8-244e-4247-8f37-8a5f07d9ca3f", + "type": "index-pattern" + } + ], + "state": { + "adHocDataViews": {}, + "datasourceStates": { + "formBased": { + "layers": { + "71d658f8-244e-4247-8f37-8a5f07d9ca3f": { + "columnOrder": [ + "f2b1d8ff-5a2a-4b28-a06c-644e62f659be", + "1b6be5ae-8071-4756-a13a-94890c583ab3", + "307ce5cc-28de-4ce2-99f1-94dbfcdeb9c7", + "c0eef8cd-04c8-4fb7-a3bf-32c719ec5726", + "92d3b5a1-8118-40cc-b6f4-e17ecdaea24d" + ], + "columns": { + "1b6be5ae-8071-4756-a13a-94890c583ab3": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "HA1 IP", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "92d3b5a1-8118-40cc-b6f4-e17ecdaea24d", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "secondaryFields": [], + "size": 3 + }, + "scale": "ordinal", + "sourceField": "panw.interfaces.ha.peer_info.ha1_ipaddr" + }, + "307ce5cc-28de-4ce2-99f1-94dbfcdeb9c7": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "HA2 IP", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "92d3b5a1-8118-40cc-b6f4-e17ecdaea24d", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "secondaryFields": [], + "size": 3 + }, + "scale": "ordinal", + "sourceField": "panw.interfaces.ha.peer_info.ha2_ipaddr" + }, + "92d3b5a1-8118-40cc-b6f4-e17ecdaea24d": { + "dataType": "number", + "isBucketed": false, + "label": "Count of records", + "operationType": "count", + "params": { + "emptyAsNull": true + }, + "scale": "ratio", + "sourceField": "___records___" + }, + "c0eef8cd-04c8-4fb7-a3bf-32c719ec5726": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Preemptive", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "92d3b5a1-8118-40cc-b6f4-e17ecdaea24d", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 3 + }, + "scale": "ordinal", + "sourceField": "panw.interfaces.ha.peer_info.preemptive" + }, + "f2b1d8ff-5a2a-4b28-a06c-644e62f659be": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "State", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "92d3b5a1-8118-40cc-b6f4-e17ecdaea24d", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "secondaryFields": [], + "size": 3 + }, + "scale": "ordinal", + "sourceField": "panw.interfaces.ha.peer_info.state" + } + }, + "incompleteColumns": {}, + "sampling": 1 + } + } + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "filters": [], + "internalReferences": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "columns": [ + { + "columnId": "f2b1d8ff-5a2a-4b28-a06c-644e62f659be", + "isTransposed": false + }, + { + "columnId": "1b6be5ae-8071-4756-a13a-94890c583ab3", + "isMetric": false, + "isTransposed": false + }, + { + "columnId": "307ce5cc-28de-4ce2-99f1-94dbfcdeb9c7", + "isTransposed": false + }, + { + "columnId": "92d3b5a1-8118-40cc-b6f4-e17ecdaea24d", + "hidden": true, + "isTransposed": false, + "width": 153.83333333333334 + }, + { + "columnId": "c0eef8cd-04c8-4fb7-a3bf-32c719ec5726", + "isMetric": false, + "isTransposed": false + } + ], + "layerId": "71d658f8-244e-4247-8f37-8a5f07d9ca3f", + "layerType": "data" + } + }, + "title": "", + "type": "lens", + "visualizationType": "lnsDatatable" + }, + "enhancements": {} + }, + "gridData": { + "h": 4, + "i": "b7bbff81-88b3-485c-9b9c-9734cbe27c35", + "w": 24, + "x": 24, + "y": 27 + }, + "panelIndex": "b7bbff81-88b3-485c-9b9c-9734cbe27c35", + "title": "HA Peer Node ", + "type": "lens" + } + ], + "timeRestore": false, + "title": "PANW Interfaces", + "version": 2 + }, + "coreMigrationVersion": "8.8.0", + "created_at": "2024-09-29T16:09:36.268Z", + "created_by": "u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0", + "id": "panw_metrics-f8f0b70a-01cf-497d-89ac-a3e2c0d6bbb7", + "managed": false, + "references": [ + { + "id": "metrics-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "b38b1b60-8e9e-48a3-a4ef-db4270243736:indexpattern-datasource-layer-0bc09006-fc66-4c44-988c-3fc6151319cc", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "a6e39853-be2b-4271-a37d-39add2be7622:indexpattern-datasource-layer-d5fddad1-5faa-418a-808e-cdb47ba28e4f", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "97d4f450-b6be-47e5-b87e-7c847e035bf9:indexpattern-datasource-layer-2ae143b9-8527-4bac-bff5-5a5415946625", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "4c872954-8afd-46e7-b7e3-6339a71099af:indexpattern-datasource-layer-7e1403ac-ced7-4233-b2e9-ec9d2ba5fc90", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "1378b43d-6b52-4da4-ba75-4d7a159e2443:indexpattern-datasource-layer-71d658f8-244e-4247-8f37-8a5f07d9ca3f", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "b7bbff81-88b3-485c-9b9c-9734cbe27c35:indexpattern-datasource-layer-71d658f8-244e-4247-8f37-8a5f07d9ca3f", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "controlGroup_5b8b93a6-f1e3-4a55-a3b1-d2ee69bec2a6:optionsListDataView", + "type": "index-pattern" + } + ], + "type": "dashboard", + "typeMigrationVersion": "10.2.0", + "updated_by": "u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0" +} \ No newline at end of file From 3579bc11d92205a6c12982ee46b44d89b24ac81c Mon Sep 17 00:00:00 2001 From: dparkerelastic Date: Tue, 1 Oct 2024 15:05:06 -0400 Subject: [PATCH 25/50] add groups --- .../data_stream/interfaces/fields/fields.yml | 1007 +++++++++-------- .../data_stream/routing/fields/fields.yml | 419 ++++--- .../data_stream/system/fields/fields.yml | 672 ++++++----- .../data_stream/vpn/fields/fields.yml | 293 ++--- packages/panw_metrics/docs/README.md | 19 +- 5 files changed, 1245 insertions(+), 1165 deletions(-) diff --git a/packages/panw_metrics/data_stream/interfaces/fields/fields.yml b/packages/panw_metrics/data_stream/interfaces/fields/fields.yml index ed987f21a47..cb470e2a5f2 100644 --- a/packages/panw_metrics/data_stream/interfaces/fields/fields.yml +++ b/packages/panw_metrics/data_stream/interfaces/fields/fields.yml @@ -4,484 +4,529 @@ interfaces fields: - - name: physical.name - type: keyword - description: > - Physical interface name - - - name: physical.id - type: keyword - description: > - Physical interface ID - - - name: physical.type - type: keyword - description: > - Physical interface type (numeric value in source XML, string value sent to elasticsearch): - - 0: "Ethernet interface", - 1: "Aggregate Ethernet (AE) interface", - 2: "High Availability (HA) interface", - 3: "VLAN interface", - 5: "Loopback interface", - 6: "Tunnel interface", - 10: "SD-WAN interface", - - name: physical.mac - type: keyword - description: > - Physical MAC address - - - name: physical.speed - type: keyword - description: > - Physical interface speed - - - name: physical.duplex - type: keyword - description: > - Duplex configuration, e.g., "full" or "half" - - - name: physical.state - type: keyword - description: > - Physical interface state: up/down - - - name: physical.mode - type: keyword - description: > - Physical interface mode, e.g., autoneg - - - name: physical.full_state - type: keyword - description: > - Physical full state, speed/duplex/state, e.g., "1000/full/up" - - - name: physical.ae_member - type: keyword - description: > - For aggregate interfaces, the array of member interfaces - - - name: logical.name - type: keyword - description: > - Logical interface name - - - name: logical.id - type: keyword - description: > - Logical interface ID - - - name: logical.tag - type: integer - description: > - VLAN tag associated with this interface - - - name: logical.vsys - type: integer - description: "Virtual system to which this interface belongs" - - name: logical.zone - type: keyword - description: > - Logical zone, e.g., "inside" or "outside" - - - name: logical.fwd - type: keyword - description: > - Indicates if the interface is used for forwarding - - - name: logical.ip - type: keyword - description: > - Logical IP Address with subnet mask, e.g., 111.222.333.10/29. Can also be "N/A" - - - name: logical.addr - type: keyword - description: > - Used to store additional static IP addresses - - - name: logical.dyn_addr - type: keyword - description: > - Dynamic addresses, e.g., generated by DHCP - - - name: logical.addr6 - type: keyword - description: "Logical IPv6 address" - - # HA Interface fields - - name: ha.enabled - type: boolean - description: > - HA enabled - - - name: ha.mode - type: keyword - description: > - HA mode, e.g., "active-active" or "active-passive" - - - name: ha.running_sync - type: keyword - description: > - Indicates the sychronization status of the HA pair, e.g., "synchronized","not-synchronized","synchronizing" - - - name: ha.running_sync_enabled - type: boolean - description: > - Indicates if running configuration synchronization is enabled - - - name: ha.local_info.version - type: long - description: > - HA configuration info version - - - name: ha.local_info.state - type: keyword - description: > - HA state of the local device, e.g., "active" or "passive" - - - name: ha.local_info.state_duration.sec - type: long - description: > - Duration in seconds of the current state - - - name: ha.local_info.mgmt_ip - type: ip_range - description: > - HA local info management IP, in CIDR format. - - - name: ha.local_info.preemptive - type: boolean - description: > - Indicates whether the firewall is configured to preemptively take over as the active unit in an HA setup - - - name: ha.local_info.mode - type: keyword - description: > - HA mode, e.g., "active-active" or "active-passive" - - - name: ha.local_info.platform_model - type: keyword - description: > - Platform model of the local device - - - name: ha.local_info.state_sync - type: keyword - description: > - Status of HA synchronization, e.g., "complete" - - - name: ha.local_info.state_sync_type - type: keyword - description: > - Type of interface used for HA synchronization - - - name: ha.local_info.ha1_ipaddr - type: ip_range - description: > - IP Address of HA1 interface, used for heartbeat and management synchronization, in CIDR format. - - - name: ha.local_info.ha1_macaddr - type: keyword - description: > - HA local info HA1 MAC address - - - name: ha.local_info.ha1_port - type: keyword - description: > - Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha1" - - - name: ha.local_info.ha1_backup_ipaddr - type: ip_range - description: > - The backup IP address for the HA1 interface, in CIDR format. - - - name: ha.local_info.ha1_backup_macaddr - type: keyword - description: > - HA local info HA1 backup MAC address - - - name: ha.local_info.ha1_backup_port - type: keyword - description: > - HA local info HA1 backup port, e.g. "management" - - - name: ha.local_info.ha1_backup_gateway - type: ip_range - description: "Default gateway for the backup HA1 interface" - - name: ha.local_info.ha2_ipaddr - type: ip_range - description: > - HA local info HA2 IP address, in CIDR format. - - - name: ha.local_info.ha2_macaddr - type: keyword - description: > - HA local info HA2 MAC address - - - name: ha.local_info.ha2_port - type: keyword - description: > - Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha2" - - - name: ha.local_info.build_rel - type: keyword - description: "The PAN-OS software version running on the firewall" - - name: ha.local_info.url_version - type: keyword - description: "The version of the URL filtering database" - - name: ha.local_info.app_version - type: keyword - description: "The version of the application database" - - name: ha.local_info.iot_version - type: keyword - description: > - HA local info IoT database version - - - name: ha.local_info.av_version - type: keyword - description: > - The version of the antivirus database - - - name: ha.local_info.threat_version - type: keyword - description: > - HA local info threat version - - - name: ha.local_info.vpn_client_version - type: keyword - description: > - Version of the VPN client (if installed) - - - name: ha.local_info.gp_client_version - type: keyword - description: "Version of the GlobalProtect client software" - - name: ha.peer_info.conn_status - type: keyword - description: > - Overall status of the HA connections ("up" means all connections are operational) - - - name: ha.peer_info.state - type: keyword - description: > - Current operational state of the peer firewall (passive means it is in standby mode and not handling traffic) - - - name: ha.peer_info.state_duration.sec - type: long - description: > - How long the peer has been in the current state in seconds - - - name: ha.peer_info.mgmt_ip - type: ip_range - description: > - Management IP address of the peer firewall. This is in CIDR format. - - - name: ha.peer_info.preemptive - type: boolean - description: > - Indicates if preemption is enabled on the peer firewall - - - name: ha.peer_info.mode - type: keyword - description: > - HA mode configured on the peer firewall, e.g. "Active-Passive" - - - name: ha.peer_info.platform_model - type: keyword - description: "Model of the peer firewall" - - name: ha.peer_info.priority - type: long - description: > - HA priority value of the peer firewall - - - name: ha.peer_info.ha1_ipaddr - type: ip - description: > - IP address of the HA1 interface on the peer, in CIDR format. - - - name: ha.peer_info.ha1_macaddr - type: keyword - description: > - HA1 MAC address of the peer - - - name: ha.peer_info.ha1_backup_ipaddr - type: ip - description: > - HA peer info HA1 backup IP address, in CIDR format. - - - name: ha.peer_info.ha1_backup_macaddr - type: keyword - description: > - HA peer info HA1 backup MAC address - - - name: ha.peer_info.ha2_ipaddr - type: ip_range - description: > - HA peer info HA2 IP address, in CIDR format. - - - name: ha.peer_info.ha2_macaddr - type: keyword - description: > - HA peer info HA2 MAC address - - - name: ha.peer_info.conn_ha1.status - type: keyword - description: > - Peer HA1 connection status, e.g., "up" - - - name: ha.peer_info.conn_ha1.primary - type: boolean - description: > - Specifies if the HA1 connection is primary - - - name: ha.peer_info.conn_ha1.description - type: keyword - description: > - Description of the connection type ,e.g., "heartbeat status" - - - name: ha.peer_info.conn_ha2.status - type: keyword - description: > - HA peer info connection HA2 status - - - name: ha.peer_info.conn_ha2.primary - type: boolean - description: > - Specifies if the HA2 connection is primary - - - name: ha.peer_info.conn_ha2.description - type: keyword - description: > - HA peer info connection HA2 description - - - name: ha.peer_info.conn_ha1_backup.status - type: keyword - description: > - HA peer info connection HA1 backup status, e.g., "up" means it is operational - - - name: ha.peer_info.conn_ha1_backup.description - type: keyword - description: > - HA peer info connection HA1 backup description - - - name: ha.link_monitoring.enabled - type: boolean - description: > - Indicates if link monitoring is enabled - - - name: ha.link_monitoring.failure_condition - type: keyword - description: > - Condition that triggers a link monitoring failure, e.g., "any" - - - name: ha.link_monitoring.group.name - type: keyword - description: > - Name of the link monitoring group - - - name: ha.link_monitoring.group.enabled - type: boolean - description: > - Indicates if the link monitoring group is enabled - - - name: ha.link_monitoring.group.failure_condition - type: keyword - description: > - Condition that triggers a failure in the link monitoring group - - - name: ha.link_monitoring.group.interface.name - type: keyword - description: > - Name of the interface in the link monitoring group - - - name: ha.link_monitoring.group.interface.status - type: keyword - description: > - Status of the interface in the link monitoring group - - - name: ipsec_tunnel.id - type: keyword - description: > - ID of the IPsec tunnel - - - name: ipsec_tunnel.name - type: keyword - description: > - Name of the IPsec tunnel - - - name: ipsec_tunnel.gw - type: keyword - description: > - Gateway of the IPsec tunnel - - - name: ipsec_tunnel.TSi_ip - type: ip - description: > - Traffic Selector Initiator IP. This is the local IP (0.0.0.0 means any IP address) - - - name: ipsec_tunnel.TSi_prefix - type: keyword - description: > - Network prefix for the TSi IP, 0 means no specific network is defined. - - - name: ipsec_tunnel.TSi_proto - type: keyword - description: > - Protocol associated with the TSi (0 means any protocol) - - - name: ipsec_tunnel.TSi_port - type: long - description: > - Port number associated with TSi (0 means any port) - - - name: ipsec_tunnel.TSr_ip - type: ip - description: > - Traffic Selector Responder IP. - - - name: ipsec_tunnel.TSr_prefix - type: keyword - description: > - Network prefix for the TSr IP. Similar to TSi_prefix - - - name: ipsec_tunnel.TSr_proto - type: keyword - description: > - TSr protocol of the IPsec tunnel - - - name: ipsec_tunnel.TSr_port - type: long - description: > - TSr port of the IPsec tunnel - - - name: ipsec_tunnel.proto - type: keyword - description: > - Protocol of the IPsec tunnel - - - name: ipsec_tunnel.mode - type: keyword - description: > - This specifies the IPsec mode. e.g., 'tunl' - - - name: ipsec_tunnel.dh - type: keyword - description: > - Diffie-Hellman group of the IPsec tunnel - - - name: ipsec_tunnel.enc - type: keyword - description: > - Encryption algorithm of the IPsec tunnel - - - name: ipsec_tunnel.hash - type: keyword - description: > - Hash algorithm of the IPsec tunnel - - - name: ipsec_tunnel.life.sec - type: long - description: > - The lifetime of the IPsec Security Association (SA) in seconds - - - name: ipsec_tunnel.kb - type: long - description: "Traffic volume limit for SA rekeying " + - name: physical + type: group + fields: + - name: name + type: keyword + description: > + Physical interface name + + - name: id + type: keyword + description: > + Physical interface ID + + - name: type + type: keyword + description: > + Physical interface type (numeric value in source XML, string value sent to elasticsearch): + + 0: "Ethernet interface", + 1: "Aggregate Ethernet (AE) interface", + 2: "High Availability (HA) interface", + 3: "VLAN interface", + 5: "Loopback interface", + 6: "Tunnel interface", + 10: "SD-WAN interface" + + - name: mac + type: keyword + description: > + Physical MAC address + + - name: speed + type: keyword + description: > + Physical interface speed + + - name: duplex + type: keyword + description: > + Duplex configuration, e.g., "full" or "half" + + - name: state + type: keyword + description: > + Physical interface state: up/down + + - name: mode + type: keyword + description: > + Physical interface mode, e.g., autoneg + + - name: full_state + type: keyword + description: > + Physical full state, speed/duplex/state, e.g., "1000/full/up" + + - name: ae_member + type: keyword + description: > + For aggregate interfaces, the array of member interfaces + + - name: logical + type: group + fields: + - name: name + type: keyword + description: > + Logical interface name + + - name: id + type: keyword + description: > + Logical interface ID + + - name: tag + type: integer + description: > + VLAN tag associated with this interface + + - name: vsys + type: integer + description: "Virtual system to which this interface belongs" + + - name: zone + type: keyword + description: > + Logical zone, e.g., "inside" or "outside" + + - name: fwd + type: keyword + description: > + Indicates if the interface is used for forwarding + + - name: ip + type: keyword + description: > + Logical IP Address with subnet mask, e.g., 111.222.333.10/29. Can also be "N/A" + + - name: addr + type: keyword + description: > + Used to store additional static IP addresses + + - name: dyn_addr + type: keyword + description: > + Dynamic addresses, e.g., generated by DHCP + + - name: addr6 + type: keyword + description: "Logical IPv6 address" + + - name: ha + type: group + fields: + - name: enabled + type: boolean + description: > + HA enabled + + - name: mode + type: keyword + description: > + HA mode, e.g., "active-active" or "active-passive" + + - name: running_sync + type: keyword + description: > + Indicates the sychronization status of the HA pair, e.g., "synchronized","not-synchronized","synchronizing" + + - name: running_sync_enabled + type: boolean + description: > + Indicates if running configuration synchronization is enabled + + - name: local_info + type: group + fields: + - name: version + type: long + description: > + HA configuration info version + + - name: state + type: keyword + description: > + HA state of the local device, e.g., "active" or "passive" + + - name: state_duration.sec + type: long + description: > + Duration in seconds of the current state + + - name: mgmt_ip + type: ip_range + description: > + HA local info management IP, in CIDR format. + + - name: preemptive + type: boolean + description: > + Indicates whether the firewall is configured to preemptively take over as the active unit in an HA setup + + - name: mode + type: keyword + description: > + HA mode, e.g., "active-active" or "active-passive" + + - name: platform_model + type: keyword + description: > + Platform model of the local device + + - name: state_sync + type: keyword + description: > + Status of HA synchronization, e.g., "complete" + + - name: state_sync_type + type: keyword + description: > + Type of interface used for HA synchronization + + - name: ha1_ipaddr + type: ip_range + description: > + IP Address of HA1 interface, used for heartbeat and management synchronization, in CIDR format. + + - name: ha1_macaddr + type: keyword + description: > + HA local info HA1 MAC address + + - name: ha1_port + type: keyword + description: > + Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha1" + + - name: ha1_backup_ipaddr + type: ip_range + description: > + The backup IP address for the HA1 interface, in CIDR format. + + - name: ha1_backup_macaddr + type: keyword + description: > + HA local info HA1 backup MAC address + + - name: ha1_backup_port + type: keyword + description: > + HA local info HA1 backup port, e.g. "management" + + - name: ha1_backup_gateway + type: ip_range + description: "Default gateway for the backup HA1 interface" + + - name: ha2_ipaddr + type: ip_range + description: > + HA local info HA2 IP address, in CIDR format. + + - name: ha2_macaddr + type: keyword + description: > + HA local info HA2 MAC address + + - name: ha2_port + type: keyword + description: > + Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha2" + + - name: build_rel + type: keyword + description: "The PAN-OS software version running on the firewall" + + - name: url_version + type: keyword + description: "The version of the URL filtering database" + + - name: app_version + type: keyword + description: "The version of the application database" + + - name: iot_version + type: keyword + description: > + HA local info IoT database version + + - name: av_version + type: keyword + description: > + The version of the antivirus database + + - name: threat_version + type: keyword + description: > + HA local info threat version + + - name: vpn_client_version + type: keyword + description: > + Version of the VPN client (if installed) + + - name: gp_client_version + type: keyword + description: "Version of the GlobalProtect client software" + + - name: peer_info + type: group + fields: + - name: conn_status + type: keyword + description: > + Overall status of the HA connections ("up" means all connections are operational) + + - name: state + type: keyword + description: > + Current operational state of the peer firewall (passive means it is in standby mode and not handling traffic) + + - name: state_duration.sec + type: long + description: > + How long the peer has been in the current state in seconds + + - name: mgmt_ip + type: ip_range + description: > + Management IP address of the peer firewall. This is in CIDR format. + + - name: preemptive + type: boolean + description: > + Indicates if preemption is enabled on the peer firewall + + - name: mode + type: keyword + description: > + HA mode configured on the peer firewall, e.g. "Active-Passive" + + - name: platform_model + type: keyword + description: "Model of the peer firewall" + + - name: priority + type: long + description: > + HA priority value of the peer firewall + + - name: ha1_ipaddr + type: ip + description: > + IP address of the HA1 interface on the peer, in CIDR format. + + - name: ha1_macaddr + type: keyword + description: > + HA1 MAC address of the peer + + - name: ha1_backup_ipaddr + type: ip + description: > + HA peer info HA1 backup IP address, in CIDR format. + + - name: ha1_backup_macaddr + type: keyword + description: > + HA peer info HA1 backup MAC address + + - name: ha2_ipaddr + type: ip_range + description: > + HA peer info HA2 IP address, in CIDR format. + + - name: ha2_macaddr + type: keyword + description: > + HA peer info HA2 MAC address + + - name: conn_ha1 + type: group + fields: + - name: status + type: keyword + description: > + Peer HA1 connection status, e.g., "up" + + - name: primary + type: boolean + description: > + Specifies if the HA1 connection is primary + + - name: description + type: keyword + description: > + Description of the connection type ,e.g., "heartbeat status" + + - name: conn_ha2 + type: group + fields: + - name: status + type: keyword + description: > + HA peer info connection HA2 status + + - name: primary + type: boolean + description: > + Specifies if the HA2 connection is primary + + - name: description + type: keyword + description: > + HA peer info connection HA2 description + + - name: conn_ha1_backup + type: group + fields: + - name: status + type: keyword + description: > + HA peer info connection HA1 backup status, e.g., "up" means it is operational + + - name: description + type: keyword + description: > + HA peer info connection HA1 backup description + + - name: link_monitoring + type: group + fields: + - name: enabled + type: boolean + description: > + Indicates if link monitoring is enabled + + - name: failure_condition + type: keyword + description: > + Condition that triggers a link monitoring failure, e.g., "any" + + - name: group + type: group + fields: + - name: name + type: keyword + description: > + Name of the link monitoring group + + - name: enabled + type: boolean + description: > + Indicates if the link monitoring group is enabled + + - name: failure_condition + type: keyword + description: > + Condition that triggers a failure in the link monitoring group + + - name: interface + type: group + fields: + - name: name + type: keyword + description: > + Name of the interface in the link monitoring group + + - name: status + type: keyword + description: > + Status of the interface in the link monitoring group + + - name: ipsec_tunnel + type: group + fields: + - name: id + type: keyword + description: > + ID of the IPsec tunnel + + - name: name + type: keyword + description: > + Name of the IPsec tunnel + + - name: gw + type: keyword + description: > + Gateway of the IPsec tunnel + + - name: TSi_ip + type: ip + description: > + Traffic Selector Initiator IP. This is the local IP (0.0.0.0 means any IP address) + + - name: TSi_prefix + type: keyword + description: > + Network prefix for the TSi IP, 0 means no specific network is defined. + + - name: TSi_proto + type: keyword + description: > + Protocol associated with the TSi (0 means any protocol) + + - name: TSi_port + type: long + description: > + Port number associated with TSi (0 means any port) + + - name: TSr_ip + type: ip + description: > + Traffic Selector Responder IP. + + - name: TSr_prefix + type: keyword + description: > + Network prefix for the TSr IP. Similar to TSi_prefix + + - name: TSr_proto + type: keyword + description: > + TSr protocol of the IPsec tunnel + + - name: TSr_port + type: long + description: > + TSr port of the IPsec tunnel + + - name: proto + type: keyword + description: > + Protocol of the IPsec tunnel + + - name: mode + type: keyword + description: > + This specifies the IPsec mode. e.g., 'tunl' + + - name: dh + type: keyword + description: > + Diffie-Hellman group of the IPsec tunnel + + - name: enc + type: keyword + description: > + Encryption algorithm of the IPsec tunnel + + - name: hash + type: keyword + description: > + Hash algorithm of the IPsec tunnel + + - name: life.sec + type: long + description: > + The lifetime of the IPsec Security Association (SA) in seconds + + - name: kb + type: long + description: "Traffic volume limit for SA rekeying" + + \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/routing/fields/fields.yml b/packages/panw_metrics/data_stream/routing/fields/fields.yml index 3207af61b18..a56246567cf 100644 --- a/packages/panw_metrics/data_stream/routing/fields/fields.yml +++ b/packages/panw_metrics/data_stream/routing/fields/fields.yml @@ -4,190 +4,235 @@ routing fields: - - name: bgp.peer_name - type: keyword - description: > - The name of the current peer in the BGP peer group - - - name: bgp.virtual_router - type: keyword - description: > - The virtual router with which the BGP peer is associated - - - name: bgp.peer_group - type: keyword - description: > - The name of the BGP peer group this peer belongs to - - - name: bgp.peer_router_id - type: ip - description: > - BGP peer router ID - - - name: bgp.remote_as_asn - type: long - description: > - The remote Autonomous System (AS) number of the peer - - - name: bgp.status - type: keyword - description: > - The BGP session status, e.g., "Established" means the session is up and running - - - name: bgp.status_duration.sec - type: long - description: > - Time in seconds since the current status was set - - - name: bgp.password_set - type: boolean - description: > - Indicates whether a password is set for the BGP peer - - - name: bgp.passive - type: boolean - description: > - Indicates if the BGP peer is in passive mode: if yes then router will not initiate a connection to the peer - - - name: bgp.multi_hop_ttl - type: long - description: > - Time to Live (TTL) value for multi-hop BGP sessions. Units are the number of hops. - - - name: bgp.peer_ip - type: ip - description: > - IP address of the peer - - - name: bgp.peer_port - type: long - description: > - Port number of the peer - - - name: bgp.local_ip - type: ip - description: > - Local ip address used for BGP connection - - - name: bgp.local_port - type: long - description: "Local port number used for BGP connection \n" - - name: bgp.reflector_client - type: keyword - description: > - Specifies the BGP peer relationship to route reflectors, e.g. "client", "not-client", "meshed-client" - - - name: bgp.same_confederation - type: boolean - description: > - Peers in the same confederation exchange routes using internal BGP (iBGP) instead of external BGP (eBGP) - - - name: bgp.aggregate_confed_as - type: boolean - description: > - Indicates that Autonomous System (AS) aggregation is enabled for the confederation - - - name: bgp.peering_type - type: keyword - description: > - Defines the type of relationship between peers, e.g., "External BGP", "Internal BGP", or "Unspecified" - - - name: bgp.connect_retry_interval.sec - type: long - description: > - The interval (in seconds) between connection retries - - - name: bgp.open_delay.sec - type: long - description: > - Delay before sending an Open message (in seconds) - - - name: bgp.idle_hold.sec - type: long - description: > - The idle hold time (in seconds) before retrying a connection after failure - - - name: bgp.prefix_limit - type: long - description: > - The maximum number of prefixes that can be received from the peer (0 = no limit) - - - name: bgp.holdtime.sec - type: long - description: > - Time in seconds that the BGP peer will wait for a keepalive message, negotiated between peers - - - name: bgp.holdtime_config.sec - type: long - description: > - Represents the locally configured hold time on this peer (in seconds) - - - name: bgp.keepalive.sec - type: long - description: > - The interval (in seconds) at which BGP keepalive messages are sent, negotiated between peers - - - name: bgp.keepalive_config.sec - type: long - description: > - The keepalive configured on this peer - - - name: bgp.msg_update_in.count - type: long - description: > - The number of BGP UPDATE messages received by the router from this peer - - - name: bgp.msg_update_out.count - type: long - description: > - the number of BGP UPDATE messages sent from the local router to the peer - - - name: bgp.msg_total_in.count - type: long - description: > - Total of all messages received from the peer - - - name: bgp.msg_total_out.count - type: long - description: > - Total of all messages sent to the peer - - - name: bgp.last_update_age.sec - type: long - description: > - Time in seconds since the last update message was received from the peer - - - name: bgp.last_error - type: keyword - description: > - The last BGP error message received from the peer - - - name: bgp.status_flap_counts - type: long - description: > - Indicates the number of times the BGP session has "flapped" or transitioned between up and down states - - - name: bgp.established_counts - type: long - description: > - Number of times the BGP session has successfully transitioned to the "Established" state - - - name: bgp.orf_entry_received - type: long - description: > - Number of ORF (Outbound Route Filtering) entries received from the peer - - - name: bgp.nexthop_self - type: boolean - description: > - Whether the router is configured to use itself as the next-hop for routes sent to this peer - - - name: bgp.nexthop_thirdparty - type: boolean - description: > - Third-party next-hop feature is enabled - - - name: bgp.nexthop_peer - type: boolean - description: >- - Indicates whether the peer is being used as the next-hop for the routes received from this peer + - name: bgp + type: group + fields: + - name: peer_name + type: keyword + description: > + The name of the current peer in the BGP peer group + + - name: virtual_router + type: keyword + description: > + The virtual router with which the BGP peer is associated + + - name: peer_group + type: keyword + description: > + The name of the BGP peer group this peer belongs to + + - name: peer_router_id + type: ip + description: > + BGP peer router ID + + - name: remote_as_asn + type: long + description: > + The remote Autonomous System (AS) number of the peer + + - name: status + type: keyword + description: > + The BGP session status, e.g., "Established" means the session is up and running + + - name: status_duration + type: group + fields: + - name: sec + type: long + description: > + Time in seconds since the current status was set + + - name: password_set + type: boolean + description: > + Indicates whether a password is set for the BGP peer + + - name: passive + type: boolean + description: > + Indicates if the BGP peer is in passive mode: if yes then router will not initiate a connection to the peer + + - name: multi_hop_ttl + type: long + description: > + Time to Live (TTL) value for multi-hop BGP sessions. Units are the number of hops. + + - name: peer_ip + type: ip + description: > + IP address of the peer + + - name: peer_port + type: long + description: > + Port number of the peer + + - name: local_ip + type: ip + description: > + Local ip address used for BGP connection + + - name: local_port + type: long + description: > + Local port number used for BGP connection + + - name: reflector_client + type: keyword + description: > + Specifies the BGP peer relationship to route reflectors, e.g. "client", "not-client", "meshed-client" + + - name: same_confederation + type: boolean + description: > + Peers in the same confederation exchange routes using internal BGP (iBGP) instead of external BGP (eBGP) + + - name: aggregate_confed_as + type: boolean + description: > + Indicates that Autonomous System (AS) aggregation is enabled for the confederation + + - name: peering_type + type: keyword + description: > + Defines the type of relationship between peers, e.g., "External BGP", "Internal BGP", or "Unspecified" + + - name: connect_retry_interval + type: group + fields: + - name: sec + type: long + description: > + The interval (in seconds) between connection retries + + - name: open_delay + type: group + fields: + - name: sec + type: long + description: > + Delay before sending an Open message (in seconds) + + - name: idle_hold + type: group + fields: + - name: sec + type: long + description: > + The idle hold time (in seconds) before retrying a connection after failure + + - name: prefix_limit + type: long + description: > + The maximum number of prefixes that can be received from the peer (0 = no limit) + + - name: holdtime + type: group + fields: + - name: sec + type: long + description: > + Time in seconds that the BGP peer will wait for a keepalive message, negotiated between peers + + - name: holdtime_config + type: group + fields: + - name: sec + type: long + description: > + Represents the locally configured hold time on this peer (in seconds) + + - name: keepalive + type: group + fields: + - name: sec + type: long + description: > + The interval (in seconds) at which BGP keepalive messages are sent, negotiated between peers + + - name: keepalive_config + type: group + fields: + - name: sec + type: long + description: > + The keepalive configured on this peer + + - name: msg_update_in + type: group + fields: + - name: count + type: long + description: > + The number of BGP UPDATE messages received by the router from this peer + + - name: msg_update_out + type: group + fields: + - name: count + type: long + description: > + The number of BGP UPDATE messages sent from the local router to the peer + + - name: msg_total_in + type: group + fields: + - name: count + type: long + description: > + Total of all messages received from the peer + + - name: msg_total_out + type: group + fields: + - name: count + type: long + description: > + Total of all messages sent to the peer + + - name: last_update_age + type: group + fields: + - name: sec + type: long + description: > + Time in seconds since the last update message was received from the peer + + - name: last_error + type: keyword + description: > + The last BGP error message received from the peer + + - name: status_flap_counts + type: long + description: > + Indicates the number of times the BGP session has "flapped" or transitioned between up and down states + + - name: established_counts + type: long + description: > + Number of times the BGP session has successfully transitioned to the "Established" state + + - name: orf_entry_received + type: long + description: > + Number of ORF (Outbound Route Filtering) entries received from the peer + + - name: nexthop_self + type: boolean + description: > + Whether the router is configured to use itself as the next-hop for routes sent to this peer + + - name: nexthop_thirdparty + type: boolean + description: > + Third-party next-hop feature is enabled + + - name: nexthop_peer + type: boolean + description: > + Indicates whether the peer is being used as the next-hop for the routes received from this peerfields: + \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/system/fields/fields.yml b/packages/panw_metrics/data_stream/system/fields/fields.yml index ed4b5d83cc3..71fb00306b4 100644 --- a/packages/panw_metrics/data_stream/system/fields/fields.yml +++ b/packages/panw_metrics/data_stream/system/fields/fields.yml @@ -4,352 +4,326 @@ system fields: - - name: uptime.days - type: integer - description: > - Uptime in days - - - name: uptime.hours - type: integer - description: > - Hours component of uptime - - - name: uptime.minutes - type: integer - description: > - Minutes component of uptime - - - name: user_count - type: long - description: > - Number of users - - - name: load_average.1m - type: float - description: > - Load average in 1 minute - - - name: load_average.5m - type: float - description: > - Load average in 5 minutes - - - name: load_average.15m - type: float - description: > - Load average in 15 minutes - - - name: tasks.total - type: long - description: > - Total number of tasks - - - name: tasks.running - type: long - description: > - Number of running tasks - - - name: tasks.sleeping - type: long - description: > - Number of sleeping tasks - - - name: tasks.stopped - type: long - description: > - Number of stopped tasks - - - name: tasks.zombie - type: long - description: > - Number of zombie tasks - - - name: cpu.user - type: float - description: > - CPU usage by user processes - - - name: cpu.system - type: float - description: > - CPU usage by system processes - - - name: cpu.nice - type: float - description: > - CPU usage by processes with a positive nice value - - - name: cpu.idle - type: float - description: > - CPU idle time - - - name: cpu.wait - type: float - description: > - CPU wait time - - - name: cpu.hi - type: float - description: > - CPU hardware interrupts - - - name: cpu.system_int - type: float - description: > - CPU software interrupts - - - name: cpu.steal - type: float - description: > - CPU steal time - - - name: memory.total - type: float - description: > - Total memory - - - name: memory.free - type: float - description: > - Free memory - - - name: memory.used - type: float - description: > - Used memory - - - name: memory.buffer_cache - type: float - description: > - Memory used for buffers and cache - - - name: swap.total - type: float - description: > - Total swap space - - - name: swap.free - type: float - description: > - Free swap space - - - name: swap.used - type: float - description: > - Used swap space - - - name: swap.available - type: float - description: > - Available swap space - - - name: license.feature - type: keyword - description: > - Feature licensed, e.g. Advanced Threat Prevention - - - name: license.description - type: text - description: > - Description of the licensed feature - - - name: license.serial - type: keyword - description: > - Serial number of license - - - name: license.issued - type: date - description: > - Date the license was issued - - - name: license.expires - type: date - description: > - Date the license expires - not set if license never expires - - - name: license.never_expires - type: boolean - description: > - Indicates if the license never expires - - - name: license.expired - type: boolean - description: > - Indicates if the license is expired - - - name: license.auth_code - type: keyword - description: > - Authorization code to activate or install the license - - - name: filesystem.name - type: keyword - description: > - Filesystem name - - - name: filesystem.size - type: float - format: bytes - description: > - Total size of the filesystem - - - name: filesystem.used - type: float - format: bytes - description: > - Amount used on the filesystem - - - name: filesystem.available - type: float - format: bytes - description: > - Disk space available on the filesystem - - - name: filesystem.use_percent - type: integer - format: percent - description: > - Percent of filesystem used - - - name: filesystem.mounted - type: keyword - description: > - Filesystem mount point - - - name: fan.slot_number - type: integer - description: > - The number of the hardware slot - - - name: fan.description - type: keyword - description: > - The description of the fan - - - name: fan.alarm - type: boolean - description: > - Is there an alarm status of the fan - - - name: fan.rpm - type: integer - description: > - The speed of the fan in RPM - - - name: fan.min_rpm - type: integer - description: > - The minimum speed of the fan in RPM - - - name: thermal.slot_number - type: integer - description: > - Slot number field - - - name: thermal.description - type: text - description: > - Description field - - - name: thermal.alarm - type: boolean - description: > - Alarm field - - - name: thermal.degrees_celsius - type: float - description: > - Degrees Celsius field - - - name: thermal.minimum_temp - type: float - description: > - Minimum temperature field - - - name: thermal.maximum_temp - type: float - description: > - Maximum temperature field - - - name: power.slot_number - type: integer - description: > - Slot number field - - - name: power.description - type: text - description: > - Description field - - - name: power.alarm - type: boolean - description: > - Indicates if alarm is active - - - name: power.volts - type: float - description: > - Current Volts - - - name: power.minimum_volts - type: float - description: > - Minimum volts recorded - - - name: power.maximum_volts - type: float - description: > - Maximum volts recorded - - - name: certificate.issuer - type: keyword - description: > - issuer field - - - name: certificate.issuer_subject_hash - type: keyword - description: > - issuer_subject_hash field - - - name: certificate.issuer_key_hash - type: keyword - description: > - issuer_key_hash field - - - name: certificate.db_type - type: keyword - description: > - db_type field - - - name: certificate.db_exp_date - type: keyword - description: > - expiration date, format: 310329235959Z(Mar 29 23:59:59 2031 GMT) - - - name: certificate.db_rev_date - type: keyword - description: > - db_rev_date field - - - name: certificate.db_serial_no - type: keyword - description: > - db_serial_no field - - - name: certificate.db_file - type: keyword - description: > - db_file field - - - name: certificate.db_name - type: keyword - description: > - db_name field - - - name: certificate.db_status - type: keyword - description: > - db_status field - + - name: uptime + type: group + fields: + - name: days + type: integer + description: > + Uptime in days + - name: hours + type: integer + description: > + Hours component of uptime + - name: minutes + type: integer + description: > + Minutes component of uptime + + - name: load_average + type: group + fields: + - name: 1m + type: float + description: > + Load average in 1 minute + - name: 5m + type: float + description: > + Load average in 5 minutes + - name: 15m + type: float + description: > + Load average in 15 minutes + + - name: tasks + type: group + fields: + - name: total + type: long + description: > + Total number of tasks + - name: running + type: long + description: > + Number of running tasks + - name: sleeping + type: long + description: > + Number of sleeping tasks + - name: stopped + type: long + description: > + Number of stopped tasks + - name: zombie + type: long + description: > + Number of zombie tasks + + - name: cpu + type: group + fields: + - name: user + type: float + description: > + CPU usage by user processes + - name: system + type: float + description: > + CPU usage by system processes + - name: nice + type: float + description: > + CPU usage by processes with a positive nice value + - name: idle + type: float + description: > + CPU idle time + - name: wait + type: float + description: > + CPU wait time + - name: hi + type: float + description: > + CPU hardware interrupts + - name: system_int + type: float + description: > + CPU software interrupts + - name: steal + type: float + description: > + CPU steal time + + - name: memory + type: group + fields: + - name: total + type: float + description: > + Total memory + - name: free + type: float + description: > + Free memory + - name: used + type: float + description: > + Used memory + - name: buffer_cache + type: float + description: > + Memory used for buffers and cache + + - name: swap + type: group + fields: + - name: total + type: float + description: > + Total swap space + - name: free + type: float + description: > + Free swap space + - name: used + type: float + description: > + Used swap space + - name: available + type: float + description: > + Available swap space + + - name: license + type: group + fields: + - name: feature + type: keyword + description: > + Feature licensed, e.g. Advanced Threat Prevention + - name: description + type: text + description: > + Description of the licensed feature + - name: serial + type: keyword + description: > + Serial number of license + - name: issued + type: date + description: > + Date the license was issued + - name: expires + type: date + description: > + Date the license expires - not set if license never expires + - name: never_expires + type: boolean + description: > + Indicates if the license never expires + - name: expired + type: boolean + description: > + Indicates if the license is expired + - name: auth_code + type: keyword + description: > + Authorization code to activate or install the license + + - name: filesystem + type: group + fields: + - name: name + type: keyword + description: > + Filesystem name + - name: size + type: float + format: bytes + description: > + Total size of the filesystem + - name: used + type: float + format: bytes + description: > + Amount used on the filesystem + - name: available + type: float + format: bytes + description: > + Disk space available on the filesystem + - name: use_percent + type: integer + format: percent + description: > + Percent of filesystem used + - name: mounted + type: keyword + description: > + Filesystem mount point + + - name: fan + type: group + fields: + - name: slot_number + type: integer + description: > + The number of the hardware slot + - name: description + type: keyword + description: > + The description of the fan + - name: alarm + type: boolean + description: > + Is there an alarm status of the fan + - name: rpm + type: integer + description: > + The speed of the fan in RPM + - name: min_rpm + type: integer + description: > + The minimum speed of the fan in RPM + + - name: thermal + type: group + fields: + - name: slot_number + type: integer + description: > + Slot number field + - name: description + type: text + description: > + Description field + - name: alarm + type: boolean + description: > + Alarm field + - name: degrees_celsius + type: float + description: > + Degrees Celsius field + - name: minimum_temp + type: float + description: > + Minimum temperature field + - name: maximum_temp + type: float + description: > + Maximum temperature field + + - name: power + type: group + fields: + - name: slot_number + type: integer + description: > + Slot number field + - name: description + type: text + description: > + Description field + - name: alarm + type: boolean + description: > + Indicates if alarm is active + - name: volts + type: float + description: > + Current Volts + - name: minimum_volts + type: float + description: > + Minimum volts recorded + - name: maximum_volts + type: float + description: > + Maximum volts recorded + + - name: certificate + type: group + fields: + - name: issuer + type: keyword + description: > + issuer field + - name: issuer_subject_hash + type: keyword + description: > + issuer_subject_hash field + - name: issuer_key_hash + type: keyword + description: > + issuer_key_hash field + - name: db_type + type: keyword + description: > + db_type field + - name: db_exp_date + type: keyword + description: > + expiration date, format: 310329235959Z(Mar 29 23:59:59 2031 GMT) + - name: db_rev_date + type: keyword + description: > + db_rev_date field + - name: db_serial_no + type: keyword + description: > + db_serial_no field + - name: db_file + type: keyword + description: > + db_file field + - name: db_name + type: keyword + description: > + db_name field + - name: db_status + type: keyword + description: > + db_status fieldfields: diff --git a/packages/panw_metrics/data_stream/vpn/fields/fields.yml b/packages/panw_metrics/data_stream/vpn/fields/fields.yml index f42cdad8753..6ae02047c5e 100644 --- a/packages/panw_metrics/data_stream/vpn/fields/fields.yml +++ b/packages/panw_metrics/data_stream/vpn/fields/fields.yml @@ -1,150 +1,167 @@ - name: vpn type: group description: > - vpn + Virtual Private Network (VPN) metrics fields: - - name: globalprotect.session.domain - type: keyword - description: > - Domain of the GlobalProtect session - - - name: globalprotect.session.is_local - type: boolean - description: > - Indicates if the session is local - - - name: globalprotect.session.username - type: keyword - description: > - Username of the session - - - name: globalprotect.session.primary_username - type: keyword - description: > - Primary username of the session - - - name: globalprotect.session.region_for_config - type: keyword - description: > - Region for configuration - - - name: globalprotect.session.source_region - type: keyword - description: > - Source region of the session - - - name: globalprotect.session.computer - type: keyword - description: > - Computer name in the session - - - name: globalprotect.session.client - type: keyword - description: > - Client information of the session - - - name: globalprotect.session.vpn_type - type: keyword - description: > - Type of VPN used in the session - - - name: globalprotect.session.host_id - type: keyword - description: > - Host ID of the session - - - name: globalprotect.session.app_version - type: keyword - description: > - Application version used in the session - - - name: globalprotect.session.virtual_ip - type: ip - description: > - Virtual IP address of the session - - - name: globalprotect.session.virtual_ipv6 - type: ip - description: > - Virtual IPv6 address of the session - - - name: globalprotect.session.public_ip - type: ip - description: > - Public IP address of the session - - - name: globalprotect.session.public_ipv6 - type: ip - description: > - Public IPv6 address of the session - - - name: globalprotect.session.tunnel_type - type: keyword - description: > - Type of tunnel used in the session - - - name: globalprotect.session.public_connection_ipv6 - type: ip - description: > - Public connection IPv6 address of the session - - - name: globalprotect.session.client_ip - type: ip - description: > - Client IP address of the session - - - name: globalprotect.session.login_time - type: date - description: > - Login time of the session - - - name: globalprotect.session.login_time_utc - type: date - description: > - Login time in UTC of the session - - - name: globalprotect.session.lifetime - type: long - description: > - Lifetime of the session - - - name: globalprotect.session.request_login - type: keyword - description: > - Request login information of the session - - - name: globalprotect.session.request_get_config - type: keyword - description: > - Request get configuration information of the session - - - name: globalprotect.session.request_sslvpn_connect - type: keyword - description: > - Request SSL VPN connect information of the session - - - name: globalprotect.gateway.name - type: keyword - description: > - Name of the GlobalProtect gateway - - - name: globalprotect.gateway.current_users - type: long - description: > - Current number of users connected to the GlobalProtect gateway - - - name: globalprotect.gateway.previous_users - type: long - description: > - Previous number of users connected to the GlobalProtect gateway - - - name: globalprotect.total_current_users + - name: globalprotect + type: group + description: > + GlobalProtect VPN + fields: + - name: session + type: group + description: > + GlobalProtect session + + fields: + - name: domain + type: keyword + description: > + Domain of the GlobalProtect session + + - name: is_local + type: boolean + description: > + Indicates if the session is local + + - name: username + type: keyword + description: > + Username of the session + + - name: primary_username + type: keyword + description: > + Primary username of the session + + - name: region_for_config + type: keyword + description: > + Region for configuration + + - name: source_region + type: keyword + description: > + Source region of the session + + - name: computer + type: keyword + description: > + Computer name in the session + + - name: client + type: keyword + description: > + Client information of the session + + - name: vpn_type + type: keyword + description: > + Type of VPN used in the session + + - name: host_id + type: keyword + description: > + Host ID of the session + + - name: app_version + type: keyword + description: > + Application version used in the session + + - name: virtual_ip + type: ip + description: > + Virtual IP address of the session + + - name: virtual_ipv6 + type: ip + description: > + Virtual IPv6 address of the session + + - name: public_ip + type: ip + description: > + Public IP address of the session + + - name: public_ipv6 + type: ip + description: > + Public IPv6 address of the session + + - name: tunnel_type + type: keyword + description: > + Type of tunnel used in the session + + - name: public_connection_ipv6 + type: ip + description: > + Public connection IPv6 address of the session + + - name: client_ip + type: ip + description: > + Client IP address of the session + + - name: login_time + type: date + description: > + Login time of the session + + - name: login_time_utc + type: date + description: > + Login time in UTC of the session + + - name: lifetime + type: long + description: > + Lifetime of the session + + - name: request_login + type: keyword + description: > + Request login information of the session + + - name: request_get_config + type: keyword + description: > + Request get configuration information of the session + + - name: request_sslvpn_connect + type: keyword + description: > + Request SSL VPN connect information of the session + + - name: gateway + type: group + description: > + GlobalProtect gateway + + fields: + - name: name + type: keyword + description: > + Name of the GlobalProtect gateway + + - name: current_users + type: long + description: > + Current number of users connected to the GlobalProtect gateway + + - name: previous_users + type: long + description: > + Previous number of users connected to the GlobalProtect gateway + + - name: total_current_users type: long description: > Total current number of users connected to GlobalProtect gateway - - name: globalprotect.total_previous_users + - name: total_previous_users type: long description: > Total previous number of users connected to GlobalProtect gateway diff --git a/packages/panw_metrics/docs/README.md b/packages/panw_metrics/docs/README.md index a0411f94557..0706ec63533 100644 --- a/packages/panw_metrics/docs/README.md +++ b/packages/panw_metrics/docs/README.md @@ -228,7 +228,7 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | interfaces.physical.name | Physical interface name | keyword | | interfaces.physical.speed | Physical interface speed | keyword | | interfaces.physical.state | Physical interface state: up/down | keyword | -| interfaces.physical.type | Physical interface type (numeric value in source XML, string value sent to elasticsearch): 0: "Ethernet interface", 1: "Aggregate Ethernet (AE) interface", 2: "High Availability (HA) interface", 3: "VLAN interface", 5: "Loopback interface", 6: "Tunnel interface", 10: "SD-WAN interface", | keyword | +| interfaces.physical.type | Physical interface type (numeric value in source XML, string value sent to elasticsearch): 0: "Ethernet interface", 1: "Aggregate Ethernet (AE) interface", 2: "High Availability (HA) interface", 3: "VLAN interface", 5: "Loopback interface", 6: "Tunnel interface", 10: "SD-WAN interface" | keyword | ### routing @@ -373,9 +373,9 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | routing.bgp.msg_total_in.count | Total of all messages received from the peer | long | | routing.bgp.msg_total_out.count | Total of all messages sent to the peer | long | | routing.bgp.msg_update_in.count | The number of BGP UPDATE messages received by the router from this peer | long | -| routing.bgp.msg_update_out.count | the number of BGP UPDATE messages sent from the local router to the peer | long | +| routing.bgp.msg_update_out.count | The number of BGP UPDATE messages sent from the local router to the peer | long | | routing.bgp.multi_hop_ttl | Time to Live (TTL) value for multi-hop BGP sessions. Units are the number of hops. | long | -| routing.bgp.nexthop_peer | Indicates whether the peer is being used as the next-hop for the routes received from this peer | boolean | +| routing.bgp.nexthop_peer | Indicates whether the peer is being used as the next-hop for the routes received from this peerfields: | boolean | | routing.bgp.nexthop_self | Whether the router is configured to use itself as the next-hop for routes sent to this peer | boolean | | routing.bgp.nexthop_thirdparty | Third-party next-hop feature is enabled | boolean | | routing.bgp.open_delay.sec | Delay before sending an Open message (in seconds) | long | @@ -521,7 +521,7 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | system.certificate.db_name | db_name field | keyword | | system.certificate.db_rev_date | db_rev_date field | keyword | | system.certificate.db_serial_no | db_serial_no field | keyword | -| system.certificate.db_status | db_status field | keyword | +| system.certificate.db_status | db_status fieldfields: | keyword | | system.certificate.db_type | db_type field | keyword | | system.certificate.issuer | issuer field | keyword | | system.certificate.issuer_key_hash | issuer_key_hash field | keyword | @@ -584,7 +584,6 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | system.uptime.days | Uptime in days | integer | | system.uptime.hours | Hours component of uptime | integer | | system.uptime.minutes | Minutes component of uptime | integer | -| system.user_count | Number of users | long | ### vpn @@ -696,9 +695,9 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | host.containerized | If the host is a container. | boolean | | host.os.build | OS build information. | keyword | | host.os.codename | OS codename, if any. | keyword | -| vpn.globalprotect.gateway.current_users | Current number of users connected to the GlobalProtect gateway | long | -| vpn.globalprotect.gateway.name | Name of the GlobalProtect gateway | keyword | -| vpn.globalprotect.gateway.previous_users | Previous number of users connected to the GlobalProtect gateway | long | +| vpn.gateway.current_users | Current number of users connected to the GlobalProtect gateway | long | +| vpn.gateway.name | Name of the GlobalProtect gateway | keyword | +| vpn.gateway.previous_users | Previous number of users connected to the GlobalProtect gateway | long | | vpn.globalprotect.session.app_version | Application version used in the session | keyword | | vpn.globalprotect.session.client | Client information of the session | keyword | | vpn.globalprotect.session.client_ip | Client IP address of the session | ip | @@ -723,5 +722,5 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | vpn.globalprotect.session.virtual_ip | Virtual IP address of the session | ip | | vpn.globalprotect.session.virtual_ipv6 | Virtual IPv6 address of the session | ip | | vpn.globalprotect.session.vpn_type | Type of VPN used in the session | keyword | -| vpn.globalprotect.total_current_users | Total current number of users connected to GlobalProtect gateway | long | -| vpn.globalprotect.total_previous_users | Total previous number of users connected to GlobalProtect gateway | long | +| vpn.total_current_users | Total current number of users connected to GlobalProtect gateway | long | +| vpn.total_previous_users | Total previous number of users connected to GlobalProtect gateway | long | From e2bcf80727c6811dc34f7b369952205fbdb55717 Mon Sep 17 00:00:00 2001 From: dparkerelastic Date: Wed, 2 Oct 2024 13:19:11 -0400 Subject: [PATCH 26/50] added 'pan' module scope for fields.yml --- .../data_stream/interfaces/fields/fields.yml | 21 +- .../data_stream/routing/fields/fields.yml | 93 +--- .../data_stream/system/fields/fields.yml | 2 +- .../data_stream/vpn/fields/fields.yml | 2 +- packages/panw_metrics/docs/README.md | 466 +++++++++--------- 5 files changed, 273 insertions(+), 311 deletions(-) diff --git a/packages/panw_metrics/data_stream/interfaces/fields/fields.yml b/packages/panw_metrics/data_stream/interfaces/fields/fields.yml index cb470e2a5f2..a06d9e81265 100644 --- a/packages/panw_metrics/data_stream/interfaces/fields/fields.yml +++ b/packages/panw_metrics/data_stream/interfaces/fields/fields.yml @@ -1,4 +1,4 @@ -- name: interfaces +- name: panw.interfaces type: group description: > interfaces @@ -158,14 +158,15 @@ Duration in seconds of the current state - name: mgmt_ip - type: ip_range + type: keyword description: > HA local info management IP, in CIDR format. - name: preemptive - type: boolean + type: keyword description: > - Indicates whether the firewall is configured to preemptively take over as the active unit in an HA setup + Indicates whether the firewall is configured to preemptively take over as the active unit in an HA setup. This is a yes/no + value which the beat is not converting to a boolean, so it will be a keyword. - name: mode type: keyword @@ -188,7 +189,7 @@ Type of interface used for HA synchronization - name: ha1_ipaddr - type: ip_range + type: keyword description: > IP Address of HA1 interface, used for heartbeat and management synchronization, in CIDR format. @@ -203,7 +204,7 @@ Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha1" - name: ha1_backup_ipaddr - type: ip_range + type: keyword description: > The backup IP address for the HA1 interface, in CIDR format. @@ -218,11 +219,11 @@ HA local info HA1 backup port, e.g. "management" - name: ha1_backup_gateway - type: ip_range + type: keyword description: "Default gateway for the backup HA1 interface" - name: ha2_ipaddr - type: ip_range + type: keyword description: > HA local info HA2 IP address, in CIDR format. @@ -291,7 +292,7 @@ How long the peer has been in the current state in seconds - name: mgmt_ip - type: ip_range + type: keyword description: > Management IP address of the peer firewall. This is in CIDR format. @@ -335,7 +336,7 @@ HA peer info HA1 backup MAC address - name: ha2_ipaddr - type: ip_range + type: keyword description: > HA peer info HA2 IP address, in CIDR format. diff --git a/packages/panw_metrics/data_stream/routing/fields/fields.yml b/packages/panw_metrics/data_stream/routing/fields/fields.yml index a56246567cf..56b74767fa3 100644 --- a/packages/panw_metrics/data_stream/routing/fields/fields.yml +++ b/packages/panw_metrics/data_stream/routing/fields/fields.yml @@ -1,4 +1,4 @@ -- name: routing +- name: panw.routing type: group description: > routing @@ -38,11 +38,8 @@ The BGP session status, e.g., "Established" means the session is up and running - name: status_duration - type: group - fields: - - name: sec - type: long - description: > + type: long + description: > Time in seconds since the current status was set - name: password_set @@ -101,27 +98,18 @@ Defines the type of relationship between peers, e.g., "External BGP", "Internal BGP", or "Unspecified" - name: connect_retry_interval - type: group - fields: - - name: sec - type: long - description: > + type: long + description: > The interval (in seconds) between connection retries - name: open_delay - type: group - fields: - - name: sec - type: long - description: > + type: long + description: > Delay before sending an Open message (in seconds) - name: idle_hold - type: group - fields: - - name: sec - type: long - description: > + type: long + description: > The idle hold time (in seconds) before retrying a connection after failure - name: prefix_limit @@ -130,75 +118,48 @@ The maximum number of prefixes that can be received from the peer (0 = no limit) - name: holdtime - type: group - fields: - - name: sec - type: long - description: > + type: long + description: > Time in seconds that the BGP peer will wait for a keepalive message, negotiated between peers - name: holdtime_config - type: group - fields: - - name: sec - type: long - description: > + type: long + description: > Represents the locally configured hold time on this peer (in seconds) - name: keepalive - type: group - fields: - - name: sec - type: long - description: > + type: long + description: > The interval (in seconds) at which BGP keepalive messages are sent, negotiated between peers - name: keepalive_config - type: group - fields: - - name: sec - type: long - description: > + type: long + description: > The keepalive configured on this peer - name: msg_update_in - type: group - fields: - - name: count - type: long - description: > + type: long + description: > The number of BGP UPDATE messages received by the router from this peer - name: msg_update_out - type: group - fields: - - name: count - type: long - description: > + type: long + description: > The number of BGP UPDATE messages sent from the local router to the peer - name: msg_total_in - type: group - fields: - - name: count - type: long - description: > + type: long + description: > Total of all messages received from the peer - name: msg_total_out - type: group - fields: - - name: count - type: long - description: > + type: long + description: > Total of all messages sent to the peer - name: last_update_age - type: group - fields: - - name: sec - type: long - description: > + type: long + description: > Time in seconds since the last update message was received from the peer - name: last_error diff --git a/packages/panw_metrics/data_stream/system/fields/fields.yml b/packages/panw_metrics/data_stream/system/fields/fields.yml index 71fb00306b4..ed0b7aa85b6 100644 --- a/packages/panw_metrics/data_stream/system/fields/fields.yml +++ b/packages/panw_metrics/data_stream/system/fields/fields.yml @@ -1,4 +1,4 @@ -- name: system +- name: panw.system type: group description: > system diff --git a/packages/panw_metrics/data_stream/vpn/fields/fields.yml b/packages/panw_metrics/data_stream/vpn/fields/fields.yml index 6ae02047c5e..5fdb9972277 100644 --- a/packages/panw_metrics/data_stream/vpn/fields/fields.yml +++ b/packages/panw_metrics/data_stream/vpn/fields/fields.yml @@ -1,4 +1,4 @@ -- name: vpn +- name: panw.vpn type: group description: > Virtual Private Network (VPN) metrics diff --git a/packages/panw_metrics/docs/README.md b/packages/panw_metrics/docs/README.md index 0706ec63533..173ae575c88 100644 --- a/packages/panw_metrics/docs/README.md +++ b/packages/panw_metrics/docs/README.md @@ -131,104 +131,104 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | host.containerized | If the host is a container. | boolean | | host.os.build | OS build information. | keyword | | host.os.codename | OS codename, if any. | keyword | -| interfaces.ha.enabled | HA enabled | boolean | -| interfaces.ha.link_monitoring.enabled | Indicates if link monitoring is enabled | boolean | -| interfaces.ha.link_monitoring.failure_condition | Condition that triggers a link monitoring failure, e.g., "any" | keyword | -| interfaces.ha.link_monitoring.group.enabled | Indicates if the link monitoring group is enabled | boolean | -| interfaces.ha.link_monitoring.group.failure_condition | Condition that triggers a failure in the link monitoring group | keyword | -| interfaces.ha.link_monitoring.group.interface.name | Name of the interface in the link monitoring group | keyword | -| interfaces.ha.link_monitoring.group.interface.status | Status of the interface in the link monitoring group | keyword | -| interfaces.ha.link_monitoring.group.name | Name of the link monitoring group | keyword | -| interfaces.ha.local_info.app_version | The version of the application database | keyword | -| interfaces.ha.local_info.av_version | The version of the antivirus database | keyword | -| interfaces.ha.local_info.build_rel | The PAN-OS software version running on the firewall | keyword | -| interfaces.ha.local_info.gp_client_version | Version of the GlobalProtect client software | keyword | -| interfaces.ha.local_info.ha1_backup_gateway | Default gateway for the backup HA1 interface | ip_range | -| interfaces.ha.local_info.ha1_backup_ipaddr | The backup IP address for the HA1 interface, in CIDR format. | ip_range | -| interfaces.ha.local_info.ha1_backup_macaddr | HA local info HA1 backup MAC address | keyword | -| interfaces.ha.local_info.ha1_backup_port | HA local info HA1 backup port, e.g. "management" | keyword | -| interfaces.ha.local_info.ha1_ipaddr | IP Address of HA1 interface, used for heartbeat and management synchronization, in CIDR format. | ip_range | -| interfaces.ha.local_info.ha1_macaddr | HA local info HA1 MAC address | keyword | -| interfaces.ha.local_info.ha1_port | Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha1" | keyword | -| interfaces.ha.local_info.ha2_ipaddr | HA local info HA2 IP address, in CIDR format. | ip_range | -| interfaces.ha.local_info.ha2_macaddr | HA local info HA2 MAC address | keyword | -| interfaces.ha.local_info.ha2_port | Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha2" | keyword | -| interfaces.ha.local_info.iot_version | HA local info IoT database version | keyword | -| interfaces.ha.local_info.mgmt_ip | HA local info management IP, in CIDR format. | ip_range | -| interfaces.ha.local_info.mode | HA mode, e.g., "active-active" or "active-passive" | keyword | -| interfaces.ha.local_info.platform_model | Platform model of the local device | keyword | -| interfaces.ha.local_info.preemptive | Indicates whether the firewall is configured to preemptively take over as the active unit in an HA setup | boolean | -| interfaces.ha.local_info.state | HA state of the local device, e.g., "active" or "passive" | keyword | -| interfaces.ha.local_info.state_duration.sec | Duration in seconds of the current state | long | -| interfaces.ha.local_info.state_sync | Status of HA synchronization, e.g., "complete" | keyword | -| interfaces.ha.local_info.state_sync_type | Type of interface used for HA synchronization | keyword | -| interfaces.ha.local_info.threat_version | HA local info threat version | keyword | -| interfaces.ha.local_info.url_version | The version of the URL filtering database | keyword | -| interfaces.ha.local_info.version | HA configuration info version | long | -| interfaces.ha.local_info.vpn_client_version | Version of the VPN client (if installed) | keyword | -| interfaces.ha.mode | HA mode, e.g., "active-active" or "active-passive" | keyword | -| interfaces.ha.peer_info.conn_ha1.description | Description of the connection type ,e.g., "heartbeat status" | keyword | -| interfaces.ha.peer_info.conn_ha1.primary | Specifies if the HA1 connection is primary | boolean | -| interfaces.ha.peer_info.conn_ha1.status | Peer HA1 connection status, e.g., "up" | keyword | -| interfaces.ha.peer_info.conn_ha1_backup.description | HA peer info connection HA1 backup description | keyword | -| interfaces.ha.peer_info.conn_ha1_backup.status | HA peer info connection HA1 backup status, e.g., "up" means it is operational | keyword | -| interfaces.ha.peer_info.conn_ha2.description | HA peer info connection HA2 description | keyword | -| interfaces.ha.peer_info.conn_ha2.primary | Specifies if the HA2 connection is primary | boolean | -| interfaces.ha.peer_info.conn_ha2.status | HA peer info connection HA2 status | keyword | -| interfaces.ha.peer_info.conn_status | Overall status of the HA connections ("up" means all connections are operational) | keyword | -| interfaces.ha.peer_info.ha1_backup_ipaddr | HA peer info HA1 backup IP address, in CIDR format. | ip | -| interfaces.ha.peer_info.ha1_backup_macaddr | HA peer info HA1 backup MAC address | keyword | -| interfaces.ha.peer_info.ha1_ipaddr | IP address of the HA1 interface on the peer, in CIDR format. | ip | -| interfaces.ha.peer_info.ha1_macaddr | HA1 MAC address of the peer | keyword | -| interfaces.ha.peer_info.ha2_ipaddr | HA peer info HA2 IP address, in CIDR format. | ip_range | -| interfaces.ha.peer_info.ha2_macaddr | HA peer info HA2 MAC address | keyword | -| interfaces.ha.peer_info.mgmt_ip | Management IP address of the peer firewall. This is in CIDR format. | ip_range | -| interfaces.ha.peer_info.mode | HA mode configured on the peer firewall, e.g. "Active-Passive" | keyword | -| interfaces.ha.peer_info.platform_model | Model of the peer firewall | keyword | -| interfaces.ha.peer_info.preemptive | Indicates if preemption is enabled on the peer firewall | boolean | -| interfaces.ha.peer_info.priority | HA priority value of the peer firewall | long | -| interfaces.ha.peer_info.state | Current operational state of the peer firewall (passive means it is in standby mode and not handling traffic) | keyword | -| interfaces.ha.peer_info.state_duration.sec | How long the peer has been in the current state in seconds | long | -| interfaces.ha.running_sync | Indicates the sychronization status of the HA pair, e.g., "synchronized","not-synchronized","synchronizing" | keyword | -| interfaces.ha.running_sync_enabled | Indicates if running configuration synchronization is enabled | boolean | -| interfaces.ipsec_tunnel.TSi_ip | Traffic Selector Initiator IP. This is the local IP (0.0.0.0 means any IP address) | ip | -| interfaces.ipsec_tunnel.TSi_port | Port number associated with TSi (0 means any port) | long | -| interfaces.ipsec_tunnel.TSi_prefix | Network prefix for the TSi IP, 0 means no specific network is defined. | keyword | -| interfaces.ipsec_tunnel.TSi_proto | Protocol associated with the TSi (0 means any protocol) | keyword | -| interfaces.ipsec_tunnel.TSr_ip | Traffic Selector Responder IP. | ip | -| interfaces.ipsec_tunnel.TSr_port | TSr port of the IPsec tunnel | long | -| interfaces.ipsec_tunnel.TSr_prefix | Network prefix for the TSr IP. Similar to TSi_prefix | keyword | -| interfaces.ipsec_tunnel.TSr_proto | TSr protocol of the IPsec tunnel | keyword | -| interfaces.ipsec_tunnel.dh | Diffie-Hellman group of the IPsec tunnel | keyword | -| interfaces.ipsec_tunnel.enc | Encryption algorithm of the IPsec tunnel | keyword | -| interfaces.ipsec_tunnel.gw | Gateway of the IPsec tunnel | keyword | -| interfaces.ipsec_tunnel.hash | Hash algorithm of the IPsec tunnel | keyword | -| interfaces.ipsec_tunnel.id | ID of the IPsec tunnel | keyword | -| interfaces.ipsec_tunnel.kb | Traffic volume limit for SA rekeying | long | -| interfaces.ipsec_tunnel.life.sec | The lifetime of the IPsec Security Association (SA) in seconds | long | -| interfaces.ipsec_tunnel.mode | This specifies the IPsec mode. e.g., 'tunl' | keyword | -| interfaces.ipsec_tunnel.name | Name of the IPsec tunnel | keyword | -| interfaces.ipsec_tunnel.proto | Protocol of the IPsec tunnel | keyword | -| interfaces.logical.addr | Used to store additional static IP addresses | keyword | -| interfaces.logical.addr6 | Logical IPv6 address | keyword | -| interfaces.logical.dyn_addr | Dynamic addresses, e.g., generated by DHCP | keyword | -| interfaces.logical.fwd | Indicates if the interface is used for forwarding | keyword | -| interfaces.logical.id | Logical interface ID | keyword | -| interfaces.logical.ip | Logical IP Address with subnet mask, e.g., 111.222.333.10/29. Can also be "N/A" | keyword | -| interfaces.logical.name | Logical interface name | keyword | -| interfaces.logical.tag | VLAN tag associated with this interface | integer | -| interfaces.logical.vsys | Virtual system to which this interface belongs | integer | -| interfaces.logical.zone | Logical zone, e.g., "inside" or "outside" | keyword | -| interfaces.physical.ae_member | For aggregate interfaces, the array of member interfaces | keyword | -| interfaces.physical.duplex | Duplex configuration, e.g., "full" or "half" | keyword | -| interfaces.physical.full_state | Physical full state, speed/duplex/state, e.g., "1000/full/up" | keyword | -| interfaces.physical.id | Physical interface ID | keyword | -| interfaces.physical.mac | Physical MAC address | keyword | -| interfaces.physical.mode | Physical interface mode, e.g., autoneg | keyword | -| interfaces.physical.name | Physical interface name | keyword | -| interfaces.physical.speed | Physical interface speed | keyword | -| interfaces.physical.state | Physical interface state: up/down | keyword | -| interfaces.physical.type | Physical interface type (numeric value in source XML, string value sent to elasticsearch): 0: "Ethernet interface", 1: "Aggregate Ethernet (AE) interface", 2: "High Availability (HA) interface", 3: "VLAN interface", 5: "Loopback interface", 6: "Tunnel interface", 10: "SD-WAN interface" | keyword | +| panw.interfaces.ha.enabled | HA enabled | boolean | +| panw.interfaces.ha.link_monitoring.enabled | Indicates if link monitoring is enabled | boolean | +| panw.interfaces.ha.link_monitoring.failure_condition | Condition that triggers a link monitoring failure, e.g., "any" | keyword | +| panw.interfaces.ha.link_monitoring.group.enabled | Indicates if the link monitoring group is enabled | boolean | +| panw.interfaces.ha.link_monitoring.group.failure_condition | Condition that triggers a failure in the link monitoring group | keyword | +| panw.interfaces.ha.link_monitoring.group.interface.name | Name of the interface in the link monitoring group | keyword | +| panw.interfaces.ha.link_monitoring.group.interface.status | Status of the interface in the link monitoring group | keyword | +| panw.interfaces.ha.link_monitoring.group.name | Name of the link monitoring group | keyword | +| panw.interfaces.ha.local_info.app_version | The version of the application database | keyword | +| panw.interfaces.ha.local_info.av_version | The version of the antivirus database | keyword | +| panw.interfaces.ha.local_info.build_rel | The PAN-OS software version running on the firewall | keyword | +| panw.interfaces.ha.local_info.gp_client_version | Version of the GlobalProtect client software | keyword | +| panw.interfaces.ha.local_info.ha1_backup_gateway | Default gateway for the backup HA1 interface | keyword | +| panw.interfaces.ha.local_info.ha1_backup_ipaddr | The backup IP address for the HA1 interface, in CIDR format. | keyword | +| panw.interfaces.ha.local_info.ha1_backup_macaddr | HA local info HA1 backup MAC address | keyword | +| panw.interfaces.ha.local_info.ha1_backup_port | HA local info HA1 backup port, e.g. "management" | keyword | +| panw.interfaces.ha.local_info.ha1_ipaddr | IP Address of HA1 interface, used for heartbeat and management synchronization, in CIDR format. | keyword | +| panw.interfaces.ha.local_info.ha1_macaddr | HA local info HA1 MAC address | keyword | +| panw.interfaces.ha.local_info.ha1_port | Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha1" | keyword | +| panw.interfaces.ha.local_info.ha2_ipaddr | HA local info HA2 IP address, in CIDR format. | keyword | +| panw.interfaces.ha.local_info.ha2_macaddr | HA local info HA2 MAC address | keyword | +| panw.interfaces.ha.local_info.ha2_port | Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha2" | keyword | +| panw.interfaces.ha.local_info.iot_version | HA local info IoT database version | keyword | +| panw.interfaces.ha.local_info.mgmt_ip | HA local info management IP, in CIDR format. | keyword | +| panw.interfaces.ha.local_info.mode | HA mode, e.g., "active-active" or "active-passive" | keyword | +| panw.interfaces.ha.local_info.platform_model | Platform model of the local device | keyword | +| panw.interfaces.ha.local_info.preemptive | Indicates whether the firewall is configured to preemptively take over as the active unit in an HA setup. This is a yes/no value which the beat is not converting to a boolean, so it will be a keyword. | keyword | +| panw.interfaces.ha.local_info.state | HA state of the local device, e.g., "active" or "passive" | keyword | +| panw.interfaces.ha.local_info.state_duration.sec | Duration in seconds of the current state | long | +| panw.interfaces.ha.local_info.state_sync | Status of HA synchronization, e.g., "complete" | keyword | +| panw.interfaces.ha.local_info.state_sync_type | Type of interface used for HA synchronization | keyword | +| panw.interfaces.ha.local_info.threat_version | HA local info threat version | keyword | +| panw.interfaces.ha.local_info.url_version | The version of the URL filtering database | keyword | +| panw.interfaces.ha.local_info.version | HA configuration info version | long | +| panw.interfaces.ha.local_info.vpn_client_version | Version of the VPN client (if installed) | keyword | +| panw.interfaces.ha.mode | HA mode, e.g., "active-active" or "active-passive" | keyword | +| panw.interfaces.ha.peer_info.conn_ha1.description | Description of the connection type ,e.g., "heartbeat status" | keyword | +| panw.interfaces.ha.peer_info.conn_ha1.primary | Specifies if the HA1 connection is primary | boolean | +| panw.interfaces.ha.peer_info.conn_ha1.status | Peer HA1 connection status, e.g., "up" | keyword | +| panw.interfaces.ha.peer_info.conn_ha1_backup.description | HA peer info connection HA1 backup description | keyword | +| panw.interfaces.ha.peer_info.conn_ha1_backup.status | HA peer info connection HA1 backup status, e.g., "up" means it is operational | keyword | +| panw.interfaces.ha.peer_info.conn_ha2.description | HA peer info connection HA2 description | keyword | +| panw.interfaces.ha.peer_info.conn_ha2.primary | Specifies if the HA2 connection is primary | boolean | +| panw.interfaces.ha.peer_info.conn_ha2.status | HA peer info connection HA2 status | keyword | +| panw.interfaces.ha.peer_info.conn_status | Overall status of the HA connections ("up" means all connections are operational) | keyword | +| panw.interfaces.ha.peer_info.ha1_backup_ipaddr | HA peer info HA1 backup IP address, in CIDR format. | ip | +| panw.interfaces.ha.peer_info.ha1_backup_macaddr | HA peer info HA1 backup MAC address | keyword | +| panw.interfaces.ha.peer_info.ha1_ipaddr | IP address of the HA1 interface on the peer, in CIDR format. | ip | +| panw.interfaces.ha.peer_info.ha1_macaddr | HA1 MAC address of the peer | keyword | +| panw.interfaces.ha.peer_info.ha2_ipaddr | HA peer info HA2 IP address, in CIDR format. | keyword | +| panw.interfaces.ha.peer_info.ha2_macaddr | HA peer info HA2 MAC address | keyword | +| panw.interfaces.ha.peer_info.mgmt_ip | Management IP address of the peer firewall. This is in CIDR format. | keyword | +| panw.interfaces.ha.peer_info.mode | HA mode configured on the peer firewall, e.g. "Active-Passive" | keyword | +| panw.interfaces.ha.peer_info.platform_model | Model of the peer firewall | keyword | +| panw.interfaces.ha.peer_info.preemptive | Indicates if preemption is enabled on the peer firewall | boolean | +| panw.interfaces.ha.peer_info.priority | HA priority value of the peer firewall | long | +| panw.interfaces.ha.peer_info.state | Current operational state of the peer firewall (passive means it is in standby mode and not handling traffic) | keyword | +| panw.interfaces.ha.peer_info.state_duration.sec | How long the peer has been in the current state in seconds | long | +| panw.interfaces.ha.running_sync | Indicates the sychronization status of the HA pair, e.g., "synchronized","not-synchronized","synchronizing" | keyword | +| panw.interfaces.ha.running_sync_enabled | Indicates if running configuration synchronization is enabled | boolean | +| panw.interfaces.ipsec_tunnel.TSi_ip | Traffic Selector Initiator IP. This is the local IP (0.0.0.0 means any IP address) | ip | +| panw.interfaces.ipsec_tunnel.TSi_port | Port number associated with TSi (0 means any port) | long | +| panw.interfaces.ipsec_tunnel.TSi_prefix | Network prefix for the TSi IP, 0 means no specific network is defined. | keyword | +| panw.interfaces.ipsec_tunnel.TSi_proto | Protocol associated with the TSi (0 means any protocol) | keyword | +| panw.interfaces.ipsec_tunnel.TSr_ip | Traffic Selector Responder IP. | ip | +| panw.interfaces.ipsec_tunnel.TSr_port | TSr port of the IPsec tunnel | long | +| panw.interfaces.ipsec_tunnel.TSr_prefix | Network prefix for the TSr IP. Similar to TSi_prefix | keyword | +| panw.interfaces.ipsec_tunnel.TSr_proto | TSr protocol of the IPsec tunnel | keyword | +| panw.interfaces.ipsec_tunnel.dh | Diffie-Hellman group of the IPsec tunnel | keyword | +| panw.interfaces.ipsec_tunnel.enc | Encryption algorithm of the IPsec tunnel | keyword | +| panw.interfaces.ipsec_tunnel.gw | Gateway of the IPsec tunnel | keyword | +| panw.interfaces.ipsec_tunnel.hash | Hash algorithm of the IPsec tunnel | keyword | +| panw.interfaces.ipsec_tunnel.id | ID of the IPsec tunnel | keyword | +| panw.interfaces.ipsec_tunnel.kb | Traffic volume limit for SA rekeying | long | +| panw.interfaces.ipsec_tunnel.life.sec | The lifetime of the IPsec Security Association (SA) in seconds | long | +| panw.interfaces.ipsec_tunnel.mode | This specifies the IPsec mode. e.g., 'tunl' | keyword | +| panw.interfaces.ipsec_tunnel.name | Name of the IPsec tunnel | keyword | +| panw.interfaces.ipsec_tunnel.proto | Protocol of the IPsec tunnel | keyword | +| panw.interfaces.logical.addr | Used to store additional static IP addresses | keyword | +| panw.interfaces.logical.addr6 | Logical IPv6 address | keyword | +| panw.interfaces.logical.dyn_addr | Dynamic addresses, e.g., generated by DHCP | keyword | +| panw.interfaces.logical.fwd | Indicates if the interface is used for forwarding | keyword | +| panw.interfaces.logical.id | Logical interface ID | keyword | +| panw.interfaces.logical.ip | Logical IP Address with subnet mask, e.g., 111.222.333.10/29. Can also be "N/A" | keyword | +| panw.interfaces.logical.name | Logical interface name | keyword | +| panw.interfaces.logical.tag | VLAN tag associated with this interface | integer | +| panw.interfaces.logical.vsys | Virtual system to which this interface belongs | integer | +| panw.interfaces.logical.zone | Logical zone, e.g., "inside" or "outside" | keyword | +| panw.interfaces.physical.ae_member | For aggregate interfaces, the array of member interfaces | keyword | +| panw.interfaces.physical.duplex | Duplex configuration, e.g., "full" or "half" | keyword | +| panw.interfaces.physical.full_state | Physical full state, speed/duplex/state, e.g., "1000/full/up" | keyword | +| panw.interfaces.physical.id | Physical interface ID | keyword | +| panw.interfaces.physical.mac | Physical MAC address | keyword | +| panw.interfaces.physical.mode | Physical interface mode, e.g., autoneg | keyword | +| panw.interfaces.physical.name | Physical interface name | keyword | +| panw.interfaces.physical.speed | Physical interface speed | keyword | +| panw.interfaces.physical.state | Physical interface state: up/down | keyword | +| panw.interfaces.physical.type | Physical interface type (numeric value in source XML, string value sent to elasticsearch): 0: "Ethernet interface", 1: "Aggregate Ethernet (AE) interface", 2: "High Availability (HA) interface", 3: "VLAN interface", 5: "Loopback interface", 6: "Tunnel interface", 10: "SD-WAN interface" | keyword | ### routing @@ -358,44 +358,44 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | host.containerized | If the host is a container. | boolean | | host.os.build | OS build information. | keyword | | host.os.codename | OS codename, if any. | keyword | -| routing.bgp.aggregate_confed_as | Indicates that Autonomous System (AS) aggregation is enabled for the confederation | boolean | -| routing.bgp.connect_retry_interval.sec | The interval (in seconds) between connection retries | long | -| routing.bgp.established_counts | Number of times the BGP session has successfully transitioned to the "Established" state | long | -| routing.bgp.holdtime.sec | Time in seconds that the BGP peer will wait for a keepalive message, negotiated between peers | long | -| routing.bgp.holdtime_config.sec | Represents the locally configured hold time on this peer (in seconds) | long | -| routing.bgp.idle_hold.sec | The idle hold time (in seconds) before retrying a connection after failure | long | -| routing.bgp.keepalive.sec | The interval (in seconds) at which BGP keepalive messages are sent, negotiated between peers | long | -| routing.bgp.keepalive_config.sec | The keepalive configured on this peer | long | -| routing.bgp.last_error | The last BGP error message received from the peer | keyword | -| routing.bgp.last_update_age.sec | Time in seconds since the last update message was received from the peer | long | -| routing.bgp.local_ip | Local ip address used for BGP connection | ip | -| routing.bgp.local_port | Local port number used for BGP connection | long | -| routing.bgp.msg_total_in.count | Total of all messages received from the peer | long | -| routing.bgp.msg_total_out.count | Total of all messages sent to the peer | long | -| routing.bgp.msg_update_in.count | The number of BGP UPDATE messages received by the router from this peer | long | -| routing.bgp.msg_update_out.count | The number of BGP UPDATE messages sent from the local router to the peer | long | -| routing.bgp.multi_hop_ttl | Time to Live (TTL) value for multi-hop BGP sessions. Units are the number of hops. | long | -| routing.bgp.nexthop_peer | Indicates whether the peer is being used as the next-hop for the routes received from this peerfields: | boolean | -| routing.bgp.nexthop_self | Whether the router is configured to use itself as the next-hop for routes sent to this peer | boolean | -| routing.bgp.nexthop_thirdparty | Third-party next-hop feature is enabled | boolean | -| routing.bgp.open_delay.sec | Delay before sending an Open message (in seconds) | long | -| routing.bgp.orf_entry_received | Number of ORF (Outbound Route Filtering) entries received from the peer | long | -| routing.bgp.passive | Indicates if the BGP peer is in passive mode: if yes then router will not initiate a connection to the peer | boolean | -| routing.bgp.password_set | Indicates whether a password is set for the BGP peer | boolean | -| routing.bgp.peer_group | The name of the BGP peer group this peer belongs to | keyword | -| routing.bgp.peer_ip | IP address of the peer | ip | -| routing.bgp.peer_name | The name of the current peer in the BGP peer group | keyword | -| routing.bgp.peer_port | Port number of the peer | long | -| routing.bgp.peer_router_id | BGP peer router ID | ip | -| routing.bgp.peering_type | Defines the type of relationship between peers, e.g., "External BGP", "Internal BGP", or "Unspecified" | keyword | -| routing.bgp.prefix_limit | The maximum number of prefixes that can be received from the peer (0 = no limit) | long | -| routing.bgp.reflector_client | Specifies the BGP peer relationship to route reflectors, e.g. "client", "not-client", "meshed-client" | keyword | -| routing.bgp.remote_as_asn | The remote Autonomous System (AS) number of the peer | long | -| routing.bgp.same_confederation | Peers in the same confederation exchange routes using internal BGP (iBGP) instead of external BGP (eBGP) | boolean | -| routing.bgp.status | The BGP session status, e.g., "Established" means the session is up and running | keyword | -| routing.bgp.status_duration.sec | Time in seconds since the current status was set | long | -| routing.bgp.status_flap_counts | Indicates the number of times the BGP session has "flapped" or transitioned between up and down states | long | -| routing.bgp.virtual_router | The virtual router with which the BGP peer is associated | keyword | +| panw.routing.bgp.aggregate_confed_as | Indicates that Autonomous System (AS) aggregation is enabled for the confederation | boolean | +| panw.routing.bgp.connect_retry_interval | The interval (in seconds) between connection retries | long | +| panw.routing.bgp.established_counts | Number of times the BGP session has successfully transitioned to the "Established" state | long | +| panw.routing.bgp.holdtime | Time in seconds that the BGP peer will wait for a keepalive message, negotiated between peers | long | +| panw.routing.bgp.holdtime_config | Represents the locally configured hold time on this peer (in seconds) | long | +| panw.routing.bgp.idle_hold | The idle hold time (in seconds) before retrying a connection after failure | long | +| panw.routing.bgp.keepalive | The interval (in seconds) at which BGP keepalive messages are sent, negotiated between peers | long | +| panw.routing.bgp.keepalive_config | The keepalive configured on this peer | long | +| panw.routing.bgp.last_error | The last BGP error message received from the peer | keyword | +| panw.routing.bgp.last_update_age | Time in seconds since the last update message was received from the peer | long | +| panw.routing.bgp.local_ip | Local ip address used for BGP connection | ip | +| panw.routing.bgp.local_port | Local port number used for BGP connection | long | +| panw.routing.bgp.msg_total_in | Total of all messages received from the peer | long | +| panw.routing.bgp.msg_total_out | Total of all messages sent to the peer | long | +| panw.routing.bgp.msg_update_in | The number of BGP UPDATE messages received by the router from this peer | long | +| panw.routing.bgp.msg_update_out | The number of BGP UPDATE messages sent from the local router to the peer | long | +| panw.routing.bgp.multi_hop_ttl | Time to Live (TTL) value for multi-hop BGP sessions. Units are the number of hops. | long | +| panw.routing.bgp.nexthop_peer | Indicates whether the peer is being used as the next-hop for the routes received from this peerfields: | boolean | +| panw.routing.bgp.nexthop_self | Whether the router is configured to use itself as the next-hop for routes sent to this peer | boolean | +| panw.routing.bgp.nexthop_thirdparty | Third-party next-hop feature is enabled | boolean | +| panw.routing.bgp.open_delay | Delay before sending an Open message (in seconds) | long | +| panw.routing.bgp.orf_entry_received | Number of ORF (Outbound Route Filtering) entries received from the peer | long | +| panw.routing.bgp.passive | Indicates if the BGP peer is in passive mode: if yes then router will not initiate a connection to the peer | boolean | +| panw.routing.bgp.password_set | Indicates whether a password is set for the BGP peer | boolean | +| panw.routing.bgp.peer_group | The name of the BGP peer group this peer belongs to | keyword | +| panw.routing.bgp.peer_ip | IP address of the peer | ip | +| panw.routing.bgp.peer_name | The name of the current peer in the BGP peer group | keyword | +| panw.routing.bgp.peer_port | Port number of the peer | long | +| panw.routing.bgp.peer_router_id | BGP peer router ID | ip | +| panw.routing.bgp.peering_type | Defines the type of relationship between peers, e.g., "External BGP", "Internal BGP", or "Unspecified" | keyword | +| panw.routing.bgp.prefix_limit | The maximum number of prefixes that can be received from the peer (0 = no limit) | long | +| panw.routing.bgp.reflector_client | Specifies the BGP peer relationship to route reflectors, e.g. "client", "not-client", "meshed-client" | keyword | +| panw.routing.bgp.remote_as_asn | The remote Autonomous System (AS) number of the peer | long | +| panw.routing.bgp.same_confederation | Peers in the same confederation exchange routes using internal BGP (iBGP) instead of external BGP (eBGP) | boolean | +| panw.routing.bgp.status | The BGP session status, e.g., "Established" means the session is up and running | keyword | +| panw.routing.bgp.status_duration | Time in seconds since the current status was set | long | +| panw.routing.bgp.status_flap_counts | Indicates the number of times the BGP session has "flapped" or transitioned between up and down states | long | +| panw.routing.bgp.virtual_router | The virtual router with which the BGP peer is associated | keyword | ### system @@ -516,74 +516,74 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | host.containerized | If the host is a container. | boolean | | host.os.build | OS build information. | keyword | | host.os.codename | OS codename, if any. | keyword | -| system.certificate.db_exp_date | expiration date, format: 310329235959Z(Mar 29 23:59:59 2031 GMT) | keyword | -| system.certificate.db_file | db_file field | keyword | -| system.certificate.db_name | db_name field | keyword | -| system.certificate.db_rev_date | db_rev_date field | keyword | -| system.certificate.db_serial_no | db_serial_no field | keyword | -| system.certificate.db_status | db_status fieldfields: | keyword | -| system.certificate.db_type | db_type field | keyword | -| system.certificate.issuer | issuer field | keyword | -| system.certificate.issuer_key_hash | issuer_key_hash field | keyword | -| system.certificate.issuer_subject_hash | issuer_subject_hash field | keyword | -| system.cpu.hi | CPU hardware interrupts | float | -| system.cpu.idle | CPU idle time | float | -| system.cpu.nice | CPU usage by processes with a positive nice value | float | -| system.cpu.steal | CPU steal time | float | -| system.cpu.system | CPU usage by system processes | float | -| system.cpu.system_int | CPU software interrupts | float | -| system.cpu.user | CPU usage by user processes | float | -| system.cpu.wait | CPU wait time | float | -| system.fan.alarm | Is there an alarm status of the fan | boolean | -| system.fan.description | The description of the fan | keyword | -| system.fan.min_rpm | The minimum speed of the fan in RPM | integer | -| system.fan.rpm | The speed of the fan in RPM | integer | -| system.fan.slot_number | The number of the hardware slot | integer | -| system.filesystem.available | Disk space available on the filesystem | float | -| system.filesystem.mounted | Filesystem mount point | keyword | -| system.filesystem.name | Filesystem name | keyword | -| system.filesystem.size | Total size of the filesystem | float | -| system.filesystem.use_percent | Percent of filesystem used | integer | -| system.filesystem.used | Amount used on the filesystem | float | -| system.license.auth_code | Authorization code to activate or install the license | keyword | -| system.license.description | Description of the licensed feature | text | -| system.license.expired | Indicates if the license is expired | boolean | -| system.license.expires | Date the license expires - not set if license never expires | date | -| system.license.feature | Feature licensed, e.g. Advanced Threat Prevention | keyword | -| system.license.issued | Date the license was issued | date | -| system.license.never_expires | Indicates if the license never expires | boolean | -| system.license.serial | Serial number of license | keyword | -| system.load_average.15m | Load average in 15 minutes | float | -| system.load_average.1m | Load average in 1 minute | float | -| system.load_average.5m | Load average in 5 minutes | float | -| system.memory.buffer_cache | Memory used for buffers and cache | float | -| system.memory.free | Free memory | float | -| system.memory.total | Total memory | float | -| system.memory.used | Used memory | float | -| system.power.alarm | Indicates if alarm is active | boolean | -| system.power.description | Description field | text | -| system.power.maximum_volts | Maximum volts recorded | float | -| system.power.minimum_volts | Minimum volts recorded | float | -| system.power.slot_number | Slot number field | integer | -| system.power.volts | Current Volts | float | -| system.swap.available | Available swap space | float | -| system.swap.free | Free swap space | float | -| system.swap.total | Total swap space | float | -| system.swap.used | Used swap space | float | -| system.tasks.running | Number of running tasks | long | -| system.tasks.sleeping | Number of sleeping tasks | long | -| system.tasks.stopped | Number of stopped tasks | long | -| system.tasks.total | Total number of tasks | long | -| system.tasks.zombie | Number of zombie tasks | long | -| system.thermal.alarm | Alarm field | boolean | -| system.thermal.degrees_celsius | Degrees Celsius field | float | -| system.thermal.description | Description field | text | -| system.thermal.maximum_temp | Maximum temperature field | float | -| system.thermal.minimum_temp | Minimum temperature field | float | -| system.thermal.slot_number | Slot number field | integer | -| system.uptime.days | Uptime in days | integer | -| system.uptime.hours | Hours component of uptime | integer | -| system.uptime.minutes | Minutes component of uptime | integer | +| panw.system.certificate.db_exp_date | expiration date, format: 310329235959Z(Mar 29 23:59:59 2031 GMT) | keyword | +| panw.system.certificate.db_file | db_file field | keyword | +| panw.system.certificate.db_name | db_name field | keyword | +| panw.system.certificate.db_rev_date | db_rev_date field | keyword | +| panw.system.certificate.db_serial_no | db_serial_no field | keyword | +| panw.system.certificate.db_status | db_status fieldfields: | keyword | +| panw.system.certificate.db_type | db_type field | keyword | +| panw.system.certificate.issuer | issuer field | keyword | +| panw.system.certificate.issuer_key_hash | issuer_key_hash field | keyword | +| panw.system.certificate.issuer_subject_hash | issuer_subject_hash field | keyword | +| panw.system.cpu.hi | CPU hardware interrupts | float | +| panw.system.cpu.idle | CPU idle time | float | +| panw.system.cpu.nice | CPU usage by processes with a positive nice value | float | +| panw.system.cpu.steal | CPU steal time | float | +| panw.system.cpu.system | CPU usage by system processes | float | +| panw.system.cpu.system_int | CPU software interrupts | float | +| panw.system.cpu.user | CPU usage by user processes | float | +| panw.system.cpu.wait | CPU wait time | float | +| panw.system.fan.alarm | Is there an alarm status of the fan | boolean | +| panw.system.fan.description | The description of the fan | keyword | +| panw.system.fan.min_rpm | The minimum speed of the fan in RPM | integer | +| panw.system.fan.rpm | The speed of the fan in RPM | integer | +| panw.system.fan.slot_number | The number of the hardware slot | integer | +| panw.system.filesystem.available | Disk space available on the filesystem | float | +| panw.system.filesystem.mounted | Filesystem mount point | keyword | +| panw.system.filesystem.name | Filesystem name | keyword | +| panw.system.filesystem.size | Total size of the filesystem | float | +| panw.system.filesystem.use_percent | Percent of filesystem used | integer | +| panw.system.filesystem.used | Amount used on the filesystem | float | +| panw.system.license.auth_code | Authorization code to activate or install the license | keyword | +| panw.system.license.description | Description of the licensed feature | text | +| panw.system.license.expired | Indicates if the license is expired | boolean | +| panw.system.license.expires | Date the license expires - not set if license never expires | date | +| panw.system.license.feature | Feature licensed, e.g. Advanced Threat Prevention | keyword | +| panw.system.license.issued | Date the license was issued | date | +| panw.system.license.never_expires | Indicates if the license never expires | boolean | +| panw.system.license.serial | Serial number of license | keyword | +| panw.system.load_average.15m | Load average in 15 minutes | float | +| panw.system.load_average.1m | Load average in 1 minute | float | +| panw.system.load_average.5m | Load average in 5 minutes | float | +| panw.system.memory.buffer_cache | Memory used for buffers and cache | float | +| panw.system.memory.free | Free memory | float | +| panw.system.memory.total | Total memory | float | +| panw.system.memory.used | Used memory | float | +| panw.system.power.alarm | Indicates if alarm is active | boolean | +| panw.system.power.description | Description field | text | +| panw.system.power.maximum_volts | Maximum volts recorded | float | +| panw.system.power.minimum_volts | Minimum volts recorded | float | +| panw.system.power.slot_number | Slot number field | integer | +| panw.system.power.volts | Current Volts | float | +| panw.system.swap.available | Available swap space | float | +| panw.system.swap.free | Free swap space | float | +| panw.system.swap.total | Total swap space | float | +| panw.system.swap.used | Used swap space | float | +| panw.system.tasks.running | Number of running tasks | long | +| panw.system.tasks.sleeping | Number of sleeping tasks | long | +| panw.system.tasks.stopped | Number of stopped tasks | long | +| panw.system.tasks.total | Total number of tasks | long | +| panw.system.tasks.zombie | Number of zombie tasks | long | +| panw.system.thermal.alarm | Alarm field | boolean | +| panw.system.thermal.degrees_celsius | Degrees Celsius field | float | +| panw.system.thermal.description | Description field | text | +| panw.system.thermal.maximum_temp | Maximum temperature field | float | +| panw.system.thermal.minimum_temp | Minimum temperature field | float | +| panw.system.thermal.slot_number | Slot number field | integer | +| panw.system.uptime.days | Uptime in days | integer | +| panw.system.uptime.hours | Hours component of uptime | integer | +| panw.system.uptime.minutes | Minutes component of uptime | integer | ### vpn @@ -695,32 +695,32 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | host.containerized | If the host is a container. | boolean | | host.os.build | OS build information. | keyword | | host.os.codename | OS codename, if any. | keyword | -| vpn.gateway.current_users | Current number of users connected to the GlobalProtect gateway | long | -| vpn.gateway.name | Name of the GlobalProtect gateway | keyword | -| vpn.gateway.previous_users | Previous number of users connected to the GlobalProtect gateway | long | -| vpn.globalprotect.session.app_version | Application version used in the session | keyword | -| vpn.globalprotect.session.client | Client information of the session | keyword | -| vpn.globalprotect.session.client_ip | Client IP address of the session | ip | -| vpn.globalprotect.session.computer | Computer name in the session | keyword | -| vpn.globalprotect.session.domain | Domain of the GlobalProtect session | keyword | -| vpn.globalprotect.session.host_id | Host ID of the session | keyword | -| vpn.globalprotect.session.is_local | Indicates if the session is local | boolean | -| vpn.globalprotect.session.lifetime | Lifetime of the session | long | -| vpn.globalprotect.session.login_time | Login time of the session | date | -| vpn.globalprotect.session.login_time_utc | Login time in UTC of the session | date | -| vpn.globalprotect.session.primary_username | Primary username of the session | keyword | -| vpn.globalprotect.session.public_connection_ipv6 | Public connection IPv6 address of the session | ip | -| vpn.globalprotect.session.public_ip | Public IP address of the session | ip | -| vpn.globalprotect.session.public_ipv6 | Public IPv6 address of the session | ip | -| vpn.globalprotect.session.region_for_config | Region for configuration | keyword | -| vpn.globalprotect.session.request_get_config | Request get configuration information of the session | keyword | -| vpn.globalprotect.session.request_login | Request login information of the session | keyword | -| vpn.globalprotect.session.request_sslvpn_connect | Request SSL VPN connect information of the session | keyword | -| vpn.globalprotect.session.source_region | Source region of the session | keyword | -| vpn.globalprotect.session.tunnel_type | Type of tunnel used in the session | keyword | -| vpn.globalprotect.session.username | Username of the session | keyword | -| vpn.globalprotect.session.virtual_ip | Virtual IP address of the session | ip | -| vpn.globalprotect.session.virtual_ipv6 | Virtual IPv6 address of the session | ip | -| vpn.globalprotect.session.vpn_type | Type of VPN used in the session | keyword | -| vpn.total_current_users | Total current number of users connected to GlobalProtect gateway | long | -| vpn.total_previous_users | Total previous number of users connected to GlobalProtect gateway | long | +| panw.vpn.gateway.current_users | Current number of users connected to the GlobalProtect gateway | long | +| panw.vpn.gateway.name | Name of the GlobalProtect gateway | keyword | +| panw.vpn.gateway.previous_users | Previous number of users connected to the GlobalProtect gateway | long | +| panw.vpn.globalprotect.session.app_version | Application version used in the session | keyword | +| panw.vpn.globalprotect.session.client | Client information of the session | keyword | +| panw.vpn.globalprotect.session.client_ip | Client IP address of the session | ip | +| panw.vpn.globalprotect.session.computer | Computer name in the session | keyword | +| panw.vpn.globalprotect.session.domain | Domain of the GlobalProtect session | keyword | +| panw.vpn.globalprotect.session.host_id | Host ID of the session | keyword | +| panw.vpn.globalprotect.session.is_local | Indicates if the session is local | boolean | +| panw.vpn.globalprotect.session.lifetime | Lifetime of the session | long | +| panw.vpn.globalprotect.session.login_time | Login time of the session | date | +| panw.vpn.globalprotect.session.login_time_utc | Login time in UTC of the session | date | +| panw.vpn.globalprotect.session.primary_username | Primary username of the session | keyword | +| panw.vpn.globalprotect.session.public_connection_ipv6 | Public connection IPv6 address of the session | ip | +| panw.vpn.globalprotect.session.public_ip | Public IP address of the session | ip | +| panw.vpn.globalprotect.session.public_ipv6 | Public IPv6 address of the session | ip | +| panw.vpn.globalprotect.session.region_for_config | Region for configuration | keyword | +| panw.vpn.globalprotect.session.request_get_config | Request get configuration information of the session | keyword | +| panw.vpn.globalprotect.session.request_login | Request login information of the session | keyword | +| panw.vpn.globalprotect.session.request_sslvpn_connect | Request SSL VPN connect information of the session | keyword | +| panw.vpn.globalprotect.session.source_region | Source region of the session | keyword | +| panw.vpn.globalprotect.session.tunnel_type | Type of tunnel used in the session | keyword | +| panw.vpn.globalprotect.session.username | Username of the session | keyword | +| panw.vpn.globalprotect.session.virtual_ip | Virtual IP address of the session | ip | +| panw.vpn.globalprotect.session.virtual_ipv6 | Virtual IPv6 address of the session | ip | +| panw.vpn.globalprotect.session.vpn_type | Type of VPN used in the session | keyword | +| panw.vpn.total_current_users | Total current number of users connected to GlobalProtect gateway | long | +| panw.vpn.total_previous_users | Total previous number of users connected to GlobalProtect gateway | long | From 9851b5820df8993a028649aef8f7458726ed8688 Mon Sep 17 00:00:00 2001 From: dparkerelastic Date: Wed, 2 Oct 2024 15:28:41 -0400 Subject: [PATCH 27/50] Fix field mappings: - some fields it turns out can be either single ip or cidr, so make those keywords - some yes/no fields which beat not converting to boolean, so keyword Fix dashboards and re-export --- .../data_stream/interfaces/fields/fields.yml | 10 +- .../data_stream/system/fields/fields.yml | 2 +- packages/panw_metrics/docs/README.md | 12 +- ...-a8cb4123-a6d3-48a7-aa23-b40427821182.json | 8 +- ...-b852ed05-eafa-4f8f-b6cc-df7c1ad7f257.json | 8 +- ...f4120bd3-ced7-497e-a075-8afdae59eff5.json} | 160 +++++++----------- ...-f8f0b70a-01cf-497d-89ac-a3e2c0d6bbb7.json | 8 +- 7 files changed, 79 insertions(+), 129 deletions(-) rename packages/panw_metrics/kibana/dashboard/{panw_metrics-323c0ebd-8b21-4a73-a969-511ef844434c.json => panw_metrics-f4120bd3-ced7-497e-a075-8afdae59eff5.json} (92%) diff --git a/packages/panw_metrics/data_stream/interfaces/fields/fields.yml b/packages/panw_metrics/data_stream/interfaces/fields/fields.yml index a06d9e81265..908ebbeb52b 100644 --- a/packages/panw_metrics/data_stream/interfaces/fields/fields.yml +++ b/packages/panw_metrics/data_stream/interfaces/fields/fields.yml @@ -152,7 +152,7 @@ description: > HA state of the local device, e.g., "active" or "passive" - - name: state_duration.sec + - name: state_duration type: long description: > Duration in seconds of the current state @@ -286,7 +286,7 @@ description: > Current operational state of the peer firewall (passive means it is in standby mode and not handling traffic) - - name: state_duration.sec + - name: state_duration type: long description: > How long the peer has been in the current state in seconds @@ -297,7 +297,7 @@ Management IP address of the peer firewall. This is in CIDR format. - name: preemptive - type: boolean + type: keyword description: > Indicates if preemption is enabled on the peer firewall @@ -354,7 +354,7 @@ Peer HA1 connection status, e.g., "up" - name: primary - type: boolean + type: keyword description: > Specifies if the HA1 connection is primary @@ -372,7 +372,7 @@ HA peer info connection HA2 status - name: primary - type: boolean + type: keyword description: > Specifies if the HA2 connection is primary diff --git a/packages/panw_metrics/data_stream/system/fields/fields.yml b/packages/panw_metrics/data_stream/system/fields/fields.yml index ed0b7aa85b6..e3eb721db64 100644 --- a/packages/panw_metrics/data_stream/system/fields/fields.yml +++ b/packages/panw_metrics/data_stream/system/fields/fields.yml @@ -144,7 +144,7 @@ description: > Feature licensed, e.g. Advanced Threat Prevention - name: description - type: text + type: keyword description: > Description of the licensed feature - name: serial diff --git a/packages/panw_metrics/docs/README.md b/packages/panw_metrics/docs/README.md index 173ae575c88..4d412f7bd14 100644 --- a/packages/panw_metrics/docs/README.md +++ b/packages/panw_metrics/docs/README.md @@ -159,7 +159,7 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | panw.interfaces.ha.local_info.platform_model | Platform model of the local device | keyword | | panw.interfaces.ha.local_info.preemptive | Indicates whether the firewall is configured to preemptively take over as the active unit in an HA setup. This is a yes/no value which the beat is not converting to a boolean, so it will be a keyword. | keyword | | panw.interfaces.ha.local_info.state | HA state of the local device, e.g., "active" or "passive" | keyword | -| panw.interfaces.ha.local_info.state_duration.sec | Duration in seconds of the current state | long | +| panw.interfaces.ha.local_info.state_duration | Duration in seconds of the current state | long | | panw.interfaces.ha.local_info.state_sync | Status of HA synchronization, e.g., "complete" | keyword | | panw.interfaces.ha.local_info.state_sync_type | Type of interface used for HA synchronization | keyword | | panw.interfaces.ha.local_info.threat_version | HA local info threat version | keyword | @@ -168,12 +168,12 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | panw.interfaces.ha.local_info.vpn_client_version | Version of the VPN client (if installed) | keyword | | panw.interfaces.ha.mode | HA mode, e.g., "active-active" or "active-passive" | keyword | | panw.interfaces.ha.peer_info.conn_ha1.description | Description of the connection type ,e.g., "heartbeat status" | keyword | -| panw.interfaces.ha.peer_info.conn_ha1.primary | Specifies if the HA1 connection is primary | boolean | +| panw.interfaces.ha.peer_info.conn_ha1.primary | Specifies if the HA1 connection is primary | keyword | | panw.interfaces.ha.peer_info.conn_ha1.status | Peer HA1 connection status, e.g., "up" | keyword | | panw.interfaces.ha.peer_info.conn_ha1_backup.description | HA peer info connection HA1 backup description | keyword | | panw.interfaces.ha.peer_info.conn_ha1_backup.status | HA peer info connection HA1 backup status, e.g., "up" means it is operational | keyword | | panw.interfaces.ha.peer_info.conn_ha2.description | HA peer info connection HA2 description | keyword | -| panw.interfaces.ha.peer_info.conn_ha2.primary | Specifies if the HA2 connection is primary | boolean | +| panw.interfaces.ha.peer_info.conn_ha2.primary | Specifies if the HA2 connection is primary | keyword | | panw.interfaces.ha.peer_info.conn_ha2.status | HA peer info connection HA2 status | keyword | | panw.interfaces.ha.peer_info.conn_status | Overall status of the HA connections ("up" means all connections are operational) | keyword | | panw.interfaces.ha.peer_info.ha1_backup_ipaddr | HA peer info HA1 backup IP address, in CIDR format. | ip | @@ -185,10 +185,10 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | panw.interfaces.ha.peer_info.mgmt_ip | Management IP address of the peer firewall. This is in CIDR format. | keyword | | panw.interfaces.ha.peer_info.mode | HA mode configured on the peer firewall, e.g. "Active-Passive" | keyword | | panw.interfaces.ha.peer_info.platform_model | Model of the peer firewall | keyword | -| panw.interfaces.ha.peer_info.preemptive | Indicates if preemption is enabled on the peer firewall | boolean | +| panw.interfaces.ha.peer_info.preemptive | Indicates if preemption is enabled on the peer firewall | keyword | | panw.interfaces.ha.peer_info.priority | HA priority value of the peer firewall | long | | panw.interfaces.ha.peer_info.state | Current operational state of the peer firewall (passive means it is in standby mode and not handling traffic) | keyword | -| panw.interfaces.ha.peer_info.state_duration.sec | How long the peer has been in the current state in seconds | long | +| panw.interfaces.ha.peer_info.state_duration | How long the peer has been in the current state in seconds | long | | panw.interfaces.ha.running_sync | Indicates the sychronization status of the HA pair, e.g., "synchronized","not-synchronized","synchronizing" | keyword | | panw.interfaces.ha.running_sync_enabled | Indicates if running configuration synchronization is enabled | boolean | | panw.interfaces.ipsec_tunnel.TSi_ip | Traffic Selector Initiator IP. This is the local IP (0.0.0.0 means any IP address) | ip | @@ -546,7 +546,7 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | panw.system.filesystem.use_percent | Percent of filesystem used | integer | | panw.system.filesystem.used | Amount used on the filesystem | float | | panw.system.license.auth_code | Authorization code to activate or install the license | keyword | -| panw.system.license.description | Description of the licensed feature | text | +| panw.system.license.description | Description of the licensed feature | keyword | | panw.system.license.expired | Indicates if the license is expired | boolean | | panw.system.license.expires | Date the license expires - not set if license never expires | date | | panw.system.license.feature | Feature licensed, e.g. Advanced Threat Prevention | keyword | diff --git a/packages/panw_metrics/kibana/dashboard/panw_metrics-a8cb4123-a6d3-48a7-aa23-b40427821182.json b/packages/panw_metrics/kibana/dashboard/panw_metrics-a8cb4123-a6d3-48a7-aa23-b40427821182.json index 35f8d923fcd..8e000b7b9f4 100644 --- a/packages/panw_metrics/kibana/dashboard/panw_metrics-a8cb4123-a6d3-48a7-aa23-b40427821182.json +++ b/packages/panw_metrics/kibana/dashboard/panw_metrics-a8cb4123-a6d3-48a7-aa23-b40427821182.json @@ -493,10 +493,9 @@ "version": 2 }, "coreMigrationVersion": "8.8.0", - "created_at": "2024-09-29T16:09:36.268Z", - "created_by": "u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0", + "created_at": "2024-10-02T19:20:10.729Z", "id": "panw_metrics-a8cb4123-a6d3-48a7-aa23-b40427821182", - "managed": false, + "managed": true, "references": [ { "id": "metrics-*", @@ -520,6 +519,5 @@ } ], "type": "dashboard", - "typeMigrationVersion": "10.2.0", - "updated_by": "u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0" + "typeMigrationVersion": "10.2.0" } \ No newline at end of file diff --git a/packages/panw_metrics/kibana/dashboard/panw_metrics-b852ed05-eafa-4f8f-b6cc-df7c1ad7f257.json b/packages/panw_metrics/kibana/dashboard/panw_metrics-b852ed05-eafa-4f8f-b6cc-df7c1ad7f257.json index 7cea0cc21e7..a7b7e3e7cbb 100644 --- a/packages/panw_metrics/kibana/dashboard/panw_metrics-b852ed05-eafa-4f8f-b6cc-df7c1ad7f257.json +++ b/packages/panw_metrics/kibana/dashboard/panw_metrics-b852ed05-eafa-4f8f-b6cc-df7c1ad7f257.json @@ -541,10 +541,9 @@ "version": 2 }, "coreMigrationVersion": "8.8.0", - "created_at": "2024-09-26T22:47:08.685Z", - "created_by": "u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0", + "created_at": "2024-10-02T19:20:10.729Z", "id": "panw_metrics-b852ed05-eafa-4f8f-b6cc-df7c1ad7f257", - "managed": false, + "managed": true, "references": [ { "id": "metrics-*", @@ -568,6 +567,5 @@ } ], "type": "dashboard", - "typeMigrationVersion": "10.2.0", - "updated_by": "u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0" + "typeMigrationVersion": "10.2.0" } \ No newline at end of file diff --git a/packages/panw_metrics/kibana/dashboard/panw_metrics-323c0ebd-8b21-4a73-a969-511ef844434c.json b/packages/panw_metrics/kibana/dashboard/panw_metrics-f4120bd3-ced7-497e-a075-8afdae59eff5.json similarity index 92% rename from packages/panw_metrics/kibana/dashboard/panw_metrics-323c0ebd-8b21-4a73-a969-511ef844434c.json rename to packages/panw_metrics/kibana/dashboard/panw_metrics-f4120bd3-ced7-497e-a075-8afdae59eff5.json index 4f6a97365e8..c599644e301 100644 --- a/packages/panw_metrics/kibana/dashboard/panw_metrics-323c0ebd-8b21-4a73-a969-511ef844434c.json +++ b/packages/panw_metrics/kibana/dashboard/panw_metrics-f4120bd3-ced7-497e-a075-8afdae59eff5.json @@ -10,16 +10,14 @@ "ignoreValidations": false }, "panelsJSON": { - "b6299f3c-17e7-4663-8a63-3c856c683ea8": { + "b50424d1-d82e-4c7c-8df4-0e67b63dc27d": { "explicitInput": { "enhancements": {}, "fieldName": "observer.ip", "grow": false, - "id": "b6299f3c-17e7-4663-8a63-3c856c683ea8", + "id": "b50424d1-d82e-4c7c-8df4-0e67b63dc27d", "searchTechnique": "prefix", - "selectedOptions": [ - "10.200.99.13" - ], + "selectedOptions": [], "title": "observer.ip", "width": "medium" }, @@ -188,12 +186,12 @@ }, "gridData": { "h": 6, - "i": "19dc313f-122c-4589-9cb4-f2ee8a306aeb", + "i": "748398c9-e543-48b3-8cd8-be77f25115b8", "w": 11, "x": 0, "y": 0 }, - "panelIndex": "19dc313f-122c-4589-9cb4-f2ee8a306aeb", + "panelIndex": "748398c9-e543-48b3-8cd8-be77f25115b8", "title": "Up Time", "type": "lens" }, @@ -419,12 +417,12 @@ }, "gridData": { "h": 6, - "i": "e9979bc0-3d3a-4eef-80a5-9dc75a2a1501", + "i": "09922c41-3324-43a9-9302-cec9c281902e", "w": 23, "x": 11, "y": 0 }, - "panelIndex": "e9979bc0-3d3a-4eef-80a5-9dc75a2a1501", + "panelIndex": "09922c41-3324-43a9-9302-cec9c281902e", "title": "CPU", "type": "lens" }, @@ -496,12 +494,12 @@ }, "gridData": { "h": 6, - "i": "f5e1a80e-ffc0-4ede-bd24-87beb30f886f", + "i": "637a7e88-c3d5-487e-8efd-a5d72429ad60", "w": 7, "x": 34, "y": 0 }, - "panelIndex": "f5e1a80e-ffc0-4ede-bd24-87beb30f886f", + "panelIndex": "637a7e88-c3d5-487e-8efd-a5d72429ad60", "title": "Fan Alarms", "type": "lens" }, @@ -573,12 +571,12 @@ }, "gridData": { "h": 6, - "i": "c63b417d-7b03-432d-ba25-c7c2effda1d4", + "i": "06fc2325-3c0c-4527-9dfc-9a04afd4d880", "w": 7, "x": 41, "y": 0 }, - "panelIndex": "c63b417d-7b03-432d-ba25-c7c2effda1d4", + "panelIndex": "06fc2325-3c0c-4527-9dfc-9a04afd4d880", "title": "Power Alarms", "type": "lens" }, @@ -819,12 +817,12 @@ }, "gridData": { "h": 15, - "i": "bbde7c83-0b1d-4c2f-8baf-12b15785d30b", + "i": "dc986d61-7048-443d-80c9-f7d002a93332", "w": 24, "x": 0, "y": 6 }, - "panelIndex": "bbde7c83-0b1d-4c2f-8baf-12b15785d30b", + "panelIndex": "dc986d61-7048-443d-80c9-f7d002a93332", "title": "Disk Usage", "type": "lens" }, @@ -1075,12 +1073,12 @@ }, "gridData": { "h": 15, - "i": "cf3ac26c-5e4f-453d-937d-e345270a8a61", + "i": "addf5643-9448-4489-ab0c-a47f485294f9", "w": 24, "x": 24, "y": 6 }, - "panelIndex": "cf3ac26c-5e4f-453d-937d-e345270a8a61", + "panelIndex": "addf5643-9448-4489-ab0c-a47f485294f9", "title": "Memory", "type": "lens" }, @@ -1098,54 +1096,29 @@ "adHocDataViews": {}, "datasourceStates": { "formBased": { + "currentIndexPatternId": "metrics-*", "layers": { "36de673c-5822-45a3-8465-9ea14d9bdba8": { "columnOrder": [ "7e6e5ee1-4eea-4c3f-ae4b-c93b9b649b2b", "a7488650-e737-43c4-abad-3e6fc791303e", - "ecdaca56-827c-4c4b-9dc0-56b5d331a2b6", - "0939b98f-d573-4951-aed0-a85303e19855", "d5074c95-04ef-4640-90d3-903a5b81f256", "47e76e1e-7945-4185-941e-dfb453f88d64", - "06880a20-0051-4812-9198-73759ba3240e" + "84bb1ec1-fc27-4576-80ec-a7def76b647d", + "1b92870a-e55d-44b8-98b9-1ef855828518" ], "columns": { - "06880a20-0051-4812-9198-73759ba3240e": { - "dataType": "number", + "1b92870a-e55d-44b8-98b9-1ef855828518": { + "customLabel": true, + "dataType": "date", "isBucketed": false, - "label": "Count of records", - "operationType": "count", + "label": "Expires", + "operationType": "max", "params": { "emptyAsNull": true }, "scale": "ratio", - "sourceField": "___records___" - }, - "0939b98f-d573-4951-aed0-a85303e19855": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "Date Issued", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "fallback": false, - "type": "alphabetical" - }, - "orderDirection": "asc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "panw.system.license.issued" + "sourceField": "panw.system.license.expires" }, "47e76e1e-7945-4185-941e-dfb453f88d64": { "customLabel": true, @@ -1160,7 +1133,7 @@ "includeIsRegex": false, "missingBucket": false, "orderBy": { - "columnId": "06880a20-0051-4812-9198-73759ba3240e", + "columnId": "1b92870a-e55d-44b8-98b9-1ef855828518", "type": "column" }, "orderDirection": "desc", @@ -1199,6 +1172,18 @@ "scale": "ordinal", "sourceField": "panw.system.license.feature" }, + "84bb1ec1-fc27-4576-80ec-a7def76b647d": { + "customLabel": true, + "dataType": "date", + "isBucketed": false, + "label": "Date Issued", + "operationType": "max", + "params": { + "emptyAsNull": true + }, + "scale": "ratio", + "sourceField": "panw.system.license.issued" + }, "a7488650-e737-43c4-abad-3e6fc791303e": { "customLabel": true, "dataType": "string", @@ -1212,7 +1197,7 @@ "includeIsRegex": false, "missingBucket": false, "orderBy": { - "columnId": "06880a20-0051-4812-9198-73759ba3240e", + "columnId": "1b92870a-e55d-44b8-98b9-1ef855828518", "type": "column" }, "orderDirection": "desc", @@ -1238,7 +1223,7 @@ "includeIsRegex": false, "missingBucket": false, "orderBy": { - "columnId": "06880a20-0051-4812-9198-73759ba3240e", + "columnId": "1b92870a-e55d-44b8-98b9-1ef855828518", "type": "column" }, "orderDirection": "desc", @@ -1250,35 +1235,10 @@ }, "scale": "ordinal", "sourceField": "panw.system.license.never_expires" - }, - "ecdaca56-827c-4c4b-9dc0-56b5d331a2b6": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "Date Expires", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "06880a20-0051-4812-9198-73759ba3240e", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "panw.system.license.expires" } }, "incompleteColumns": {}, + "indexPatternId": "metrics-*", "sampling": 1 } } @@ -1303,30 +1263,26 @@ "isTransposed": false, "width": 176.57142857142858 }, - { - "columnId": "0939b98f-d573-4951-aed0-a85303e19855", - "isMetric": false, - "isTransposed": false, - "width": 199.57142857142858 - }, { "columnId": "d5074c95-04ef-4640-90d3-903a5b81f256", "isTransposed": false }, { "columnId": "47e76e1e-7945-4185-941e-dfb453f88d64", - "isTransposed": false + "isTransposed": false, + "width": 109.08571428571429 }, { "columnId": "a7488650-e737-43c4-abad-3e6fc791303e", "isTransposed": false }, { - "columnId": "ecdaca56-827c-4c4b-9dc0-56b5d331a2b6", + "columnId": "1b92870a-e55d-44b8-98b9-1ef855828518", + "isMetric": true, "isTransposed": false }, { - "columnId": "06880a20-0051-4812-9198-73759ba3240e", + "columnId": "84bb1ec1-fc27-4576-80ec-a7def76b647d", "isMetric": true, "isTransposed": false } @@ -1343,12 +1299,12 @@ }, "gridData": { "h": 12, - "i": "5b0ea34a-9df4-4f4b-a589-bbd6aa08438f", + "i": "d515adb8-1b3d-4e75-bbed-dd069070f472", "w": 48, "x": 0, "y": 21 }, - "panelIndex": "5b0ea34a-9df4-4f4b-a589-bbd6aa08438f", + "panelIndex": "d515adb8-1b3d-4e75-bbed-dd069070f472", "title": "LIcenses", "type": "lens" } @@ -1358,9 +1314,9 @@ "version": 2 }, "coreMigrationVersion": "8.8.0", - "created_at": "2024-09-26T22:02:07.958Z", + "created_at": "2024-10-02T19:26:37.488Z", "created_by": "u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0", - "id": "panw_metrics-323c0ebd-8b21-4a73-a969-511ef844434c", + "id": "panw_metrics-f4120bd3-ced7-497e-a075-8afdae59eff5", "managed": false, "references": [ { @@ -1370,47 +1326,47 @@ }, { "id": "metrics-*", - "name": "19dc313f-122c-4589-9cb4-f2ee8a306aeb:indexpattern-datasource-layer-84d94cdf-99fe-43f4-b520-8343a94355b6", + "name": "748398c9-e543-48b3-8cd8-be77f25115b8:indexpattern-datasource-layer-84d94cdf-99fe-43f4-b520-8343a94355b6", "type": "index-pattern" }, { "id": "metrics-*", - "name": "e9979bc0-3d3a-4eef-80a5-9dc75a2a1501:indexpattern-datasource-layer-ef579182-b6a5-4392-a32e-2cc104fed1ef", + "name": "09922c41-3324-43a9-9302-cec9c281902e:indexpattern-datasource-layer-ef579182-b6a5-4392-a32e-2cc104fed1ef", "type": "index-pattern" }, { "id": "metrics-*", - "name": "f5e1a80e-ffc0-4ede-bd24-87beb30f886f:indexpattern-datasource-layer-d518bbf9-bd15-4582-9a24-ef33e5ee5002", + "name": "637a7e88-c3d5-487e-8efd-a5d72429ad60:indexpattern-datasource-layer-d518bbf9-bd15-4582-9a24-ef33e5ee5002", "type": "index-pattern" }, { "id": "metrics-*", - "name": "c63b417d-7b03-432d-ba25-c7c2effda1d4:indexpattern-datasource-layer-d518bbf9-bd15-4582-9a24-ef33e5ee5002", + "name": "06fc2325-3c0c-4527-9dfc-9a04afd4d880:indexpattern-datasource-layer-d518bbf9-bd15-4582-9a24-ef33e5ee5002", "type": "index-pattern" }, { "id": "metrics-*", - "name": "bbde7c83-0b1d-4c2f-8baf-12b15785d30b:indexpattern-datasource-layer-28c3773b-a896-466c-8a93-412deeb3313d", + "name": "dc986d61-7048-443d-80c9-f7d002a93332:indexpattern-datasource-layer-28c3773b-a896-466c-8a93-412deeb3313d", "type": "index-pattern" }, { "id": "metrics-*", - "name": "cf3ac26c-5e4f-453d-937d-e345270a8a61:indexpattern-datasource-layer-93308fd4-919e-470f-94cd-e05e7d89f7f7", + "name": "addf5643-9448-4489-ab0c-a47f485294f9:indexpattern-datasource-layer-93308fd4-919e-470f-94cd-e05e7d89f7f7", "type": "index-pattern" }, { "id": "metrics-*", - "name": "cf3ac26c-5e4f-453d-937d-e345270a8a61:indexpattern-datasource-layer-ed5168bf-932a-4c12-9d93-3cbbcff1de60", + "name": "addf5643-9448-4489-ab0c-a47f485294f9:indexpattern-datasource-layer-ed5168bf-932a-4c12-9d93-3cbbcff1de60", "type": "index-pattern" }, { "id": "metrics-*", - "name": "5b0ea34a-9df4-4f4b-a589-bbd6aa08438f:indexpattern-datasource-layer-36de673c-5822-45a3-8465-9ea14d9bdba8", + "name": "d515adb8-1b3d-4e75-bbed-dd069070f472:indexpattern-datasource-layer-36de673c-5822-45a3-8465-9ea14d9bdba8", "type": "index-pattern" }, { "id": "metrics-*", - "name": "controlGroup_b6299f3c-17e7-4663-8a63-3c856c683ea8:optionsListDataView", + "name": "controlGroup_b50424d1-d82e-4c7c-8df4-0e67b63dc27d:optionsListDataView", "type": "index-pattern" } ], diff --git a/packages/panw_metrics/kibana/dashboard/panw_metrics-f8f0b70a-01cf-497d-89ac-a3e2c0d6bbb7.json b/packages/panw_metrics/kibana/dashboard/panw_metrics-f8f0b70a-01cf-497d-89ac-a3e2c0d6bbb7.json index 3ccb2dc2c21..492fd29a9ec 100644 --- a/packages/panw_metrics/kibana/dashboard/panw_metrics-f8f0b70a-01cf-497d-89ac-a3e2c0d6bbb7.json +++ b/packages/panw_metrics/kibana/dashboard/panw_metrics-f8f0b70a-01cf-497d-89ac-a3e2c0d6bbb7.json @@ -1535,10 +1535,9 @@ "version": 2 }, "coreMigrationVersion": "8.8.0", - "created_at": "2024-09-29T16:09:36.268Z", - "created_by": "u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0", + "created_at": "2024-10-02T19:20:10.729Z", "id": "panw_metrics-f8f0b70a-01cf-497d-89ac-a3e2c0d6bbb7", - "managed": false, + "managed": true, "references": [ { "id": "metrics-*", @@ -1582,6 +1581,5 @@ } ], "type": "dashboard", - "typeMigrationVersion": "10.2.0", - "updated_by": "u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0" + "typeMigrationVersion": "10.2.0" } \ No newline at end of file From df993d01f2fb82d48b09acd381261990f54f3bbe Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Thu, 3 Oct 2024 20:02:26 +0300 Subject: [PATCH 28/50] add tags and processors support improve titles and descriptions --- .../interfaces/agent/stream/stream.yml.hbs | 16 +++++++++++++- .../data_stream/interfaces/manifest.yml | 22 ++++++++++++++++--- .../routing/agent/stream/stream.yml.hbs | 16 +++++++++++++- .../data_stream/routing/manifest.yml | 22 ++++++++++++++++--- .../system/agent/stream/stream.yml.hbs | 16 +++++++++++++- .../data_stream/system/manifest.yml | 22 ++++++++++++++++--- .../vpn/agent/stream/stream.yml.hbs | 16 +++++++++++++- .../panw_metrics/data_stream/vpn/manifest.yml | 22 ++++++++++++++++--- 8 files changed, 136 insertions(+), 16 deletions(-) diff --git a/packages/panw_metrics/data_stream/interfaces/agent/stream/stream.yml.hbs b/packages/panw_metrics/data_stream/interfaces/agent/stream/stream.yml.hbs index 6a8ccac8fa8..9d01314874a 100644 --- a/packages/panw_metrics/data_stream/interfaces/agent/stream/stream.yml.hbs +++ b/packages/panw_metrics/data_stream/interfaces/agent/stream/stream.yml.hbs @@ -3,4 +3,18 @@ period: {{period}} host_ip: {{host_ip}} port: {{port}} api_key: {{api_key}} -api_debug_mode: {{api_debug_mode}} \ No newline at end of file +api_debug_mode: {{api_debug_mode}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +{{#if processors}} +processors: +{{processors}} +{{/if}} \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/interfaces/manifest.yml b/packages/panw_metrics/data_stream/interfaces/manifest.yml index 23656e45b71..ed929a49a35 100644 --- a/packages/panw_metrics/data_stream/interfaces/manifest.yml +++ b/packages/panw_metrics/data_stream/interfaces/manifest.yml @@ -1,9 +1,9 @@ -title: "Palo Alto Networks Interfaces" +title: "Palo Alto Networks Interfaces metrics" type: metrics streams: - input: panw/metrics - title: Palo Alto Networks interfaces metrics - description: Collect interfaces metrics from Palo Alto Networks. + title: Palo Alto Networks Interfaces metrics + description: Collect interfaces metrics from Palo Alto Networks with Elastic Agent. vars: - name: period type: text @@ -40,3 +40,19 @@ streams: multi: false required: false show_user: true + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - forwarded + - panw_metrics-interfaces + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/fleet/current/elastic-agent-processor-configuration.html) for details. diff --git a/packages/panw_metrics/data_stream/routing/agent/stream/stream.yml.hbs b/packages/panw_metrics/data_stream/routing/agent/stream/stream.yml.hbs index 6aa4aa06c85..dbec1c34216 100644 --- a/packages/panw_metrics/data_stream/routing/agent/stream/stream.yml.hbs +++ b/packages/panw_metrics/data_stream/routing/agent/stream/stream.yml.hbs @@ -3,4 +3,18 @@ period: {{period}} host_ip: {{host_ip}} port: {{port}} api_key: {{api_key}} -api_debug_mode: {{api_debug_mode}} \ No newline at end of file +api_debug_mode: {{api_debug_mode}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +{{#if processors}} +processors: +{{processors}} +{{/if}} \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/routing/manifest.yml b/packages/panw_metrics/data_stream/routing/manifest.yml index ad965338926..b5345d68199 100644 --- a/packages/panw_metrics/data_stream/routing/manifest.yml +++ b/packages/panw_metrics/data_stream/routing/manifest.yml @@ -1,9 +1,9 @@ -title: "Palo Alto Networks Routing" +title: "Palo Alto Networks Routing metrics" type: metrics streams: - input: panw/metrics - title: Palo Alto Networks routing metrics - description: Collect routing metrics from Palo Alto Networks. + title: Palo Alto Networks Routing metrics + description: Collect routing metrics from Palo Alto Networks with Elastic Agent. vars: - name: period type: text @@ -40,3 +40,19 @@ streams: multi: false required: false show_user: true + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - forwarded + - panw_metrics-routing + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/fleet/current/elastic-agent-processor-configuration.html) for details. diff --git a/packages/panw_metrics/data_stream/system/agent/stream/stream.yml.hbs b/packages/panw_metrics/data_stream/system/agent/stream/stream.yml.hbs index 63abca94897..77daf3a1755 100644 --- a/packages/panw_metrics/data_stream/system/agent/stream/stream.yml.hbs +++ b/packages/panw_metrics/data_stream/system/agent/stream/stream.yml.hbs @@ -3,4 +3,18 @@ period: {{period}} host_ip: {{host_ip}} port: {{port}} api_key: {{api_key}} -api_debug_mode: {{api_debug_mode}} \ No newline at end of file +api_debug_mode: {{api_debug_mode}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +{{#if processors}} +processors: +{{processors}} +{{/if}} \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/system/manifest.yml b/packages/panw_metrics/data_stream/system/manifest.yml index 53f0126838b..e3d0e4e19d9 100644 --- a/packages/panw_metrics/data_stream/system/manifest.yml +++ b/packages/panw_metrics/data_stream/system/manifest.yml @@ -1,9 +1,9 @@ -title: "Palo Alto Networks System" +title: "Palo Alto Networks System metrics" type: metrics streams: - input: panw/metrics - title: Palo Alto Networks system metrics - description: Collect system metrics from Palo Alto Networks. + title: Palo Alto Networks System metrics + description: Collect system metrics from Palo Alto Networks with Elastic Agent. vars: - name: period type: text @@ -40,3 +40,19 @@ streams: multi: false required: false show_user: true + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - forwarded + - panw_metrics-system + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/fleet/current/elastic-agent-processor-configuration.html) for details. diff --git a/packages/panw_metrics/data_stream/vpn/agent/stream/stream.yml.hbs b/packages/panw_metrics/data_stream/vpn/agent/stream/stream.yml.hbs index 347faa13b41..f7cb8c29599 100644 --- a/packages/panw_metrics/data_stream/vpn/agent/stream/stream.yml.hbs +++ b/packages/panw_metrics/data_stream/vpn/agent/stream/stream.yml.hbs @@ -3,4 +3,18 @@ period: {{period}} host_ip: {{host_ip}} port: {{port}} api_key: {{api_key}} -api_debug_mode: {{api_debug_mode}} \ No newline at end of file +api_debug_mode: {{api_debug_mode}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +{{#if processors}} +processors: +{{processors}} +{{/if}} \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/vpn/manifest.yml b/packages/panw_metrics/data_stream/vpn/manifest.yml index 487db889d29..f221dd3fd1d 100644 --- a/packages/panw_metrics/data_stream/vpn/manifest.yml +++ b/packages/panw_metrics/data_stream/vpn/manifest.yml @@ -1,9 +1,9 @@ -title: "Palo Alto Networks VPN" +title: "Palo Alto Networks VPN metrics" type: metrics streams: - input: panw/metrics - title: Palo Alto Networks vpn metrics - description: Collect vpn metrics from Palo Alto Networks. + title: Palo Alto Networks VPN metrics + description: Collect vpn metrics from Palo Alto Networks with Elastic Agent. vars: - name: period type: text @@ -40,3 +40,19 @@ streams: multi: false required: false show_user: true + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - forwarded + - panw_metrics-vpn + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/fleet/current/elastic-agent-processor-configuration.html) for details. From 9565fcc7b37ea0e4e086793ceb8365201a6ab7f0 Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Thu, 3 Oct 2024 20:05:48 +0300 Subject: [PATCH 29/50] fix sample events --- .../data_stream/interfaces/sample_event.json | 20 +++++++++++++++++ .../data_stream/routing/sample_event.json | 22 ------------------- .../data_stream/vpn/sample_event.json | 9 +------- 3 files changed, 21 insertions(+), 30 deletions(-) diff --git a/packages/panw_metrics/data_stream/interfaces/sample_event.json b/packages/panw_metrics/data_stream/interfaces/sample_event.json index 5d7c9a05417..698b4f3f1c3 100644 --- a/packages/panw_metrics/data_stream/interfaces/sample_event.json +++ b/packages/panw_metrics/data_stream/interfaces/sample_event.json @@ -88,6 +88,26 @@ "mgmt_ip": "10.0.0.2", "platform_model": "PA-3260" } + }, + "ipsec_tunnel": { + "id": "tunnel-001", + "name": "Site-A-to-Site-B", + "gw": "203.0.113.1", + "TSi_ip": "10.0.0.0", + "TSi_prefix": "24", + "TSi_proto": "any", + "TSi_port": 0, + "TSr_ip": "192.168.0.0", + "TSr_prefix": "24", + "TSr_proto": "any", + "TSr_port": 0, + "proto": "ESP", + "mode": "tunnel", + "dh": "group14", + "enc": "aes-256-cbc", + "hash": "sha256", + "life.sec": 28800, + "kb": 102400 } } } diff --git a/packages/panw_metrics/data_stream/routing/sample_event.json b/packages/panw_metrics/data_stream/routing/sample_event.json index 1890d7fcd7f..3c22e7b3ccb 100644 --- a/packages/panw_metrics/data_stream/routing/sample_event.json +++ b/packages/panw_metrics/data_stream/routing/sample_event.json @@ -62,8 +62,6 @@ "status_duration": 3600, "password_set": true, "passive": false, - "peer_address": "203.0.113.1:179", - "local_address": "198.51.100.2:50000", "peering_type": "External BGP", "holdtime": 180, "keepalive": 60, @@ -74,26 +72,6 @@ "last_update_age": 300, "status_flap_counts": 2, "established_counts": 10 - }, - "ipsec_tunnel": { - "id": "tunnel-001", - "name": "Site-A-to-Site-B", - "gw": "203.0.113.1", - "TSi_ip": "10.0.0.0", - "TSi_prefix": "24", - "TSi_proto": "any", - "TSi_port": 0, - "TSr_ip": "192.168.0.0", - "TSr_prefix": "24", - "TSr_proto": "any", - "TSr_port": 0, - "proto": "ESP", - "mode": "tunnel", - "dh": "group14", - "enc": "aes-256-cbc", - "hash": "sha256", - "life": 28800, - "kb": 102400 } } } diff --git a/packages/panw_metrics/data_stream/vpn/sample_event.json b/packages/panw_metrics/data_stream/vpn/sample_event.json index 525f7b1b23b..bd8ebb125aa 100644 --- a/packages/panw_metrics/data_stream/vpn/sample_event.json +++ b/packages/panw_metrics/data_stream/vpn/sample_event.json @@ -68,14 +68,7 @@ "client_ip": "192.168.1.100", "login_time": "2024-02-08T10:15:00.000Z", "lifetime": 3600 - }, - "gateway": { - "name": "gp-gateway-01", - "current_users": 150, - "previous_users": 145 - }, - "total_current_users": 500, - "total_previous_users": 480 + } } } } From 15b291d19cf0dc63c7eba40b4fa5b07c59afa31d Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Thu, 3 Oct 2024 20:06:16 +0300 Subject: [PATCH 30/50] fields cleanup added dimensions added metric_type added unit mappings --- .../data_stream/interfaces/fields/fields.yml | 58 ++-- .../data_stream/routing/fields/fields.yml | 43 ++- .../data_stream/system/fields/fields.yml | 154 ++++++++- .../data_stream/vpn/fields/fields.yml | 327 +++++++++--------- 4 files changed, 365 insertions(+), 217 deletions(-) diff --git a/packages/panw_metrics/data_stream/interfaces/fields/fields.yml b/packages/panw_metrics/data_stream/interfaces/fields/fields.yml index 908ebbeb52b..cba29fe96ed 100644 --- a/packages/panw_metrics/data_stream/interfaces/fields/fields.yml +++ b/packages/panw_metrics/data_stream/interfaces/fields/fields.yml @@ -1,34 +1,25 @@ - name: panw.interfaces type: group - description: > - interfaces - fields: - name: physical type: group fields: - name: name type: keyword + dimension: true description: > Physical interface name - name: id type: keyword + dimension: true description: > Physical interface ID - name: type type: keyword description: > - Physical interface type (numeric value in source XML, string value sent to elasticsearch): - - 0: "Ethernet interface", - 1: "Aggregate Ethernet (AE) interface", - 2: "High Availability (HA) interface", - 3: "VLAN interface", - 5: "Loopback interface", - 6: "Tunnel interface", - 10: "SD-WAN interface" + Physical interface type - name: mac type: keyword @@ -70,11 +61,13 @@ fields: - name: name type: keyword + dimension: true description: > Logical interface name - name: id type: keyword + dimension: true description: > Logical interface ID @@ -85,10 +78,12 @@ - name: vsys type: integer - description: "Virtual system to which this interface belongs" + description: > + Virtual system to which this interface belongs - name: zone type: keyword + dimension: true description: > Logical zone, e.g., "inside" or "outside" @@ -114,7 +109,8 @@ - name: addr6 type: keyword - description: "Logical IPv6 address" + description: > + Logical IPv6 address - name: ha type: group @@ -132,7 +128,7 @@ - name: running_sync type: keyword description: > - Indicates the sychronization status of the HA pair, e.g., "synchronized","not-synchronized","synchronizing" + Indicates the sychronization status of the HA pair, e.g., "synchronized", "not-synchronized", "synchronizing" - name: running_sync_enabled type: boolean @@ -154,6 +150,7 @@ - name: state_duration type: long + unit: s description: > Duration in seconds of the current state @@ -165,8 +162,7 @@ - name: preemptive type: keyword description: > - Indicates whether the firewall is configured to preemptively take over as the active unit in an HA setup. This is a yes/no - value which the beat is not converting to a boolean, so it will be a keyword. + Indicates whether the firewall is configured to preemptively take over as the active unit in an HA setup. This is a yes/no value which the beat is not converting to a boolean, so it will be a keyword. - name: mode type: keyword @@ -175,6 +171,7 @@ - name: platform_model type: keyword + dimension: true description: > Platform model of the local device @@ -220,7 +217,8 @@ - name: ha1_backup_gateway type: keyword - description: "Default gateway for the backup HA1 interface" + description: > + Default gateway for the backup HA1 interface - name: ha2_ipaddr type: keyword @@ -239,15 +237,18 @@ - name: build_rel type: keyword - description: "The PAN-OS software version running on the firewall" + description: > + The PAN-OS software version running on the firewall - name: url_version type: keyword - description: "The version of the URL filtering database" + description: > + The version of the URL filtering database - name: app_version type: keyword - description: "The version of the application database" + description: > + The version of the application database - name: iot_version type: keyword @@ -271,7 +272,8 @@ - name: gp_client_version type: keyword - description: "Version of the GlobalProtect client software" + description: > + Version of the GlobalProtect client software - name: peer_info type: group @@ -288,6 +290,8 @@ - name: state_duration type: long + metric_type: gauge + unit: s description: > How long the peer has been in the current state in seconds @@ -308,7 +312,9 @@ - name: platform_model type: keyword - description: "Model of the peer firewall" + dimension: true + description: > + Model of the peer firewall - name: priority type: long @@ -523,11 +529,13 @@ - name: life.sec type: long + unit: s + metric_type: gauge description: > The lifetime of the IPsec Security Association (SA) in seconds - name: kb type: long - description: "Traffic volume limit for SA rekeying" + description: > + Traffic volume limit for SA rekeying - \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/routing/fields/fields.yml b/packages/panw_metrics/data_stream/routing/fields/fields.yml index 56b74767fa3..977cc3cfb97 100644 --- a/packages/panw_metrics/data_stream/routing/fields/fields.yml +++ b/packages/panw_metrics/data_stream/routing/fields/fields.yml @@ -1,24 +1,24 @@ - name: panw.routing type: group - description: > - routing - fields: - name: bgp type: group fields: - name: peer_name type: keyword + dimension: true description: > The name of the current peer in the BGP peer group - name: virtual_router type: keyword + dimension: true description: > The virtual router with which the BGP peer is associated - name: peer_group type: keyword + dimension: true description: > The name of the BGP peer group this peer belongs to @@ -39,8 +39,9 @@ - name: status_duration type: long + unit: s description: > - Time in seconds since the current status was set + Time in seconds since the current status was set - name: password_set type: boolean @@ -94,23 +95,27 @@ - name: peering_type type: keyword + dimension: true description: > Defines the type of relationship between peers, e.g., "External BGP", "Internal BGP", or "Unspecified" - name: connect_retry_interval type: long + unit: s description: > - The interval (in seconds) between connection retries + The interval (in seconds) between connection retries - name: open_delay type: long + unit: s description: > - Delay before sending an Open message (in seconds) + Delay before sending an Open message (in seconds) - name: idle_hold type: long + unit: s description: > - The idle hold time (in seconds) before retrying a connection after failure + The idle hold time (in seconds) before retrying a connection after failure - name: prefix_limit type: long @@ -119,48 +124,52 @@ - name: holdtime type: long + unit: s description: > - Time in seconds that the BGP peer will wait for a keepalive message, negotiated between peers + Time in seconds that the BGP peer will wait for a keepalive message, negotiated between peers - name: holdtime_config type: long + unit: s description: > - Represents the locally configured hold time on this peer (in seconds) + Represents the locally configured hold time on this peer (in seconds) - name: keepalive type: long + unit: s description: > - The interval (in seconds) at which BGP keepalive messages are sent, negotiated between peers + The interval (in seconds) at which BGP keepalive messages are sent, negotiated between peers - name: keepalive_config type: long description: > - The keepalive configured on this peer + The keepalive configured on this peer - name: msg_update_in type: long description: > - The number of BGP UPDATE messages received by the router from this peer + The number of BGP UPDATE messages received by the router from this peer - name: msg_update_out type: long description: > - The number of BGP UPDATE messages sent from the local router to the peer + The number of BGP UPDATE messages sent from the local router to the peer - name: msg_total_in type: long description: > - Total of all messages received from the peer + Total of all messages received from the peer - name: msg_total_out type: long description: > - Total of all messages sent to the peer + Total of all messages sent to the peer - name: last_update_age type: long + unit: s description: > - Time in seconds since the last update message was received from the peer + Time in seconds since the last update message was received from the peer - name: last_error type: keyword @@ -196,4 +205,4 @@ type: boolean description: > Indicates whether the peer is being used as the next-hop for the routes received from this peerfields: - \ No newline at end of file + diff --git a/packages/panw_metrics/data_stream/system/fields/fields.yml b/packages/panw_metrics/data_stream/system/fields/fields.yml index e3eb721db64..56c79b5da8f 100644 --- a/packages/panw_metrics/data_stream/system/fields/fields.yml +++ b/packages/panw_metrics/data_stream/system/fields/fields.yml @@ -1,38 +1,54 @@ - name: panw.system type: group - description: > - system - fields: - name: uptime type: group fields: - name: days type: integer + unit: d + metric_type: gauge description: > Uptime in days + - name: hours type: integer + unit: h + metric_type: gauge description: > Hours component of uptime + - name: minutes type: integer + unit: m + metric_type: gauge description: > Minutes component of uptime + - name: user_count + type: long + metric_type: gauge + description: > + Number of users + - name: load_average type: group fields: - name: 1m type: float + metric_type: gauge description: > Load average in 1 minute + - name: 5m type: float + metric_type: gauge description: > Load average in 5 minutes + - name: 15m type: float + metric_type: gauge description: > Load average in 15 minutes @@ -41,22 +57,31 @@ fields: - name: total type: long + metric_type: gauge description: > Total number of tasks + - name: running type: long + metric_type: gauge description: > Number of running tasks + - name: sleeping type: long + metric_type: gauge description: > Number of sleeping tasks + - name: stopped type: long + metric_type: gauge description: > Number of stopped tasks + - name: zombie type: long + metric_type: gauge description: > Number of zombie tasks @@ -65,34 +90,57 @@ fields: - name: user type: float + unit: percent + metric_type: gauge description: > CPU usage by user processes + - name: system type: float + unit: percent + metric_type: gauge description: > CPU usage by system processes + - name: nice type: float + unit: percent + metric_type: gauge description: > CPU usage by processes with a positive nice value + - name: idle type: float + unit: percent + metric_type: gauge description: > CPU idle time + - name: wait type: float + unit: percent + metric_type: gauge description: > CPU wait time + - name: hi type: float + unit: percent + metric_type: gauge description: > CPU hardware interrupts + - name: system_int type: float + unit: percent + metric_type: gauge description: > CPU software interrupts + - name: steal type: float + unit: percent + metric_type: gauge description: > CPU steal time @@ -101,18 +149,29 @@ fields: - name: total type: float + unit: byte + metric_type: gauge description: > Total memory + - name: free type: float + unit: byte + metric_type: gauge description: > Free memory + - name: used type: float + unit: byte + metric_type: gauge description: > Used memory + - name: buffer_cache type: float + unit: byte + metric_type: gauge description: > Memory used for buffers and cache @@ -121,18 +180,29 @@ fields: - name: total type: float + unit: byte + metric_type: gauge description: > Total swap space + - name: free type: float + unit: byte + metric_type: gauge description: > Free swap space + - name: used type: float + unit: byte + metric_type: gauge description: > Used swap space + - name: available type: float + unit: byte + metric_type: gauge description: > Available swap space @@ -141,32 +211,41 @@ fields: - name: feature type: keyword + dimension: true description: > Feature licensed, e.g. Advanced Threat Prevention + - name: description type: keyword description: > Description of the licensed feature + - name: serial type: keyword + dimension: true description: > Serial number of license + - name: issued type: date description: > Date the license was issued + - name: expires type: date description: > Date the license expires - not set if license never expires + - name: never_expires type: boolean description: > Indicates if the license never expires + - name: expired type: boolean description: > Indicates if the license is expired + - name: auth_code type: keyword description: > @@ -177,30 +256,45 @@ fields: - name: name type: keyword + dimension: true description: > Filesystem name + - name: size type: float format: bytes + unit: byte + metric_type: gauge description: > Total size of the filesystem + - name: used type: float format: bytes + unit: byte + metric_type: gauge description: > Amount used on the filesystem + - name: available type: float format: bytes + unit: byte + metric_type: gauge description: > Disk space available on the filesystem + - name: use_percent type: integer format: percent + unit: percent + metric_type: gauge description: > Percent of filesystem used + - name: mounted type: keyword + dimension: true description: > Filesystem mount point @@ -211,20 +305,26 @@ type: integer description: > The number of the hardware slot + - name: description type: keyword description: > The description of the fan + - name: alarm type: boolean description: > Is there an alarm status of the fan + - name: rpm type: integer + metric_type: gauge description: > The speed of the fan in RPM + - name: min_rpm type: integer + metric_type: gauge description: > The minimum speed of the fan in RPM @@ -235,24 +335,32 @@ type: integer description: > Slot number field + - name: description type: text description: > Description field + - name: alarm type: boolean description: > Alarm field + - name: degrees_celsius type: float + metric_type: gauge description: > Degrees Celsius field + - name: minimum_temp type: float + metric_type: gauge description: > Minimum temperature field + - name: maximum_temp type: float + metric_type: gauge description: > Maximum temperature field @@ -263,24 +371,32 @@ type: integer description: > Slot number field + - name: description type: text description: > Description field + - name: alarm type: boolean description: > Indicates if alarm is active + - name: volts type: float + metric_type: gauge description: > Current Volts + - name: minimum_volts type: float + metric_type: gauge description: > Minimum volts recorded + - name: maximum_volts type: float + metric_type: gauge description: > Maximum volts recorded @@ -290,40 +406,52 @@ - name: issuer type: keyword description: > - issuer field + Issuer of the certificate database + - name: issuer_subject_hash type: keyword description: > - issuer_subject_hash field + Subject hash of the issuer of the certificate database + - name: issuer_key_hash type: keyword description: > - issuer_key_hash field + Key hash of the issuer of the certificate database + - name: db_type type: keyword description: > - db_type field + Type of the certificate database + - name: db_exp_date type: keyword description: > - expiration date, format: 310329235959Z(Mar 29 23:59:59 2031 GMT) + Expiration date, format: 310329235959Z (Mar 29 23:59:59 2031 GMT) + - name: db_rev_date type: keyword description: > - db_rev_date field + Revision date of the certificate database + - name: db_serial_no type: keyword description: > - db_serial_no field + Serial number of the certificate database + - name: db_file type: keyword + dimension: true description: > - db_file field + File name of the certificate database + - name: db_name type: keyword + dimension: true description: > - db_name field + Name of the certificate database + - name: db_status type: keyword description: > - db_status fieldfields: + Status of the certificate database + diff --git a/packages/panw_metrics/data_stream/vpn/fields/fields.yml b/packages/panw_metrics/data_stream/vpn/fields/fields.yml index 5fdb9972277..7ee3197e54f 100644 --- a/packages/panw_metrics/data_stream/vpn/fields/fields.yml +++ b/packages/panw_metrics/data_stream/vpn/fields/fields.yml @@ -1,168 +1,171 @@ - name: panw.vpn type: group - description: > - Virtual Private Network (VPN) metrics - fields: - - name: globalprotect - type: group - description: > - GlobalProtect VPN - fields: - - name: session - type: group - description: > - GlobalProtect session - - fields: - - name: domain - type: keyword - description: > - Domain of the GlobalProtect session - - - name: is_local - type: boolean - description: > - Indicates if the session is local - - - name: username - type: keyword - description: > - Username of the session - - - name: primary_username - type: keyword - description: > - Primary username of the session - - - name: region_for_config - type: keyword - description: > - Region for configuration - - - name: source_region - type: keyword - description: > - Source region of the session - - - name: computer - type: keyword - description: > - Computer name in the session - - - name: client - type: keyword - description: > - Client information of the session - - - name: vpn_type - type: keyword - description: > - Type of VPN used in the session - - - name: host_id - type: keyword - description: > - Host ID of the session - - - name: app_version - type: keyword - description: > - Application version used in the session - - - name: virtual_ip - type: ip - description: > - Virtual IP address of the session - - - name: virtual_ipv6 - type: ip - description: > - Virtual IPv6 address of the session - - - name: public_ip - type: ip - description: > - Public IP address of the session - - - name: public_ipv6 - type: ip - description: > - Public IPv6 address of the session - - - name: tunnel_type - type: keyword - description: > - Type of tunnel used in the session - - - name: public_connection_ipv6 - type: ip - description: > - Public connection IPv6 address of the session - - - name: client_ip - type: ip - description: > - Client IP address of the session - - - name: login_time - type: date - description: > - Login time of the session - - - name: login_time_utc - type: date - description: > - Login time in UTC of the session - - - name: lifetime - type: long - description: > - Lifetime of the session - - - name: request_login - type: keyword - description: > - Request login information of the session - - - name: request_get_config - type: keyword - description: > - Request get configuration information of the session - - - name: request_sslvpn_connect - type: keyword - description: > - Request SSL VPN connect information of the session - - - name: gateway + - name: globalprotect type: group - description: > - GlobalProtect gateway - fields: - - name: name - type: keyword - description: > - Name of the GlobalProtect gateway - - - name: current_users - type: long - description: > - Current number of users connected to the GlobalProtect gateway - - - name: previous_users - type: long - description: > - Previous number of users connected to the GlobalProtect gateway - - - name: total_current_users - type: long - description: > - Total current number of users connected to GlobalProtect gateway - - - name: total_previous_users - type: long - description: > - Total previous number of users connected to GlobalProtect gateway + - name: total_current_users + type: long + metric_type: gauge + description: > + Total current number of users connected to GlobalProtect gateway + + - name: total_previous_users + type: long + metric_type: gauge + description: > + Total previous number of users connected to GlobalProtect gateway + + - name: session + type: group + fields: + - name: domain + type: keyword + dimension: true + description: > + Domain of the GlobalProtect session + + - name: is_local + type: boolean + description: > + Indicates if the session is local + + - name: username + type: keyword + dimension: true + description: > + Username of the session + + - name: primary_username + type: keyword + dimension: true + description: > + Primary username of the session + + - name: region_for_config + type: keyword + dimension: true + description: > + Region for configuration + + - name: source_region + type: keyword + dimension: true + description: > + Source region of the session + + - name: computer + type: keyword + dimension: true + description: > + Computer name in the session + + - name: client + type: keyword + dimension: true + description: > + Client information of the session + + - name: vpn_type + type: keyword + dimension: true + description: > + Type of VPN used in the session + + - name: host_id + type: keyword + dimension: true + description: > + Host ID of the session + + - name: app_version + type: keyword + description: > + Application version used in the session + + - name: virtual_ip + type: ip + description: > + Virtual IP address of the session + + - name: virtual_ipv6 + type: ip + description: > + Virtual IPv6 address of the session + + - name: public_ip + type: ip + description: > + Public IP address of the session + + - name: public_ipv6 + type: ip + description: > + Public IPv6 address of the session + + - name: tunnel_type + type: keyword + description: > + Type of tunnel used in the session + + - name: public_connection_ipv6 + type: ip + description: > + Public connection IPv6 address of the session + + - name: client_ip + type: ip + description: > + Client IP address of the session + + - name: login_time + type: date + description: > + Login time of the session + + - name: login_time_utc + type: date + description: > + Login time in UTC of the session + + - name: lifetime + type: long + description: > + Lifetime of the session + + - name: request_login + type: keyword + description: > + Request login information of the session + + - name: request_get_config + type: keyword + description: > + Request get configuration information of the session + + - name: request_sslvpn_connect + type: keyword + description: > + Request SSL VPN connect information of the session + + - name: gateway + type: group + fields: + - name: name + type: keyword + dimension: true + description: > + Name of the GlobalProtect gateway + + - name: current_users + type: long + metric_type: gauge + description: > + Current number of users connected to the GlobalProtect gateway + + - name: previous_users + type: long + metric_type: gauge + description: > + Previous number of users connected to the GlobalProtect gateway From ff14b18c73b7c2178bda2c6e7fac044486afddac Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Thu, 3 Oct 2024 20:06:31 +0300 Subject: [PATCH 31/50] improve manifest titles and descriptions --- packages/panw_metrics/manifest.yml | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/packages/panw_metrics/manifest.yml b/packages/panw_metrics/manifest.yml index 4555189cf63..185b3e690c2 100644 --- a/packages/panw_metrics/manifest.yml +++ b/packages/panw_metrics/manifest.yml @@ -2,8 +2,7 @@ format_version: 3.1.4 name: panw_metrics title: "Palo Alto Networks Metrics" version: "0.0.1" -description: > - "This integration periodically fetches metrics from [Palo Alto Networks](https://www.paloaltonetworks.com/) firewalls and management systems." +description: Collect metrics from Palo Alto Networks with Elastic Agent. type: integration categories: - network @@ -21,17 +20,11 @@ icons: policy_templates: - name: panw_metrics title: Palo Alto Networks metrics - description: Collect metrics from Palo Alto Networks + description: Collects metrics from Palo Alto Networks with Elastic Agent inputs: - type: panw/metrics title: Palo Alto Networks metrics - description: Collect metrics from Palo Alto Networks - input_group: metrics - icons: - - src: /img/logo.svg - title: PANW logo - size: 32x32 - type: image/svg+xml + description: Collects metrics from Palo Alto Networks owner: github: elastic/obs-infraobs-integrations type: elastic From 6b45d588504af7662403dd52245aff3365c6a2fd Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Thu, 3 Oct 2024 20:07:03 +0300 Subject: [PATCH 32/50] build docs --- .../panw_metrics/_dev/build/docs/README.md | 4 +- packages/panw_metrics/docs/README.md | 602 +++++++++--------- 2 files changed, 301 insertions(+), 305 deletions(-) diff --git a/packages/panw_metrics/_dev/build/docs/README.md b/packages/panw_metrics/_dev/build/docs/README.md index e549ff88b63..8c4117e60e5 100644 --- a/packages/panw_metrics/_dev/build/docs/README.md +++ b/packages/panw_metrics/_dev/build/docs/README.md @@ -7,7 +7,9 @@ This integration periodically fetches metrics from [Palo Alto Networks](https:// The integration uses the [Pango](https://github.com/PaloAltoNetworks/pango) library to collect metrics from Palo Alto Networks firewalls. ## Configuration -The 1.0 release of this integration can be configured to work with one firewall: multiple firewalls in one integration policy is not supported, nor has it been tested with Panorama. To collect metrics from multiple firewalls with this release, create a separate a integration policy for each with the specific host ip of the firewall and api key. + +This integration is designed to work with a single firewall at a time. Support for multiple firewalls within one integration policy is not available and has not been tested with Panorama. To collect metrics from multiple firewalls, create a separate integration policy for each firewall, specifying the respective host IP and API key. + ## Metrics ### interfaces diff --git a/packages/panw_metrics/docs/README.md b/packages/panw_metrics/docs/README.md index 4d412f7bd14..77a5a19ff9d 100644 --- a/packages/panw_metrics/docs/README.md +++ b/packages/panw_metrics/docs/README.md @@ -7,7 +7,9 @@ This integration periodically fetches metrics from [Palo Alto Networks](https:// The integration uses the [Pango](https://github.com/PaloAltoNetworks/pango) library to collect metrics from Palo Alto Networks firewalls. ## Configuration -The 1.0 release of this integration can be configured to work with one firewall: multiple firewalls in one integration policy is not supported, nor has it been tested with Panorama. To collect metrics from multiple firewalls with this release, create a separate a integration policy for each with the specific host ip of the firewall and api key. + +This integration is designed to work with a single firewall at a time. Support for multiple firewalls within one integration policy is not available and has not been tested with Panorama. To collect metrics from multiple firewalls, create a separate integration policy for each firewall, specifying the respective host IP and API key. + ## Metrics ### interfaces @@ -107,6 +109,26 @@ An example event for `interfaces` looks as following: "mgmt_ip": "10.0.0.2", "platform_model": "PA-3260" } + }, + "ipsec_tunnel": { + "id": "tunnel-001", + "name": "Site-A-to-Site-B", + "gw": "203.0.113.1", + "TSi_ip": "10.0.0.0", + "TSi_prefix": "24", + "TSi_proto": "any", + "TSi_port": 0, + "TSr_ip": "192.168.0.0", + "TSr_prefix": "24", + "TSr_proto": "any", + "TSr_port": 0, + "proto": "ESP", + "mode": "tunnel", + "dh": "group14", + "enc": "aes-256-cbc", + "hash": "sha256", + "life.sec": 28800, + "kb": 102400 } } } @@ -121,114 +143,114 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur **Exported fields** -| Field | Description | Type | -|---|---|---| -| @timestamp | Event timestamp. | date | -| cloud.image.id | Image ID for the cloud instance. | keyword | -| data_stream.dataset | Data stream dataset. | constant_keyword | -| data_stream.namespace | Data stream namespace. | constant_keyword | -| data_stream.type | Data stream type. | constant_keyword | -| host.containerized | If the host is a container. | boolean | -| host.os.build | OS build information. | keyword | -| host.os.codename | OS codename, if any. | keyword | -| panw.interfaces.ha.enabled | HA enabled | boolean | -| panw.interfaces.ha.link_monitoring.enabled | Indicates if link monitoring is enabled | boolean | -| panw.interfaces.ha.link_monitoring.failure_condition | Condition that triggers a link monitoring failure, e.g., "any" | keyword | -| panw.interfaces.ha.link_monitoring.group.enabled | Indicates if the link monitoring group is enabled | boolean | -| panw.interfaces.ha.link_monitoring.group.failure_condition | Condition that triggers a failure in the link monitoring group | keyword | -| panw.interfaces.ha.link_monitoring.group.interface.name | Name of the interface in the link monitoring group | keyword | -| panw.interfaces.ha.link_monitoring.group.interface.status | Status of the interface in the link monitoring group | keyword | -| panw.interfaces.ha.link_monitoring.group.name | Name of the link monitoring group | keyword | -| panw.interfaces.ha.local_info.app_version | The version of the application database | keyword | -| panw.interfaces.ha.local_info.av_version | The version of the antivirus database | keyword | -| panw.interfaces.ha.local_info.build_rel | The PAN-OS software version running on the firewall | keyword | -| panw.interfaces.ha.local_info.gp_client_version | Version of the GlobalProtect client software | keyword | -| panw.interfaces.ha.local_info.ha1_backup_gateway | Default gateway for the backup HA1 interface | keyword | -| panw.interfaces.ha.local_info.ha1_backup_ipaddr | The backup IP address for the HA1 interface, in CIDR format. | keyword | -| panw.interfaces.ha.local_info.ha1_backup_macaddr | HA local info HA1 backup MAC address | keyword | -| panw.interfaces.ha.local_info.ha1_backup_port | HA local info HA1 backup port, e.g. "management" | keyword | -| panw.interfaces.ha.local_info.ha1_ipaddr | IP Address of HA1 interface, used for heartbeat and management synchronization, in CIDR format. | keyword | -| panw.interfaces.ha.local_info.ha1_macaddr | HA local info HA1 MAC address | keyword | -| panw.interfaces.ha.local_info.ha1_port | Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha1" | keyword | -| panw.interfaces.ha.local_info.ha2_ipaddr | HA local info HA2 IP address, in CIDR format. | keyword | -| panw.interfaces.ha.local_info.ha2_macaddr | HA local info HA2 MAC address | keyword | -| panw.interfaces.ha.local_info.ha2_port | Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha2" | keyword | -| panw.interfaces.ha.local_info.iot_version | HA local info IoT database version | keyword | -| panw.interfaces.ha.local_info.mgmt_ip | HA local info management IP, in CIDR format. | keyword | -| panw.interfaces.ha.local_info.mode | HA mode, e.g., "active-active" or "active-passive" | keyword | -| panw.interfaces.ha.local_info.platform_model | Platform model of the local device | keyword | -| panw.interfaces.ha.local_info.preemptive | Indicates whether the firewall is configured to preemptively take over as the active unit in an HA setup. This is a yes/no value which the beat is not converting to a boolean, so it will be a keyword. | keyword | -| panw.interfaces.ha.local_info.state | HA state of the local device, e.g., "active" or "passive" | keyword | -| panw.interfaces.ha.local_info.state_duration | Duration in seconds of the current state | long | -| panw.interfaces.ha.local_info.state_sync | Status of HA synchronization, e.g., "complete" | keyword | -| panw.interfaces.ha.local_info.state_sync_type | Type of interface used for HA synchronization | keyword | -| panw.interfaces.ha.local_info.threat_version | HA local info threat version | keyword | -| panw.interfaces.ha.local_info.url_version | The version of the URL filtering database | keyword | -| panw.interfaces.ha.local_info.version | HA configuration info version | long | -| panw.interfaces.ha.local_info.vpn_client_version | Version of the VPN client (if installed) | keyword | -| panw.interfaces.ha.mode | HA mode, e.g., "active-active" or "active-passive" | keyword | -| panw.interfaces.ha.peer_info.conn_ha1.description | Description of the connection type ,e.g., "heartbeat status" | keyword | -| panw.interfaces.ha.peer_info.conn_ha1.primary | Specifies if the HA1 connection is primary | keyword | -| panw.interfaces.ha.peer_info.conn_ha1.status | Peer HA1 connection status, e.g., "up" | keyword | -| panw.interfaces.ha.peer_info.conn_ha1_backup.description | HA peer info connection HA1 backup description | keyword | -| panw.interfaces.ha.peer_info.conn_ha1_backup.status | HA peer info connection HA1 backup status, e.g., "up" means it is operational | keyword | -| panw.interfaces.ha.peer_info.conn_ha2.description | HA peer info connection HA2 description | keyword | -| panw.interfaces.ha.peer_info.conn_ha2.primary | Specifies if the HA2 connection is primary | keyword | -| panw.interfaces.ha.peer_info.conn_ha2.status | HA peer info connection HA2 status | keyword | -| panw.interfaces.ha.peer_info.conn_status | Overall status of the HA connections ("up" means all connections are operational) | keyword | -| panw.interfaces.ha.peer_info.ha1_backup_ipaddr | HA peer info HA1 backup IP address, in CIDR format. | ip | -| panw.interfaces.ha.peer_info.ha1_backup_macaddr | HA peer info HA1 backup MAC address | keyword | -| panw.interfaces.ha.peer_info.ha1_ipaddr | IP address of the HA1 interface on the peer, in CIDR format. | ip | -| panw.interfaces.ha.peer_info.ha1_macaddr | HA1 MAC address of the peer | keyword | -| panw.interfaces.ha.peer_info.ha2_ipaddr | HA peer info HA2 IP address, in CIDR format. | keyword | -| panw.interfaces.ha.peer_info.ha2_macaddr | HA peer info HA2 MAC address | keyword | -| panw.interfaces.ha.peer_info.mgmt_ip | Management IP address of the peer firewall. This is in CIDR format. | keyword | -| panw.interfaces.ha.peer_info.mode | HA mode configured on the peer firewall, e.g. "Active-Passive" | keyword | -| panw.interfaces.ha.peer_info.platform_model | Model of the peer firewall | keyword | -| panw.interfaces.ha.peer_info.preemptive | Indicates if preemption is enabled on the peer firewall | keyword | -| panw.interfaces.ha.peer_info.priority | HA priority value of the peer firewall | long | -| panw.interfaces.ha.peer_info.state | Current operational state of the peer firewall (passive means it is in standby mode and not handling traffic) | keyword | -| panw.interfaces.ha.peer_info.state_duration | How long the peer has been in the current state in seconds | long | -| panw.interfaces.ha.running_sync | Indicates the sychronization status of the HA pair, e.g., "synchronized","not-synchronized","synchronizing" | keyword | -| panw.interfaces.ha.running_sync_enabled | Indicates if running configuration synchronization is enabled | boolean | -| panw.interfaces.ipsec_tunnel.TSi_ip | Traffic Selector Initiator IP. This is the local IP (0.0.0.0 means any IP address) | ip | -| panw.interfaces.ipsec_tunnel.TSi_port | Port number associated with TSi (0 means any port) | long | -| panw.interfaces.ipsec_tunnel.TSi_prefix | Network prefix for the TSi IP, 0 means no specific network is defined. | keyword | -| panw.interfaces.ipsec_tunnel.TSi_proto | Protocol associated with the TSi (0 means any protocol) | keyword | -| panw.interfaces.ipsec_tunnel.TSr_ip | Traffic Selector Responder IP. | ip | -| panw.interfaces.ipsec_tunnel.TSr_port | TSr port of the IPsec tunnel | long | -| panw.interfaces.ipsec_tunnel.TSr_prefix | Network prefix for the TSr IP. Similar to TSi_prefix | keyword | -| panw.interfaces.ipsec_tunnel.TSr_proto | TSr protocol of the IPsec tunnel | keyword | -| panw.interfaces.ipsec_tunnel.dh | Diffie-Hellman group of the IPsec tunnel | keyword | -| panw.interfaces.ipsec_tunnel.enc | Encryption algorithm of the IPsec tunnel | keyword | -| panw.interfaces.ipsec_tunnel.gw | Gateway of the IPsec tunnel | keyword | -| panw.interfaces.ipsec_tunnel.hash | Hash algorithm of the IPsec tunnel | keyword | -| panw.interfaces.ipsec_tunnel.id | ID of the IPsec tunnel | keyword | -| panw.interfaces.ipsec_tunnel.kb | Traffic volume limit for SA rekeying | long | -| panw.interfaces.ipsec_tunnel.life.sec | The lifetime of the IPsec Security Association (SA) in seconds | long | -| panw.interfaces.ipsec_tunnel.mode | This specifies the IPsec mode. e.g., 'tunl' | keyword | -| panw.interfaces.ipsec_tunnel.name | Name of the IPsec tunnel | keyword | -| panw.interfaces.ipsec_tunnel.proto | Protocol of the IPsec tunnel | keyword | -| panw.interfaces.logical.addr | Used to store additional static IP addresses | keyword | -| panw.interfaces.logical.addr6 | Logical IPv6 address | keyword | -| panw.interfaces.logical.dyn_addr | Dynamic addresses, e.g., generated by DHCP | keyword | -| panw.interfaces.logical.fwd | Indicates if the interface is used for forwarding | keyword | -| panw.interfaces.logical.id | Logical interface ID | keyword | -| panw.interfaces.logical.ip | Logical IP Address with subnet mask, e.g., 111.222.333.10/29. Can also be "N/A" | keyword | -| panw.interfaces.logical.name | Logical interface name | keyword | -| panw.interfaces.logical.tag | VLAN tag associated with this interface | integer | -| panw.interfaces.logical.vsys | Virtual system to which this interface belongs | integer | -| panw.interfaces.logical.zone | Logical zone, e.g., "inside" or "outside" | keyword | -| panw.interfaces.physical.ae_member | For aggregate interfaces, the array of member interfaces | keyword | -| panw.interfaces.physical.duplex | Duplex configuration, e.g., "full" or "half" | keyword | -| panw.interfaces.physical.full_state | Physical full state, speed/duplex/state, e.g., "1000/full/up" | keyword | -| panw.interfaces.physical.id | Physical interface ID | keyword | -| panw.interfaces.physical.mac | Physical MAC address | keyword | -| panw.interfaces.physical.mode | Physical interface mode, e.g., autoneg | keyword | -| panw.interfaces.physical.name | Physical interface name | keyword | -| panw.interfaces.physical.speed | Physical interface speed | keyword | -| panw.interfaces.physical.state | Physical interface state: up/down | keyword | -| panw.interfaces.physical.type | Physical interface type (numeric value in source XML, string value sent to elasticsearch): 0: "Ethernet interface", 1: "Aggregate Ethernet (AE) interface", 2: "High Availability (HA) interface", 3: "VLAN interface", 5: "Loopback interface", 6: "Tunnel interface", 10: "SD-WAN interface" | keyword | +| Field | Description | Type | Unit | Metric Type | +|---|---|---|---|---| +| @timestamp | Event timestamp. | date | | | +| cloud.image.id | Image ID for the cloud instance. | keyword | | | +| data_stream.dataset | Data stream dataset. | constant_keyword | | | +| data_stream.namespace | Data stream namespace. | constant_keyword | | | +| data_stream.type | Data stream type. | constant_keyword | | | +| host.containerized | If the host is a container. | boolean | | | +| host.os.build | OS build information. | keyword | | | +| host.os.codename | OS codename, if any. | keyword | | | +| panw.interfaces.ha.enabled | HA enabled | boolean | | | +| panw.interfaces.ha.link_monitoring.enabled | Indicates if link monitoring is enabled | boolean | | | +| panw.interfaces.ha.link_monitoring.failure_condition | Condition that triggers a link monitoring failure, e.g., "any" | keyword | | | +| panw.interfaces.ha.link_monitoring.group.enabled | Indicates if the link monitoring group is enabled | boolean | | | +| panw.interfaces.ha.link_monitoring.group.failure_condition | Condition that triggers a failure in the link monitoring group | keyword | | | +| panw.interfaces.ha.link_monitoring.group.interface.name | Name of the interface in the link monitoring group | keyword | | | +| panw.interfaces.ha.link_monitoring.group.interface.status | Status of the interface in the link monitoring group | keyword | | | +| panw.interfaces.ha.link_monitoring.group.name | Name of the link monitoring group | keyword | | | +| panw.interfaces.ha.local_info.app_version | The version of the application database | keyword | | | +| panw.interfaces.ha.local_info.av_version | The version of the antivirus database | keyword | | | +| panw.interfaces.ha.local_info.build_rel | The PAN-OS software version running on the firewall | keyword | | | +| panw.interfaces.ha.local_info.gp_client_version | Version of the GlobalProtect client software | keyword | | | +| panw.interfaces.ha.local_info.ha1_backup_gateway | Default gateway for the backup HA1 interface | keyword | | | +| panw.interfaces.ha.local_info.ha1_backup_ipaddr | The backup IP address for the HA1 interface, in CIDR format. | keyword | | | +| panw.interfaces.ha.local_info.ha1_backup_macaddr | HA local info HA1 backup MAC address | keyword | | | +| panw.interfaces.ha.local_info.ha1_backup_port | HA local info HA1 backup port, e.g. "management" | keyword | | | +| panw.interfaces.ha.local_info.ha1_ipaddr | IP Address of HA1 interface, used for heartbeat and management synchronization, in CIDR format. | keyword | | | +| panw.interfaces.ha.local_info.ha1_macaddr | HA local info HA1 MAC address | keyword | | | +| panw.interfaces.ha.local_info.ha1_port | Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha1" | keyword | | | +| panw.interfaces.ha.local_info.ha2_ipaddr | HA local info HA2 IP address, in CIDR format. | keyword | | | +| panw.interfaces.ha.local_info.ha2_macaddr | HA local info HA2 MAC address | keyword | | | +| panw.interfaces.ha.local_info.ha2_port | Indicates which interface is used for HA1 traffic, e.g., "dedicated-ha2" | keyword | | | +| panw.interfaces.ha.local_info.iot_version | HA local info IoT database version | keyword | | | +| panw.interfaces.ha.local_info.mgmt_ip | HA local info management IP, in CIDR format. | keyword | | | +| panw.interfaces.ha.local_info.mode | HA mode, e.g., "active-active" or "active-passive" | keyword | | | +| panw.interfaces.ha.local_info.platform_model | Platform model of the local device | keyword | | | +| panw.interfaces.ha.local_info.preemptive | Indicates whether the firewall is configured to preemptively take over as the active unit in an HA setup. This is a yes/no value which the beat is not converting to a boolean, so it will be a keyword. | keyword | | | +| panw.interfaces.ha.local_info.state | HA state of the local device, e.g., "active" or "passive" | keyword | | | +| panw.interfaces.ha.local_info.state_duration | Duration in seconds of the current state | long | s | | +| panw.interfaces.ha.local_info.state_sync | Status of HA synchronization, e.g., "complete" | keyword | | | +| panw.interfaces.ha.local_info.state_sync_type | Type of interface used for HA synchronization | keyword | | | +| panw.interfaces.ha.local_info.threat_version | HA local info threat version | keyword | | | +| panw.interfaces.ha.local_info.url_version | The version of the URL filtering database | keyword | | | +| panw.interfaces.ha.local_info.version | HA configuration info version | long | | | +| panw.interfaces.ha.local_info.vpn_client_version | Version of the VPN client (if installed) | keyword | | | +| panw.interfaces.ha.mode | HA mode, e.g., "active-active" or "active-passive" | keyword | | | +| panw.interfaces.ha.peer_info.conn_ha1.description | Description of the connection type ,e.g., "heartbeat status" | keyword | | | +| panw.interfaces.ha.peer_info.conn_ha1.primary | Specifies if the HA1 connection is primary | keyword | | | +| panw.interfaces.ha.peer_info.conn_ha1.status | Peer HA1 connection status, e.g., "up" | keyword | | | +| panw.interfaces.ha.peer_info.conn_ha1_backup.description | HA peer info connection HA1 backup description | keyword | | | +| panw.interfaces.ha.peer_info.conn_ha1_backup.status | HA peer info connection HA1 backup status, e.g., "up" means it is operational | keyword | | | +| panw.interfaces.ha.peer_info.conn_ha2.description | HA peer info connection HA2 description | keyword | | | +| panw.interfaces.ha.peer_info.conn_ha2.primary | Specifies if the HA2 connection is primary | keyword | | | +| panw.interfaces.ha.peer_info.conn_ha2.status | HA peer info connection HA2 status | keyword | | | +| panw.interfaces.ha.peer_info.conn_status | Overall status of the HA connections ("up" means all connections are operational) | keyword | | | +| panw.interfaces.ha.peer_info.ha1_backup_ipaddr | HA peer info HA1 backup IP address, in CIDR format. | ip | | | +| panw.interfaces.ha.peer_info.ha1_backup_macaddr | HA peer info HA1 backup MAC address | keyword | | | +| panw.interfaces.ha.peer_info.ha1_ipaddr | IP address of the HA1 interface on the peer, in CIDR format. | ip | | | +| panw.interfaces.ha.peer_info.ha1_macaddr | HA1 MAC address of the peer | keyword | | | +| panw.interfaces.ha.peer_info.ha2_ipaddr | HA peer info HA2 IP address, in CIDR format. | keyword | | | +| panw.interfaces.ha.peer_info.ha2_macaddr | HA peer info HA2 MAC address | keyword | | | +| panw.interfaces.ha.peer_info.mgmt_ip | Management IP address of the peer firewall. This is in CIDR format. | keyword | | | +| panw.interfaces.ha.peer_info.mode | HA mode configured on the peer firewall, e.g. "Active-Passive" | keyword | | | +| panw.interfaces.ha.peer_info.platform_model | Model of the peer firewall | keyword | | | +| panw.interfaces.ha.peer_info.preemptive | Indicates if preemption is enabled on the peer firewall | keyword | | | +| panw.interfaces.ha.peer_info.priority | HA priority value of the peer firewall | long | | | +| panw.interfaces.ha.peer_info.state | Current operational state of the peer firewall (passive means it is in standby mode and not handling traffic) | keyword | | | +| panw.interfaces.ha.peer_info.state_duration | How long the peer has been in the current state in seconds | long | s | gauge | +| panw.interfaces.ha.running_sync | Indicates the sychronization status of the HA pair, e.g., "synchronized", "not-synchronized", "synchronizing" | keyword | | | +| panw.interfaces.ha.running_sync_enabled | Indicates if running configuration synchronization is enabled | boolean | | | +| panw.interfaces.ipsec_tunnel.TSi_ip | Traffic Selector Initiator IP. This is the local IP (0.0.0.0 means any IP address) | ip | | | +| panw.interfaces.ipsec_tunnel.TSi_port | Port number associated with TSi (0 means any port) | long | | | +| panw.interfaces.ipsec_tunnel.TSi_prefix | Network prefix for the TSi IP, 0 means no specific network is defined. | keyword | | | +| panw.interfaces.ipsec_tunnel.TSi_proto | Protocol associated with the TSi (0 means any protocol) | keyword | | | +| panw.interfaces.ipsec_tunnel.TSr_ip | Traffic Selector Responder IP. | ip | | | +| panw.interfaces.ipsec_tunnel.TSr_port | TSr port of the IPsec tunnel | long | | | +| panw.interfaces.ipsec_tunnel.TSr_prefix | Network prefix for the TSr IP. Similar to TSi_prefix | keyword | | | +| panw.interfaces.ipsec_tunnel.TSr_proto | TSr protocol of the IPsec tunnel | keyword | | | +| panw.interfaces.ipsec_tunnel.dh | Diffie-Hellman group of the IPsec tunnel | keyword | | | +| panw.interfaces.ipsec_tunnel.enc | Encryption algorithm of the IPsec tunnel | keyword | | | +| panw.interfaces.ipsec_tunnel.gw | Gateway of the IPsec tunnel | keyword | | | +| panw.interfaces.ipsec_tunnel.hash | Hash algorithm of the IPsec tunnel | keyword | | | +| panw.interfaces.ipsec_tunnel.id | ID of the IPsec tunnel | keyword | | | +| panw.interfaces.ipsec_tunnel.kb | Traffic volume limit for SA rekeying | long | | | +| panw.interfaces.ipsec_tunnel.life.sec | The lifetime of the IPsec Security Association (SA) in seconds | long | s | gauge | +| panw.interfaces.ipsec_tunnel.mode | This specifies the IPsec mode. e.g., 'tunl' | keyword | | | +| panw.interfaces.ipsec_tunnel.name | Name of the IPsec tunnel | keyword | | | +| panw.interfaces.ipsec_tunnel.proto | Protocol of the IPsec tunnel | keyword | | | +| panw.interfaces.logical.addr | Used to store additional static IP addresses | keyword | | | +| panw.interfaces.logical.addr6 | Logical IPv6 address | keyword | | | +| panw.interfaces.logical.dyn_addr | Dynamic addresses, e.g., generated by DHCP | keyword | | | +| panw.interfaces.logical.fwd | Indicates if the interface is used for forwarding | keyword | | | +| panw.interfaces.logical.id | Logical interface ID | keyword | | | +| panw.interfaces.logical.ip | Logical IP Address with subnet mask, e.g., 111.222.333.10/29. Can also be "N/A" | keyword | | | +| panw.interfaces.logical.name | Logical interface name | keyword | | | +| panw.interfaces.logical.tag | VLAN tag associated with this interface | integer | | | +| panw.interfaces.logical.vsys | Virtual system to which this interface belongs | integer | | | +| panw.interfaces.logical.zone | Logical zone, e.g., "inside" or "outside" | keyword | | | +| panw.interfaces.physical.ae_member | For aggregate interfaces, the array of member interfaces | keyword | | | +| panw.interfaces.physical.duplex | Duplex configuration, e.g., "full" or "half" | keyword | | | +| panw.interfaces.physical.full_state | Physical full state, speed/duplex/state, e.g., "1000/full/up" | keyword | | | +| panw.interfaces.physical.id | Physical interface ID | keyword | | | +| panw.interfaces.physical.mac | Physical MAC address | keyword | | | +| panw.interfaces.physical.mode | Physical interface mode, e.g., autoneg | keyword | | | +| panw.interfaces.physical.name | Physical interface name | keyword | | | +| panw.interfaces.physical.speed | Physical interface speed | keyword | | | +| panw.interfaces.physical.state | Physical interface state: up/down | keyword | | | +| panw.interfaces.physical.type | Physical interface type | keyword | | | ### routing @@ -302,8 +324,6 @@ An example event for `routing` looks as following: "status_duration": 3600, "password_set": true, "passive": false, - "peer_address": "203.0.113.1:179", - "local_address": "198.51.100.2:50000", "peering_type": "External BGP", "holdtime": 180, "keepalive": 60, @@ -314,26 +334,6 @@ An example event for `routing` looks as following: "last_update_age": 300, "status_flap_counts": 2, "established_counts": 10 - }, - "ipsec_tunnel": { - "id": "tunnel-001", - "name": "Site-A-to-Site-B", - "gw": "203.0.113.1", - "TSi_ip": "10.0.0.0", - "TSi_prefix": "24", - "TSi_proto": "any", - "TSi_port": 0, - "TSr_ip": "192.168.0.0", - "TSr_prefix": "24", - "TSr_proto": "any", - "TSr_port": 0, - "proto": "ESP", - "mode": "tunnel", - "dh": "group14", - "enc": "aes-256-cbc", - "hash": "sha256", - "life": 28800, - "kb": 102400 } } } @@ -348,54 +348,54 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur **Exported fields** -| Field | Description | Type | -|---|---|---| -| @timestamp | Event timestamp. | date | -| cloud.image.id | Image ID for the cloud instance. | keyword | -| data_stream.dataset | Data stream dataset. | constant_keyword | -| data_stream.namespace | Data stream namespace. | constant_keyword | -| data_stream.type | Data stream type. | constant_keyword | -| host.containerized | If the host is a container. | boolean | -| host.os.build | OS build information. | keyword | -| host.os.codename | OS codename, if any. | keyword | -| panw.routing.bgp.aggregate_confed_as | Indicates that Autonomous System (AS) aggregation is enabled for the confederation | boolean | -| panw.routing.bgp.connect_retry_interval | The interval (in seconds) between connection retries | long | -| panw.routing.bgp.established_counts | Number of times the BGP session has successfully transitioned to the "Established" state | long | -| panw.routing.bgp.holdtime | Time in seconds that the BGP peer will wait for a keepalive message, negotiated between peers | long | -| panw.routing.bgp.holdtime_config | Represents the locally configured hold time on this peer (in seconds) | long | -| panw.routing.bgp.idle_hold | The idle hold time (in seconds) before retrying a connection after failure | long | -| panw.routing.bgp.keepalive | The interval (in seconds) at which BGP keepalive messages are sent, negotiated between peers | long | -| panw.routing.bgp.keepalive_config | The keepalive configured on this peer | long | -| panw.routing.bgp.last_error | The last BGP error message received from the peer | keyword | -| panw.routing.bgp.last_update_age | Time in seconds since the last update message was received from the peer | long | -| panw.routing.bgp.local_ip | Local ip address used for BGP connection | ip | -| panw.routing.bgp.local_port | Local port number used for BGP connection | long | -| panw.routing.bgp.msg_total_in | Total of all messages received from the peer | long | -| panw.routing.bgp.msg_total_out | Total of all messages sent to the peer | long | -| panw.routing.bgp.msg_update_in | The number of BGP UPDATE messages received by the router from this peer | long | -| panw.routing.bgp.msg_update_out | The number of BGP UPDATE messages sent from the local router to the peer | long | -| panw.routing.bgp.multi_hop_ttl | Time to Live (TTL) value for multi-hop BGP sessions. Units are the number of hops. | long | -| panw.routing.bgp.nexthop_peer | Indicates whether the peer is being used as the next-hop for the routes received from this peerfields: | boolean | -| panw.routing.bgp.nexthop_self | Whether the router is configured to use itself as the next-hop for routes sent to this peer | boolean | -| panw.routing.bgp.nexthop_thirdparty | Third-party next-hop feature is enabled | boolean | -| panw.routing.bgp.open_delay | Delay before sending an Open message (in seconds) | long | -| panw.routing.bgp.orf_entry_received | Number of ORF (Outbound Route Filtering) entries received from the peer | long | -| panw.routing.bgp.passive | Indicates if the BGP peer is in passive mode: if yes then router will not initiate a connection to the peer | boolean | -| panw.routing.bgp.password_set | Indicates whether a password is set for the BGP peer | boolean | -| panw.routing.bgp.peer_group | The name of the BGP peer group this peer belongs to | keyword | -| panw.routing.bgp.peer_ip | IP address of the peer | ip | -| panw.routing.bgp.peer_name | The name of the current peer in the BGP peer group | keyword | -| panw.routing.bgp.peer_port | Port number of the peer | long | -| panw.routing.bgp.peer_router_id | BGP peer router ID | ip | -| panw.routing.bgp.peering_type | Defines the type of relationship between peers, e.g., "External BGP", "Internal BGP", or "Unspecified" | keyword | -| panw.routing.bgp.prefix_limit | The maximum number of prefixes that can be received from the peer (0 = no limit) | long | -| panw.routing.bgp.reflector_client | Specifies the BGP peer relationship to route reflectors, e.g. "client", "not-client", "meshed-client" | keyword | -| panw.routing.bgp.remote_as_asn | The remote Autonomous System (AS) number of the peer | long | -| panw.routing.bgp.same_confederation | Peers in the same confederation exchange routes using internal BGP (iBGP) instead of external BGP (eBGP) | boolean | -| panw.routing.bgp.status | The BGP session status, e.g., "Established" means the session is up and running | keyword | -| panw.routing.bgp.status_duration | Time in seconds since the current status was set | long | -| panw.routing.bgp.status_flap_counts | Indicates the number of times the BGP session has "flapped" or transitioned between up and down states | long | -| panw.routing.bgp.virtual_router | The virtual router with which the BGP peer is associated | keyword | +| Field | Description | Type | Unit | +|---|---|---|---| +| @timestamp | Event timestamp. | date | | +| cloud.image.id | Image ID for the cloud instance. | keyword | | +| data_stream.dataset | Data stream dataset. | constant_keyword | | +| data_stream.namespace | Data stream namespace. | constant_keyword | | +| data_stream.type | Data stream type. | constant_keyword | | +| host.containerized | If the host is a container. | boolean | | +| host.os.build | OS build information. | keyword | | +| host.os.codename | OS codename, if any. | keyword | | +| panw.routing.bgp.aggregate_confed_as | Indicates that Autonomous System (AS) aggregation is enabled for the confederation | boolean | | +| panw.routing.bgp.connect_retry_interval | The interval (in seconds) between connection retries | long | s | +| panw.routing.bgp.established_counts | Number of times the BGP session has successfully transitioned to the "Established" state | long | | +| panw.routing.bgp.holdtime | Time in seconds that the BGP peer will wait for a keepalive message, negotiated between peers | long | s | +| panw.routing.bgp.holdtime_config | Represents the locally configured hold time on this peer (in seconds) | long | s | +| panw.routing.bgp.idle_hold | The idle hold time (in seconds) before retrying a connection after failure | long | s | +| panw.routing.bgp.keepalive | The interval (in seconds) at which BGP keepalive messages are sent, negotiated between peers | long | s | +| panw.routing.bgp.keepalive_config | The keepalive configured on this peer | long | | +| panw.routing.bgp.last_error | The last BGP error message received from the peer | keyword | | +| panw.routing.bgp.last_update_age | Time in seconds since the last update message was received from the peer | long | s | +| panw.routing.bgp.local_ip | Local ip address used for BGP connection | ip | | +| panw.routing.bgp.local_port | Local port number used for BGP connection | long | | +| panw.routing.bgp.msg_total_in | Total of all messages received from the peer | long | | +| panw.routing.bgp.msg_total_out | Total of all messages sent to the peer | long | | +| panw.routing.bgp.msg_update_in | The number of BGP UPDATE messages received by the router from this peer | long | | +| panw.routing.bgp.msg_update_out | The number of BGP UPDATE messages sent from the local router to the peer | long | | +| panw.routing.bgp.multi_hop_ttl | Time to Live (TTL) value for multi-hop BGP sessions. Units are the number of hops. | long | | +| panw.routing.bgp.nexthop_peer | Indicates whether the peer is being used as the next-hop for the routes received from this peerfields: | boolean | | +| panw.routing.bgp.nexthop_self | Whether the router is configured to use itself as the next-hop for routes sent to this peer | boolean | | +| panw.routing.bgp.nexthop_thirdparty | Third-party next-hop feature is enabled | boolean | | +| panw.routing.bgp.open_delay | Delay before sending an Open message (in seconds) | long | s | +| panw.routing.bgp.orf_entry_received | Number of ORF (Outbound Route Filtering) entries received from the peer | long | | +| panw.routing.bgp.passive | Indicates if the BGP peer is in passive mode: if yes then router will not initiate a connection to the peer | boolean | | +| panw.routing.bgp.password_set | Indicates whether a password is set for the BGP peer | boolean | | +| panw.routing.bgp.peer_group | The name of the BGP peer group this peer belongs to | keyword | | +| panw.routing.bgp.peer_ip | IP address of the peer | ip | | +| panw.routing.bgp.peer_name | The name of the current peer in the BGP peer group | keyword | | +| panw.routing.bgp.peer_port | Port number of the peer | long | | +| panw.routing.bgp.peer_router_id | BGP peer router ID | ip | | +| panw.routing.bgp.peering_type | Defines the type of relationship between peers, e.g., "External BGP", "Internal BGP", or "Unspecified" | keyword | | +| panw.routing.bgp.prefix_limit | The maximum number of prefixes that can be received from the peer (0 = no limit) | long | | +| panw.routing.bgp.reflector_client | Specifies the BGP peer relationship to route reflectors, e.g. "client", "not-client", "meshed-client" | keyword | | +| panw.routing.bgp.remote_as_asn | The remote Autonomous System (AS) number of the peer | long | | +| panw.routing.bgp.same_confederation | Peers in the same confederation exchange routes using internal BGP (iBGP) instead of external BGP (eBGP) | boolean | | +| panw.routing.bgp.status | The BGP session status, e.g., "Established" means the session is up and running | keyword | | +| panw.routing.bgp.status_duration | Time in seconds since the current status was set | long | s | +| panw.routing.bgp.status_flap_counts | Indicates the number of times the BGP session has "flapped" or transitioned between up and down states | long | | +| panw.routing.bgp.virtual_router | The virtual router with which the BGP peer is associated | keyword | | ### system @@ -506,84 +506,85 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur **Exported fields** -| Field | Description | Type | -|---|---|---| -| @timestamp | Event timestamp. | date | -| cloud.image.id | Image ID for the cloud instance. | keyword | -| data_stream.dataset | Data stream dataset. | constant_keyword | -| data_stream.namespace | Data stream namespace. | constant_keyword | -| data_stream.type | Data stream type. | constant_keyword | -| host.containerized | If the host is a container. | boolean | -| host.os.build | OS build information. | keyword | -| host.os.codename | OS codename, if any. | keyword | -| panw.system.certificate.db_exp_date | expiration date, format: 310329235959Z(Mar 29 23:59:59 2031 GMT) | keyword | -| panw.system.certificate.db_file | db_file field | keyword | -| panw.system.certificate.db_name | db_name field | keyword | -| panw.system.certificate.db_rev_date | db_rev_date field | keyword | -| panw.system.certificate.db_serial_no | db_serial_no field | keyword | -| panw.system.certificate.db_status | db_status fieldfields: | keyword | -| panw.system.certificate.db_type | db_type field | keyword | -| panw.system.certificate.issuer | issuer field | keyword | -| panw.system.certificate.issuer_key_hash | issuer_key_hash field | keyword | -| panw.system.certificate.issuer_subject_hash | issuer_subject_hash field | keyword | -| panw.system.cpu.hi | CPU hardware interrupts | float | -| panw.system.cpu.idle | CPU idle time | float | -| panw.system.cpu.nice | CPU usage by processes with a positive nice value | float | -| panw.system.cpu.steal | CPU steal time | float | -| panw.system.cpu.system | CPU usage by system processes | float | -| panw.system.cpu.system_int | CPU software interrupts | float | -| panw.system.cpu.user | CPU usage by user processes | float | -| panw.system.cpu.wait | CPU wait time | float | -| panw.system.fan.alarm | Is there an alarm status of the fan | boolean | -| panw.system.fan.description | The description of the fan | keyword | -| panw.system.fan.min_rpm | The minimum speed of the fan in RPM | integer | -| panw.system.fan.rpm | The speed of the fan in RPM | integer | -| panw.system.fan.slot_number | The number of the hardware slot | integer | -| panw.system.filesystem.available | Disk space available on the filesystem | float | -| panw.system.filesystem.mounted | Filesystem mount point | keyword | -| panw.system.filesystem.name | Filesystem name | keyword | -| panw.system.filesystem.size | Total size of the filesystem | float | -| panw.system.filesystem.use_percent | Percent of filesystem used | integer | -| panw.system.filesystem.used | Amount used on the filesystem | float | -| panw.system.license.auth_code | Authorization code to activate or install the license | keyword | -| panw.system.license.description | Description of the licensed feature | keyword | -| panw.system.license.expired | Indicates if the license is expired | boolean | -| panw.system.license.expires | Date the license expires - not set if license never expires | date | -| panw.system.license.feature | Feature licensed, e.g. Advanced Threat Prevention | keyword | -| panw.system.license.issued | Date the license was issued | date | -| panw.system.license.never_expires | Indicates if the license never expires | boolean | -| panw.system.license.serial | Serial number of license | keyword | -| panw.system.load_average.15m | Load average in 15 minutes | float | -| panw.system.load_average.1m | Load average in 1 minute | float | -| panw.system.load_average.5m | Load average in 5 minutes | float | -| panw.system.memory.buffer_cache | Memory used for buffers and cache | float | -| panw.system.memory.free | Free memory | float | -| panw.system.memory.total | Total memory | float | -| panw.system.memory.used | Used memory | float | -| panw.system.power.alarm | Indicates if alarm is active | boolean | -| panw.system.power.description | Description field | text | -| panw.system.power.maximum_volts | Maximum volts recorded | float | -| panw.system.power.minimum_volts | Minimum volts recorded | float | -| panw.system.power.slot_number | Slot number field | integer | -| panw.system.power.volts | Current Volts | float | -| panw.system.swap.available | Available swap space | float | -| panw.system.swap.free | Free swap space | float | -| panw.system.swap.total | Total swap space | float | -| panw.system.swap.used | Used swap space | float | -| panw.system.tasks.running | Number of running tasks | long | -| panw.system.tasks.sleeping | Number of sleeping tasks | long | -| panw.system.tasks.stopped | Number of stopped tasks | long | -| panw.system.tasks.total | Total number of tasks | long | -| panw.system.tasks.zombie | Number of zombie tasks | long | -| panw.system.thermal.alarm | Alarm field | boolean | -| panw.system.thermal.degrees_celsius | Degrees Celsius field | float | -| panw.system.thermal.description | Description field | text | -| panw.system.thermal.maximum_temp | Maximum temperature field | float | -| panw.system.thermal.minimum_temp | Minimum temperature field | float | -| panw.system.thermal.slot_number | Slot number field | integer | -| panw.system.uptime.days | Uptime in days | integer | -| panw.system.uptime.hours | Hours component of uptime | integer | -| panw.system.uptime.minutes | Minutes component of uptime | integer | +| Field | Description | Type | Unit | Metric Type | +|---|---|---|---|---| +| @timestamp | Event timestamp. | date | | | +| cloud.image.id | Image ID for the cloud instance. | keyword | | | +| data_stream.dataset | Data stream dataset. | constant_keyword | | | +| data_stream.namespace | Data stream namespace. | constant_keyword | | | +| data_stream.type | Data stream type. | constant_keyword | | | +| host.containerized | If the host is a container. | boolean | | | +| host.os.build | OS build information. | keyword | | | +| host.os.codename | OS codename, if any. | keyword | | | +| panw.system.certificate.db_exp_date | Expiration date, format: 310329235959Z (Mar 29 23:59:59 2031 GMT) | keyword | | | +| panw.system.certificate.db_file | File name of the certificate database | keyword | | | +| panw.system.certificate.db_name | Name of the certificate database | keyword | | | +| panw.system.certificate.db_rev_date | Revision date of the certificate database | keyword | | | +| panw.system.certificate.db_serial_no | Serial number of the certificate database | keyword | | | +| panw.system.certificate.db_status | Status of the certificate database | keyword | | | +| panw.system.certificate.db_type | Type of the certificate database | keyword | | | +| panw.system.certificate.issuer | Issuer of the certificate database | keyword | | | +| panw.system.certificate.issuer_key_hash | Key hash of the issuer of the certificate database | keyword | | | +| panw.system.certificate.issuer_subject_hash | Subject hash of the issuer of the certificate database | keyword | | | +| panw.system.cpu.hi | CPU hardware interrupts | float | percent | gauge | +| panw.system.cpu.idle | CPU idle time | float | percent | gauge | +| panw.system.cpu.nice | CPU usage by processes with a positive nice value | float | percent | gauge | +| panw.system.cpu.steal | CPU steal time | float | percent | gauge | +| panw.system.cpu.system | CPU usage by system processes | float | percent | gauge | +| panw.system.cpu.system_int | CPU software interrupts | float | percent | gauge | +| panw.system.cpu.user | CPU usage by user processes | float | percent | gauge | +| panw.system.cpu.wait | CPU wait time | float | percent | gauge | +| panw.system.fan.alarm | Is there an alarm status of the fan | boolean | | | +| panw.system.fan.description | The description of the fan | keyword | | | +| panw.system.fan.min_rpm | The minimum speed of the fan in RPM | integer | | gauge | +| panw.system.fan.rpm | The speed of the fan in RPM | integer | | gauge | +| panw.system.fan.slot_number | The number of the hardware slot | integer | | | +| panw.system.filesystem.available | Disk space available on the filesystem | float | byte | gauge | +| panw.system.filesystem.mounted | Filesystem mount point | keyword | | | +| panw.system.filesystem.name | Filesystem name | keyword | | | +| panw.system.filesystem.size | Total size of the filesystem | float | byte | gauge | +| panw.system.filesystem.use_percent | Percent of filesystem used | integer | percent | gauge | +| panw.system.filesystem.used | Amount used on the filesystem | float | byte | gauge | +| panw.system.license.auth_code | Authorization code to activate or install the license | keyword | | | +| panw.system.license.description | Description of the licensed feature | keyword | | | +| panw.system.license.expired | Indicates if the license is expired | boolean | | | +| panw.system.license.expires | Date the license expires - not set if license never expires | date | | | +| panw.system.license.feature | Feature licensed, e.g. Advanced Threat Prevention | keyword | | | +| panw.system.license.issued | Date the license was issued | date | | | +| panw.system.license.never_expires | Indicates if the license never expires | boolean | | | +| panw.system.license.serial | Serial number of license | keyword | | | +| panw.system.load_average.15m | Load average in 15 minutes | float | | gauge | +| panw.system.load_average.1m | Load average in 1 minute | float | | gauge | +| panw.system.load_average.5m | Load average in 5 minutes | float | | gauge | +| panw.system.memory.buffer_cache | Memory used for buffers and cache | float | byte | gauge | +| panw.system.memory.free | Free memory | float | byte | gauge | +| panw.system.memory.total | Total memory | float | byte | gauge | +| panw.system.memory.used | Used memory | float | byte | gauge | +| panw.system.power.alarm | Indicates if alarm is active | boolean | | | +| panw.system.power.description | Description field | text | | | +| panw.system.power.maximum_volts | Maximum volts recorded | float | | gauge | +| panw.system.power.minimum_volts | Minimum volts recorded | float | | gauge | +| panw.system.power.slot_number | Slot number field | integer | | | +| panw.system.power.volts | Current Volts | float | | gauge | +| panw.system.swap.available | Available swap space | float | byte | gauge | +| panw.system.swap.free | Free swap space | float | byte | gauge | +| panw.system.swap.total | Total swap space | float | byte | gauge | +| panw.system.swap.used | Used swap space | float | byte | gauge | +| panw.system.tasks.running | Number of running tasks | long | | gauge | +| panw.system.tasks.sleeping | Number of sleeping tasks | long | | gauge | +| panw.system.tasks.stopped | Number of stopped tasks | long | | gauge | +| panw.system.tasks.total | Total number of tasks | long | | gauge | +| panw.system.tasks.zombie | Number of zombie tasks | long | | gauge | +| panw.system.thermal.alarm | Alarm field | boolean | | | +| panw.system.thermal.degrees_celsius | Degrees Celsius field | float | | gauge | +| panw.system.thermal.description | Description field | text | | | +| panw.system.thermal.maximum_temp | Maximum temperature field | float | | gauge | +| panw.system.thermal.minimum_temp | Minimum temperature field | float | | gauge | +| panw.system.thermal.slot_number | Slot number field | integer | | | +| panw.system.uptime.days | Uptime in days | integer | d | gauge | +| panw.system.uptime.hours | Hours component of uptime | integer | h | gauge | +| panw.system.uptime.minutes | Minutes component of uptime | integer | m | gauge | +| panw.system.user_count | Number of users | long | | gauge | ### vpn @@ -663,14 +664,7 @@ An example event for `vpn` looks as following: "client_ip": "192.168.1.100", "login_time": "2024-02-08T10:15:00.000Z", "lifetime": 3600 - }, - "gateway": { - "name": "gp-gateway-01", - "current_users": 150, - "previous_users": 145 - }, - "total_current_users": 500, - "total_previous_users": 480 + } } } } @@ -685,42 +679,42 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur **Exported fields** -| Field | Description | Type | -|---|---|---| -| @timestamp | Event timestamp. | date | -| cloud.image.id | Image ID for the cloud instance. | keyword | -| data_stream.dataset | Data stream dataset. | constant_keyword | -| data_stream.namespace | Data stream namespace. | constant_keyword | -| data_stream.type | Data stream type. | constant_keyword | -| host.containerized | If the host is a container. | boolean | -| host.os.build | OS build information. | keyword | -| host.os.codename | OS codename, if any. | keyword | -| panw.vpn.gateway.current_users | Current number of users connected to the GlobalProtect gateway | long | -| panw.vpn.gateway.name | Name of the GlobalProtect gateway | keyword | -| panw.vpn.gateway.previous_users | Previous number of users connected to the GlobalProtect gateway | long | -| panw.vpn.globalprotect.session.app_version | Application version used in the session | keyword | -| panw.vpn.globalprotect.session.client | Client information of the session | keyword | -| panw.vpn.globalprotect.session.client_ip | Client IP address of the session | ip | -| panw.vpn.globalprotect.session.computer | Computer name in the session | keyword | -| panw.vpn.globalprotect.session.domain | Domain of the GlobalProtect session | keyword | -| panw.vpn.globalprotect.session.host_id | Host ID of the session | keyword | -| panw.vpn.globalprotect.session.is_local | Indicates if the session is local | boolean | -| panw.vpn.globalprotect.session.lifetime | Lifetime of the session | long | -| panw.vpn.globalprotect.session.login_time | Login time of the session | date | -| panw.vpn.globalprotect.session.login_time_utc | Login time in UTC of the session | date | -| panw.vpn.globalprotect.session.primary_username | Primary username of the session | keyword | -| panw.vpn.globalprotect.session.public_connection_ipv6 | Public connection IPv6 address of the session | ip | -| panw.vpn.globalprotect.session.public_ip | Public IP address of the session | ip | -| panw.vpn.globalprotect.session.public_ipv6 | Public IPv6 address of the session | ip | -| panw.vpn.globalprotect.session.region_for_config | Region for configuration | keyword | -| panw.vpn.globalprotect.session.request_get_config | Request get configuration information of the session | keyword | -| panw.vpn.globalprotect.session.request_login | Request login information of the session | keyword | -| panw.vpn.globalprotect.session.request_sslvpn_connect | Request SSL VPN connect information of the session | keyword | -| panw.vpn.globalprotect.session.source_region | Source region of the session | keyword | -| panw.vpn.globalprotect.session.tunnel_type | Type of tunnel used in the session | keyword | -| panw.vpn.globalprotect.session.username | Username of the session | keyword | -| panw.vpn.globalprotect.session.virtual_ip | Virtual IP address of the session | ip | -| panw.vpn.globalprotect.session.virtual_ipv6 | Virtual IPv6 address of the session | ip | -| panw.vpn.globalprotect.session.vpn_type | Type of VPN used in the session | keyword | -| panw.vpn.total_current_users | Total current number of users connected to GlobalProtect gateway | long | -| panw.vpn.total_previous_users | Total previous number of users connected to GlobalProtect gateway | long | +| Field | Description | Type | Metric Type | +|---|---|---|---| +| @timestamp | Event timestamp. | date | | +| cloud.image.id | Image ID for the cloud instance. | keyword | | +| data_stream.dataset | Data stream dataset. | constant_keyword | | +| data_stream.namespace | Data stream namespace. | constant_keyword | | +| data_stream.type | Data stream type. | constant_keyword | | +| host.containerized | If the host is a container. | boolean | | +| host.os.build | OS build information. | keyword | | +| host.os.codename | OS codename, if any. | keyword | | +| panw.vpn.globalprotect.gateway.current_users | Current number of users connected to the GlobalProtect gateway | long | gauge | +| panw.vpn.globalprotect.gateway.name | Name of the GlobalProtect gateway | keyword | | +| panw.vpn.globalprotect.gateway.previous_users | Previous number of users connected to the GlobalProtect gateway | long | gauge | +| panw.vpn.globalprotect.session.app_version | Application version used in the session | keyword | | +| panw.vpn.globalprotect.session.client | Client information of the session | keyword | | +| panw.vpn.globalprotect.session.client_ip | Client IP address of the session | ip | | +| panw.vpn.globalprotect.session.computer | Computer name in the session | keyword | | +| panw.vpn.globalprotect.session.domain | Domain of the GlobalProtect session | keyword | | +| panw.vpn.globalprotect.session.host_id | Host ID of the session | keyword | | +| panw.vpn.globalprotect.session.is_local | Indicates if the session is local | boolean | | +| panw.vpn.globalprotect.session.lifetime | Lifetime of the session | long | | +| panw.vpn.globalprotect.session.login_time | Login time of the session | date | | +| panw.vpn.globalprotect.session.login_time_utc | Login time in UTC of the session | date | | +| panw.vpn.globalprotect.session.primary_username | Primary username of the session | keyword | | +| panw.vpn.globalprotect.session.public_connection_ipv6 | Public connection IPv6 address of the session | ip | | +| panw.vpn.globalprotect.session.public_ip | Public IP address of the session | ip | | +| panw.vpn.globalprotect.session.public_ipv6 | Public IPv6 address of the session | ip | | +| panw.vpn.globalprotect.session.region_for_config | Region for configuration | keyword | | +| panw.vpn.globalprotect.session.request_get_config | Request get configuration information of the session | keyword | | +| panw.vpn.globalprotect.session.request_login | Request login information of the session | keyword | | +| panw.vpn.globalprotect.session.request_sslvpn_connect | Request SSL VPN connect information of the session | keyword | | +| panw.vpn.globalprotect.session.source_region | Source region of the session | keyword | | +| panw.vpn.globalprotect.session.tunnel_type | Type of tunnel used in the session | keyword | | +| panw.vpn.globalprotect.session.username | Username of the session | keyword | | +| panw.vpn.globalprotect.session.virtual_ip | Virtual IP address of the session | ip | | +| panw.vpn.globalprotect.session.virtual_ipv6 | Virtual IPv6 address of the session | ip | | +| panw.vpn.globalprotect.session.vpn_type | Type of VPN used in the session | keyword | | +| panw.vpn.globalprotect.total_current_users | Total current number of users connected to GlobalProtect gateway | long | gauge | +| panw.vpn.globalprotect.total_previous_users | Total previous number of users connected to GlobalProtect gateway | long | gauge | From 8f8a1482190181a75babb1bfbfd7397ee8f9c03f Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Thu, 3 Oct 2024 22:28:37 +0300 Subject: [PATCH 33/50] improve fields mappings --- .../data_stream/interfaces/fields/fields.yml | 3 + .../data_stream/routing/fields/fields.yml | 21 ++- .../data_stream/vpn/fields/fields.yml | 10 +- packages/panw_metrics/docs/README.md | 178 +++++++++--------- 4 files changed, 118 insertions(+), 94 deletions(-) diff --git a/packages/panw_metrics/data_stream/interfaces/fields/fields.yml b/packages/panw_metrics/data_stream/interfaces/fields/fields.yml index cba29fe96ed..ad88f6e4dc3 100644 --- a/packages/panw_metrics/data_stream/interfaces/fields/fields.yml +++ b/packages/panw_metrics/data_stream/interfaces/fields/fields.yml @@ -151,6 +151,7 @@ - name: state_duration type: long unit: s + metric_type: gauge description: > Duration in seconds of the current state @@ -536,6 +537,8 @@ - name: kb type: long + unit: byte + metric_type: gauge description: > Traffic volume limit for SA rekeying diff --git a/packages/panw_metrics/data_stream/routing/fields/fields.yml b/packages/panw_metrics/data_stream/routing/fields/fields.yml index 977cc3cfb97..d491cc047d3 100644 --- a/packages/panw_metrics/data_stream/routing/fields/fields.yml +++ b/packages/panw_metrics/data_stream/routing/fields/fields.yml @@ -40,6 +40,7 @@ - name: status_duration type: long unit: s + metric_type: gauge description: > Time in seconds since the current status was set @@ -55,6 +56,7 @@ - name: multi_hop_ttl type: long + metric_type: gauge description: > Time to Live (TTL) value for multi-hop BGP sessions. Units are the number of hops. @@ -102,72 +104,86 @@ - name: connect_retry_interval type: long unit: s + metric_type: gauge description: > The interval (in seconds) between connection retries - name: open_delay type: long unit: s + metric_type: gauge description: > Delay before sending an Open message (in seconds) - name: idle_hold type: long unit: s + metric_type: gauge description: > The idle hold time (in seconds) before retrying a connection after failure - name: prefix_limit type: long + metric_type: gauge description: > The maximum number of prefixes that can be received from the peer (0 = no limit) - name: holdtime type: long unit: s + metric_type: gauge description: > Time in seconds that the BGP peer will wait for a keepalive message, negotiated between peers - name: holdtime_config type: long unit: s + metric_type: gauge description: > Represents the locally configured hold time on this peer (in seconds) - name: keepalive type: long unit: s + metric_type: gauge description: > The interval (in seconds) at which BGP keepalive messages are sent, negotiated between peers - name: keepalive_config type: long + unit: s + metric_type: gauge description: > The keepalive configured on this peer - name: msg_update_in type: long + metric_type: gauge description: > The number of BGP UPDATE messages received by the router from this peer - name: msg_update_out type: long + metric_type: gauge description: > The number of BGP UPDATE messages sent from the local router to the peer - name: msg_total_in type: long + metric_type: gauge description: > Total of all messages received from the peer - name: msg_total_out type: long + metric_type: gauge description: > Total of all messages sent to the peer - name: last_update_age type: long unit: s + metric_type: gauge description: > Time in seconds since the last update message was received from the peer @@ -178,16 +194,19 @@ - name: status_flap_counts type: long + metric_type: gauge description: > Indicates the number of times the BGP session has "flapped" or transitioned between up and down states - name: established_counts type: long + metric_type: gauge description: > Number of times the BGP session has successfully transitioned to the "Established" state - name: orf_entry_received type: long + metric_type: gauge description: > Number of ORF (Outbound Route Filtering) entries received from the peer @@ -204,5 +223,5 @@ - name: nexthop_peer type: boolean description: > - Indicates whether the peer is being used as the next-hop for the routes received from this peerfields: + Indicates whether the peer is being used as the next-hop for the routes received from this peerfields. diff --git a/packages/panw_metrics/data_stream/vpn/fields/fields.yml b/packages/panw_metrics/data_stream/vpn/fields/fields.yml index 7ee3197e54f..5788968843e 100644 --- a/packages/panw_metrics/data_stream/vpn/fields/fields.yml +++ b/packages/panw_metrics/data_stream/vpn/fields/fields.yml @@ -89,7 +89,7 @@ Virtual IP address of the session - name: virtual_ipv6 - type: ip + type: keyword description: > Virtual IPv6 address of the session @@ -99,7 +99,7 @@ Public IP address of the session - name: public_ipv6 - type: ip + type: keyword description: > Public IPv6 address of the session @@ -109,7 +109,7 @@ Type of tunnel used in the session - name: public_connection_ipv6 - type: ip + type: keyword description: > Public connection IPv6 address of the session @@ -119,17 +119,19 @@ Client IP address of the session - name: login_time - type: date + type: keyword description: > Login time of the session - name: login_time_utc type: date + format: epoch_millis description: > Login time in UTC of the session - name: lifetime type: long + unit: s description: > Lifetime of the session diff --git a/packages/panw_metrics/docs/README.md b/packages/panw_metrics/docs/README.md index 77a5a19ff9d..37a0d36ac46 100644 --- a/packages/panw_metrics/docs/README.md +++ b/packages/panw_metrics/docs/README.md @@ -181,7 +181,7 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | panw.interfaces.ha.local_info.platform_model | Platform model of the local device | keyword | | | | panw.interfaces.ha.local_info.preemptive | Indicates whether the firewall is configured to preemptively take over as the active unit in an HA setup. This is a yes/no value which the beat is not converting to a boolean, so it will be a keyword. | keyword | | | | panw.interfaces.ha.local_info.state | HA state of the local device, e.g., "active" or "passive" | keyword | | | -| panw.interfaces.ha.local_info.state_duration | Duration in seconds of the current state | long | s | | +| panw.interfaces.ha.local_info.state_duration | Duration in seconds of the current state | long | s | gauge | | panw.interfaces.ha.local_info.state_sync | Status of HA synchronization, e.g., "complete" | keyword | | | | panw.interfaces.ha.local_info.state_sync_type | Type of interface used for HA synchronization | keyword | | | | panw.interfaces.ha.local_info.threat_version | HA local info threat version | keyword | | | @@ -226,7 +226,7 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | panw.interfaces.ipsec_tunnel.gw | Gateway of the IPsec tunnel | keyword | | | | panw.interfaces.ipsec_tunnel.hash | Hash algorithm of the IPsec tunnel | keyword | | | | panw.interfaces.ipsec_tunnel.id | ID of the IPsec tunnel | keyword | | | -| panw.interfaces.ipsec_tunnel.kb | Traffic volume limit for SA rekeying | long | | | +| panw.interfaces.ipsec_tunnel.kb | Traffic volume limit for SA rekeying | long | byte | gauge | | panw.interfaces.ipsec_tunnel.life.sec | The lifetime of the IPsec Security Association (SA) in seconds | long | s | gauge | | panw.interfaces.ipsec_tunnel.mode | This specifies the IPsec mode. e.g., 'tunl' | keyword | | | | panw.interfaces.ipsec_tunnel.name | Name of the IPsec tunnel | keyword | | | @@ -348,54 +348,54 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur **Exported fields** -| Field | Description | Type | Unit | -|---|---|---|---| -| @timestamp | Event timestamp. | date | | -| cloud.image.id | Image ID for the cloud instance. | keyword | | -| data_stream.dataset | Data stream dataset. | constant_keyword | | -| data_stream.namespace | Data stream namespace. | constant_keyword | | -| data_stream.type | Data stream type. | constant_keyword | | -| host.containerized | If the host is a container. | boolean | | -| host.os.build | OS build information. | keyword | | -| host.os.codename | OS codename, if any. | keyword | | -| panw.routing.bgp.aggregate_confed_as | Indicates that Autonomous System (AS) aggregation is enabled for the confederation | boolean | | -| panw.routing.bgp.connect_retry_interval | The interval (in seconds) between connection retries | long | s | -| panw.routing.bgp.established_counts | Number of times the BGP session has successfully transitioned to the "Established" state | long | | -| panw.routing.bgp.holdtime | Time in seconds that the BGP peer will wait for a keepalive message, negotiated between peers | long | s | -| panw.routing.bgp.holdtime_config | Represents the locally configured hold time on this peer (in seconds) | long | s | -| panw.routing.bgp.idle_hold | The idle hold time (in seconds) before retrying a connection after failure | long | s | -| panw.routing.bgp.keepalive | The interval (in seconds) at which BGP keepalive messages are sent, negotiated between peers | long | s | -| panw.routing.bgp.keepalive_config | The keepalive configured on this peer | long | | -| panw.routing.bgp.last_error | The last BGP error message received from the peer | keyword | | -| panw.routing.bgp.last_update_age | Time in seconds since the last update message was received from the peer | long | s | -| panw.routing.bgp.local_ip | Local ip address used for BGP connection | ip | | -| panw.routing.bgp.local_port | Local port number used for BGP connection | long | | -| panw.routing.bgp.msg_total_in | Total of all messages received from the peer | long | | -| panw.routing.bgp.msg_total_out | Total of all messages sent to the peer | long | | -| panw.routing.bgp.msg_update_in | The number of BGP UPDATE messages received by the router from this peer | long | | -| panw.routing.bgp.msg_update_out | The number of BGP UPDATE messages sent from the local router to the peer | long | | -| panw.routing.bgp.multi_hop_ttl | Time to Live (TTL) value for multi-hop BGP sessions. Units are the number of hops. | long | | -| panw.routing.bgp.nexthop_peer | Indicates whether the peer is being used as the next-hop for the routes received from this peerfields: | boolean | | -| panw.routing.bgp.nexthop_self | Whether the router is configured to use itself as the next-hop for routes sent to this peer | boolean | | -| panw.routing.bgp.nexthop_thirdparty | Third-party next-hop feature is enabled | boolean | | -| panw.routing.bgp.open_delay | Delay before sending an Open message (in seconds) | long | s | -| panw.routing.bgp.orf_entry_received | Number of ORF (Outbound Route Filtering) entries received from the peer | long | | -| panw.routing.bgp.passive | Indicates if the BGP peer is in passive mode: if yes then router will not initiate a connection to the peer | boolean | | -| panw.routing.bgp.password_set | Indicates whether a password is set for the BGP peer | boolean | | -| panw.routing.bgp.peer_group | The name of the BGP peer group this peer belongs to | keyword | | -| panw.routing.bgp.peer_ip | IP address of the peer | ip | | -| panw.routing.bgp.peer_name | The name of the current peer in the BGP peer group | keyword | | -| panw.routing.bgp.peer_port | Port number of the peer | long | | -| panw.routing.bgp.peer_router_id | BGP peer router ID | ip | | -| panw.routing.bgp.peering_type | Defines the type of relationship between peers, e.g., "External BGP", "Internal BGP", or "Unspecified" | keyword | | -| panw.routing.bgp.prefix_limit | The maximum number of prefixes that can be received from the peer (0 = no limit) | long | | -| panw.routing.bgp.reflector_client | Specifies the BGP peer relationship to route reflectors, e.g. "client", "not-client", "meshed-client" | keyword | | -| panw.routing.bgp.remote_as_asn | The remote Autonomous System (AS) number of the peer | long | | -| panw.routing.bgp.same_confederation | Peers in the same confederation exchange routes using internal BGP (iBGP) instead of external BGP (eBGP) | boolean | | -| panw.routing.bgp.status | The BGP session status, e.g., "Established" means the session is up and running | keyword | | -| panw.routing.bgp.status_duration | Time in seconds since the current status was set | long | s | -| panw.routing.bgp.status_flap_counts | Indicates the number of times the BGP session has "flapped" or transitioned between up and down states | long | | -| panw.routing.bgp.virtual_router | The virtual router with which the BGP peer is associated | keyword | | +| Field | Description | Type | Unit | Metric Type | +|---|---|---|---|---| +| @timestamp | Event timestamp. | date | | | +| cloud.image.id | Image ID for the cloud instance. | keyword | | | +| data_stream.dataset | Data stream dataset. | constant_keyword | | | +| data_stream.namespace | Data stream namespace. | constant_keyword | | | +| data_stream.type | Data stream type. | constant_keyword | | | +| host.containerized | If the host is a container. | boolean | | | +| host.os.build | OS build information. | keyword | | | +| host.os.codename | OS codename, if any. | keyword | | | +| panw.routing.bgp.aggregate_confed_as | Indicates that Autonomous System (AS) aggregation is enabled for the confederation | boolean | | | +| panw.routing.bgp.connect_retry_interval | The interval (in seconds) between connection retries | long | s | gauge | +| panw.routing.bgp.established_counts | Number of times the BGP session has successfully transitioned to the "Established" state | long | | gauge | +| panw.routing.bgp.holdtime | Time in seconds that the BGP peer will wait for a keepalive message, negotiated between peers | long | s | gauge | +| panw.routing.bgp.holdtime_config | Represents the locally configured hold time on this peer (in seconds) | long | s | gauge | +| panw.routing.bgp.idle_hold | The idle hold time (in seconds) before retrying a connection after failure | long | s | gauge | +| panw.routing.bgp.keepalive | The interval (in seconds) at which BGP keepalive messages are sent, negotiated between peers | long | s | gauge | +| panw.routing.bgp.keepalive_config | The keepalive configured on this peer | long | s | gauge | +| panw.routing.bgp.last_error | The last BGP error message received from the peer | keyword | | | +| panw.routing.bgp.last_update_age | Time in seconds since the last update message was received from the peer | long | s | gauge | +| panw.routing.bgp.local_ip | Local ip address used for BGP connection | ip | | | +| panw.routing.bgp.local_port | Local port number used for BGP connection | long | | | +| panw.routing.bgp.msg_total_in | Total of all messages received from the peer | long | | gauge | +| panw.routing.bgp.msg_total_out | Total of all messages sent to the peer | long | | gauge | +| panw.routing.bgp.msg_update_in | The number of BGP UPDATE messages received by the router from this peer | long | | gauge | +| panw.routing.bgp.msg_update_out | The number of BGP UPDATE messages sent from the local router to the peer | long | | gauge | +| panw.routing.bgp.multi_hop_ttl | Time to Live (TTL) value for multi-hop BGP sessions. Units are the number of hops. | long | | gauge | +| panw.routing.bgp.nexthop_peer | Indicates whether the peer is being used as the next-hop for the routes received from this peerfields. | boolean | | | +| panw.routing.bgp.nexthop_self | Whether the router is configured to use itself as the next-hop for routes sent to this peer | boolean | | | +| panw.routing.bgp.nexthop_thirdparty | Third-party next-hop feature is enabled | boolean | | | +| panw.routing.bgp.open_delay | Delay before sending an Open message (in seconds) | long | s | gauge | +| panw.routing.bgp.orf_entry_received | Number of ORF (Outbound Route Filtering) entries received from the peer | long | | gauge | +| panw.routing.bgp.passive | Indicates if the BGP peer is in passive mode: if yes then router will not initiate a connection to the peer | boolean | | | +| panw.routing.bgp.password_set | Indicates whether a password is set for the BGP peer | boolean | | | +| panw.routing.bgp.peer_group | The name of the BGP peer group this peer belongs to | keyword | | | +| panw.routing.bgp.peer_ip | IP address of the peer | ip | | | +| panw.routing.bgp.peer_name | The name of the current peer in the BGP peer group | keyword | | | +| panw.routing.bgp.peer_port | Port number of the peer | long | | | +| panw.routing.bgp.peer_router_id | BGP peer router ID | ip | | | +| panw.routing.bgp.peering_type | Defines the type of relationship between peers, e.g., "External BGP", "Internal BGP", or "Unspecified" | keyword | | | +| panw.routing.bgp.prefix_limit | The maximum number of prefixes that can be received from the peer (0 = no limit) | long | | gauge | +| panw.routing.bgp.reflector_client | Specifies the BGP peer relationship to route reflectors, e.g. "client", "not-client", "meshed-client" | keyword | | | +| panw.routing.bgp.remote_as_asn | The remote Autonomous System (AS) number of the peer | long | | | +| panw.routing.bgp.same_confederation | Peers in the same confederation exchange routes using internal BGP (iBGP) instead of external BGP (eBGP) | boolean | | | +| panw.routing.bgp.status | The BGP session status, e.g., "Established" means the session is up and running | keyword | | | +| panw.routing.bgp.status_duration | Time in seconds since the current status was set | long | s | gauge | +| panw.routing.bgp.status_flap_counts | Indicates the number of times the BGP session has "flapped" or transitioned between up and down states | long | | gauge | +| panw.routing.bgp.virtual_router | The virtual router with which the BGP peer is associated | keyword | | | ### system @@ -679,42 +679,42 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur **Exported fields** -| Field | Description | Type | Metric Type | -|---|---|---|---| -| @timestamp | Event timestamp. | date | | -| cloud.image.id | Image ID for the cloud instance. | keyword | | -| data_stream.dataset | Data stream dataset. | constant_keyword | | -| data_stream.namespace | Data stream namespace. | constant_keyword | | -| data_stream.type | Data stream type. | constant_keyword | | -| host.containerized | If the host is a container. | boolean | | -| host.os.build | OS build information. | keyword | | -| host.os.codename | OS codename, if any. | keyword | | -| panw.vpn.globalprotect.gateway.current_users | Current number of users connected to the GlobalProtect gateway | long | gauge | -| panw.vpn.globalprotect.gateway.name | Name of the GlobalProtect gateway | keyword | | -| panw.vpn.globalprotect.gateway.previous_users | Previous number of users connected to the GlobalProtect gateway | long | gauge | -| panw.vpn.globalprotect.session.app_version | Application version used in the session | keyword | | -| panw.vpn.globalprotect.session.client | Client information of the session | keyword | | -| panw.vpn.globalprotect.session.client_ip | Client IP address of the session | ip | | -| panw.vpn.globalprotect.session.computer | Computer name in the session | keyword | | -| panw.vpn.globalprotect.session.domain | Domain of the GlobalProtect session | keyword | | -| panw.vpn.globalprotect.session.host_id | Host ID of the session | keyword | | -| panw.vpn.globalprotect.session.is_local | Indicates if the session is local | boolean | | -| panw.vpn.globalprotect.session.lifetime | Lifetime of the session | long | | -| panw.vpn.globalprotect.session.login_time | Login time of the session | date | | -| panw.vpn.globalprotect.session.login_time_utc | Login time in UTC of the session | date | | -| panw.vpn.globalprotect.session.primary_username | Primary username of the session | keyword | | -| panw.vpn.globalprotect.session.public_connection_ipv6 | Public connection IPv6 address of the session | ip | | -| panw.vpn.globalprotect.session.public_ip | Public IP address of the session | ip | | -| panw.vpn.globalprotect.session.public_ipv6 | Public IPv6 address of the session | ip | | -| panw.vpn.globalprotect.session.region_for_config | Region for configuration | keyword | | -| panw.vpn.globalprotect.session.request_get_config | Request get configuration information of the session | keyword | | -| panw.vpn.globalprotect.session.request_login | Request login information of the session | keyword | | -| panw.vpn.globalprotect.session.request_sslvpn_connect | Request SSL VPN connect information of the session | keyword | | -| panw.vpn.globalprotect.session.source_region | Source region of the session | keyword | | -| panw.vpn.globalprotect.session.tunnel_type | Type of tunnel used in the session | keyword | | -| panw.vpn.globalprotect.session.username | Username of the session | keyword | | -| panw.vpn.globalprotect.session.virtual_ip | Virtual IP address of the session | ip | | -| panw.vpn.globalprotect.session.virtual_ipv6 | Virtual IPv6 address of the session | ip | | -| panw.vpn.globalprotect.session.vpn_type | Type of VPN used in the session | keyword | | -| panw.vpn.globalprotect.total_current_users | Total current number of users connected to GlobalProtect gateway | long | gauge | -| panw.vpn.globalprotect.total_previous_users | Total previous number of users connected to GlobalProtect gateway | long | gauge | +| Field | Description | Type | Unit | Metric Type | +|---|---|---|---|---| +| @timestamp | Event timestamp. | date | | | +| cloud.image.id | Image ID for the cloud instance. | keyword | | | +| data_stream.dataset | Data stream dataset. | constant_keyword | | | +| data_stream.namespace | Data stream namespace. | constant_keyword | | | +| data_stream.type | Data stream type. | constant_keyword | | | +| host.containerized | If the host is a container. | boolean | | | +| host.os.build | OS build information. | keyword | | | +| host.os.codename | OS codename, if any. | keyword | | | +| panw.vpn.globalprotect.gateway.current_users | Current number of users connected to the GlobalProtect gateway | long | | gauge | +| panw.vpn.globalprotect.gateway.name | Name of the GlobalProtect gateway | keyword | | | +| panw.vpn.globalprotect.gateway.previous_users | Previous number of users connected to the GlobalProtect gateway | long | | gauge | +| panw.vpn.globalprotect.session.app_version | Application version used in the session | keyword | | | +| panw.vpn.globalprotect.session.client | Client information of the session | keyword | | | +| panw.vpn.globalprotect.session.client_ip | Client IP address of the session | ip | | | +| panw.vpn.globalprotect.session.computer | Computer name in the session | keyword | | | +| panw.vpn.globalprotect.session.domain | Domain of the GlobalProtect session | keyword | | | +| panw.vpn.globalprotect.session.host_id | Host ID of the session | keyword | | | +| panw.vpn.globalprotect.session.is_local | Indicates if the session is local | boolean | | | +| panw.vpn.globalprotect.session.lifetime | Lifetime of the session | long | s | | +| panw.vpn.globalprotect.session.login_time | Login time of the session | keyword | | | +| panw.vpn.globalprotect.session.login_time_utc | Login time in UTC of the session | date | | | +| panw.vpn.globalprotect.session.primary_username | Primary username of the session | keyword | | | +| panw.vpn.globalprotect.session.public_connection_ipv6 | Public connection IPv6 address of the session | keyword | | | +| panw.vpn.globalprotect.session.public_ip | Public IP address of the session | ip | | | +| panw.vpn.globalprotect.session.public_ipv6 | Public IPv6 address of the session | keyword | | | +| panw.vpn.globalprotect.session.region_for_config | Region for configuration | keyword | | | +| panw.vpn.globalprotect.session.request_get_config | Request get configuration information of the session | keyword | | | +| panw.vpn.globalprotect.session.request_login | Request login information of the session | keyword | | | +| panw.vpn.globalprotect.session.request_sslvpn_connect | Request SSL VPN connect information of the session | keyword | | | +| panw.vpn.globalprotect.session.source_region | Source region of the session | keyword | | | +| panw.vpn.globalprotect.session.tunnel_type | Type of tunnel used in the session | keyword | | | +| panw.vpn.globalprotect.session.username | Username of the session | keyword | | | +| panw.vpn.globalprotect.session.virtual_ip | Virtual IP address of the session | ip | | | +| panw.vpn.globalprotect.session.virtual_ipv6 | Virtual IPv6 address of the session | keyword | | | +| panw.vpn.globalprotect.session.vpn_type | Type of VPN used in the session | keyword | | | +| panw.vpn.globalprotect.total_current_users | Total current number of users connected to GlobalProtect gateway | long | | gauge | +| panw.vpn.globalprotect.total_previous_users | Total previous number of users connected to GlobalProtect gateway | long | | gauge | From e0bd796676806bd906239bb58beb807921588361 Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Thu, 3 Oct 2024 23:44:13 +0300 Subject: [PATCH 34/50] use 'float' type for 'use_percent' field --- packages/panw_metrics/data_stream/system/fields/fields.yml | 2 +- packages/panw_metrics/docs/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/panw_metrics/data_stream/system/fields/fields.yml b/packages/panw_metrics/data_stream/system/fields/fields.yml index 56c79b5da8f..574ec350252 100644 --- a/packages/panw_metrics/data_stream/system/fields/fields.yml +++ b/packages/panw_metrics/data_stream/system/fields/fields.yml @@ -285,7 +285,7 @@ Disk space available on the filesystem - name: use_percent - type: integer + type: float format: percent unit: percent metric_type: gauge diff --git a/packages/panw_metrics/docs/README.md b/packages/panw_metrics/docs/README.md index 37a0d36ac46..519ed80f136 100644 --- a/packages/panw_metrics/docs/README.md +++ b/packages/panw_metrics/docs/README.md @@ -543,7 +543,7 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | panw.system.filesystem.mounted | Filesystem mount point | keyword | | | | panw.system.filesystem.name | Filesystem name | keyword | | | | panw.system.filesystem.size | Total size of the filesystem | float | byte | gauge | -| panw.system.filesystem.use_percent | Percent of filesystem used | integer | percent | gauge | +| panw.system.filesystem.use_percent | Percent of filesystem used | float | percent | gauge | | panw.system.filesystem.used | Amount used on the filesystem | float | byte | gauge | | panw.system.license.auth_code | Authorization code to activate or install the license | keyword | | | | panw.system.license.description | Description of the licensed feature | keyword | | | From 671a36670444bc1b23d67c3b476a430fddd59288 Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Thu, 3 Oct 2024 23:44:37 +0300 Subject: [PATCH 35/50] add pipeline for system data stream --- .../test/pipeline/test-pipeline-system.json | 67 +++++++++++++++++++ .../test-pipeline-system.json-expected.json | 67 +++++++++++++++++++ .../elasticsearch/ingest_pipeline/default.yml | 28 ++++++++ 3 files changed, 162 insertions(+) create mode 100644 packages/panw_metrics/data_stream/system/_dev/test/pipeline/test-pipeline-system.json create mode 100644 packages/panw_metrics/data_stream/system/_dev/test/pipeline/test-pipeline-system.json-expected.json create mode 100644 packages/panw_metrics/data_stream/system/elasticsearch/ingest_pipeline/default.yml diff --git a/packages/panw_metrics/data_stream/system/_dev/test/pipeline/test-pipeline-system.json b/packages/panw_metrics/data_stream/system/_dev/test/pipeline/test-pipeline-system.json new file mode 100644 index 00000000000..9b2eec6f6fb --- /dev/null +++ b/packages/panw_metrics/data_stream/system/_dev/test/pipeline/test-pipeline-system.json @@ -0,0 +1,67 @@ +{ + "events": [ + { + "agent": { + "name": "karpov", + "id": "bcd6ecf9-8a23-4064-b710-25f908c18e95", + "type": "metricbeat", + "ephemeral_id": "bfd6d07b-d406-4e4f-a9bf-a4c541de11fd", + "version": "8.15.2" + }, + "elastic_agent": { + "id": "bcd6ecf9-8a23-4064-b710-25f908c18e95", + "version": "8.15.2", + "snapshot": true + }, + "panw": { + "system": { + "filesystem.use_percent": 93, + "filesystem.available": 109521666048, + "filesystem.name": "/dev/sda8", + "filesystem.mounted": "/opt/panlogs", + "filesystem.size": 185757335552, + "filesystem.used": 67645734912, + "cpu": { + "hi": 1, + "wait": 15, + "system": 25, + "idle": 30, + "steal": 45, + "system_int": 60, + "user": 85, + "nice": 95.62 + } + } + }, + "tags": [ + "forwarded", + "panw_metrics-system" + ], + "observer.vendor": "Palo Alto", + "@timestamp": "2024-10-03T19:37:43.626Z", + "ecs": { + "version": "8.0.0" + }, + "observer.type": "firewall", + "data_stream": { + "namespace": "default", + "type": "metrics", + "dataset": "panw_metrics.system" + }, + "service": { + "type": "panw" + }, + "metricset": { + "period": 10000, + "name": "system" + }, + "event": { + "duration": 5448934535, + "agent_id_status": "verified", + "ingested": "2024-10-03T19:37:49Z", + "module": "panw", + "dataset": "panw_metrics.system" + } + } + ] +} \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/system/_dev/test/pipeline/test-pipeline-system.json-expected.json b/packages/panw_metrics/data_stream/system/_dev/test/pipeline/test-pipeline-system.json-expected.json new file mode 100644 index 00000000000..342728b5141 --- /dev/null +++ b/packages/panw_metrics/data_stream/system/_dev/test/pipeline/test-pipeline-system.json-expected.json @@ -0,0 +1,67 @@ +{ + "expected": [ + { + "@timestamp": "2024-10-03T19:37:43.626Z", + "agent": { + "ephemeral_id": "bfd6d07b-d406-4e4f-a9bf-a4c541de11fd", + "id": "bcd6ecf9-8a23-4064-b710-25f908c18e95", + "name": "karpov", + "type": "metricbeat", + "version": "8.15.2" + }, + "data_stream": { + "dataset": "panw_metrics.system", + "namespace": "default", + "type": "metrics" + }, + "ecs": { + "version": "8.0.0" + }, + "elastic_agent": { + "id": "bcd6ecf9-8a23-4064-b710-25f908c18e95", + "snapshot": true, + "version": "8.15.2" + }, + "event": { + "agent_id_status": "verified", + "dataset": "panw_metrics.system", + "duration": 5448934535, + "ingested": "2024-10-03T19:37:49Z", + "module": "panw" + }, + "metricset": { + "name": "system", + "period": 10000 + }, + "observer.type": "firewall", + "observer.vendor": "Palo Alto", + "panw": { + "system": { + "cpu": { + "hi": 0.01, + "idle": 0.3, + "nice": 0.9562, + "steal": 0.45, + "system": 0.25, + "system_int": 0.6, + "user": 0.85, + "wait": 0.15 + }, + "filesystem.available": 109521666048, + "filesystem.mounted": "/opt/panlogs", + "filesystem.name": "/dev/sda8", + "filesystem.size": 185757335552, + "filesystem.use_percent": 0.93, + "filesystem.used": 67645734912 + } + }, + "service": { + "type": "panw" + }, + "tags": [ + "forwarded", + "panw_metrics-system" + ] + } + ] +} \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/system/elasticsearch/ingest_pipeline/default.yml b/packages/panw_metrics/data_stream/system/elasticsearch/ingest_pipeline/default.yml new file mode 100644 index 00000000000..908154ab2a0 --- /dev/null +++ b/packages/panw_metrics/data_stream/system/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,28 @@ +--- +description: Pipeline for parsing Palo Alto Networks System metrics. +processors: + - script: + lang: painless + description: > + Transforms percentage fields from a 0-100 range into decimal fractions (0-1). + source: | + if (ctx.panw != null && ctx.panw.system != null) { + if (ctx.panw.system.cpu != null) { + def cpuFields = ['user', 'system', 'nice', 'idle', 'wait', 'hi', 'system_int', 'steal']; + for (def fieldName : cpuFields) { + if (ctx.panw.system.cpu[fieldName] != null) { + ctx.panw.system.cpu[fieldName] = ctx.panw.system.cpu[fieldName] / 100.0; + } + } + } + if (ctx.panw.system.containsKey('filesystem.use_percent') && ctx.panw.system['filesystem.use_percent'] != null) { + ctx.panw.system['filesystem.use_percent'] = ctx.panw.system['filesystem.use_percent'] / 100.0; + } + } +on_failure: + - set: + field: event.kind + value: pipeline_error + - append: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file From 23d40407a145d2236207d4b009a2598719dbd332 Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Fri, 4 Oct 2024 12:25:42 +0300 Subject: [PATCH 36/50] bump version to 0.1.0 --- packages/panw_metrics/changelog.yml | 2 +- packages/panw_metrics/manifest.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/panw_metrics/changelog.yml b/packages/panw_metrics/changelog.yml index 852fd63f81c..155156b998b 100644 --- a/packages/panw_metrics/changelog.yml +++ b/packages/panw_metrics/changelog.yml @@ -1,5 +1,5 @@ # newer versions go on top -- version: "0.0.1" +- version: "0.1.0" changes: - description: Initial draft of the package type: enhancement diff --git a/packages/panw_metrics/manifest.yml b/packages/panw_metrics/manifest.yml index 185b3e690c2..b4f5dcef8c6 100644 --- a/packages/panw_metrics/manifest.yml +++ b/packages/panw_metrics/manifest.yml @@ -1,7 +1,7 @@ format_version: 3.1.4 name: panw_metrics title: "Palo Alto Networks Metrics" -version: "0.0.1" +version: "0.1.0" description: Collect metrics from Palo Alto Networks with Elastic Agent. type: integration categories: From de736acc919f40291ffb72cae1a3792b8ce9eed6 Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Sat, 5 Oct 2024 13:24:50 +0300 Subject: [PATCH 37/50] add dashboards --- ...-27ff09cf-28a5-424d-8c3d-3b30f61d82dc.json | 2114 +++++++++++++++++ ...-5621b556-9010-4883-a339-4aa6a0b4bd74.json | 1655 +++++++++++++ ...-c100764a-f935-4c7b-a0d0-7622c4e19f6f.json | 1495 ++++++++++++ ...-fa29a215-7679-4867-a1e7-f3f8dc0bbbef.json | 1478 ++++++++++++ 4 files changed, 6742 insertions(+) create mode 100644 packages/panw_metrics/kibana/dashboard/panw_metrics-27ff09cf-28a5-424d-8c3d-3b30f61d82dc.json create mode 100644 packages/panw_metrics/kibana/dashboard/panw_metrics-5621b556-9010-4883-a339-4aa6a0b4bd74.json create mode 100644 packages/panw_metrics/kibana/dashboard/panw_metrics-c100764a-f935-4c7b-a0d0-7622c4e19f6f.json create mode 100644 packages/panw_metrics/kibana/dashboard/panw_metrics-fa29a215-7679-4867-a1e7-f3f8dc0bbbef.json diff --git a/packages/panw_metrics/kibana/dashboard/panw_metrics-27ff09cf-28a5-424d-8c3d-3b30f61d82dc.json b/packages/panw_metrics/kibana/dashboard/panw_metrics-27ff09cf-28a5-424d-8c3d-3b30f61d82dc.json new file mode 100644 index 00000000000..8d124267063 --- /dev/null +++ b/packages/panw_metrics/kibana/dashboard/panw_metrics-27ff09cf-28a5-424d-8c3d-3b30f61d82dc.json @@ -0,0 +1,2114 @@ +{ + "id": "panw_metrics-27ff09cf-28a5-424d-8c3d-3b30f61d82dc", + "type": "dashboard", + "created_at": "2024-10-04T14:17:19.690Z", + "attributes": { + "version": 2, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[{\"meta\":{\"disabled\":false,\"negate\":false,\"alias\":null,\"key\":\"data_stream.dataset\",\"field\":\"data_stream.dataset\",\"params\":{\"query\":\"panw_metrics.system\"},\"type\":\"phrase\",\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\"},\"query\":{\"match_phrase\":{\"data_stream.dataset\":\"panw_metrics.system\"}},\"$state\":{\"store\":\"appState\"}}]}" + }, + "description": "Overview of Palo Alto Networks System metrics", + "timeRestore": false, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": [ + { + "type": "lens", + "gridData": { + "x": 0, + "y": 0, + "w": 16, + "h": 9, + "i": "767546ef-09a1-4c05-b02e-8ef2c300d41f" + }, + "panelIndex": "767546ef-09a1-4c05-b02e-8ef2c300d41f", + "embeddableConfig": { + "attributes": { + "title": "", + "visualizationType": "lnsMetric", + "type": "lens", + "references": [ + { + "type": "index-pattern", + "id": "metrics-*", + "name": "indexpattern-datasource-layer-00a8848b-210f-4c86-a1ad-95137349b3f3" + } + ], + "state": { + "visualization": { + "layerId": "00a8848b-210f-4c86-a1ad-95137349b3f3", + "layerType": "data", + "metricAccessor": "b578ff1c-f6db-4d39-b977-9bf9cd1ba5d2", + "palette": { + "type": "palette", + "name": "status", + "params": { + "name": "status", + "reverse": false, + "rangeType": "number", + "rangeMin": null, + "rangeMax": null, + "progression": "fixed", + "stops": [ + { + "color": "#209280", + "stop": 0.15 + }, + { + "color": "#d6bf57", + "stop": 0.3 + }, + { + "color": "#cc5642", + "stop": 0.45 + } + ], + "steps": 3, + "colorStops": [], + "continuity": "all", + "maxSteps": 5 + } + } + }, + "query": { + "query": "", + "language": "kuery" + }, + "filters": [], + "datasourceStates": { + "formBased": { + "layers": { + "00a8848b-210f-4c86-a1ad-95137349b3f3": { + "columns": { + "b578ff1c-f6db-4d39-b977-9bf9cd1ba5d2": { + "label": "CPU Idle Time", + "dataType": "number", + "operationType": "average", + "sourceField": "panw.system.cpu.idle", + "isBucketed": false, + "scale": "ratio", + "params": { + "emptyAsNull": true, + "format": { + "id": "percent", + "params": { + "decimals": 2 + } + } + }, + "customLabel": true + } + }, + "columnOrder": [ + "b578ff1c-f6db-4d39-b977-9bf9cd1ba5d2" + ], + "sampling": 1, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "indexPatternId": "metrics-*" + } + }, + "currentIndexPatternId": "metrics-*" + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "internalReferences": [], + "adHocDataViews": {} + } + }, + "enhancements": {} + } + }, + { + "type": "lens", + "gridData": { + "x": 16, + "y": 0, + "w": 16, + "h": 9, + "i": "fda46c9a-7ed2-40b4-90ff-15f4cfb57569" + }, + "panelIndex": "fda46c9a-7ed2-40b4-90ff-15f4cfb57569", + "embeddableConfig": { + "attributes": { + "title": "", + "visualizationType": "lnsMetric", + "type": "lens", + "references": [ + { + "type": "index-pattern", + "id": "metrics-*", + "name": "indexpattern-datasource-layer-00a8848b-210f-4c86-a1ad-95137349b3f3" + } + ], + "state": { + "visualization": { + "layerId": "00a8848b-210f-4c86-a1ad-95137349b3f3", + "layerType": "data", + "metricAccessor": "b578ff1c-f6db-4d39-b977-9bf9cd1ba5d2", + "palette": { + "type": "palette", + "name": "status", + "params": { + "name": "status", + "reverse": false, + "rangeType": "number", + "rangeMin": null, + "rangeMax": null, + "progression": "fixed", + "stops": [ + { + "color": "#209280", + "stop": 0.15 + }, + { + "color": "#d6bf57", + "stop": 0.3 + }, + { + "color": "#cc5642", + "stop": 0.45 + } + ], + "steps": 3, + "colorStops": [], + "continuity": "all", + "maxSteps": 5 + } + } + }, + "query": { + "query": "", + "language": "kuery" + }, + "filters": [], + "datasourceStates": { + "formBased": { + "layers": { + "00a8848b-210f-4c86-a1ad-95137349b3f3": { + "columns": { + "b578ff1c-f6db-4d39-b977-9bf9cd1ba5d2": { + "label": "User Count", + "dataType": "number", + "operationType": "last_value", + "isBucketed": false, + "scale": "ratio", + "sourceField": "panw.system.user_count", + "filter": { + "query": "\"panw.system.user_count\": *", + "language": "kuery" + }, + "params": { + "sortField": "@timestamp", + "format": { + "id": "number", + "params": { + "decimals": 0 + } + } + }, + "customLabel": true + } + }, + "columnOrder": [ + "b578ff1c-f6db-4d39-b977-9bf9cd1ba5d2" + ], + "sampling": 1, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "indexPatternId": "metrics-*" + } + }, + "currentIndexPatternId": "metrics-*" + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "internalReferences": [], + "adHocDataViews": {} + } + }, + "enhancements": {} + } + }, + { + "type": "lens", + "gridData": { + "x": 32, + "y": 0, + "w": 16, + "h": 9, + "i": "cbb5bf61-f6b2-4725-8277-e6f706908148" + }, + "panelIndex": "cbb5bf61-f6b2-4725-8277-e6f706908148", + "embeddableConfig": { + "attributes": { + "title": "", + "visualizationType": "lnsMetric", + "type": "lens", + "references": [ + { + "type": "index-pattern", + "id": "metrics-*", + "name": "indexpattern-datasource-layer-00a8848b-210f-4c86-a1ad-95137349b3f3" + } + ], + "state": { + "visualization": { + "layerId": "00a8848b-210f-4c86-a1ad-95137349b3f3", + "layerType": "data", + "metricAccessor": "b578ff1c-f6db-4d39-b977-9bf9cd1ba5d2", + "palette": { + "type": "palette", + "name": "status", + "params": { + "name": "status", + "reverse": false, + "rangeType": "number", + "rangeMin": null, + "rangeMax": null, + "progression": "fixed", + "stops": [ + { + "color": "#209280", + "stop": 0 + }, + { + "color": "#d6bf57", + "stop": 0 + }, + { + "color": "#cc5642", + "stop": 0 + } + ], + "steps": 3, + "colorStops": [], + "continuity": "all", + "maxSteps": 5 + } + } + }, + "query": { + "query": "", + "language": "kuery" + }, + "filters": [], + "datasourceStates": { + "formBased": { + "layers": { + "00a8848b-210f-4c86-a1ad-95137349b3f3": { + "columns": { + "b578ff1c-f6db-4d39-b977-9bf9cd1ba5d2": { + "label": "System Uptime", + "dataType": "number", + "operationType": "last_value", + "isBucketed": false, + "scale": "ratio", + "sourceField": "panw.system.uptime.days", + "filter": { + "query": "\"panw.system.uptime.days\": *", + "language": "kuery" + }, + "params": { + "sortField": "@timestamp", + "format": { + "id": "duration", + "params": { + "decimals": 0, + "fromUnit": "days", + "toUnit": "humanizePrecise" + } + } + }, + "customLabel": true + } + }, + "columnOrder": [ + "b578ff1c-f6db-4d39-b977-9bf9cd1ba5d2" + ], + "sampling": 1, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "indexPatternId": "metrics-*" + } + }, + "currentIndexPatternId": "metrics-*" + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "internalReferences": [], + "adHocDataViews": {} + } + }, + "enhancements": {} + } + }, + { + "type": "lens", + "gridData": { + "x": 0, + "y": 39, + "w": 24, + "h": 15, + "i": "d283871e-a074-435b-83fc-98d7362bfbcb" + }, + "panelIndex": "d283871e-a074-435b-83fc-98d7362bfbcb", + "embeddableConfig": { + "attributes": { + "title": "", + "visualizationType": "lnsXY", + "type": "lens", + "references": [ + { + "type": "index-pattern", + "id": "metrics-*", + "name": "indexpattern-datasource-layer-00a8848b-210f-4c86-a1ad-95137349b3f3" + } + ], + "state": { + "visualization": { + "legend": { + "isVisible": true, + "position": "right" + }, + "valueLabels": "hide", + "fittingFunction": "None", + "axisTitlesVisibilitySettings": { + "x": true, + "yLeft": false, + "yRight": true + }, + "tickLabelsVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "labelsOrientation": { + "x": 0, + "yLeft": 0, + "yRight": 0 + }, + "gridlinesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "preferredSeriesType": "area_stacked", + "layers": [ + { + "layerId": "00a8848b-210f-4c86-a1ad-95137349b3f3", + "seriesType": "area_stacked", + "xAccessor": "03463cad-b635-4834-a3da-813ba7bab827", + "accessors": [ + "a9845c37-d0a0-4de0-b1cd-0ea77248cc9b", + "83200008-3168-4899-ae9d-928e22c99368", + "d4da2481-486c-4eb4-9df3-af459ea14e47" + ], + "layerType": "data", + "colorMapping": { + "assignments": [], + "specialAssignments": [ + { + "rule": { + "type": "other" + }, + "color": { + "type": "loop" + }, + "touched": false + } + ], + "paletteId": "eui_amsterdam_color_blind", + "colorMode": { + "type": "categorical" + } + } + } + ] + }, + "query": { + "query": "", + "language": "kuery" + }, + "filters": [], + "datasourceStates": { + "formBased": { + "layers": { + "00a8848b-210f-4c86-a1ad-95137349b3f3": { + "columns": { + "03463cad-b635-4834-a3da-813ba7bab827": { + "label": "@timestamp", + "dataType": "date", + "operationType": "date_histogram", + "sourceField": "@timestamp", + "isBucketed": true, + "scale": "interval", + "params": { + "interval": "auto", + "includeEmptyRows": true, + "dropPartials": false + } + }, + "a9845c37-d0a0-4de0-b1cd-0ea77248cc9b": { + "label": "Used", + "dataType": "number", + "operationType": "average", + "sourceField": "panw.system.memory.used", + "isBucketed": false, + "scale": "ratio", + "params": { + "emptyAsNull": true + }, + "customLabel": true + }, + "83200008-3168-4899-ae9d-928e22c99368": { + "label": "Free", + "dataType": "number", + "operationType": "average", + "sourceField": "panw.system.memory.free", + "isBucketed": false, + "scale": "ratio", + "params": { + "emptyAsNull": true + }, + "customLabel": true + }, + "d4da2481-486c-4eb4-9df3-af459ea14e47": { + "label": "Buffer Cache", + "dataType": "number", + "operationType": "average", + "sourceField": "panw.system.memory.buffer_cache", + "isBucketed": false, + "scale": "ratio", + "params": { + "emptyAsNull": true + }, + "customLabel": true + } + }, + "columnOrder": [ + "03463cad-b635-4834-a3da-813ba7bab827", + "a9845c37-d0a0-4de0-b1cd-0ea77248cc9b", + "83200008-3168-4899-ae9d-928e22c99368", + "d4da2481-486c-4eb4-9df3-af459ea14e47" + ], + "sampling": 1, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "indexPatternId": "metrics-*" + } + }, + "currentIndexPatternId": "metrics-*" + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "internalReferences": [], + "adHocDataViews": {} + } + }, + "enhancements": {} + }, + "title": "Memory Usage" + }, + { + "type": "lens", + "gridData": { + "x": 24, + "y": 39, + "w": 24, + "h": 15, + "i": "47ea82ea-d8d0-430a-b0ac-ac0a7bb5d2e6" + }, + "panelIndex": "47ea82ea-d8d0-430a-b0ac-ac0a7bb5d2e6", + "embeddableConfig": { + "attributes": { + "title": "", + "visualizationType": "lnsXY", + "type": "lens", + "references": [ + { + "type": "index-pattern", + "id": "metrics-*", + "name": "indexpattern-datasource-layer-00a8848b-210f-4c86-a1ad-95137349b3f3" + } + ], + "state": { + "visualization": { + "legend": { + "isVisible": true, + "position": "right" + }, + "valueLabels": "hide", + "fittingFunction": "None", + "axisTitlesVisibilitySettings": { + "x": true, + "yLeft": false, + "yRight": true + }, + "tickLabelsVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "labelsOrientation": { + "x": 0, + "yLeft": 0, + "yRight": 0 + }, + "gridlinesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "preferredSeriesType": "area_stacked", + "layers": [ + { + "layerId": "00a8848b-210f-4c86-a1ad-95137349b3f3", + "seriesType": "area_stacked", + "xAccessor": "03463cad-b635-4834-a3da-813ba7bab827", + "accessors": [ + "a9845c37-d0a0-4de0-b1cd-0ea77248cc9b", + "83200008-3168-4899-ae9d-928e22c99368", + "d4da2481-486c-4eb4-9df3-af459ea14e47", + "6d0475bc-a25e-4e33-9e0d-b8a02dc39eb9", + "b1e5dac9-6635-462b-9275-27be4eaffe2c", + "4cea3071-74f2-4b7b-a4c3-e110a45e9da3", + "562773db-e297-4152-9d25-5083aa4b1daf" + ], + "layerType": "data", + "colorMapping": { + "assignments": [], + "specialAssignments": [ + { + "rule": { + "type": "other" + }, + "color": { + "type": "loop" + }, + "touched": false + } + ], + "paletteId": "eui_amsterdam_color_blind", + "colorMode": { + "type": "categorical" + } + } + } + ] + }, + "query": { + "query": "", + "language": "kuery" + }, + "filters": [], + "datasourceStates": { + "formBased": { + "layers": { + "00a8848b-210f-4c86-a1ad-95137349b3f3": { + "columns": { + "03463cad-b635-4834-a3da-813ba7bab827": { + "label": "@timestamp", + "dataType": "date", + "operationType": "date_histogram", + "sourceField": "@timestamp", + "isBucketed": true, + "scale": "interval", + "params": { + "interval": "auto", + "includeEmptyRows": true, + "dropPartials": false + } + }, + "a9845c37-d0a0-4de0-b1cd-0ea77248cc9b": { + "label": "User", + "dataType": "number", + "operationType": "average", + "sourceField": "panw.system.cpu.user", + "isBucketed": false, + "scale": "ratio", + "params": { + "emptyAsNull": true + }, + "customLabel": true + }, + "83200008-3168-4899-ae9d-928e22c99368": { + "label": "System", + "dataType": "number", + "operationType": "average", + "sourceField": "panw.system.cpu.system", + "isBucketed": false, + "scale": "ratio", + "params": { + "emptyAsNull": true + }, + "customLabel": true + }, + "d4da2481-486c-4eb4-9df3-af459ea14e47": { + "label": "Nice", + "dataType": "number", + "operationType": "average", + "sourceField": "panw.system.cpu.nice", + "isBucketed": false, + "scale": "ratio", + "params": { + "emptyAsNull": true + }, + "customLabel": true + }, + "6d0475bc-a25e-4e33-9e0d-b8a02dc39eb9": { + "label": "Wait", + "dataType": "number", + "operationType": "average", + "sourceField": "panw.system.cpu.wait", + "isBucketed": false, + "scale": "ratio", + "params": { + "emptyAsNull": true + }, + "customLabel": true + }, + "b1e5dac9-6635-462b-9275-27be4eaffe2c": { + "label": "Hi", + "dataType": "number", + "operationType": "average", + "sourceField": "panw.system.cpu.hi", + "isBucketed": false, + "scale": "ratio", + "params": { + "emptyAsNull": true + }, + "customLabel": true + }, + "4cea3071-74f2-4b7b-a4c3-e110a45e9da3": { + "label": "System Int", + "dataType": "number", + "operationType": "average", + "sourceField": "panw.system.cpu.system_int", + "isBucketed": false, + "scale": "ratio", + "params": { + "emptyAsNull": true + }, + "customLabel": true + }, + "562773db-e297-4152-9d25-5083aa4b1daf": { + "label": "Steal", + "dataType": "number", + "operationType": "average", + "sourceField": "panw.system.cpu.steal", + "isBucketed": false, + "scale": "ratio", + "params": { + "emptyAsNull": true + }, + "customLabel": true + } + }, + "columnOrder": [ + "03463cad-b635-4834-a3da-813ba7bab827", + "a9845c37-d0a0-4de0-b1cd-0ea77248cc9b", + "83200008-3168-4899-ae9d-928e22c99368", + "d4da2481-486c-4eb4-9df3-af459ea14e47", + "6d0475bc-a25e-4e33-9e0d-b8a02dc39eb9", + "b1e5dac9-6635-462b-9275-27be4eaffe2c", + "4cea3071-74f2-4b7b-a4c3-e110a45e9da3", + "562773db-e297-4152-9d25-5083aa4b1daf" + ], + "sampling": 1, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "indexPatternId": "metrics-*" + } + }, + "currentIndexPatternId": "metrics-*" + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "internalReferences": [], + "adHocDataViews": {} + } + }, + "enhancements": {} + }, + "title": "CPU Usage" + }, + { + "type": "lens", + "gridData": { + "x": 0, + "y": 54, + "w": 24, + "h": 15, + "i": "adcfdaf9-4ae3-4a6b-b23d-8c6eb2bccb36" + }, + "panelIndex": "adcfdaf9-4ae3-4a6b-b23d-8c6eb2bccb36", + "embeddableConfig": { + "attributes": { + "title": "", + "visualizationType": "lnsXY", + "type": "lens", + "references": [ + { + "type": "index-pattern", + "id": "metrics-*", + "name": "indexpattern-datasource-layer-00a8848b-210f-4c86-a1ad-95137349b3f3" + } + ], + "state": { + "visualization": { + "legend": { + "isVisible": true, + "position": "right" + }, + "valueLabels": "hide", + "fittingFunction": "None", + "axisTitlesVisibilitySettings": { + "x": true, + "yLeft": false, + "yRight": true + }, + "tickLabelsVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "labelsOrientation": { + "x": 0, + "yLeft": 0, + "yRight": 0 + }, + "gridlinesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "preferredSeriesType": "bar_horizontal_stacked", + "layers": [ + { + "layerId": "00a8848b-210f-4c86-a1ad-95137349b3f3", + "seriesType": "bar_horizontal_stacked", + "accessors": [ + "00a35618-bf71-43a8-bd30-d39540c71731", + "e93aed2c-f483-4496-b62f-5f807760c2be" + ], + "layerType": "data", + "colorMapping": { + "assignments": [], + "specialAssignments": [ + { + "rule": { + "type": "other" + }, + "color": { + "type": "loop" + }, + "touched": false + } + ], + "paletteId": "eui_amsterdam_color_blind", + "colorMode": { + "type": "categorical" + } + }, + "xAccessor": "d0ec4b40-e052-4c57-a31a-e139a6698891" + } + ] + }, + "query": { + "query": "", + "language": "kuery" + }, + "filters": [], + "datasourceStates": { + "formBased": { + "layers": { + "00a8848b-210f-4c86-a1ad-95137349b3f3": { + "columns": { + "00a35618-bf71-43a8-bd30-d39540c71731": { + "label": "Used", + "dataType": "number", + "operationType": "last_value", + "isBucketed": false, + "scale": "ratio", + "sourceField": "panw.system.filesystem.used", + "filter": { + "query": "\"panw.system.filesystem.used\": *", + "language": "kuery" + }, + "params": { + "sortField": "@timestamp" + }, + "customLabel": true + }, + "e93aed2c-f483-4496-b62f-5f807760c2be": { + "label": "Available", + "dataType": "number", + "operationType": "last_value", + "isBucketed": false, + "scale": "ratio", + "sourceField": "panw.system.filesystem.available", + "filter": { + "query": "\"panw.system.filesystem.available\": *", + "language": "kuery" + }, + "params": { + "sortField": "@timestamp" + }, + "customLabel": true + }, + "d0ec4b40-e052-4c57-a31a-e139a6698891": { + "label": "Filesystem Name", + "dataType": "string", + "operationType": "terms", + "scale": "ordinal", + "sourceField": "panw.system.filesystem.name", + "isBucketed": true, + "params": { + "size": 20, + "orderBy": { + "type": "column", + "columnId": "00a35618-bf71-43a8-bd30-d39540c71731" + }, + "orderDirection": "desc", + "otherBucket": true, + "missingBucket": false, + "parentFormat": { + "id": "terms" + }, + "include": [], + "exclude": [], + "includeIsRegex": false, + "excludeIsRegex": false + }, + "customLabel": true + } + }, + "columnOrder": [ + "d0ec4b40-e052-4c57-a31a-e139a6698891", + "00a35618-bf71-43a8-bd30-d39540c71731", + "e93aed2c-f483-4496-b62f-5f807760c2be" + ], + "sampling": 1, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "indexPatternId": "metrics-*" + } + }, + "currentIndexPatternId": "metrics-*" + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "internalReferences": [], + "adHocDataViews": {} + } + }, + "enhancements": {} + }, + "title": "Disk Usage per Filesystem" + }, + { + "type": "lens", + "gridData": { + "x": 24, + "y": 54, + "w": 24, + "h": 15, + "i": "d8f9310d-7c03-42e4-8444-5d04aa453654" + }, + "panelIndex": "d8f9310d-7c03-42e4-8444-5d04aa453654", + "embeddableConfig": { + "attributes": { + "title": "", + "visualizationType": "lnsXY", + "type": "lens", + "references": [ + { + "type": "index-pattern", + "id": "metrics-*", + "name": "indexpattern-datasource-layer-00a8848b-210f-4c86-a1ad-95137349b3f3" + } + ], + "state": { + "visualization": { + "legend": { + "isVisible": true, + "position": "right" + }, + "valueLabels": "hide", + "fittingFunction": "None", + "axisTitlesVisibilitySettings": { + "x": true, + "yLeft": false, + "yRight": true + }, + "tickLabelsVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "labelsOrientation": { + "x": 0, + "yLeft": 0, + "yRight": 0 + }, + "gridlinesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "preferredSeriesType": "line", + "layers": [ + { + "layerId": "00a8848b-210f-4c86-a1ad-95137349b3f3", + "seriesType": "line", + "xAccessor": "03463cad-b635-4834-a3da-813ba7bab827", + "accessors": [ + "a9845c37-d0a0-4de0-b1cd-0ea77248cc9b", + "83200008-3168-4899-ae9d-928e22c99368", + "d4da2481-486c-4eb4-9df3-af459ea14e47" + ], + "layerType": "data", + "colorMapping": { + "assignments": [], + "specialAssignments": [ + { + "rule": { + "type": "other" + }, + "color": { + "type": "loop" + }, + "touched": false + } + ], + "paletteId": "eui_amsterdam_color_blind", + "colorMode": { + "type": "categorical" + } + } + } + ] + }, + "query": { + "query": "", + "language": "kuery" + }, + "filters": [], + "datasourceStates": { + "formBased": { + "layers": { + "00a8848b-210f-4c86-a1ad-95137349b3f3": { + "columns": { + "03463cad-b635-4834-a3da-813ba7bab827": { + "label": "@timestamp", + "dataType": "date", + "operationType": "date_histogram", + "sourceField": "@timestamp", + "isBucketed": true, + "scale": "interval", + "params": { + "interval": "auto", + "includeEmptyRows": true, + "dropPartials": false + } + }, + "a9845c37-d0a0-4de0-b1cd-0ea77248cc9b": { + "label": "1m", + "dataType": "number", + "operationType": "average", + "sourceField": "panw.system.load_average.1m", + "isBucketed": false, + "scale": "ratio", + "params": { + "emptyAsNull": true + }, + "customLabel": true + }, + "83200008-3168-4899-ae9d-928e22c99368": { + "label": "5m", + "dataType": "number", + "operationType": "average", + "sourceField": "panw.system.load_average.5m", + "isBucketed": false, + "scale": "ratio", + "params": { + "emptyAsNull": true + }, + "customLabel": true + }, + "d4da2481-486c-4eb4-9df3-af459ea14e47": { + "label": "15m", + "dataType": "number", + "operationType": "average", + "sourceField": "panw.system.load_average.15m", + "isBucketed": false, + "scale": "ratio", + "params": { + "emptyAsNull": true + }, + "customLabel": true + } + }, + "columnOrder": [ + "03463cad-b635-4834-a3da-813ba7bab827", + "a9845c37-d0a0-4de0-b1cd-0ea77248cc9b", + "83200008-3168-4899-ae9d-928e22c99368", + "d4da2481-486c-4eb4-9df3-af459ea14e47" + ], + "sampling": 1, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "indexPatternId": "metrics-*" + } + }, + "currentIndexPatternId": "metrics-*" + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "internalReferences": [], + "adHocDataViews": {} + } + }, + "enhancements": {} + }, + "title": "Load Average" + }, + { + "type": "lens", + "gridData": { + "x": 0, + "y": 69, + "w": 24, + "h": 15, + "i": "9b80b46f-f557-4bbb-986d-55cbbeba6f41" + }, + "panelIndex": "9b80b46f-f557-4bbb-986d-55cbbeba6f41", + "embeddableConfig": { + "attributes": { + "title": "", + "visualizationType": "lnsXY", + "type": "lens", + "references": [ + { + "type": "index-pattern", + "id": "metrics-*", + "name": "indexpattern-datasource-layer-00a8848b-210f-4c86-a1ad-95137349b3f3" + } + ], + "state": { + "visualization": { + "legend": { + "isVisible": true, + "position": "right" + }, + "valueLabels": "hide", + "fittingFunction": "None", + "axisTitlesVisibilitySettings": { + "x": true, + "yLeft": false, + "yRight": true + }, + "tickLabelsVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "labelsOrientation": { + "x": 0, + "yLeft": 0, + "yRight": 0 + }, + "gridlinesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "preferredSeriesType": "line", + "layers": [ + { + "layerId": "00a8848b-210f-4c86-a1ad-95137349b3f3", + "seriesType": "line", + "accessors": [ + "6829f673-d42a-4d92-b409-67c280f91e2a" + ], + "layerType": "data", + "xAccessor": "2e445a4b-fb9b-4803-ad5d-361c09414bc1", + "splitAccessor": "392269cb-4dce-4bce-b055-6dd743408d82" + } + ] + }, + "query": { + "query": "", + "language": "kuery" + }, + "filters": [], + "datasourceStates": { + "formBased": { + "layers": { + "00a8848b-210f-4c86-a1ad-95137349b3f3": { + "columns": { + "2e445a4b-fb9b-4803-ad5d-361c09414bc1": { + "label": "@timestamp", + "dataType": "date", + "operationType": "date_histogram", + "sourceField": "@timestamp", + "isBucketed": true, + "scale": "interval", + "params": { + "interval": "auto", + "includeEmptyRows": true, + "dropPartials": false + } + }, + "6829f673-d42a-4d92-b409-67c280f91e2a": { + "label": "RPM", + "dataType": "number", + "operationType": "average", + "sourceField": "panw.system.fan.rpm", + "isBucketed": false, + "scale": "ratio", + "params": { + "emptyAsNull": true + }, + "customLabel": true + }, + "392269cb-4dce-4bce-b055-6dd743408d82": { + "label": "Top 20 values of panw.system.fan.description", + "dataType": "string", + "operationType": "terms", + "scale": "ordinal", + "sourceField": "panw.system.fan.description", + "isBucketed": true, + "params": { + "size": 20, + "orderBy": { + "type": "column", + "columnId": "6829f673-d42a-4d92-b409-67c280f91e2a" + }, + "orderDirection": "desc", + "otherBucket": true, + "missingBucket": false, + "parentFormat": { + "id": "terms" + }, + "include": [], + "exclude": [], + "includeIsRegex": false, + "excludeIsRegex": false, + "secondaryFields": [] + } + } + }, + "columnOrder": [ + "2e445a4b-fb9b-4803-ad5d-361c09414bc1", + "392269cb-4dce-4bce-b055-6dd743408d82", + "6829f673-d42a-4d92-b409-67c280f91e2a" + ], + "sampling": 1, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "indexPatternId": "metrics-*" + } + }, + "currentIndexPatternId": "metrics-*" + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "internalReferences": [], + "adHocDataViews": {} + } + }, + "enhancements": {} + }, + "title": "Fan Speeds" + }, + { + "type": "lens", + "gridData": { + "x": 24, + "y": 69, + "w": 24, + "h": 15, + "i": "fc04865c-a3f1-4437-84be-c86d2b7fedb1" + }, + "panelIndex": "fc04865c-a3f1-4437-84be-c86d2b7fedb1", + "embeddableConfig": { + "attributes": { + "title": "", + "visualizationType": "lnsXY", + "type": "lens", + "references": [ + { + "type": "index-pattern", + "id": "metrics-*", + "name": "indexpattern-datasource-layer-00a8848b-210f-4c86-a1ad-95137349b3f3" + } + ], + "state": { + "visualization": { + "legend": { + "isVisible": true, + "position": "right" + }, + "valueLabels": "hide", + "fittingFunction": "None", + "axisTitlesVisibilitySettings": { + "x": true, + "yLeft": false, + "yRight": true + }, + "tickLabelsVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "labelsOrientation": { + "x": 0, + "yLeft": 0, + "yRight": 0 + }, + "gridlinesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "preferredSeriesType": "area_stacked", + "layers": [ + { + "layerId": "00a8848b-210f-4c86-a1ad-95137349b3f3", + "seriesType": "area_stacked", + "accessors": [ + "6f2837bf-be5e-439e-b73d-a696a2a74c35", + "98438559-e755-4550-8d4b-6769a98060ec", + "4551f32c-2fe3-48af-8dd7-9ac8d5d3372a", + "37b17e66-86d4-4ecb-8cc1-9df1318b2220" + ], + "layerType": "data", + "colorMapping": { + "assignments": [], + "specialAssignments": [ + { + "rule": { + "type": "other" + }, + "color": { + "type": "loop" + }, + "touched": false + } + ], + "paletteId": "eui_amsterdam_color_blind", + "colorMode": { + "type": "categorical" + } + }, + "xAccessor": "2e445a4b-fb9b-4803-ad5d-361c09414bc1" + } + ] + }, + "query": { + "query": "", + "language": "kuery" + }, + "filters": [], + "datasourceStates": { + "formBased": { + "layers": { + "00a8848b-210f-4c86-a1ad-95137349b3f3": { + "columns": { + "2e445a4b-fb9b-4803-ad5d-361c09414bc1": { + "label": "@timestamp", + "dataType": "date", + "operationType": "date_histogram", + "sourceField": "@timestamp", + "isBucketed": true, + "scale": "interval", + "params": { + "interval": "auto", + "includeEmptyRows": true, + "dropPartials": false + } + }, + "6f2837bf-be5e-439e-b73d-a696a2a74c35": { + "label": "Running", + "dataType": "number", + "operationType": "sum", + "sourceField": "panw.system.tasks.running", + "isBucketed": false, + "scale": "ratio", + "params": { + "emptyAsNull": true + }, + "customLabel": true + }, + "98438559-e755-4550-8d4b-6769a98060ec": { + "label": "Sleeping", + "dataType": "number", + "operationType": "sum", + "sourceField": "panw.system.tasks.sleeping", + "isBucketed": false, + "scale": "ratio", + "params": { + "emptyAsNull": true + }, + "customLabel": true + }, + "4551f32c-2fe3-48af-8dd7-9ac8d5d3372a": { + "label": "Stopped", + "dataType": "number", + "operationType": "sum", + "sourceField": "panw.system.tasks.stopped", + "isBucketed": false, + "scale": "ratio", + "params": { + "emptyAsNull": true + }, + "customLabel": true + }, + "37b17e66-86d4-4ecb-8cc1-9df1318b2220": { + "label": "Zombie", + "dataType": "number", + "operationType": "sum", + "sourceField": "panw.system.tasks.zombie", + "isBucketed": false, + "scale": "ratio", + "params": { + "emptyAsNull": true + }, + "customLabel": true + } + }, + "columnOrder": [ + "2e445a4b-fb9b-4803-ad5d-361c09414bc1", + "6f2837bf-be5e-439e-b73d-a696a2a74c35", + "98438559-e755-4550-8d4b-6769a98060ec", + "4551f32c-2fe3-48af-8dd7-9ac8d5d3372a", + "37b17e66-86d4-4ecb-8cc1-9df1318b2220" + ], + "sampling": 1, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "indexPatternId": "metrics-*" + } + }, + "currentIndexPatternId": "metrics-*" + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "internalReferences": [], + "adHocDataViews": {} + } + }, + "enhancements": {} + }, + "title": "Task Counts" + }, + { + "type": "lens", + "gridData": { + "x": 0, + "y": 84, + "w": 24, + "h": 15, + "i": "4934c17f-9ea9-4b39-8c62-75649c86a3de" + }, + "panelIndex": "4934c17f-9ea9-4b39-8c62-75649c86a3de", + "embeddableConfig": { + "attributes": { + "title": "", + "visualizationType": "lnsXY", + "type": "lens", + "references": [ + { + "type": "index-pattern", + "id": "metrics-*", + "name": "indexpattern-datasource-layer-00a8848b-210f-4c86-a1ad-95137349b3f3" + } + ], + "state": { + "visualization": { + "legend": { + "isVisible": true, + "position": "right" + }, + "valueLabels": "hide", + "fittingFunction": "None", + "axisTitlesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "tickLabelsVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "labelsOrientation": { + "x": 0, + "yLeft": 0, + "yRight": 0 + }, + "gridlinesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "preferredSeriesType": "area_stacked", + "layers": [ + { + "layerId": "00a8848b-210f-4c86-a1ad-95137349b3f3", + "seriesType": "area_stacked", + "accessors": [ + "20319fba-4cb0-4c15-a17d-da63bf9163f6", + "78d9f810-ef47-40c1-804e-211d34417a6b", + "2879540e-0c18-4074-8bbe-67a24ff8aa0e" + ], + "layerType": "data", + "xAccessor": "2e445a4b-fb9b-4803-ad5d-361c09414bc1" + } + ] + }, + "query": { + "query": "", + "language": "kuery" + }, + "filters": [], + "datasourceStates": { + "formBased": { + "layers": { + "00a8848b-210f-4c86-a1ad-95137349b3f3": { + "columns": { + "2e445a4b-fb9b-4803-ad5d-361c09414bc1": { + "label": "@timestamp", + "dataType": "date", + "operationType": "date_histogram", + "sourceField": "@timestamp", + "isBucketed": true, + "scale": "interval", + "params": { + "interval": "auto", + "includeEmptyRows": true, + "dropPartials": false + } + }, + "20319fba-4cb0-4c15-a17d-da63bf9163f6": { + "label": "Used", + "dataType": "number", + "operationType": "average", + "sourceField": "panw.system.swap.used", + "isBucketed": false, + "scale": "ratio", + "params": { + "emptyAsNull": true + }, + "customLabel": true + }, + "78d9f810-ef47-40c1-804e-211d34417a6b": { + "label": "Free", + "dataType": "number", + "operationType": "average", + "sourceField": "panw.system.swap.free", + "isBucketed": false, + "scale": "ratio", + "params": { + "emptyAsNull": true + }, + "customLabel": true + }, + "2879540e-0c18-4074-8bbe-67a24ff8aa0e": { + "label": "Available", + "dataType": "number", + "operationType": "average", + "sourceField": "panw.system.swap.available", + "isBucketed": false, + "scale": "ratio", + "params": { + "emptyAsNull": true + }, + "customLabel": true + } + }, + "columnOrder": [ + "2e445a4b-fb9b-4803-ad5d-361c09414bc1", + "20319fba-4cb0-4c15-a17d-da63bf9163f6", + "78d9f810-ef47-40c1-804e-211d34417a6b", + "2879540e-0c18-4074-8bbe-67a24ff8aa0e" + ], + "sampling": 1, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "indexPatternId": "metrics-*" + } + }, + "currentIndexPatternId": "metrics-*" + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "internalReferences": [], + "adHocDataViews": {} + } + }, + "enhancements": {} + }, + "title": "Swap Usage" + }, + { + "type": "lens", + "gridData": { + "x": 24, + "y": 84, + "w": 24, + "h": 15, + "i": "ec50141f-3b75-4100-ae1d-e54056bcdaf8" + }, + "panelIndex": "ec50141f-3b75-4100-ae1d-e54056bcdaf8", + "embeddableConfig": { + "attributes": { + "title": "", + "visualizationType": "lnsXY", + "type": "lens", + "references": [ + { + "type": "index-pattern", + "id": "metrics-*", + "name": "indexpattern-datasource-layer-00a8848b-210f-4c86-a1ad-95137349b3f3" + } + ], + "state": { + "visualization": { + "legend": { + "isVisible": true, + "position": "right" + }, + "valueLabels": "hide", + "fittingFunction": "None", + "axisTitlesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "tickLabelsVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "labelsOrientation": { + "x": 0, + "yLeft": 0, + "yRight": 0 + }, + "gridlinesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "preferredSeriesType": "line", + "layers": [ + { + "layerId": "00a8848b-210f-4c86-a1ad-95137349b3f3", + "seriesType": "line", + "accessors": [ + "6829f673-d42a-4d92-b409-67c280f91e2a" + ], + "layerType": "data", + "xAccessor": "2e445a4b-fb9b-4803-ad5d-361c09414bc1", + "splitAccessor": "ed00b728-f836-450c-b3ee-8afa6df20764" + } + ] + }, + "query": { + "query": "", + "language": "kuery" + }, + "filters": [], + "datasourceStates": { + "formBased": { + "layers": { + "00a8848b-210f-4c86-a1ad-95137349b3f3": { + "columns": { + "2e445a4b-fb9b-4803-ad5d-361c09414bc1": { + "label": "@timestamp", + "dataType": "date", + "operationType": "date_histogram", + "sourceField": "@timestamp", + "isBucketed": true, + "scale": "interval", + "params": { + "interval": "auto", + "includeEmptyRows": true, + "dropPartials": false + } + }, + "6829f673-d42a-4d92-b409-67c280f91e2a": { + "label": "Degrees Celsius", + "dataType": "number", + "operationType": "average", + "sourceField": "panw.system.thermal.degress_celsius", + "isBucketed": false, + "scale": "ratio", + "params": { + "emptyAsNull": true + }, + "customLabel": true + }, + "ed00b728-f836-450c-b3ee-8afa6df20764": { + "label": "Top 20 values of panw.system.thermal.slot_number", + "dataType": "number", + "operationType": "terms", + "scale": "ordinal", + "sourceField": "panw.system.thermal.slot_number", + "isBucketed": true, + "params": { + "size": 20, + "orderBy": { + "type": "column", + "columnId": "6829f673-d42a-4d92-b409-67c280f91e2a" + }, + "orderDirection": "desc", + "otherBucket": true, + "missingBucket": false, + "parentFormat": { + "id": "terms" + }, + "include": [], + "exclude": [], + "includeIsRegex": false, + "excludeIsRegex": false + } + } + }, + "columnOrder": [ + "2e445a4b-fb9b-4803-ad5d-361c09414bc1", + "ed00b728-f836-450c-b3ee-8afa6df20764", + "6829f673-d42a-4d92-b409-67c280f91e2a" + ], + "sampling": 1, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "indexPatternId": "metrics-*" + } + }, + "currentIndexPatternId": "metrics-*" + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "internalReferences": [], + "adHocDataViews": {} + } + }, + "enhancements": {} + }, + "title": "Temperatures" + }, + { + "type": "lens", + "gridData": { + "x": 0, + "y": 9, + "w": 48, + "h": 15, + "i": "574ba0fd-968a-4120-870c-fe6c09d43954" + }, + "panelIndex": "574ba0fd-968a-4120-870c-fe6c09d43954", + "embeddableConfig": { + "attributes": { + "title": "Table Expiration Date & License Serial & Issued Date & Feature & Description", + "references": [ + { + "type": "index-pattern", + "id": "be9eae22dcd9e1e3fb08784154a7180ce151ffd32e741f34fc9c6cc7d93b45a9", + "name": "textBasedLanguages-datasource-layer-5b24cb65-ee0d-4ee6-a730-71a9ed80cd01" + } + ], + "state": { + "datasourceStates": { + "textBased": { + "layers": { + "5b24cb65-ee0d-4ee6-a730-71a9ed80cd01": { + "index": "be9eae22dcd9e1e3fb08784154a7180ce151ffd32e741f34fc9c6cc7d93b45a9", + "query": { + "esql": "FROM metrics-panw_metrics.system-* \n| keep panw.system.license.serial, panw.system.license.expires, panw.system.license.feature, panw.system.license.issued, panw.system.license.description, panw.system.license.expired \n| where panw.system.license.expires is not null \n| stats expiration_date=max(panw.system.license.expires) by panw.system.license.serial, panw.system.license.issued, panw.system.license.feature, panw.system.license.description, panw.system.license.expired \n| sort expiration_date, panw.system.license.expired desc | rename expiration_date as `Expiration Date`, panw.system.license.feature as Feature, panw.system.license.issued as `Issued Date`, panw.system.license.description as Description, panw.system.license.serial as `License Serial`, panw.system.license.expired as Expired" + }, + "columns": [ + { + "columnId": "Expiration Date", + "fieldName": "Expiration Date", + "meta": { + "type": "date", + "esType": "date" + }, + "inMetricDimension": true + }, + { + "columnId": "License Serial", + "fieldName": "License Serial", + "meta": { + "type": "string", + "esType": "keyword" + }, + "inMetricDimension": true + }, + { + "columnId": "Issued Date", + "fieldName": "Issued Date", + "meta": { + "type": "date", + "esType": "date" + }, + "inMetricDimension": true + }, + { + "columnId": "Feature", + "fieldName": "Feature", + "meta": { + "type": "string", + "esType": "keyword" + }, + "inMetricDimension": true + }, + { + "columnId": "Description", + "fieldName": "Description", + "meta": { + "type": "string", + "esType": "keyword" + }, + "inMetricDimension": true + }, + { + "columnId": "f1fc73e6-7f8f-4768-980f-4aa68e580b23", + "fieldName": "Expired", + "meta": { + "type": "boolean", + "esType": "boolean" + } + } + ], + "timeField": "@timestamp" + } + }, + "indexPatternRefs": [ + { + "id": "be9eae22dcd9e1e3fb08784154a7180ce151ffd32e741f34fc9c6cc7d93b45a9", + "title": "metrics-panw_metrics.system-*", + "timeField": "@timestamp" + } + ] + } + }, + "filters": [], + "query": { + "esql": "FROM metrics-panw_metrics.system-* \n| keep panw.system.license.serial, panw.system.license.expires, panw.system.license.feature, panw.system.license.issued, panw.system.license.description, panw.system.license.expired \n| where panw.system.license.expires is not null \n| stats expiration_date=max(panw.system.license.expires) by panw.system.license.serial, panw.system.license.issued, panw.system.license.feature, panw.system.license.description, panw.system.license.expired \n| sort expiration_date, panw.system.license.expired desc | rename expiration_date as `Expiration Date`, panw.system.license.feature as Feature, panw.system.license.issued as `Issued Date`, panw.system.license.description as Description, panw.system.license.serial as `License Serial`, panw.system.license.expired as Expired" + }, + "visualization": { + "layerId": "5b24cb65-ee0d-4ee6-a730-71a9ed80cd01", + "layerType": "data", + "columns": [ + { + "columnId": "Expiration Date" + }, + { + "columnId": "License Serial" + }, + { + "columnId": "Issued Date" + }, + { + "columnId": "Feature" + }, + { + "columnId": "Description" + }, + { + "columnId": "f1fc73e6-7f8f-4768-980f-4aa68e580b23", + "isTransposed": false, + "isMetric": true + } + ] + }, + "adHocDataViews": { + "be9eae22dcd9e1e3fb08784154a7180ce151ffd32e741f34fc9c6cc7d93b45a9": { + "id": "be9eae22dcd9e1e3fb08784154a7180ce151ffd32e741f34fc9c6cc7d93b45a9", + "title": "metrics-panw_metrics.system-*", + "timeFieldName": "@timestamp", + "sourceFilters": [], + "type": "esql", + "fieldFormats": {}, + "runtimeFieldMap": {}, + "allowNoIndex": false, + "name": "metrics-panw_metrics.system-*", + "allowHidden": false + } + } + }, + "visualizationType": "lnsDatatable", + "type": "lens" + }, + "disabledActions": [ + "OPEN_FLYOUT_ADD_DRILLDOWN" + ], + "enhancements": {} + }, + "title": "License Expiration Overview" + }, + { + "type": "lens", + "gridData": { + "x": 0, + "y": 24, + "w": 48, + "h": 15, + "i": "b4944bcf-e6d0-4be4-832e-8d80d711dd1b" + }, + "panelIndex": "b4944bcf-e6d0-4be4-832e-8d80d711dd1b", + "embeddableConfig": { + "attributes": { + "title": "Table Expiration Date & Certificate Serial No & Issuer & Name & Status", + "references": [], + "state": { + "datasourceStates": { + "textBased": { + "layers": { + "167827f3-403e-4ae5-8f6e-d84a16d83474": { + "index": "be9eae22dcd9e1e3fb08784154a7180ce151ffd32e741f34fc9c6cc7d93b45a9", + "query": { + "esql": "FROM metrics-panw_metrics.system-* \n| keep panw.system.certificate.db_serial_no, panw.system.certificate.db_exp_date, panw.system.certificate.name, panw.system.certificate.issuer, panw.system.certificate.db_status \n| where panw.system.certificate.db_exp_date is not null \n| eval extracted_date = substring(panw.system.certificate.db_exp_date, 1, 13)\n| eval expiration_date = date_parse( \"yyMMddHHmmssz\", extracted_date)\n| stats expiration_date=max(expiration_date) by panw.system.certificate.db_serial_no, panw.system.certificate.issuer, panw.system.certificate.name, panw.system.certificate.db_status \n| sort expiration_date desc \n| rename expiration_date as `Expiration Date`, panw.system.certificate.name as Name, panw.system.certificate.issuer as Issuer, panw.system.certificate.db_status as Status, panw.system.certificate.db_serial_no as `Certificate Serial No`" + }, + "columns": [ + { + "columnId": "Expiration Date", + "fieldName": "Expiration Date", + "meta": { + "type": "date", + "esType": "date" + }, + "inMetricDimension": true + }, + { + "columnId": "Certificate Serial No", + "fieldName": "Certificate Serial No", + "meta": { + "type": "string", + "esType": "keyword" + }, + "inMetricDimension": true + }, + { + "columnId": "Issuer", + "fieldName": "Issuer", + "meta": { + "type": "string", + "esType": "keyword" + }, + "inMetricDimension": true + }, + { + "columnId": "Name", + "fieldName": "Name", + "meta": { + "type": "string", + "esType": "keyword" + }, + "inMetricDimension": true + }, + { + "columnId": "Status", + "fieldName": "Status", + "meta": { + "type": "string", + "esType": "keyword" + }, + "inMetricDimension": true + } + ], + "timeField": "@timestamp" + } + }, + "indexPatternRefs": [ + { + "id": "be9eae22dcd9e1e3fb08784154a7180ce151ffd32e741f34fc9c6cc7d93b45a9", + "title": "metrics-panw_metrics.system-*", + "timeField": "@timestamp" + } + ] + } + }, + "filters": [], + "query": { + "esql": "FROM metrics-panw_metrics.system-* \n| keep panw.system.certificate.db_serial_no, panw.system.certificate.db_exp_date, panw.system.certificate.name, panw.system.certificate.issuer, panw.system.certificate.db_status \n| where panw.system.certificate.db_exp_date is not null \n| eval extracted_date = substring(panw.system.certificate.db_exp_date, 1, 13)\n| eval expiration_date = date_parse( \"yyMMddHHmmssz\", extracted_date)\n| stats expiration_date=max(expiration_date) by panw.system.certificate.db_serial_no, panw.system.certificate.issuer, panw.system.certificate.name, panw.system.certificate.db_status \n| sort expiration_date desc \n| rename expiration_date as `Expiration Date`, panw.system.certificate.name as Name, panw.system.certificate.issuer as Issuer, panw.system.certificate.db_status as Status, panw.system.certificate.db_serial_no as `Certificate Serial No`" + }, + "visualization": { + "layerId": "167827f3-403e-4ae5-8f6e-d84a16d83474", + "layerType": "data", + "columns": [ + { + "columnId": "Expiration Date" + }, + { + "columnId": "Certificate Serial No" + }, + { + "columnId": "Issuer" + }, + { + "columnId": "Name" + }, + { + "columnId": "Status" + } + ] + }, + "adHocDataViews": { + "be9eae22dcd9e1e3fb08784154a7180ce151ffd32e741f34fc9c6cc7d93b45a9": { + "id": "be9eae22dcd9e1e3fb08784154a7180ce151ffd32e741f34fc9c6cc7d93b45a9", + "title": "metrics-panw_metrics.system-*", + "timeFieldName": "@timestamp", + "sourceFilters": [], + "type": "esql", + "fieldFormats": {}, + "runtimeFieldMap": {}, + "allowNoIndex": false, + "name": "metrics-panw_metrics.system-*", + "allowHidden": false + } + } + }, + "visualizationType": "lnsDatatable", + "type": "lens" + }, + "disabledActions": [ + "OPEN_FLYOUT_ADD_DRILLDOWN" + ], + "enhancements": {} + }, + "title": "Certificate Expiration Overview" + } + ], + "title": "[Metrics Palo Alto Networks] System Overview" + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern", + "id": "metrics-*" + }, + { + "type": "index-pattern", + "id": "metrics-*", + "name": "767546ef-09a1-4c05-b02e-8ef2c300d41f:indexpattern-datasource-layer-00a8848b-210f-4c86-a1ad-95137349b3f3" + }, + { + "type": "index-pattern", + "id": "metrics-*", + "name": "fda46c9a-7ed2-40b4-90ff-15f4cfb57569:indexpattern-datasource-layer-00a8848b-210f-4c86-a1ad-95137349b3f3" + }, + { + "type": "index-pattern", + "id": "metrics-*", + "name": "cbb5bf61-f6b2-4725-8277-e6f706908148:indexpattern-datasource-layer-00a8848b-210f-4c86-a1ad-95137349b3f3" + }, + { + "type": "index-pattern", + "id": "metrics-*", + "name": "d283871e-a074-435b-83fc-98d7362bfbcb:indexpattern-datasource-layer-00a8848b-210f-4c86-a1ad-95137349b3f3" + }, + { + "type": "index-pattern", + "id": "metrics-*", + "name": "47ea82ea-d8d0-430a-b0ac-ac0a7bb5d2e6:indexpattern-datasource-layer-00a8848b-210f-4c86-a1ad-95137349b3f3" + }, + { + "type": "index-pattern", + "id": "metrics-*", + "name": "adcfdaf9-4ae3-4a6b-b23d-8c6eb2bccb36:indexpattern-datasource-layer-00a8848b-210f-4c86-a1ad-95137349b3f3" + }, + { + "type": "index-pattern", + "id": "metrics-*", + "name": "d8f9310d-7c03-42e4-8444-5d04aa453654:indexpattern-datasource-layer-00a8848b-210f-4c86-a1ad-95137349b3f3" + }, + { + "type": "index-pattern", + "id": "metrics-*", + "name": "9b80b46f-f557-4bbb-986d-55cbbeba6f41:indexpattern-datasource-layer-00a8848b-210f-4c86-a1ad-95137349b3f3" + }, + { + "type": "index-pattern", + "id": "metrics-*", + "name": "fc04865c-a3f1-4437-84be-c86d2b7fedb1:indexpattern-datasource-layer-00a8848b-210f-4c86-a1ad-95137349b3f3" + }, + { + "type": "index-pattern", + "id": "metrics-*", + "name": "4934c17f-9ea9-4b39-8c62-75649c86a3de:indexpattern-datasource-layer-00a8848b-210f-4c86-a1ad-95137349b3f3" + }, + { + "type": "index-pattern", + "id": "metrics-*", + "name": "ec50141f-3b75-4100-ae1d-e54056bcdaf8:indexpattern-datasource-layer-00a8848b-210f-4c86-a1ad-95137349b3f3" + }, + { + "type": "index-pattern", + "id": "be9eae22dcd9e1e3fb08784154a7180ce151ffd32e741f34fc9c6cc7d93b45a9", + "name": "574ba0fd-968a-4120-870c-fe6c09d43954:textBasedLanguages-datasource-layer-5b24cb65-ee0d-4ee6-a730-71a9ed80cd01" + } + ], + "managed": true, + "coreMigrationVersion": "8.8.0", + "typeMigrationVersion": "10.2.0" +} \ No newline at end of file diff --git a/packages/panw_metrics/kibana/dashboard/panw_metrics-5621b556-9010-4883-a339-4aa6a0b4bd74.json b/packages/panw_metrics/kibana/dashboard/panw_metrics-5621b556-9010-4883-a339-4aa6a0b4bd74.json new file mode 100644 index 00000000000..f132934f554 --- /dev/null +++ b/packages/panw_metrics/kibana/dashboard/panw_metrics-5621b556-9010-4883-a339-4aa6a0b4bd74.json @@ -0,0 +1,1655 @@ +{ + "attributes": { + "controlGroupInput": { + "chainingSystem": "HIERARCHICAL", + "controlStyle": "oneLine", + "ignoreParentSettingsJSON": { + "ignoreFilters": false, + "ignoreQuery": false, + "ignoreTimerange": false, + "ignoreValidations": false + }, + "panelsJSON": { + "029b6c39-8488-45f1-958a-6b976dc740da": { + "explicitInput": { + "enhancements": {}, + "fieldName": "panw.vpn.globalprotect.session.username", + "grow": false, + "id": "029b6c39-8488-45f1-958a-6b976dc740da", + "searchTechnique": "prefix", + "title": "Session Username", + "width": "medium" + }, + "grow": false, + "order": 2, + "type": "optionsListControl", + "width": "medium" + }, + "47d14afc-2c72-41fa-bbb0-fd50a0e01302": { + "explicitInput": { + "enhancements": {}, + "fieldName": "panw.vpn.globalprotect.gateway.name", + "grow": false, + "id": "47d14afc-2c72-41fa-bbb0-fd50a0e01302", + "searchTechnique": "prefix", + "title": "Gateway Name", + "width": "medium" + }, + "grow": false, + "order": 0, + "type": "optionsListControl", + "width": "medium" + }, + "fcea636d-4696-4efa-95c7-29381e7a62a6": { + "explicitInput": { + "enhancements": {}, + "fieldName": "panw.vpn.globalprotect.session.computer", + "grow": false, + "id": "fcea636d-4696-4efa-95c7-29381e7a62a6", + "searchTechnique": "prefix", + "title": "Session Computer", + "width": "medium" + }, + "grow": false, + "order": 1, + "type": "optionsListControl", + "width": "medium" + } + }, + "showApplySelections": false + }, + "description": "Overview of Palo Alto Networks VPN metrics", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [ + { + "$state": { + "store": "appState" + }, + "meta": { + "alias": null, + "disabled": false, + "field": "data_stream.dataset", + "indexRefName": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "key": "data_stream.dataset", + "negate": false, + "params": { + "query": "panw_metrics.vpn" + }, + "type": "phrase" + }, + "query": { + "match_phrase": { + "data_stream.dataset": "panw_metrics.vpn" + } + } + } + ], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "optionsJSON": { + "hidePanelTitles": false, + "syncColors": false, + "syncCursor": true, + "syncTooltips": false, + "useMargins": true + }, + "panelsJSON": [ + { + "embeddableConfig": { + "attributes": { + "references": [ + { + "id": "metrics-*", + "name": "indexpattern-datasource-layer-8ef36681-8e92-48de-80a5-c05bb48886b9", + "type": "index-pattern" + } + ], + "state": { + "adHocDataViews": {}, + "datasourceStates": { + "formBased": { + "currentIndexPatternId": "metrics-*", + "layers": { + "8ef36681-8e92-48de-80a5-c05bb48886b9": { + "columnOrder": [ + "207ac45a-7b42-4974-a24f-516a776fc403" + ], + "columns": { + "207ac45a-7b42-4974-a24f-516a776fc403": { + "customLabel": true, + "dataType": "number", + "filter": { + "language": "kuery", + "query": "\"panw.vpn.globalprotect.total_previous_users\": *" + }, + "isBucketed": false, + "label": "Total Previous Users", + "operationType": "last_value", + "params": { + "sortField": "@timestamp" + }, + "scale": "ratio", + "sourceField": "panw.vpn.globalprotect.total_previous_users" + } + }, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "indexPatternId": "metrics-*", + "sampling": 1 + } + } + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "filters": [], + "internalReferences": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "layerId": "8ef36681-8e92-48de-80a5-c05bb48886b9", + "layerType": "data", + "metricAccessor": "207ac45a-7b42-4974-a24f-516a776fc403", + "palette": { + "name": "status", + "params": { + "colorStops": [], + "continuity": "all", + "maxSteps": 5, + "name": "status", + "progression": "fixed", + "rangeMax": null, + "rangeMin": null, + "rangeType": "number", + "reverse": false, + "steps": 3, + "stops": [ + { + "color": "#209280", + "stop": 1728000 + }, + { + "color": "#d6bf57", + "stop": 3456000 + }, + { + "color": "#cc5642", + "stop": 5184000 + } + ] + }, + "type": "palette" + } + } + }, + "title": "", + "type": "lens", + "visualizationType": "lnsMetric" + }, + "enhancements": {} + }, + "gridData": { + "h": 8, + "i": "06adc250-b2eb-4118-8efe-6d63ff1fafea", + "w": 16, + "x": 0, + "y": 0 + }, + "panelIndex": "06adc250-b2eb-4118-8efe-6d63ff1fafea", + "title": "", + "type": "lens" + }, + { + "embeddableConfig": { + "attributes": { + "references": [ + { + "id": "metrics-*", + "name": "indexpattern-datasource-layer-8ef36681-8e92-48de-80a5-c05bb48886b9", + "type": "index-pattern" + } + ], + "state": { + "adHocDataViews": {}, + "datasourceStates": { + "formBased": { + "currentIndexPatternId": "metrics-*", + "layers": { + "8ef36681-8e92-48de-80a5-c05bb48886b9": { + "columnOrder": [ + "207ac45a-7b42-4974-a24f-516a776fc403" + ], + "columns": { + "207ac45a-7b42-4974-a24f-516a776fc403": { + "customLabel": true, + "dataType": "number", + "filter": { + "language": "kuery", + "query": "\"panw.vpn.globalprotect.total_current_users\": *" + }, + "isBucketed": false, + "label": "Total Current Users", + "operationType": "last_value", + "params": { + "sortField": "@timestamp" + }, + "scale": "ratio", + "sourceField": "panw.vpn.globalprotect.total_current_users" + } + }, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "indexPatternId": "metrics-*", + "sampling": 1 + } + } + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "filters": [], + "internalReferences": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "layerId": "8ef36681-8e92-48de-80a5-c05bb48886b9", + "layerType": "data", + "metricAccessor": "207ac45a-7b42-4974-a24f-516a776fc403", + "palette": { + "name": "status", + "params": { + "colorStops": [], + "continuity": "all", + "maxSteps": 5, + "name": "status", + "progression": "fixed", + "rangeMax": null, + "rangeMin": null, + "rangeType": "number", + "reverse": false, + "steps": 3, + "stops": [ + { + "color": "#209280", + "stop": 0.66 + }, + { + "color": "#d6bf57", + "stop": 1.33 + }, + { + "color": "#cc5642", + "stop": 2 + } + ] + }, + "type": "palette" + } + } + }, + "title": "", + "type": "lens", + "visualizationType": "lnsMetric" + }, + "enhancements": {} + }, + "gridData": { + "h": 8, + "i": "523562a5-66d0-4a95-b069-52ea8417d298", + "w": 16, + "x": 16, + "y": 0 + }, + "panelIndex": "523562a5-66d0-4a95-b069-52ea8417d298", + "title": "", + "type": "lens" + }, + { + "embeddableConfig": { + "attributes": { + "references": [ + { + "id": "metrics-*", + "name": "indexpattern-datasource-layer-8ef36681-8e92-48de-80a5-c05bb48886b9", + "type": "index-pattern" + } + ], + "state": { + "adHocDataViews": {}, + "datasourceStates": { + "formBased": { + "currentIndexPatternId": "metrics-*", + "layers": { + "8ef36681-8e92-48de-80a5-c05bb48886b9": { + "columnOrder": [ + "207ac45a-7b42-4974-a24f-516a776fc403" + ], + "columns": { + "207ac45a-7b42-4974-a24f-516a776fc403": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Average Session Lifetime", + "operationType": "average", + "params": { + "emptyAsNull": true + }, + "scale": "ratio", + "sourceField": "panw.vpn.globalprotect.session.lifetime" + } + }, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "indexPatternId": "metrics-*", + "sampling": 1 + } + } + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "filters": [], + "internalReferences": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "layerId": "8ef36681-8e92-48de-80a5-c05bb48886b9", + "layerType": "data", + "metricAccessor": "207ac45a-7b42-4974-a24f-516a776fc403", + "palette": { + "name": "status", + "params": { + "colorStops": [], + "continuity": "all", + "maxSteps": 5, + "name": "status", + "progression": "fixed", + "rangeMax": null, + "rangeMin": null, + "rangeType": "number", + "reverse": false, + "steps": 3, + "stops": [ + { + "color": "#209280", + "stop": 1728000 + }, + { + "color": "#d6bf57", + "stop": 3456000 + }, + { + "color": "#cc5642", + "stop": 5184000 + } + ] + }, + "type": "palette" + } + } + }, + "title": "", + "type": "lens", + "visualizationType": "lnsMetric" + }, + "enhancements": {} + }, + "gridData": { + "h": 8, + "i": "7108ed3a-faa0-4332-bb69-216d346ae231", + "w": 16, + "x": 32, + "y": 0 + }, + "panelIndex": "7108ed3a-faa0-4332-bb69-216d346ae231", + "title": "", + "type": "lens" + }, + { + "embeddableConfig": { + "attributes": { + "references": [ + { + "id": "metrics-*", + "name": "indexpattern-datasource-layer-8ef36681-8e92-48de-80a5-c05bb48886b9", + "type": "index-pattern" + } + ], + "state": { + "adHocDataViews": {}, + "datasourceStates": { + "formBased": { + "currentIndexPatternId": "metrics-*", + "layers": { + "8ef36681-8e92-48de-80a5-c05bb48886b9": { + "columnOrder": [ + "54bf754e-6b46-4e61-9fce-8f43e828179d", + "37ad867b-3486-44f0-9105-e6d6bf2bb78d" + ], + "columns": { + "37ad867b-3486-44f0-9105-e6d6bf2bb78d": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Total Current Users", + "operationType": "max", + "params": { + "emptyAsNull": true + }, + "scale": "ratio", + "sourceField": "panw.vpn.globalprotect.total_current_users" + }, + "54bf754e-6b46-4e61-9fce-8f43e828179d": { + "dataType": "date", + "isBucketed": true, + "label": "@timestamp", + "operationType": "date_histogram", + "params": { + "dropPartials": false, + "includeEmptyRows": true, + "interval": "auto" + }, + "scale": "interval", + "sourceField": "@timestamp" + } + }, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "indexPatternId": "metrics-*", + "sampling": 1 + } + } + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "filters": [], + "internalReferences": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "axisTitlesVisibilitySettings": { + "x": true, + "yLeft": false, + "yRight": true + }, + "layers": [ + { + "accessors": [ + "37ad867b-3486-44f0-9105-e6d6bf2bb78d" + ], + "layerId": "8ef36681-8e92-48de-80a5-c05bb48886b9", + "layerType": "data", + "position": "top", + "seriesType": "line", + "showGridlines": false, + "xAccessor": "54bf754e-6b46-4e61-9fce-8f43e828179d" + } + ], + "legend": { + "isVisible": true, + "position": "right" + }, + "preferredSeriesType": "line", + "title": "Empty XY chart", + "valueLabels": "hide" + } + }, + "title": "", + "type": "lens", + "visualizationType": "lnsXY" + }, + "enhancements": {} + }, + "gridData": { + "h": 15, + "i": "430ff68c-0867-4d4d-be7f-403bf6e70600", + "w": 24, + "x": 0, + "y": 23 + }, + "panelIndex": "430ff68c-0867-4d4d-be7f-403bf6e70600", + "title": "Total Current Users", + "type": "lens" + }, + { + "embeddableConfig": { + "attributes": { + "references": [ + { + "id": "metrics-*", + "name": "indexpattern-datasource-layer-8ef36681-8e92-48de-80a5-c05bb48886b9", + "type": "index-pattern" + } + ], + "state": { + "adHocDataViews": {}, + "datasourceStates": { + "formBased": { + "currentIndexPatternId": "metrics-*", + "layers": { + "8ef36681-8e92-48de-80a5-c05bb48886b9": { + "columnOrder": [ + "7bcfd0ea-2bd1-4fcb-b460-ad68aaa74e3a", + "207ac45a-7b42-4974-a24f-516a776fc403" + ], + "columns": { + "207ac45a-7b42-4974-a24f-516a776fc403": { + "dataType": "number", + "isBucketed": false, + "label": "Average of panw.vpn.globalprotect.session.lifetime", + "operationType": "average", + "params": { + "emptyAsNull": true, + "format": { + "id": "duration", + "params": { + "decimals": 0 + } + } + }, + "scale": "ratio", + "sourceField": "panw.vpn.globalprotect.session.lifetime" + }, + "7bcfd0ea-2bd1-4fcb-b460-ad68aaa74e3a": { + "dataType": "date", + "isBucketed": true, + "label": "@timestamp", + "operationType": "date_histogram", + "params": { + "dropPartials": false, + "includeEmptyRows": true, + "interval": "auto" + }, + "scale": "interval", + "sourceField": "@timestamp" + } + }, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "indexPatternId": "metrics-*", + "sampling": 1 + } + } + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "filters": [], + "internalReferences": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "axisTitlesVisibilitySettings": { + "x": true, + "yLeft": false, + "yRight": true + }, + "fittingFunction": "None", + "gridlinesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "labelsOrientation": { + "x": 0, + "yLeft": 0, + "yRight": 0 + }, + "layers": [ + { + "accessors": [ + "207ac45a-7b42-4974-a24f-516a776fc403" + ], + "layerId": "8ef36681-8e92-48de-80a5-c05bb48886b9", + "layerType": "data", + "position": "top", + "seriesType": "line", + "showGridlines": false, + "xAccessor": "7bcfd0ea-2bd1-4fcb-b460-ad68aaa74e3a" + } + ], + "legend": { + "isVisible": true, + "position": "right" + }, + "preferredSeriesType": "line", + "tickLabelsVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "valueLabels": "hide" + } + }, + "title": "", + "type": "lens", + "visualizationType": "lnsXY" + }, + "enhancements": {} + }, + "gridData": { + "h": 15, + "i": "d447283f-18c1-414e-9fd8-35bd28959317", + "w": 24, + "x": 24, + "y": 23 + }, + "panelIndex": "d447283f-18c1-414e-9fd8-35bd28959317", + "title": "Average Session Lifetime", + "type": "lens" + }, + { + "embeddableConfig": { + "attributes": { + "references": [ + { + "id": "metrics-*", + "name": "indexpattern-datasource-layer-8ef36681-8e92-48de-80a5-c05bb48886b9", + "type": "index-pattern" + } + ], + "state": { + "adHocDataViews": {}, + "datasourceStates": { + "formBased": { + "currentIndexPatternId": "metrics-*", + "layers": { + "8ef36681-8e92-48de-80a5-c05bb48886b9": { + "columnOrder": [ + "8b48330c-647b-4e3d-9b90-b5034ce6cabc", + "a59ccbf8-4594-485d-bd11-29b3c5d57cb1", + "01c9e5dd-345d-4755-a45a-163c921e1312" + ], + "columns": { + "01c9e5dd-345d-4755-a45a-163c921e1312": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Session", + "operationType": "unique_count", + "params": { + "emptyAsNull": true + }, + "scale": "ratio", + "sourceField": "panw.vpn.globalprotect.session.host_id" + }, + "8b48330c-647b-4e3d-9b90-b5034ce6cabc": { + "dataType": "date", + "isBucketed": true, + "label": "@timestamp", + "operationType": "date_histogram", + "params": { + "dropPartials": false, + "includeEmptyRows": true, + "interval": "auto" + }, + "scale": "interval", + "sourceField": "@timestamp" + }, + "a59ccbf8-4594-485d-bd11-29b3c5d57cb1": { + "dataType": "string", + "isBucketed": true, + "label": "Top 20 values of panw.vpn.globalprotect.session.vpn_type", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "01c9e5dd-345d-4755-a45a-163c921e1312", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.vpn.globalprotect.session.vpn_type" + } + }, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "indexPatternId": "metrics-*", + "sampling": 1 + } + } + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "filters": [], + "internalReferences": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "axisTitlesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "layers": [ + { + "accessors": [ + "01c9e5dd-345d-4755-a45a-163c921e1312" + ], + "layerId": "8ef36681-8e92-48de-80a5-c05bb48886b9", + "layerType": "data", + "position": "top", + "seriesType": "bar_stacked", + "showGridlines": false, + "splitAccessor": "a59ccbf8-4594-485d-bd11-29b3c5d57cb1", + "xAccessor": "8b48330c-647b-4e3d-9b90-b5034ce6cabc" + } + ], + "legend": { + "isVisible": true, + "position": "right" + }, + "preferredSeriesType": "bar_stacked", + "title": "Empty XY chart", + "valueLabels": "hide" + } + }, + "title": "", + "type": "lens", + "visualizationType": "lnsXY" + }, + "enhancements": {} + }, + "gridData": { + "h": 15, + "i": "f037e251-ac98-4f5d-8c9a-081454904801", + "w": 24, + "x": 0, + "y": 38 + }, + "panelIndex": "f037e251-ac98-4f5d-8c9a-081454904801", + "title": "Sessions by VPN Type", + "type": "lens" + }, + { + "embeddableConfig": { + "attributes": { + "references": [ + { + "id": "metrics-*", + "name": "indexpattern-datasource-layer-8ef36681-8e92-48de-80a5-c05bb48886b9", + "type": "index-pattern" + } + ], + "state": { + "adHocDataViews": {}, + "datasourceStates": { + "formBased": { + "currentIndexPatternId": "metrics-*", + "layers": { + "8ef36681-8e92-48de-80a5-c05bb48886b9": { + "columnOrder": [ + "8b48330c-647b-4e3d-9b90-b5034ce6cabc", + "a59ccbf8-4594-485d-bd11-29b3c5d57cb1", + "01c9e5dd-345d-4755-a45a-163c921e1312" + ], + "columns": { + "01c9e5dd-345d-4755-a45a-163c921e1312": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Session", + "operationType": "unique_count", + "params": { + "emptyAsNull": true + }, + "scale": "ratio", + "sourceField": "panw.vpn.globalprotect.session.host_id" + }, + "8b48330c-647b-4e3d-9b90-b5034ce6cabc": { + "dataType": "date", + "isBucketed": true, + "label": "@timestamp", + "operationType": "date_histogram", + "params": { + "dropPartials": false, + "includeEmptyRows": true, + "interval": "auto" + }, + "scale": "interval", + "sourceField": "@timestamp" + }, + "a59ccbf8-4594-485d-bd11-29b3c5d57cb1": { + "dataType": "string", + "isBucketed": true, + "label": "Top 20 values of panw.vpn.globalprotect.session.source_region", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "01c9e5dd-345d-4755-a45a-163c921e1312", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "secondaryFields": [], + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.vpn.globalprotect.session.source_region" + } + }, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "indexPatternId": "metrics-*", + "sampling": 1 + } + } + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "filters": [], + "internalReferences": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "axisTitlesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "layers": [ + { + "accessors": [ + "01c9e5dd-345d-4755-a45a-163c921e1312" + ], + "layerId": "8ef36681-8e92-48de-80a5-c05bb48886b9", + "layerType": "data", + "position": "top", + "seriesType": "bar_stacked", + "showGridlines": false, + "splitAccessor": "a59ccbf8-4594-485d-bd11-29b3c5d57cb1", + "xAccessor": "8b48330c-647b-4e3d-9b90-b5034ce6cabc" + } + ], + "legend": { + "isVisible": true, + "position": "right" + }, + "preferredSeriesType": "bar_stacked", + "title": "Empty XY chart", + "valueLabels": "hide" + } + }, + "title": "", + "type": "lens", + "visualizationType": "lnsXY" + }, + "enhancements": {} + }, + "gridData": { + "h": 15, + "i": "08826163-7851-47c2-8cc7-5850b90284d1", + "w": 24, + "x": 24, + "y": 38 + }, + "panelIndex": "08826163-7851-47c2-8cc7-5850b90284d1", + "title": "Sessions by Region", + "type": "lens" + }, + { + "embeddableConfig": { + "attributes": { + "references": [ + { + "id": "metrics-*", + "name": "indexpattern-datasource-layer-8ef36681-8e92-48de-80a5-c05bb48886b9", + "type": "index-pattern" + } + ], + "state": { + "adHocDataViews": {}, + "datasourceStates": { + "formBased": { + "currentIndexPatternId": "metrics-*", + "layers": { + "8ef36681-8e92-48de-80a5-c05bb48886b9": { + "columnOrder": [ + "5f2f5087-bb01-472b-a804-24e47bd1218c", + "343c690a-fc92-4048-865d-cb2f82f86738" + ], + "columns": { + "343c690a-fc92-4048-865d-cb2f82f86738": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Count", + "operationType": "unique_count", + "params": { + "emptyAsNull": true + }, + "scale": "ratio", + "sourceField": "panw.vpn.globalprotect.session.username" + }, + "5f2f5087-bb01-472b-a804-24e47bd1218c": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Username", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "343c690a-fc92-4048-865d-cb2f82f86738", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.vpn.globalprotect.session.username" + } + }, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "indexPatternId": "metrics-*", + "sampling": 1 + } + } + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "filters": [], + "internalReferences": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "axisTitlesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "fittingFunction": "None", + "gridlinesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "labelsOrientation": { + "x": 0, + "yLeft": 0, + "yRight": 0 + }, + "layers": [ + { + "accessors": [ + "343c690a-fc92-4048-865d-cb2f82f86738" + ], + "colorMapping": { + "assignments": [], + "colorMode": { + "type": "categorical" + }, + "paletteId": "eui_amsterdam_color_blind", + "specialAssignments": [ + { + "color": { + "type": "loop" + }, + "rule": { + "type": "other" + }, + "touched": false + } + ] + }, + "layerId": "8ef36681-8e92-48de-80a5-c05bb48886b9", + "layerType": "data", + "position": "top", + "seriesType": "bar_horizontal", + "showGridlines": false, + "xAccessor": "5f2f5087-bb01-472b-a804-24e47bd1218c" + } + ], + "legend": { + "isVisible": true, + "position": "right" + }, + "preferredSeriesType": "bar_horizontal", + "tickLabelsVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "valueLabels": "hide" + } + }, + "title": "", + "type": "lens", + "visualizationType": "lnsXY" + }, + "enhancements": {} + }, + "gridData": { + "h": 15, + "i": "719549c8-0cec-43fe-a66c-ab013f9f89a4", + "w": 24, + "x": 0, + "y": 53 + }, + "panelIndex": "719549c8-0cec-43fe-a66c-ab013f9f89a4", + "title": "Active Sessions by Username", + "type": "lens" + }, + { + "embeddableConfig": { + "attributes": { + "references": [ + { + "id": "metrics-*", + "name": "indexpattern-datasource-layer-8ef36681-8e92-48de-80a5-c05bb48886b9", + "type": "index-pattern" + } + ], + "state": { + "adHocDataViews": {}, + "datasourceStates": { + "formBased": { + "currentIndexPatternId": "metrics-*", + "layers": { + "8ef36681-8e92-48de-80a5-c05bb48886b9": { + "columnOrder": [ + "240a37e5-fc16-4273-8d23-364c72d02eca", + "3f65df4a-9c15-4583-a6be-275fe06bff21", + "01c9e5dd-345d-4755-a45a-163c921e1312" + ], + "columns": { + "01c9e5dd-345d-4755-a45a-163c921e1312": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Current Users", + "operationType": "max", + "params": { + "emptyAsNull": true + }, + "scale": "ratio", + "sourceField": "panw.vpn.globalprotect.gateway.current_users" + }, + "240a37e5-fc16-4273-8d23-364c72d02eca": { + "dataType": "string", + "isBucketed": true, + "label": "Top 20 values of panw.vpn.globalprotect.gateway.name", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "01c9e5dd-345d-4755-a45a-163c921e1312", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.vpn.globalprotect.gateway.name" + }, + "3f65df4a-9c15-4583-a6be-275fe06bff21": { + "dataType": "date", + "isBucketed": true, + "label": "@timestamp", + "operationType": "date_histogram", + "params": { + "dropPartials": false, + "includeEmptyRows": true, + "interval": "auto" + }, + "scale": "interval", + "sourceField": "@timestamp" + } + }, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "indexPatternId": "metrics-*", + "sampling": 1 + } + } + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "filters": [], + "internalReferences": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "axisTitlesVisibilitySettings": { + "x": false, + "yLeft": true, + "yRight": true + }, + "fittingFunction": "None", + "gridlinesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "labelsOrientation": { + "x": 0, + "yLeft": 0, + "yRight": 0 + }, + "layers": [ + { + "accessors": [ + "01c9e5dd-345d-4755-a45a-163c921e1312" + ], + "colorMapping": { + "assignments": [], + "colorMode": { + "type": "categorical" + }, + "paletteId": "eui_amsterdam_color_blind", + "specialAssignments": [ + { + "color": { + "type": "loop" + }, + "rule": { + "type": "other" + }, + "touched": false + } + ] + }, + "layerId": "8ef36681-8e92-48de-80a5-c05bb48886b9", + "layerType": "data", + "position": "top", + "seriesType": "bar_horizontal_stacked", + "showGridlines": false, + "splitAccessor": "240a37e5-fc16-4273-8d23-364c72d02eca", + "xAccessor": "3f65df4a-9c15-4583-a6be-275fe06bff21" + } + ], + "legend": { + "isVisible": true, + "position": "right" + }, + "preferredSeriesType": "bar_horizontal_stacked", + "tickLabelsVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "valueLabels": "hide" + } + }, + "title": "", + "type": "lens", + "visualizationType": "lnsXY" + }, + "enhancements": {} + }, + "gridData": { + "h": 15, + "i": "f74ecef4-1b91-4ae9-9787-fa0798ef8faa", + "w": 24, + "x": 24, + "y": 53 + }, + "panelIndex": "f74ecef4-1b91-4ae9-9787-fa0798ef8faa", + "title": "Current Users by Gateway", + "type": "lens" + }, + { + "embeddableConfig": { + "attributes": { + "references": [ + { + "id": "metrics-*", + "name": "indexpattern-datasource-layer-8ef36681-8e92-48de-80a5-c05bb48886b9", + "type": "index-pattern" + } + ], + "state": { + "adHocDataViews": {}, + "datasourceStates": { + "formBased": { + "currentIndexPatternId": "metrics-*", + "layers": { + "8ef36681-8e92-48de-80a5-c05bb48886b9": { + "columnOrder": [ + "010718e4-7a7f-452e-b3e4-190b95743503", + "0f4c5864-de4f-4259-84b0-d9d30d760d02", + "96bae642-aa30-4908-b4e7-b3320b0d087d", + "9a516321-ab7b-4264-96ad-d3ee0caffbd6", + "efea3e95-7c96-4667-b1e5-f5ef63d3ae56", + "9e2b8ca6-331d-4bd7-a0b9-6cf1f3765595", + "52ebfc77-1044-4bad-886e-c0c26af01c6b" + ], + "columns": { + "010718e4-7a7f-452e-b3e4-190b95743503": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Computer", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "52ebfc77-1044-4bad-886e-c0c26af01c6b", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "secondaryFields": [], + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.vpn.globalprotect.session.computer" + }, + "0f4c5864-de4f-4259-84b0-d9d30d760d02": { + "customLabel": true, + "dataType": "ip", + "isBucketed": true, + "label": "Client IP", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "52ebfc77-1044-4bad-886e-c0c26af01c6b", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.vpn.globalprotect.session.client_ip" + }, + "52ebfc77-1044-4bad-886e-c0c26af01c6b": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Session Lifetime", + "operationType": "average", + "params": { + "emptyAsNull": true, + "format": { + "id": "duration", + "params": { + "decimals": 0 + } + } + }, + "scale": "ratio", + "sourceField": "panw.vpn.globalprotect.session.lifetime" + }, + "96bae642-aa30-4908-b4e7-b3320b0d087d": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Username", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "52ebfc77-1044-4bad-886e-c0c26af01c6b", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.vpn.globalprotect.session.username" + }, + "9a516321-ab7b-4264-96ad-d3ee0caffbd6": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Domain", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "52ebfc77-1044-4bad-886e-c0c26af01c6b", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.vpn.globalprotect.session.domain" + }, + "9e2b8ca6-331d-4bd7-a0b9-6cf1f3765595": { + "customLabel": true, + "dataType": "boolean", + "isBucketed": true, + "label": "Local", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "52ebfc77-1044-4bad-886e-c0c26af01c6b", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.vpn.globalprotect.session.is_local" + }, + "efea3e95-7c96-4667-b1e5-f5ef63d3ae56": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Tunnel Type", + "operationType": "terms", + "params": { + "exclude": [], + "excludeIsRegex": false, + "include": [], + "includeIsRegex": false, + "missingBucket": false, + "orderBy": { + "columnId": "52ebfc77-1044-4bad-886e-c0c26af01c6b", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "parentFormat": { + "id": "terms" + }, + "size": 20 + }, + "scale": "ordinal", + "sourceField": "panw.vpn.globalprotect.session.tunnel_type" + } + }, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "indexPatternId": "metrics-*", + "sampling": 1 + } + } + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "filters": [], + "internalReferences": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "columns": [ + { + "columnId": "010718e4-7a7f-452e-b3e4-190b95743503", + "isMetric": false, + "isTransposed": false + }, + { + "columnId": "0f4c5864-de4f-4259-84b0-d9d30d760d02", + "isMetric": false, + "isTransposed": false + }, + { + "columnId": "96bae642-aa30-4908-b4e7-b3320b0d087d", + "isMetric": false, + "isTransposed": false + }, + { + "columnId": "9a516321-ab7b-4264-96ad-d3ee0caffbd6", + "isMetric": false, + "isTransposed": false + }, + { + "columnId": "efea3e95-7c96-4667-b1e5-f5ef63d3ae56", + "isMetric": false, + "isTransposed": false + }, + { + "columnId": "9e2b8ca6-331d-4bd7-a0b9-6cf1f3765595", + "isMetric": false, + "isTransposed": false + }, + { + "columnId": "52ebfc77-1044-4bad-886e-c0c26af01c6b", + "isMetric": true, + "isTransposed": false + } + ], + "layerId": "8ef36681-8e92-48de-80a5-c05bb48886b9", + "layerType": "data" + } + }, + "title": "", + "type": "lens", + "visualizationType": "lnsDatatable" + }, + "enhancements": {} + }, + "gridData": { + "h": 15, + "i": "e99d4dcf-f559-4e2a-8ed0-f0bdfbb793e8", + "w": 48, + "x": 0, + "y": 8 + }, + "panelIndex": "e99d4dcf-f559-4e2a-8ed0-f0bdfbb793e8", + "title": "Sessions Overview", + "type": "lens" + } + ], + "timeRestore": false, + "title": "[Metrics Palo Alto Networks] VPN Overview", + "version": 2 + }, + "coreMigrationVersion": "8.8.0", + "created_at": "2024-10-04T13:52:08.764Z", + "id": "panw_metrics-5621b556-9010-4883-a339-4aa6a0b4bd74", + "managed": true, + "references": [ + { + "id": "metrics-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "06adc250-b2eb-4118-8efe-6d63ff1fafea:indexpattern-datasource-layer-8ef36681-8e92-48de-80a5-c05bb48886b9", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "523562a5-66d0-4a95-b069-52ea8417d298:indexpattern-datasource-layer-8ef36681-8e92-48de-80a5-c05bb48886b9", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "7108ed3a-faa0-4332-bb69-216d346ae231:indexpattern-datasource-layer-8ef36681-8e92-48de-80a5-c05bb48886b9", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "430ff68c-0867-4d4d-be7f-403bf6e70600:indexpattern-datasource-layer-8ef36681-8e92-48de-80a5-c05bb48886b9", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "d447283f-18c1-414e-9fd8-35bd28959317:indexpattern-datasource-layer-8ef36681-8e92-48de-80a5-c05bb48886b9", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "f037e251-ac98-4f5d-8c9a-081454904801:indexpattern-datasource-layer-8ef36681-8e92-48de-80a5-c05bb48886b9", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "08826163-7851-47c2-8cc7-5850b90284d1:indexpattern-datasource-layer-8ef36681-8e92-48de-80a5-c05bb48886b9", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "719549c8-0cec-43fe-a66c-ab013f9f89a4:indexpattern-datasource-layer-8ef36681-8e92-48de-80a5-c05bb48886b9", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "f74ecef4-1b91-4ae9-9787-fa0798ef8faa:indexpattern-datasource-layer-8ef36681-8e92-48de-80a5-c05bb48886b9", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "e99d4dcf-f559-4e2a-8ed0-f0bdfbb793e8:indexpattern-datasource-layer-8ef36681-8e92-48de-80a5-c05bb48886b9", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "controlGroup_47d14afc-2c72-41fa-bbb0-fd50a0e01302:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "controlGroup_029b6c39-8488-45f1-958a-6b976dc740da:optionsListDataView", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "controlGroup_fcea636d-4696-4efa-95c7-29381e7a62a6:optionsListDataView", + "type": "index-pattern" + } + ], + "type": "dashboard", + "typeMigrationVersion": "10.2.0" +} \ No newline at end of file diff --git a/packages/panw_metrics/kibana/dashboard/panw_metrics-c100764a-f935-4c7b-a0d0-7622c4e19f6f.json b/packages/panw_metrics/kibana/dashboard/panw_metrics-c100764a-f935-4c7b-a0d0-7622c4e19f6f.json new file mode 100644 index 00000000000..b6d1ec8b717 --- /dev/null +++ b/packages/panw_metrics/kibana/dashboard/panw_metrics-c100764a-f935-4c7b-a0d0-7622c4e19f6f.json @@ -0,0 +1,1495 @@ +{ + "id": "panw_metrics-c100764a-f935-4c7b-a0d0-7622c4e19f6f", + "type": "dashboard", + "updated_at": "2024-10-04T18:46:59.570Z", + "created_at": "2024-10-04T18:46:59.570Z", + "attributes": { + "version": 2, + "controlGroupInput": { + "controlStyle": "oneLine", + "chainingSystem": "HIERARCHICAL", + "showApplySelections": false, + "panelsJSON": "{\"94796cc2-2ba7-4857-a7d6-47bcd462d3db\":{\"type\":\"optionsListControl\",\"order\":1,\"grow\":false,\"width\":\"medium\",\"explicitInput\":{\"id\":\"94796cc2-2ba7-4857-a7d6-47bcd462d3db\",\"fieldName\":\"panw.routing.bgp.peer_group\",\"title\":\"Peer Group\",\"grow\":false,\"width\":\"medium\",\"searchTechnique\":\"prefix\",\"enhancements\":{}}},\"8a13fbfd-4f4e-4e62-80fe-99f145e61e56\":{\"type\":\"optionsListControl\",\"order\":0,\"grow\":false,\"width\":\"medium\",\"explicitInput\":{\"id\":\"8a13fbfd-4f4e-4e62-80fe-99f145e61e56\",\"fieldName\":\"panw.routing.bgp.peer_name\",\"title\":\"Peer Name\",\"grow\":false,\"width\":\"medium\",\"searchTechnique\":\"prefix\",\"enhancements\":{}}},\"0f213807-0f19-4bdd-be6f-310cfbfda9c6\":{\"type\":\"optionsListControl\",\"order\":2,\"grow\":false,\"width\":\"medium\",\"explicitInput\":{\"id\":\"0f213807-0f19-4bdd-be6f-310cfbfda9c6\",\"fieldName\":\"panw.routing.bgp.status\",\"title\":\"Status\",\"grow\":false,\"width\":\"medium\",\"searchTechnique\":\"prefix\",\"enhancements\":{}}}}", + "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}" + }, + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [ + { + "$state": { + "store": "appState" + }, + "meta": { + "alias": null, + "disabled": false, + "field": "data_stream.dataset", + "indexRefName": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "key": "data_stream.dataset", + "negate": false, + "params": { + "query": "panw_metrics.routing" + }, + "type": "phrase" + }, + "query": { + "match_phrase": { + "data_stream.dataset": "panw_metrics.routing" + } + } + } + ], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "description": "Overview of Palo Alto Networks Routing metrics", + "timeRestore": false, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": [ + { + "type": "lens", + "gridData": { + "x": 0, + "y": 0, + "w": 16, + "h": 8, + "i": "aaac6462-5125-4f53-8d88-bb1ca281cc74" + }, + "panelIndex": "aaac6462-5125-4f53-8d88-bb1ca281cc74", + "embeddableConfig": { + "attributes": { + "title": "", + "visualizationType": "lnsMetric", + "type": "lens", + "references": [ + { + "type": "index-pattern", + "id": "metrics-*", + "name": "indexpattern-datasource-layer-232db9b9-a0ff-45c5-aa87-3f2348d6bf94" + } + ], + "state": { + "visualization": { + "layerId": "232db9b9-a0ff-45c5-aa87-3f2348d6bf94", + "layerType": "data", + "palette": { + "type": "palette", + "name": "status", + "params": { + "name": "status", + "reverse": false, + "rangeType": "number", + "rangeMin": null, + "rangeMax": null, + "progression": "fixed", + "stops": [ + { + "color": "#209280", + "stop": 435.33 + }, + { + "color": "#d6bf57", + "stop": 870.66 + }, + { + "color": "#cc5642", + "stop": 1306 + } + ], + "steps": 3, + "colorStops": [], + "continuity": "all", + "maxSteps": 5 + } + }, + "metricAccessor": "11cdd9c6-17f6-4417-9cb8-3907b82e3359" + }, + "query": { + "query": "", + "language": "kuery" + }, + "filters": [], + "datasourceStates": { + "formBased": { + "layers": { + "232db9b9-a0ff-45c5-aa87-3f2348d6bf94": { + "columns": { + "11cdd9c6-17f6-4417-9cb8-3907b82e3359": { + "label": "Established BGP Sessions", + "dataType": "number", + "operationType": "max", + "sourceField": "panw.routing.bgp.established_counts", + "isBucketed": false, + "scale": "ratio", + "params": { + "emptyAsNull": true + }, + "customLabel": true + } + }, + "columnOrder": [ + "11cdd9c6-17f6-4417-9cb8-3907b82e3359" + ], + "sampling": 1, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "indexPatternId": "metrics-*" + } + }, + "currentIndexPatternId": "metrics-*" + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "internalReferences": [], + "adHocDataViews": {} + } + }, + "enhancements": {} + } + }, + { + "type": "lens", + "gridData": { + "x": 16, + "y": 0, + "w": 16, + "h": 8, + "i": "e3cb2011-212a-404a-8b7b-10321daa0e24" + }, + "panelIndex": "e3cb2011-212a-404a-8b7b-10321daa0e24", + "embeddableConfig": { + "attributes": { + "title": "", + "visualizationType": "lnsMetric", + "type": "lens", + "references": [ + { + "type": "index-pattern", + "id": "metrics-*", + "name": "indexpattern-datasource-layer-232db9b9-a0ff-45c5-aa87-3f2348d6bf94" + } + ], + "state": { + "visualization": { + "layerId": "232db9b9-a0ff-45c5-aa87-3f2348d6bf94", + "layerType": "data", + "palette": { + "type": "palette", + "name": "status", + "params": { + "name": "status", + "reverse": false, + "rangeType": "number", + "rangeMin": null, + "rangeMax": null, + "progression": "fixed", + "stops": [ + { + "color": "#209280", + "stop": 435.33 + }, + { + "color": "#d6bf57", + "stop": 870.66 + }, + { + "color": "#cc5642", + "stop": 1306 + } + ], + "steps": 3, + "colorStops": [], + "continuity": "all", + "maxSteps": 5 + } + }, + "metricAccessor": "11cdd9c6-17f6-4417-9cb8-3907b82e3359" + }, + "query": { + "query": "", + "language": "kuery" + }, + "filters": [], + "datasourceStates": { + "formBased": { + "layers": { + "232db9b9-a0ff-45c5-aa87-3f2348d6bf94": { + "columns": { + "11cdd9c6-17f6-4417-9cb8-3907b82e3359": { + "label": "Average BGP Hold Time", + "dataType": "number", + "operationType": "average", + "sourceField": "panw.routing.bgp.holdtime", + "isBucketed": false, + "scale": "ratio", + "params": { + "emptyAsNull": true, + "format": { + "id": "duration", + "params": { + "decimals": 0 + } + } + }, + "customLabel": true + } + }, + "columnOrder": [ + "11cdd9c6-17f6-4417-9cb8-3907b82e3359" + ], + "sampling": 1, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "indexPatternId": "metrics-*" + } + }, + "currentIndexPatternId": "metrics-*" + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "internalReferences": [], + "adHocDataViews": {} + } + }, + "enhancements": {} + } + }, + { + "type": "lens", + "gridData": { + "x": 32, + "y": 0, + "w": 16, + "h": 8, + "i": "d0f1a21f-e0a6-4b0e-945d-ab33b84d92ad" + }, + "panelIndex": "d0f1a21f-e0a6-4b0e-945d-ab33b84d92ad", + "embeddableConfig": { + "attributes": { + "title": "", + "visualizationType": "lnsMetric", + "type": "lens", + "references": [ + { + "type": "index-pattern", + "id": "metrics-*", + "name": "indexpattern-datasource-layer-232db9b9-a0ff-45c5-aa87-3f2348d6bf94" + } + ], + "state": { + "visualization": { + "layerId": "232db9b9-a0ff-45c5-aa87-3f2348d6bf94", + "layerType": "data", + "palette": { + "type": "palette", + "name": "status", + "params": { + "name": "status", + "reverse": false, + "rangeType": "number", + "rangeMin": null, + "rangeMax": null, + "progression": "fixed", + "stops": [ + { + "color": "#209280", + "stop": 435.33 + }, + { + "color": "#d6bf57", + "stop": 870.66 + }, + { + "color": "#cc5642", + "stop": 1306 + } + ], + "steps": 3, + "colorStops": [], + "continuity": "all", + "maxSteps": 5 + } + }, + "metricAccessor": "11cdd9c6-17f6-4417-9cb8-3907b82e3359" + }, + "query": { + "query": "", + "language": "kuery" + }, + "filters": [], + "datasourceStates": { + "formBased": { + "layers": { + "232db9b9-a0ff-45c5-aa87-3f2348d6bf94": { + "columns": { + "11cdd9c6-17f6-4417-9cb8-3907b82e3359": { + "label": "Average Messages Received", + "dataType": "number", + "operationType": "average", + "sourceField": "panw.routing.bgp.msg_total_in", + "isBucketed": false, + "scale": "ratio", + "params": { + "format": { + "id": "number", + "params": { + "decimals": 0 + } + }, + "emptyAsNull": true + }, + "customLabel": true + } + }, + "columnOrder": [ + "11cdd9c6-17f6-4417-9cb8-3907b82e3359" + ], + "sampling": 1, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "indexPatternId": "metrics-*" + } + }, + "currentIndexPatternId": "metrics-*" + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "internalReferences": [], + "adHocDataViews": {} + } + }, + "enhancements": {} + } + }, + { + "type": "lens", + "gridData": { + "x": 0, + "y": 8, + "w": 24, + "h": 15, + "i": "7dc1d83f-4d3e-4a5c-956e-58e4df62ad57" + }, + "panelIndex": "7dc1d83f-4d3e-4a5c-956e-58e4df62ad57", + "embeddableConfig": { + "attributes": { + "title": "", + "visualizationType": "lnsXY", + "type": "lens", + "references": [ + { + "type": "index-pattern", + "id": "metrics-*", + "name": "indexpattern-datasource-layer-3fe86907-93ba-4f73-a2cc-f000ac328163" + } + ], + "state": { + "visualization": { + "legend": { + "isVisible": true, + "position": "right" + }, + "valueLabels": "hide", + "fittingFunction": "None", + "axisTitlesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "tickLabelsVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "labelsOrientation": { + "x": 0, + "yLeft": 0, + "yRight": 0 + }, + "gridlinesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "preferredSeriesType": "bar_stacked", + "layers": [ + { + "layerId": "3fe86907-93ba-4f73-a2cc-f000ac328163", + "accessors": [ + "187673ed-2a64-4d53-9446-5a625628ef91" + ], + "position": "top", + "seriesType": "bar_stacked", + "showGridlines": false, + "layerType": "data", + "splitAccessor": "149799bc-4c66-405e-8f6c-13ca2aca3ee4", + "xAccessor": "daa28320-181a-4268-bc89-db978a6aa612" + } + ] + }, + "query": { + "query": "", + "language": "kuery" + }, + "filters": [], + "datasourceStates": { + "formBased": { + "layers": { + "3fe86907-93ba-4f73-a2cc-f000ac328163": { + "columns": { + "149799bc-4c66-405e-8f6c-13ca2aca3ee4": { + "label": "BGP Peer Name and Status", + "dataType": "string", + "operationType": "terms", + "scale": "ordinal", + "sourceField": "panw.routing.bgp.peer_name", + "isBucketed": true, + "params": { + "size": 20, + "orderBy": { + "type": "column", + "columnId": "187673ed-2a64-4d53-9446-5a625628ef91" + }, + "orderDirection": "desc", + "otherBucket": true, + "missingBucket": false, + "parentFormat": { + "id": "multi_terms" + }, + "include": [], + "exclude": [], + "includeIsRegex": false, + "excludeIsRegex": false, + "secondaryFields": [ + "panw.routing.bgp.status" + ] + }, + "customLabel": true + }, + "187673ed-2a64-4d53-9446-5a625628ef91": { + "label": "BGP Status Duration", + "dataType": "number", + "operationType": "average", + "sourceField": "panw.routing.bgp.status_duration", + "isBucketed": false, + "scale": "ratio", + "params": { + "emptyAsNull": true, + "format": { + "id": "duration", + "params": { + "decimals": 0 + } + } + }, + "customLabel": true + }, + "daa28320-181a-4268-bc89-db978a6aa612": { + "label": "@timestamp", + "dataType": "date", + "operationType": "date_histogram", + "sourceField": "@timestamp", + "isBucketed": true, + "scale": "interval", + "params": { + "interval": "auto", + "includeEmptyRows": true, + "dropPartials": false + } + } + }, + "columnOrder": [ + "149799bc-4c66-405e-8f6c-13ca2aca3ee4", + "daa28320-181a-4268-bc89-db978a6aa612", + "187673ed-2a64-4d53-9446-5a625628ef91" + ], + "sampling": 1, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "indexPatternId": "metrics-*" + } + }, + "currentIndexPatternId": "metrics-*" + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "internalReferences": [], + "adHocDataViews": {} + } + }, + "enhancements": {} + }, + "title": "Status Duration" + }, + { + "type": "lens", + "gridData": { + "x": 24, + "y": 8, + "w": 24, + "h": 15, + "i": "8d88dd0c-d83d-4950-b2ab-567857f3cb6a" + }, + "panelIndex": "8d88dd0c-d83d-4950-b2ab-567857f3cb6a", + "embeddableConfig": { + "attributes": { + "title": "", + "visualizationType": "lnsXY", + "type": "lens", + "references": [ + { + "type": "index-pattern", + "id": "metrics-*", + "name": "indexpattern-datasource-layer-3fe86907-93ba-4f73-a2cc-f000ac328163" + } + ], + "state": { + "visualization": { + "legend": { + "isVisible": true, + "position": "right" + }, + "valueLabels": "hide", + "fittingFunction": "None", + "axisTitlesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "tickLabelsVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "labelsOrientation": { + "x": 0, + "yLeft": 0, + "yRight": 0 + }, + "gridlinesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "preferredSeriesType": "bar_stacked", + "layers": [ + { + "layerId": "3fe86907-93ba-4f73-a2cc-f000ac328163", + "accessors": [ + "187673ed-2a64-4d53-9446-5a625628ef91", + "865c8285-5d82-4b27-be07-a01d588e5cc3" + ], + "position": "top", + "seriesType": "bar_stacked", + "showGridlines": false, + "layerType": "data", + "xAccessor": "6416047a-4602-4317-a00b-f9d00abfce87", + "splitAccessor": "ec4f25f2-84e3-4a18-8cd8-6e0e071e01e3" + } + ], + "yTitle": "Duration" + }, + "query": { + "query": "", + "language": "kuery" + }, + "filters": [], + "datasourceStates": { + "formBased": { + "layers": { + "3fe86907-93ba-4f73-a2cc-f000ac328163": { + "columns": { + "187673ed-2a64-4d53-9446-5a625628ef91": { + "label": "Keepalive", + "dataType": "number", + "operationType": "last_value", + "isBucketed": false, + "scale": "ratio", + "sourceField": "panw.routing.bgp.keepalive_config", + "filter": { + "query": "\"panw.routing.bgp.keepalive_config\": *", + "language": "kuery" + }, + "params": { + "sortField": "@timestamp", + "format": { + "id": "duration", + "params": { + "decimals": 0 + } + } + }, + "customLabel": true + }, + "865c8285-5d82-4b27-be07-a01d588e5cc3": { + "label": "Holdtime", + "dataType": "number", + "operationType": "last_value", + "isBucketed": false, + "scale": "ratio", + "sourceField": "panw.routing.bgp.holdtime_config", + "filter": { + "query": "\"panw.routing.bgp.holdtime_config\": *", + "language": "kuery" + }, + "params": { + "sortField": "@timestamp", + "format": { + "id": "duration", + "params": { + "decimals": 0 + } + } + }, + "customLabel": true + }, + "6416047a-4602-4317-a00b-f9d00abfce87": { + "label": "@timestamp", + "dataType": "date", + "operationType": "date_histogram", + "sourceField": "@timestamp", + "isBucketed": true, + "scale": "interval", + "params": { + "interval": "auto", + "includeEmptyRows": true, + "dropPartials": false + } + }, + "ec4f25f2-84e3-4a18-8cd8-6e0e071e01e3": { + "label": "Top 20 values of panw.routing.bgp.peer_name", + "dataType": "string", + "operationType": "terms", + "scale": "ordinal", + "sourceField": "panw.routing.bgp.peer_name", + "isBucketed": true, + "params": { + "size": 20, + "orderBy": { + "type": "column", + "columnId": "187673ed-2a64-4d53-9446-5a625628ef91" + }, + "orderDirection": "desc", + "otherBucket": true, + "missingBucket": false, + "parentFormat": { + "id": "terms" + }, + "include": [], + "exclude": [], + "includeIsRegex": false, + "excludeIsRegex": false + } + } + }, + "columnOrder": [ + "6416047a-4602-4317-a00b-f9d00abfce87", + "ec4f25f2-84e3-4a18-8cd8-6e0e071e01e3", + "187673ed-2a64-4d53-9446-5a625628ef91", + "865c8285-5d82-4b27-be07-a01d588e5cc3" + ], + "sampling": 1, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "indexPatternId": "metrics-*" + } + }, + "currentIndexPatternId": "metrics-*" + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "internalReferences": [], + "adHocDataViews": {} + } + }, + "enhancements": {} + }, + "title": "Keepalive and Hold Time Configurations" + }, + { + "type": "lens", + "gridData": { + "x": 0, + "y": 23, + "w": 24, + "h": 15, + "i": "a1114b83-c5cb-4e2b-b8aa-17ff7f927cd1" + }, + "panelIndex": "a1114b83-c5cb-4e2b-b8aa-17ff7f927cd1", + "embeddableConfig": { + "attributes": { + "title": "", + "visualizationType": "lnsXY", + "type": "lens", + "references": [ + { + "type": "index-pattern", + "id": "metrics-*", + "name": "indexpattern-datasource-layer-3fe86907-93ba-4f73-a2cc-f000ac328163" + } + ], + "state": { + "visualization": { + "legend": { + "isVisible": true, + "position": "right" + }, + "valueLabels": "hide", + "fittingFunction": "None", + "axisTitlesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "tickLabelsVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "labelsOrientation": { + "x": 0, + "yLeft": 0, + "yRight": 0 + }, + "gridlinesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "preferredSeriesType": "bar_stacked", + "layers": [ + { + "layerId": "3fe86907-93ba-4f73-a2cc-f000ac328163", + "accessors": [ + "a35c74f7-bd68-4122-842a-191677b6b16a" + ], + "position": "top", + "seriesType": "bar_stacked", + "showGridlines": false, + "layerType": "data", + "splitAccessor": "be7762fc-424b-469e-867c-a3cc18a09c83", + "xAccessor": "8ca47fa6-7884-4738-8a0a-be262e18d9f8" + } + ], + "yTitle": "Duration" + }, + "query": { + "query": "", + "language": "kuery" + }, + "filters": [], + "datasourceStates": { + "formBased": { + "layers": { + "3fe86907-93ba-4f73-a2cc-f000ac328163": { + "columns": { + "a35c74f7-bd68-4122-842a-191677b6b16a": { + "label": "Last Update Age", + "dataType": "number", + "operationType": "last_value", + "isBucketed": false, + "scale": "ratio", + "sourceField": "panw.routing.bgp.last_update_age", + "filter": { + "query": "\"panw.routing.bgp.last_update_age\": *", + "language": "kuery" + }, + "params": { + "sortField": "@timestamp", + "format": { + "id": "duration", + "params": { + "decimals": 0 + } + } + }, + "customLabel": true + }, + "be7762fc-424b-469e-867c-a3cc18a09c83": { + "label": "Top 20 values of panw.routing.bgp.peer_name", + "dataType": "string", + "operationType": "terms", + "scale": "ordinal", + "sourceField": "panw.routing.bgp.peer_name", + "isBucketed": true, + "params": { + "size": 20, + "orderBy": { + "type": "column", + "columnId": "a35c74f7-bd68-4122-842a-191677b6b16a" + }, + "orderDirection": "desc", + "otherBucket": true, + "missingBucket": false, + "parentFormat": { + "id": "terms" + }, + "include": [], + "exclude": [], + "includeIsRegex": false, + "excludeIsRegex": false + } + }, + "8ca47fa6-7884-4738-8a0a-be262e18d9f8": { + "label": "@timestamp", + "dataType": "date", + "operationType": "date_histogram", + "sourceField": "@timestamp", + "isBucketed": true, + "scale": "interval", + "params": { + "interval": "auto", + "includeEmptyRows": true, + "dropPartials": false + } + } + }, + "columnOrder": [ + "8ca47fa6-7884-4738-8a0a-be262e18d9f8", + "be7762fc-424b-469e-867c-a3cc18a09c83", + "a35c74f7-bd68-4122-842a-191677b6b16a" + ], + "sampling": 1, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "indexPatternId": "metrics-*" + } + }, + "currentIndexPatternId": "metrics-*" + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "internalReferences": [], + "adHocDataViews": {} + } + }, + "enhancements": {} + }, + "title": "Peers Last Update Age" + }, + { + "type": "lens", + "gridData": { + "x": 0, + "y": 38, + "w": 24, + "h": 15, + "i": "309894cc-b827-42aa-bdfd-5edeff5249fc" + }, + "panelIndex": "309894cc-b827-42aa-bdfd-5edeff5249fc", + "embeddableConfig": { + "attributes": { + "title": "", + "visualizationType": "lnsXY", + "type": "lens", + "references": [ + { + "type": "index-pattern", + "id": "metrics-*", + "name": "indexpattern-datasource-layer-3fe86907-93ba-4f73-a2cc-f000ac328163" + } + ], + "state": { + "visualization": { + "legend": { + "isVisible": true, + "position": "right" + }, + "valueLabels": "hide", + "fittingFunction": "None", + "axisTitlesVisibilitySettings": { + "x": true, + "yLeft": false, + "yRight": true + }, + "tickLabelsVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "labelsOrientation": { + "x": 0, + "yLeft": 0, + "yRight": 0 + }, + "gridlinesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "preferredSeriesType": "area_stacked", + "layers": [ + { + "layerId": "3fe86907-93ba-4f73-a2cc-f000ac328163", + "accessors": [ + "2cc9282a-a87a-4995-9c1b-d6027e1c022d", + "f653e5d5-14db-41b8-8ffd-549fda525671", + "82831619-84f7-40b4-a47d-f0560aa28a0b", + "aedd81d8-fc3b-4843-9c7f-e3c40d774105" + ], + "position": "top", + "seriesType": "area_stacked", + "showGridlines": false, + "layerType": "data", + "splitAccessor": "be7762fc-424b-469e-867c-a3cc18a09c83", + "xAccessor": "8ca47fa6-7884-4738-8a0a-be262e18d9f8" + } + ] + }, + "query": { + "query": "", + "language": "kuery" + }, + "filters": [], + "datasourceStates": { + "formBased": { + "layers": { + "3fe86907-93ba-4f73-a2cc-f000ac328163": { + "columns": { + "be7762fc-424b-469e-867c-a3cc18a09c83": { + "label": "Top 20 values of panw.routing.bgp.peer_name", + "dataType": "string", + "operationType": "terms", + "scale": "ordinal", + "sourceField": "panw.routing.bgp.peer_name", + "isBucketed": true, + "params": { + "size": 20, + "orderBy": { + "type": "column", + "columnId": "2cc9282a-a87a-4995-9c1b-d6027e1c022d" + }, + "orderDirection": "desc", + "otherBucket": true, + "missingBucket": false, + "parentFormat": { + "id": "terms" + }, + "include": [], + "exclude": [], + "includeIsRegex": false, + "excludeIsRegex": false + } + }, + "8ca47fa6-7884-4738-8a0a-be262e18d9f8": { + "label": "@timestamp", + "dataType": "date", + "operationType": "date_histogram", + "sourceField": "@timestamp", + "isBucketed": true, + "scale": "interval", + "params": { + "interval": "auto", + "includeEmptyRows": true, + "dropPartials": false + } + }, + "2cc9282a-a87a-4995-9c1b-d6027e1c022d": { + "label": "Total In", + "dataType": "number", + "operationType": "average", + "sourceField": "panw.routing.bgp.msg_total_in", + "isBucketed": false, + "scale": "ratio", + "params": { + "emptyAsNull": true, + "format": { + "id": "number", + "params": { + "decimals": 0 + } + } + }, + "customLabel": true + }, + "f653e5d5-14db-41b8-8ffd-549fda525671": { + "label": "Total Out", + "dataType": "number", + "operationType": "average", + "sourceField": "panw.routing.bgp.msg_total_out", + "isBucketed": false, + "scale": "ratio", + "params": { + "emptyAsNull": true, + "format": { + "id": "number", + "params": { + "decimals": 0 + } + } + }, + "customLabel": true + }, + "82831619-84f7-40b4-a47d-f0560aa28a0b": { + "label": "Update In", + "dataType": "number", + "operationType": "average", + "sourceField": "panw.routing.bgp.msg_update_in", + "isBucketed": false, + "scale": "ratio", + "params": { + "emptyAsNull": true, + "format": { + "id": "number", + "params": { + "decimals": 0 + } + } + }, + "customLabel": true + }, + "aedd81d8-fc3b-4843-9c7f-e3c40d774105": { + "label": "Update Out", + "dataType": "number", + "operationType": "average", + "sourceField": "panw.routing.bgp.msg_update_out", + "isBucketed": false, + "scale": "ratio", + "params": { + "emptyAsNull": true, + "format": { + "id": "number", + "params": { + "decimals": 0 + } + } + }, + "customLabel": true + } + }, + "columnOrder": [ + "8ca47fa6-7884-4738-8a0a-be262e18d9f8", + "be7762fc-424b-469e-867c-a3cc18a09c83", + "2cc9282a-a87a-4995-9c1b-d6027e1c022d", + "f653e5d5-14db-41b8-8ffd-549fda525671", + "82831619-84f7-40b4-a47d-f0560aa28a0b", + "aedd81d8-fc3b-4843-9c7f-e3c40d774105" + ], + "sampling": 1, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "indexPatternId": "metrics-*" + } + }, + "currentIndexPatternId": "metrics-*" + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "internalReferences": [], + "adHocDataViews": {} + } + }, + "enhancements": {} + }, + "title": "Peers Messages Overview" + }, + { + "type": "lens", + "gridData": { + "x": 24, + "y": 23, + "w": 24, + "h": 15, + "i": "58304277-8267-4d96-b7ef-3c0f1ed42ddb" + }, + "panelIndex": "58304277-8267-4d96-b7ef-3c0f1ed42ddb", + "embeddableConfig": { + "attributes": { + "title": "", + "visualizationType": "lnsXY", + "type": "lens", + "references": [ + { + "type": "index-pattern", + "id": "metrics-*", + "name": "indexpattern-datasource-layer-3fe86907-93ba-4f73-a2cc-f000ac328163" + } + ], + "state": { + "visualization": { + "legend": { + "isVisible": true, + "position": "right" + }, + "valueLabels": "hide", + "fittingFunction": "None", + "axisTitlesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "tickLabelsVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "labelsOrientation": { + "x": 0, + "yLeft": 0, + "yRight": 0 + }, + "gridlinesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "preferredSeriesType": "bar_stacked", + "layers": [ + { + "layerId": "3fe86907-93ba-4f73-a2cc-f000ac328163", + "accessors": [ + "a35c74f7-bd68-4122-842a-191677b6b16a" + ], + "position": "top", + "seriesType": "bar_stacked", + "showGridlines": false, + "layerType": "data", + "splitAccessor": "a3e90551-8867-404f-8fbd-1b424a590300", + "xAccessor": "2bb91f6a-4769-4bb9-a05d-3902e1f222cd" + } + ] + }, + "query": { + "query": "", + "language": "kuery" + }, + "filters": [], + "datasourceStates": { + "formBased": { + "layers": { + "3fe86907-93ba-4f73-a2cc-f000ac328163": { + "columns": { + "a35c74f7-bd68-4122-842a-191677b6b16a": { + "label": "Established Counts", + "dataType": "number", + "operationType": "last_value", + "isBucketed": false, + "scale": "ratio", + "sourceField": "panw.routing.bgp.established_counts", + "filter": { + "query": "\"panw.routing.bgp.established_counts\": *", + "language": "kuery" + }, + "params": { + "sortField": "@timestamp", + "format": { + "id": "number", + "params": { + "decimals": 0 + } + } + }, + "customLabel": true + }, + "a3e90551-8867-404f-8fbd-1b424a590300": { + "label": "Top 20 values of panw.routing.bgp.peer_name", + "dataType": "string", + "operationType": "terms", + "scale": "ordinal", + "sourceField": "panw.routing.bgp.peer_name", + "isBucketed": true, + "params": { + "size": 20, + "orderBy": { + "type": "column", + "columnId": "a35c74f7-bd68-4122-842a-191677b6b16a" + }, + "orderDirection": "desc", + "otherBucket": true, + "missingBucket": false, + "parentFormat": { + "id": "terms" + }, + "include": [], + "exclude": [], + "includeIsRegex": false, + "excludeIsRegex": false + } + }, + "2bb91f6a-4769-4bb9-a05d-3902e1f222cd": { + "label": "@timestamp", + "dataType": "date", + "operationType": "date_histogram", + "sourceField": "@timestamp", + "isBucketed": true, + "scale": "interval", + "params": { + "interval": "auto", + "includeEmptyRows": true, + "dropPartials": false + } + } + }, + "columnOrder": [ + "2bb91f6a-4769-4bb9-a05d-3902e1f222cd", + "a3e90551-8867-404f-8fbd-1b424a590300", + "a35c74f7-bd68-4122-842a-191677b6b16a" + ], + "sampling": 1, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "indexPatternId": "metrics-*" + } + }, + "currentIndexPatternId": "metrics-*" + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "internalReferences": [], + "adHocDataViews": {} + } + }, + "enhancements": {} + }, + "title": "Peers Established Counts" + }, + { + "type": "lens", + "gridData": { + "x": 24, + "y": 38, + "w": 24, + "h": 15, + "i": "c94069a5-4000-460c-a57a-f0c5e321d084" + }, + "panelIndex": "c94069a5-4000-460c-a57a-f0c5e321d084", + "embeddableConfig": { + "attributes": { + "title": "Table count() & Peer Name & Peer IP & Remote AS & BGP Status", + "references": [ + { + "type": "index-pattern", + "id": "225f1238245c340e555b38014f4ca10f1b4280d8fc34ef5da914e88acdfbadb6", + "name": "textBasedLanguages-datasource-layer-7434ee6e-829b-4f81-8fe3-4d4745e13bf4" + } + ], + "state": { + "datasourceStates": { + "textBased": { + "layers": { + "7434ee6e-829b-4f81-8fe3-4d4745e13bf4": { + "index": "225f1238245c340e555b38014f4ca10f1b4280d8fc34ef5da914e88acdfbadb6", + "query": { + "esql": "FROM metrics-panw_metrics.routing-* \n| keep panw.routing.bgp.peer_name, panw.routing.bgp.peer_ip, panw.routing.bgp.remote_as_asn, panw.routing.bgp.status, panw.routing.bgp.last_error\n| where panw.routing.bgp.last_error is not null and length(panw.routing.bgp.last_error)>0\n| rename panw.routing.bgp.last_error as `Last Error`, panw.routing.bgp.peer_name as `Peer Name`, panw.routing.bgp.peer_ip as `Peer IP`, panw.routing.bgp.remote_as_asn as `Remote AS`, panw.routing.bgp.status as `BGP Status`\n| stats count() by `Peer Name`, `Peer IP`, `Remote AS`, `BGP Status`, `Last Error`" + }, + "columns": [ + { + "columnId": "Peer Name", + "fieldName": "Peer Name", + "meta": { + "type": "string", + "esType": "keyword" + }, + "inMetricDimension": true + }, + { + "columnId": "Peer IP", + "fieldName": "Peer IP", + "meta": { + "type": "ip", + "esType": "ip" + }, + "inMetricDimension": true + }, + { + "columnId": "Remote AS", + "fieldName": "Remote AS", + "meta": { + "type": "number", + "esType": "long" + }, + "inMetricDimension": true + }, + { + "columnId": "BGP Status", + "fieldName": "BGP Status", + "meta": { + "type": "string", + "esType": "keyword" + }, + "inMetricDimension": true + }, + { + "columnId": "5fd953f0-e3f2-41da-8a04-3978ae87d1d2", + "fieldName": "Last Error", + "meta": { + "type": "string", + "esType": "keyword" + } + } + ], + "timeField": "@timestamp" + } + }, + "indexPatternRefs": [ + { + "id": "225f1238245c340e555b38014f4ca10f1b4280d8fc34ef5da914e88acdfbadb6", + "title": "metrics-panw_metrics.routing-*", + "timeField": "@timestamp" + } + ] + } + }, + "filters": [], + "query": { + "esql": "FROM metrics-panw_metrics.routing-* \n| keep panw.routing.bgp.peer_name, panw.routing.bgp.peer_ip, panw.routing.bgp.remote_as_asn, panw.routing.bgp.status, panw.routing.bgp.last_error\n| where panw.routing.bgp.last_error is not null and length(panw.routing.bgp.last_error)>0\n| rename panw.routing.bgp.last_error as `Last Error`, panw.routing.bgp.peer_name as `Peer Name`, panw.routing.bgp.peer_ip as `Peer IP`, panw.routing.bgp.remote_as_asn as `Remote AS`, panw.routing.bgp.status as `BGP Status`\n| stats count() by `Peer Name`, `Peer IP`, `Remote AS`, `BGP Status`, `Last Error`" + }, + "visualization": { + "layerId": "7434ee6e-829b-4f81-8fe3-4d4745e13bf4", + "layerType": "data", + "columns": [ + { + "columnId": "Peer Name" + }, + { + "columnId": "Peer IP" + }, + { + "columnId": "Remote AS" + }, + { + "columnId": "BGP Status" + }, + { + "columnId": "5fd953f0-e3f2-41da-8a04-3978ae87d1d2", + "isTransposed": false, + "isMetric": true + } + ] + }, + "adHocDataViews": { + "225f1238245c340e555b38014f4ca10f1b4280d8fc34ef5da914e88acdfbadb6": { + "id": "225f1238245c340e555b38014f4ca10f1b4280d8fc34ef5da914e88acdfbadb6", + "title": "metrics-panw_metrics.routing-*", + "timeFieldName": "@timestamp", + "sourceFilters": [], + "type": "esql", + "fieldFormats": {}, + "runtimeFieldMap": {}, + "allowNoIndex": false, + "name": "metrics-panw_metrics.routing-*", + "allowHidden": false + } + } + }, + "visualizationType": "lnsDatatable", + "type": "lens" + }, + "disabledActions": [ + "OPEN_FLYOUT_ADD_DRILLDOWN" + ], + "enhancements": {} + }, + "title": "Peers Last Errors" + } + ], + "title": "[Metrics Palo Alto Networks] Routing Overview" + }, + "references": [ + { + "type": "index-pattern", + "id": "metrics-*", + "name": "aaac6462-5125-4f53-8d88-bb1ca281cc74:indexpattern-datasource-layer-232db9b9-a0ff-45c5-aa87-3f2348d6bf94" + }, + { + "type": "index-pattern", + "id": "metrics-*", + "name": "e3cb2011-212a-404a-8b7b-10321daa0e24:indexpattern-datasource-layer-232db9b9-a0ff-45c5-aa87-3f2348d6bf94" + }, + { + "type": "index-pattern", + "id": "metrics-*", + "name": "d0f1a21f-e0a6-4b0e-945d-ab33b84d92ad:indexpattern-datasource-layer-232db9b9-a0ff-45c5-aa87-3f2348d6bf94" + }, + { + "type": "index-pattern", + "id": "metrics-*", + "name": "7dc1d83f-4d3e-4a5c-956e-58e4df62ad57:indexpattern-datasource-layer-3fe86907-93ba-4f73-a2cc-f000ac328163" + }, + { + "type": "index-pattern", + "id": "metrics-*", + "name": "8d88dd0c-d83d-4950-b2ab-567857f3cb6a:indexpattern-datasource-layer-3fe86907-93ba-4f73-a2cc-f000ac328163" + }, + { + "type": "index-pattern", + "id": "metrics-*", + "name": "a1114b83-c5cb-4e2b-b8aa-17ff7f927cd1:indexpattern-datasource-layer-3fe86907-93ba-4f73-a2cc-f000ac328163" + }, + { + "type": "index-pattern", + "id": "metrics-*", + "name": "309894cc-b827-42aa-bdfd-5edeff5249fc:indexpattern-datasource-layer-3fe86907-93ba-4f73-a2cc-f000ac328163" + }, + { + "type": "index-pattern", + "id": "metrics-*", + "name": "58304277-8267-4d96-b7ef-3c0f1ed42ddb:indexpattern-datasource-layer-3fe86907-93ba-4f73-a2cc-f000ac328163" + }, + { + "type": "index-pattern", + "id": "225f1238245c340e555b38014f4ca10f1b4280d8fc34ef5da914e88acdfbadb6", + "name": "c94069a5-4000-460c-a57a-f0c5e321d084:textBasedLanguages-datasource-layer-7434ee6e-829b-4f81-8fe3-4d4745e13bf4" + }, + { + "name": "controlGroup_94796cc2-2ba7-4857-a7d6-47bcd462d3db:optionsListDataView", + "type": "index-pattern", + "id": "metrics-*" + }, + { + "name": "controlGroup_8a13fbfd-4f4e-4e62-80fe-99f145e61e56:optionsListDataView", + "type": "index-pattern", + "id": "metrics-*" + }, + { + "name": "controlGroup_0f213807-0f19-4bdd-be6f-310cfbfda9c6:optionsListDataView", + "type": "index-pattern", + "id": "metrics-*" + } + ], + "managed": true, + "coreMigrationVersion": "8.8.0", + "typeMigrationVersion": "10.2.0" +} \ No newline at end of file diff --git a/packages/panw_metrics/kibana/dashboard/panw_metrics-fa29a215-7679-4867-a1e7-f3f8dc0bbbef.json b/packages/panw_metrics/kibana/dashboard/panw_metrics-fa29a215-7679-4867-a1e7-f3f8dc0bbbef.json new file mode 100644 index 00000000000..bc22cea986f --- /dev/null +++ b/packages/panw_metrics/kibana/dashboard/panw_metrics-fa29a215-7679-4867-a1e7-f3f8dc0bbbef.json @@ -0,0 +1,1478 @@ +{ + "id": "panw_metrics-fa29a215-7679-4867-a1e7-f3f8dc0bbbef", + "type": "dashboard", + "updated_at": "2024-10-04T21:52:54.984Z", + "created_at": "2024-10-04T21:52:54.984Z", + "attributes": { + "version": 2, + "controlGroupInput": { + "controlStyle": "oneLine", + "chainingSystem": "HIERARCHICAL", + "showApplySelections": false, + "panelsJSON": "{\"08e03c57-408c-4833-9d90-3a51c55ff8aa\":{\"type\":\"optionsListControl\",\"order\":0,\"grow\":false,\"width\":\"medium\",\"explicitInput\":{\"id\":\"08e03c57-408c-4833-9d90-3a51c55ff8aa\",\"fieldName\":\"panw.interfaces.physical.name\",\"title\":\"Physical Name\",\"grow\":false,\"width\":\"medium\",\"searchTechnique\":\"prefix\",\"enhancements\":{}}},\"c5bcd707-b6f2-41c8-b959-a3775b1cf701\":{\"type\":\"optionsListControl\",\"order\":1,\"grow\":false,\"width\":\"medium\",\"explicitInput\":{\"id\":\"c5bcd707-b6f2-41c8-b959-a3775b1cf701\",\"fieldName\":\"panw.interfaces.logical.name\",\"title\":\"Logical Name\",\"grow\":false,\"width\":\"medium\",\"searchTechnique\":\"prefix\",\"enhancements\":{}}}}", + "ignoreParentSettingsJSON": "{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}" + }, + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [ + { + "$state": { + "store": "appState" + }, + "meta": { + "alias": null, + "disabled": false, + "field": "data_stream.dataset", + "indexRefName": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "key": "data_stream.dataset", + "negate": false, + "params": { + "query": "panw_metrics.interfaces" + }, + "type": "phrase" + }, + "query": { + "match_phrase": { + "data_stream.dataset": "panw_metrics.interfaces" + } + } + } + ], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "description": "Overview of Palo Alto Networks Interfaces metrics", + "timeRestore": false, + "optionsJSON": "{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}", + "panelsJSON": [ + { + "type": "lens", + "gridData": { + "x": 0, + "y": 0, + "w": 24, + "h": 8, + "i": "ca86528d-ee01-4a61-ba2d-50a1155d1273" + }, + "panelIndex": "ca86528d-ee01-4a61-ba2d-50a1155d1273", + "embeddableConfig": { + "attributes": { + "title": "", + "visualizationType": "lnsMetric", + "type": "lens", + "references": [ + { + "type": "index-pattern", + "id": "metrics-*", + "name": "indexpattern-datasource-layer-cb36a339-a5da-41cb-b64a-ed1a5ac7149d" + } + ], + "state": { + "visualization": { + "layerId": "cb36a339-a5da-41cb-b64a-ed1a5ac7149d", + "layerType": "data", + "metricAccessor": "206f54f6-c59f-45c8-a7f8-682fc336d6dd" + }, + "query": { + "query": "", + "language": "kuery" + }, + "filters": [], + "datasourceStates": { + "formBased": { + "layers": { + "cb36a339-a5da-41cb-b64a-ed1a5ac7149d": { + "columns": { + "206f54f6-c59f-45c8-a7f8-682fc336d6dd": { + "label": "HA Synchronization Status", + "dataType": "string", + "operationType": "last_value", + "isBucketed": false, + "scale": "ordinal", + "sourceField": "panw.interfaces.ha.running_sync", + "filter": { + "query": "\"panw.interfaces.ha.running_sync\": *", + "language": "kuery" + }, + "params": { + "sortField": "@timestamp" + }, + "customLabel": true + } + }, + "columnOrder": [ + "206f54f6-c59f-45c8-a7f8-682fc336d6dd" + ], + "sampling": 1, + "ignoreGlobalFilters": false, + "incompleteColumns": {} + } + } + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "internalReferences": [], + "adHocDataViews": {} + } + }, + "enhancements": {} + } + }, + { + "type": "lens", + "gridData": { + "x": 24, + "y": 0, + "w": 24, + "h": 8, + "i": "9c5ede59-41a3-40d6-814e-5ac97c5a96ad" + }, + "panelIndex": "9c5ede59-41a3-40d6-814e-5ac97c5a96ad", + "embeddableConfig": { + "attributes": { + "title": "", + "visualizationType": "lnsMetric", + "type": "lens", + "references": [ + { + "type": "index-pattern", + "id": "metrics-*", + "name": "indexpattern-datasource-layer-cb36a339-a5da-41cb-b64a-ed1a5ac7149d" + } + ], + "state": { + "visualization": { + "layerId": "cb36a339-a5da-41cb-b64a-ed1a5ac7149d", + "layerType": "data", + "metricAccessor": "206f54f6-c59f-45c8-a7f8-682fc336d6dd", + "palette": { + "type": "palette", + "name": "status", + "params": { + "name": "status", + "reverse": false, + "rangeType": "number", + "rangeMin": null, + "rangeMax": null, + "progression": "fixed", + "stops": [ + { + "color": "#209280", + "stop": 8160 + }, + { + "color": "#d6bf57", + "stop": 16320 + }, + { + "color": "#cc5642", + "stop": 24480 + } + ], + "steps": 3, + "colorStops": [], + "continuity": "all", + "maxSteps": 5 + } + } + }, + "query": { + "query": "", + "language": "kuery" + }, + "filters": [], + "datasourceStates": { + "formBased": { + "layers": { + "cb36a339-a5da-41cb-b64a-ed1a5ac7149d": { + "columns": { + "206f54f6-c59f-45c8-a7f8-682fc336d6dd": { + "label": "Average IPsec Tunnel Lifetime", + "dataType": "number", + "operationType": "average", + "sourceField": "panw.interfaces.ipsec_tunnel.life.sec", + "isBucketed": false, + "scale": "ratio", + "params": { + "format": { + "id": "duration", + "params": { + "decimals": 0 + } + }, + "emptyAsNull": true + }, + "customLabel": true + } + }, + "columnOrder": [ + "206f54f6-c59f-45c8-a7f8-682fc336d6dd" + ], + "sampling": 1, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "indexPatternId": "metrics-*" + } + }, + "currentIndexPatternId": "metrics-*" + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "internalReferences": [], + "adHocDataViews": {} + } + }, + "enhancements": {} + } + }, + { + "type": "lens", + "gridData": { + "x": 0, + "y": 8, + "w": 24, + "h": 15, + "i": "8731075c-5e94-4fa6-8395-2ed0e53d5dfe" + }, + "panelIndex": "8731075c-5e94-4fa6-8395-2ed0e53d5dfe", + "embeddableConfig": { + "attributes": { + "title": "", + "visualizationType": "lnsPie", + "type": "lens", + "references": [ + { + "type": "index-pattern", + "id": "metrics-*", + "name": "indexpattern-datasource-layer-2657c5de-9757-4e3f-ac8c-72255c18230a" + } + ], + "state": { + "visualization": { + "shape": "pie", + "layers": [ + { + "layerId": "2657c5de-9757-4e3f-ac8c-72255c18230a", + "primaryGroups": [ + "020dd020-2293-41ab-9765-c0dbab28ff16" + ], + "metrics": [ + "29f7c8b0-d842-47a5-8c2e-800aec891f23" + ], + "numberDisplay": "percent", + "categoryDisplay": "default", + "legendDisplay": "default", + "nestedLegend": false, + "layerType": "data", + "colorMapping": { + "assignments": [], + "specialAssignments": [ + { + "rule": { + "type": "other" + }, + "color": { + "type": "loop" + }, + "touched": false + } + ], + "paletteId": "eui_amsterdam_color_blind", + "colorMode": { + "type": "categorical" + } + } + } + ] + }, + "query": { + "query": "", + "language": "kuery" + }, + "filters": [], + "datasourceStates": { + "formBased": { + "layers": { + "2657c5de-9757-4e3f-ac8c-72255c18230a": { + "columns": { + "29f7c8b0-d842-47a5-8c2e-800aec891f23": { + "label": "Count of records", + "dataType": "number", + "operationType": "count", + "isBucketed": false, + "scale": "ratio", + "sourceField": "___records___", + "params": { + "emptyAsNull": true + } + }, + "020dd020-2293-41ab-9765-c0dbab28ff16": { + "label": "Top 20 values of panw.interfaces.logical.zone", + "dataType": "string", + "operationType": "terms", + "scale": "ordinal", + "sourceField": "panw.interfaces.logical.zone", + "isBucketed": true, + "params": { + "size": 20, + "orderBy": { + "type": "column", + "columnId": "29f7c8b0-d842-47a5-8c2e-800aec891f23" + }, + "orderDirection": "desc", + "otherBucket": true, + "missingBucket": false, + "parentFormat": { + "id": "terms" + }, + "include": [], + "exclude": [], + "includeIsRegex": false, + "excludeIsRegex": false + } + } + }, + "columnOrder": [ + "020dd020-2293-41ab-9765-c0dbab28ff16", + "29f7c8b0-d842-47a5-8c2e-800aec891f23" + ], + "sampling": 1, + "ignoreGlobalFilters": false, + "incompleteColumns": {} + } + } + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "internalReferences": [], + "adHocDataViews": {} + } + }, + "enhancements": {} + }, + "title": "Logical Interfaces Zones" + }, + { + "type": "lens", + "gridData": { + "x": 24, + "y": 8, + "w": 24, + "h": 15, + "i": "f5091176-14d3-4b13-b506-bf87ac0111ae" + }, + "panelIndex": "f5091176-14d3-4b13-b506-bf87ac0111ae", + "embeddableConfig": { + "attributes": { + "title": "", + "visualizationType": "lnsPie", + "type": "lens", + "references": [ + { + "type": "index-pattern", + "id": "metrics-*", + "name": "indexpattern-datasource-layer-2657c5de-9757-4e3f-ac8c-72255c18230a" + } + ], + "state": { + "visualization": { + "shape": "pie", + "layers": [ + { + "layerId": "2657c5de-9757-4e3f-ac8c-72255c18230a", + "primaryGroups": [ + "020dd020-2293-41ab-9765-c0dbab28ff16" + ], + "metrics": [ + "29f7c8b0-d842-47a5-8c2e-800aec891f23" + ], + "numberDisplay": "percent", + "categoryDisplay": "default", + "legendDisplay": "default", + "nestedLegend": false, + "layerType": "data", + "colorMapping": { + "assignments": [], + "specialAssignments": [ + { + "rule": { + "type": "other" + }, + "color": { + "type": "loop" + }, + "touched": false + } + ], + "paletteId": "eui_amsterdam_color_blind", + "colorMode": { + "type": "categorical" + } + } + } + ] + }, + "query": { + "query": "", + "language": "kuery" + }, + "filters": [], + "datasourceStates": { + "formBased": { + "layers": { + "2657c5de-9757-4e3f-ac8c-72255c18230a": { + "columns": { + "29f7c8b0-d842-47a5-8c2e-800aec891f23": { + "label": "Count of records", + "dataType": "number", + "operationType": "count", + "isBucketed": false, + "scale": "ratio", + "sourceField": "___records___", + "params": { + "emptyAsNull": true + } + }, + "020dd020-2293-41ab-9765-c0dbab28ff16": { + "label": "Top 20 values of panw.interfaces.physical.state", + "dataType": "string", + "operationType": "terms", + "scale": "ordinal", + "sourceField": "panw.interfaces.physical.state", + "isBucketed": true, + "params": { + "size": 20, + "orderBy": { + "type": "column", + "columnId": "29f7c8b0-d842-47a5-8c2e-800aec891f23" + }, + "orderDirection": "desc", + "otherBucket": true, + "missingBucket": false, + "parentFormat": { + "id": "terms" + }, + "include": [], + "exclude": [], + "includeIsRegex": false, + "excludeIsRegex": false, + "secondaryFields": [] + } + } + }, + "columnOrder": [ + "020dd020-2293-41ab-9765-c0dbab28ff16", + "29f7c8b0-d842-47a5-8c2e-800aec891f23" + ], + "sampling": 1, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "indexPatternId": "metrics-*" + } + }, + "currentIndexPatternId": "metrics-*" + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "internalReferences": [], + "adHocDataViews": {} + } + }, + "enhancements": {} + }, + "title": "Physical Interfaces States" + }, + { + "type": "lens", + "gridData": { + "x": 0, + "y": 23, + "w": 24, + "h": 15, + "i": "a47c890c-25ba-474e-bd81-f0769d49bc53" + }, + "panelIndex": "a47c890c-25ba-474e-bd81-f0769d49bc53", + "embeddableConfig": { + "attributes": { + "title": "Table COUNT() & PAN-OS Version & Application Database Version & Antivirus Version & Threat Version", + "references": [ + { + "type": "index-pattern", + "id": "a393e2233dbee924d20fe92704376310e9ea039054a4868af91f952c5bd1df1c", + "name": "textBasedLanguages-datasource-layer-b15af2e7-d211-4978-9fe9-ba67d556692e" + } + ], + "state": { + "datasourceStates": { + "textBased": { + "layers": { + "b15af2e7-d211-4978-9fe9-ba67d556692e": { + "index": "a393e2233dbee924d20fe92704376310e9ea039054a4868af91f952c5bd1df1c", + "query": { + "esql": "FROM metrics-panw_metrics.interfaces-* \n| KEEP panw.interfaces.ha.local_info.build_rel, panw.interfaces.ha.local_info.app_version, panw.interfaces.ha.local_info.av_version, panw.interfaces.ha.local_info.threat_version, panw.interfaces.ha.local_info.url_version, panw.interfaces.ha.local_info.gp_client_version \n| WHERE panw.interfaces.ha.local_info.build_rel IS NOT NULL \n| RENAME panw.interfaces.ha.local_info.build_rel AS `PAN-OS Version`, panw.interfaces.ha.local_info.app_version AS `Application Database Version`, panw.interfaces.ha.local_info.av_version AS `Antivirus Version`, panw.interfaces.ha.local_info.threat_version AS `Threat Version`, panw.interfaces.ha.local_info.url_version AS `URL Filtering Database Version`, panw.interfaces.ha.local_info.gp_client_version AS `GlobalProtect Client Version` \n| STATS COUNT() BY `PAN-OS Version`, `Application Database Version`, `Antivirus Version`, `Threat Version`, `URL Filtering Database Version`, `GlobalProtect Client Version`" + }, + "columns": [ + { + "columnId": "PAN-OS Version", + "fieldName": "PAN-OS Version", + "meta": { + "type": "string", + "esType": "keyword" + }, + "inMetricDimension": true + }, + { + "columnId": "Application Database Version", + "fieldName": "Application Database Version", + "meta": { + "type": "string", + "esType": "keyword" + }, + "inMetricDimension": true + }, + { + "columnId": "Antivirus Version", + "fieldName": "Antivirus Version", + "meta": { + "type": "string", + "esType": "keyword" + }, + "inMetricDimension": true + }, + { + "columnId": "Threat Version", + "fieldName": "Threat Version", + "meta": { + "type": "string", + "esType": "keyword" + }, + "inMetricDimension": true + }, + { + "columnId": "740014b9-79fb-45ad-b42a-fca8ff2b6897", + "fieldName": "URL Filtering Database Version", + "meta": { + "type": "string", + "esType": "keyword" + } + }, + { + "columnId": "3435d2f5-abfc-407f-a975-24ac7877a27a", + "fieldName": "GlobalProtect Client Version", + "meta": { + "type": "string", + "esType": "keyword" + } + } + ], + "timeField": "@timestamp" + } + }, + "indexPatternRefs": [ + { + "id": "a393e2233dbee924d20fe92704376310e9ea039054a4868af91f952c5bd1df1c", + "title": "metrics-panw_metrics.interfaces-*", + "timeField": "@timestamp" + } + ] + } + }, + "filters": [], + "query": { + "esql": "FROM metrics-panw_metrics.interfaces-* \n| KEEP panw.interfaces.ha.local_info.build_rel, panw.interfaces.ha.local_info.app_version, panw.interfaces.ha.local_info.av_version, panw.interfaces.ha.local_info.threat_version, panw.interfaces.ha.local_info.url_version, panw.interfaces.ha.local_info.gp_client_version \n| WHERE panw.interfaces.ha.local_info.build_rel IS NOT NULL \n| RENAME panw.interfaces.ha.local_info.build_rel AS `PAN-OS Version`, panw.interfaces.ha.local_info.app_version AS `Application Database Version`, panw.interfaces.ha.local_info.av_version AS `Antivirus Version`, panw.interfaces.ha.local_info.threat_version AS `Threat Version`, panw.interfaces.ha.local_info.url_version AS `URL Filtering Database Version`, panw.interfaces.ha.local_info.gp_client_version AS `GlobalProtect Client Version` \n| STATS COUNT() BY `PAN-OS Version`, `Application Database Version`, `Antivirus Version`, `Threat Version`, `URL Filtering Database Version`, `GlobalProtect Client Version`" + }, + "visualization": { + "layerId": "b15af2e7-d211-4978-9fe9-ba67d556692e", + "layerType": "data", + "columns": [ + { + "columnId": "PAN-OS Version" + }, + { + "columnId": "Application Database Version" + }, + { + "columnId": "Antivirus Version" + }, + { + "columnId": "Threat Version" + }, + { + "columnId": "740014b9-79fb-45ad-b42a-fca8ff2b6897", + "isTransposed": false, + "isMetric": true + }, + { + "columnId": "3435d2f5-abfc-407f-a975-24ac7877a27a", + "isTransposed": false, + "isMetric": true + } + ] + }, + "adHocDataViews": { + "a393e2233dbee924d20fe92704376310e9ea039054a4868af91f952c5bd1df1c": { + "id": "a393e2233dbee924d20fe92704376310e9ea039054a4868af91f952c5bd1df1c", + "title": "metrics-panw_metrics.interfaces-*", + "timeFieldName": "@timestamp", + "sourceFilters": [], + "type": "esql", + "fieldFormats": {}, + "runtimeFieldMap": {}, + "allowNoIndex": false, + "name": "metrics-panw_metrics.interfaces-*", + "allowHidden": false + } + } + }, + "visualizationType": "lnsDatatable", + "type": "lens" + }, + "disabledActions": [ + "OPEN_FLYOUT_ADD_DRILLDOWN" + ], + "enhancements": {} + }, + "title": "PAN-OS and Security Database Versions" + }, + { + "type": "lens", + "gridData": { + "x": 24, + "y": 23, + "w": 24, + "h": 15, + "i": "e95b9995-7630-496a-bd64-a165e255e8ce" + }, + "panelIndex": "e95b9995-7630-496a-bd64-a165e255e8ce", + "embeddableConfig": { + "attributes": { + "title": "", + "visualizationType": "lnsXY", + "type": "lens", + "references": [ + { + "type": "index-pattern", + "id": "metrics-*", + "name": "indexpattern-datasource-layer-12e3f316-a404-48d7-99fe-e42e40a21172" + } + ], + "state": { + "visualization": { + "title": "Empty XY chart", + "legend": { + "isVisible": true, + "position": "right" + }, + "valueLabels": "hide", + "preferredSeriesType": "bar_stacked", + "layers": [ + { + "layerId": "12e3f316-a404-48d7-99fe-e42e40a21172", + "accessors": [ + "fa787535-2d8c-4545-a6b3-7cb67eb20dc7" + ], + "position": "top", + "seriesType": "bar_stacked", + "showGridlines": false, + "layerType": "data", + "xAccessor": "24a0a6ec-4de6-4f49-a3b2-72eb0385bdb4", + "splitAccessor": "0d49b482-91ab-414d-926c-deaa2cec8e03" + } + ] + }, + "query": { + "query": "", + "language": "kuery" + }, + "filters": [], + "datasourceStates": { + "formBased": { + "layers": { + "12e3f316-a404-48d7-99fe-e42e40a21172": { + "columns": { + "24a0a6ec-4de6-4f49-a3b2-72eb0385bdb4": { + "label": "@timestamp", + "dataType": "date", + "operationType": "date_histogram", + "sourceField": "@timestamp", + "isBucketed": true, + "scale": "interval", + "params": { + "interval": "auto", + "includeEmptyRows": true, + "dropPartials": false + } + }, + "0d49b482-91ab-414d-926c-deaa2cec8e03": { + "label": "Top 20 values of panw.interfaces.ipsec_tunnel.name", + "dataType": "string", + "operationType": "terms", + "scale": "ordinal", + "sourceField": "panw.interfaces.ipsec_tunnel.name", + "isBucketed": true, + "params": { + "size": 20, + "orderBy": { + "type": "column", + "columnId": "fa787535-2d8c-4545-a6b3-7cb67eb20dc7" + }, + "orderDirection": "desc", + "otherBucket": true, + "missingBucket": false, + "parentFormat": { + "id": "terms" + }, + "include": [], + "exclude": [], + "includeIsRegex": false, + "excludeIsRegex": false + } + }, + "fa787535-2d8c-4545-a6b3-7cb67eb20dc7": { + "label": "Duration", + "dataType": "number", + "operationType": "max", + "sourceField": "panw.interfaces.ipsec_tunnel.life.sec", + "isBucketed": false, + "scale": "ratio", + "params": { + "format": { + "id": "duration", + "params": { + "decimals": 0 + } + }, + "emptyAsNull": true + }, + "customLabel": true + } + }, + "columnOrder": [ + "24a0a6ec-4de6-4f49-a3b2-72eb0385bdb4", + "0d49b482-91ab-414d-926c-deaa2cec8e03", + "fa787535-2d8c-4545-a6b3-7cb67eb20dc7" + ], + "sampling": 1, + "ignoreGlobalFilters": false, + "incompleteColumns": {} + } + } + }, + "indexpattern": { + "layers": {} + }, + "textBased": { + "layers": {} + } + }, + "internalReferences": [], + "adHocDataViews": {} + } + }, + "enhancements": {} + }, + "title": "IPsec Tunnel Lifetimes" + }, + { + "type": "lens", + "gridData": { + "x": 0, + "y": 38, + "w": 24, + "h": 15, + "i": "f9234ebe-3ad7-4bc2-8fea-48a5f22e7f28" + }, + "panelIndex": "f9234ebe-3ad7-4bc2-8fea-48a5f22e7f28", + "embeddableConfig": { + "attributes": { + "title": "Table COUNT() & Interface Name & State & Speed & Duplex", + "references": [ + { + "type": "index-pattern", + "id": "a393e2233dbee924d20fe92704376310e9ea039054a4868af91f952c5bd1df1c", + "name": "textBasedLanguages-datasource-layer-8191f79a-63ea-4f65-9760-0d718ba8c9c0" + } + ], + "state": { + "datasourceStates": { + "textBased": { + "layers": { + "8191f79a-63ea-4f65-9760-0d718ba8c9c0": { + "index": "a393e2233dbee924d20fe92704376310e9ea039054a4868af91f952c5bd1df1c", + "query": { + "esql": "FROM metrics-panw_metrics.interfaces-* \n| KEEP panw.interfaces.physical.name, panw.interfaces.physical.state, panw.interfaces.physical.speed, panw.interfaces.physical.duplex, panw.interfaces.physical.type, panw.interfaces.physical.full_state \n| WHERE panw.interfaces.physical.name IS NOT NULL \n| RENAME panw.interfaces.physical.name AS `Interface Name`, panw.interfaces.physical.state AS `State`, panw.interfaces.physical.speed AS `Speed`, panw.interfaces.physical.duplex AS `Duplex`, panw.interfaces.physical.type AS `Type`, panw.interfaces.physical.full_state AS `Full State` \n| STATS COUNT() BY `Interface Name`, `State`, `Speed`, `Duplex`, `Type`, `Full State`" + }, + "columns": [ + { + "columnId": "Interface Name", + "fieldName": "Interface Name", + "meta": { + "type": "string", + "esType": "keyword" + }, + "inMetricDimension": true + }, + { + "columnId": "State", + "fieldName": "State", + "meta": { + "type": "string", + "esType": "keyword" + }, + "inMetricDimension": true + }, + { + "columnId": "Speed", + "fieldName": "Speed", + "meta": { + "type": "string", + "esType": "keyword" + }, + "inMetricDimension": true + }, + { + "columnId": "Duplex", + "fieldName": "Duplex", + "meta": { + "type": "string", + "esType": "keyword" + }, + "inMetricDimension": true + }, + { + "columnId": "1b70bb70-9dff-42a0-8dcd-a4fa6f6e3b2b", + "fieldName": "Type", + "meta": { + "type": "string", + "esType": "keyword" + } + }, + { + "columnId": "228c4220-b007-4f98-9137-dce82c49d868", + "fieldName": "Full State", + "meta": { + "type": "string", + "esType": "keyword" + } + } + ], + "timeField": "@timestamp" + } + }, + "indexPatternRefs": [ + { + "id": "a393e2233dbee924d20fe92704376310e9ea039054a4868af91f952c5bd1df1c", + "title": "metrics-panw_metrics.interfaces-*", + "timeField": "@timestamp" + } + ] + } + }, + "filters": [], + "query": { + "esql": "FROM metrics-panw_metrics.interfaces-* \n| KEEP panw.interfaces.physical.name, panw.interfaces.physical.state, panw.interfaces.physical.speed, panw.interfaces.physical.duplex, panw.interfaces.physical.type, panw.interfaces.physical.full_state \n| WHERE panw.interfaces.physical.name IS NOT NULL \n| RENAME panw.interfaces.physical.name AS `Interface Name`, panw.interfaces.physical.state AS `State`, panw.interfaces.physical.speed AS `Speed`, panw.interfaces.physical.duplex AS `Duplex`, panw.interfaces.physical.type AS `Type`, panw.interfaces.physical.full_state AS `Full State` \n| STATS COUNT() BY `Interface Name`, `State`, `Speed`, `Duplex`, `Type`, `Full State`" + }, + "visualization": { + "layerId": "8191f79a-63ea-4f65-9760-0d718ba8c9c0", + "layerType": "data", + "columns": [ + { + "columnId": "Interface Name" + }, + { + "columnId": "State" + }, + { + "columnId": "Speed" + }, + { + "columnId": "Duplex" + }, + { + "columnId": "1b70bb70-9dff-42a0-8dcd-a4fa6f6e3b2b", + "isTransposed": false, + "isMetric": true + }, + { + "columnId": "228c4220-b007-4f98-9137-dce82c49d868", + "isTransposed": false, + "isMetric": true + } + ] + }, + "adHocDataViews": { + "a393e2233dbee924d20fe92704376310e9ea039054a4868af91f952c5bd1df1c": { + "id": "a393e2233dbee924d20fe92704376310e9ea039054a4868af91f952c5bd1df1c", + "title": "metrics-panw_metrics.interfaces-*", + "timeFieldName": "@timestamp", + "sourceFilters": [], + "type": "esql", + "fieldFormats": {}, + "runtimeFieldMap": {}, + "allowNoIndex": false, + "name": "metrics-panw_metrics.interfaces-*", + "allowHidden": false + } + } + }, + "visualizationType": "lnsDatatable", + "type": "lens" + }, + "disabledActions": [ + "OPEN_FLYOUT_ADD_DRILLDOWN" + ], + "enhancements": {} + }, + "title": "Physical Interfaces Overview" + }, + { + "type": "lens", + "gridData": { + "x": 24, + "y": 38, + "w": 24, + "h": 15, + "i": "116e3b34-3a6c-40b9-9a60-0469f1fd4fec" + }, + "panelIndex": "116e3b34-3a6c-40b9-9a60-0469f1fd4fec", + "embeddableConfig": { + "attributes": { + "title": "COUNT() & Local Device State Duration & Peer Device State Duration of Peer Device State", + "references": [ + { + "type": "index-pattern", + "id": "a393e2233dbee924d20fe92704376310e9ea039054a4868af91f952c5bd1df1c", + "name": "textBasedLanguages-datasource-layer-1de8dfa2-bb41-4294-b9e5-8e26887994d6" + } + ], + "state": { + "datasourceStates": { + "textBased": { + "layers": { + "1de8dfa2-bb41-4294-b9e5-8e26887994d6": { + "index": "a393e2233dbee924d20fe92704376310e9ea039054a4868af91f952c5bd1df1c", + "query": { + "esql": "FROM metrics-panw_metrics.interfaces-* \n| KEEP panw.interfaces.ha.local_info.state, panw.interfaces.ha.peer_info.state, panw.interfaces.ha.local_info.state_duration, panw.interfaces.ha.peer_info.state_duration \n| WHERE panw.interfaces.ha.local_info.state IS NOT NULL \n| RENAME panw.interfaces.ha.local_info.state AS `Local Device State`, panw.interfaces.ha.peer_info.state AS `Peer Device State`, panw.interfaces.ha.local_info.state_duration AS `Local Device State Duration`, panw.interfaces.ha.peer_info.state_duration AS `Peer Device State Duration` \n| STATS COUNT() BY `Local Device State`, `Peer Device State`, `Local Device State Duration`, `Peer Device State Duration`" + }, + "columns": [ + { + "columnId": "Local Device State", + "fieldName": "Local Device State", + "meta": { + "type": "string", + "esType": "keyword" + }, + "inMetricDimension": true + }, + { + "columnId": "Peer Device State", + "fieldName": "Peer Device State", + "meta": { + "type": "string", + "esType": "keyword" + }, + "inMetricDimension": true + }, + { + "columnId": "Local Device State Duration", + "fieldName": "Local Device State Duration", + "meta": { + "type": "number", + "esType": "long" + }, + "inMetricDimension": true + }, + { + "columnId": "Peer Device State Duration", + "fieldName": "Peer Device State Duration", + "meta": { + "type": "number", + "esType": "long" + }, + "inMetricDimension": true + } + ], + "timeField": "@timestamp" + } + }, + "indexPatternRefs": [ + { + "id": "a393e2233dbee924d20fe92704376310e9ea039054a4868af91f952c5bd1df1c", + "title": "metrics-panw_metrics.interfaces-*", + "timeField": "@timestamp" + } + ] + } + }, + "filters": [], + "query": { + "esql": "FROM metrics-panw_metrics.interfaces-* \n| KEEP panw.interfaces.ha.local_info.state, panw.interfaces.ha.peer_info.state, panw.interfaces.ha.local_info.state_duration, panw.interfaces.ha.peer_info.state_duration \n| WHERE panw.interfaces.ha.local_info.state IS NOT NULL \n| RENAME panw.interfaces.ha.local_info.state AS `Local Device State`, panw.interfaces.ha.peer_info.state AS `Peer Device State`, panw.interfaces.ha.local_info.state_duration AS `Local Device State Duration`, panw.interfaces.ha.peer_info.state_duration AS `Peer Device State Duration` \n| STATS COUNT() BY `Local Device State`, `Peer Device State`, `Local Device State Duration`, `Peer Device State Duration`" + }, + "visualization": { + "legend": { + "isVisible": true, + "position": "right" + }, + "valueLabels": "hide", + "fittingFunction": "None", + "axisTitlesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "tickLabelsVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "labelsOrientation": { + "x": 0, + "yLeft": 0, + "yRight": 0 + }, + "gridlinesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "preferredSeriesType": "bar_stacked", + "layers": [ + { + "layerId": "1de8dfa2-bb41-4294-b9e5-8e26887994d6", + "seriesType": "bar_stacked", + "xAccessor": "Peer Device State", + "splitAccessor": "Local Device State", + "accessors": [ + "Local Device State Duration", + "Peer Device State Duration" + ], + "layerType": "data", + "colorMapping": { + "assignments": [], + "specialAssignments": [ + { + "rule": { + "type": "other" + }, + "color": { + "type": "loop" + }, + "touched": false + } + ], + "paletteId": "eui_amsterdam_color_blind", + "colorMode": { + "type": "categorical" + } + } + } + ] + }, + "adHocDataViews": { + "a393e2233dbee924d20fe92704376310e9ea039054a4868af91f952c5bd1df1c": { + "id": "a393e2233dbee924d20fe92704376310e9ea039054a4868af91f952c5bd1df1c", + "title": "metrics-panw_metrics.interfaces-*", + "timeFieldName": "@timestamp", + "sourceFilters": [], + "type": "esql", + "fieldFormats": {}, + "runtimeFieldMap": {}, + "allowNoIndex": false, + "name": "metrics-panw_metrics.interfaces-*", + "allowHidden": false + } + } + }, + "visualizationType": "lnsXY", + "type": "lens" + }, + "disabledActions": [ + "OPEN_FLYOUT_ADD_DRILLDOWN" + ], + "enhancements": {} + }, + "title": "HA Local and Peer State" + }, + { + "type": "lens", + "gridData": { + "x": 24, + "y": 53, + "w": 24, + "h": 15, + "i": "7bff3a19-00f9-423a-855e-6c526ded376b" + }, + "panelIndex": "7bff3a19-00f9-423a-855e-6c526ded376b", + "embeddableConfig": { + "attributes": { + "title": "Pie", + "references": [ + { + "type": "index-pattern", + "id": "a393e2233dbee924d20fe92704376310e9ea039054a4868af91f952c5bd1df1c", + "name": "textBasedLanguages-datasource-layer-776e5efb-f6c8-4d95-8726-746fbbf5c09e" + } + ], + "state": { + "datasourceStates": { + "textBased": { + "layers": { + "776e5efb-f6c8-4d95-8726-746fbbf5c09e": { + "index": "a393e2233dbee924d20fe92704376310e9ea039054a4868af91f952c5bd1df1c", + "query": { + "esql": "FROM metrics-panw_metrics.interfaces-* \n| KEEP panw.interfaces.ha.link_monitoring.group.name, panw.interfaces.ha.link_monitoring.group.interface.name, panw.interfaces.ha.link_monitoring.group.interface.status \n| WHERE panw.interfaces.ha.link_monitoring.group.name IS NOT NULL \n| RENAME panw.interfaces.ha.link_monitoring.group.name AS `Group Name`, panw.interfaces.ha.link_monitoring.group.interface.name AS `Interface Name`, panw.interfaces.ha.link_monitoring.group.interface.status AS `Interface Status` \n| STATS COUNT() BY `Group Name`, `Interface Name`, `Interface Status`" + }, + "columns": [ + { + "columnId": "eab4c450-558a-4aab-9f25-6334a50164f3", + "fieldName": "Group Name", + "meta": { + "type": "string", + "esType": "keyword" + } + }, + { + "columnId": "20854f8b-671f-418b-9a68-66ed1f7d269e", + "fieldName": "Interface Name", + "meta": { + "type": "string", + "esType": "keyword" + } + }, + { + "columnId": "dc7a8789-da5c-4cfe-af81-6d4c5fee0774", + "fieldName": "Interface Status", + "meta": { + "type": "string", + "esType": "keyword" + } + } + ], + "timeField": "@timestamp" + } + }, + "indexPatternRefs": [ + { + "id": "a393e2233dbee924d20fe92704376310e9ea039054a4868af91f952c5bd1df1c", + "title": "metrics-panw_metrics.interfaces-*", + "timeField": "@timestamp" + } + ] + } + }, + "filters": [], + "query": { + "esql": "FROM metrics-panw_metrics.interfaces-* \n| KEEP panw.interfaces.ha.link_monitoring.group.name, panw.interfaces.ha.link_monitoring.group.interface.name, panw.interfaces.ha.link_monitoring.group.interface.status \n| WHERE panw.interfaces.ha.link_monitoring.group.name IS NOT NULL \n| RENAME panw.interfaces.ha.link_monitoring.group.name AS `Group Name`, panw.interfaces.ha.link_monitoring.group.interface.name AS `Interface Name`, panw.interfaces.ha.link_monitoring.group.interface.status AS `Interface Status` \n| STATS COUNT() BY `Group Name`, `Interface Name`, `Interface Status`" + }, + "visualization": { + "layerId": "776e5efb-f6c8-4d95-8726-746fbbf5c09e", + "layerType": "data", + "columns": [ + { + "columnId": "eab4c450-558a-4aab-9f25-6334a50164f3", + "isTransposed": false, + "isMetric": true + }, + { + "columnId": "20854f8b-671f-418b-9a68-66ed1f7d269e", + "isTransposed": false, + "isMetric": true + }, + { + "columnId": "dc7a8789-da5c-4cfe-af81-6d4c5fee0774", + "isTransposed": false, + "isMetric": true + } + ] + }, + "adHocDataViews": { + "a393e2233dbee924d20fe92704376310e9ea039054a4868af91f952c5bd1df1c": { + "id": "a393e2233dbee924d20fe92704376310e9ea039054a4868af91f952c5bd1df1c", + "title": "metrics-panw_metrics.interfaces-*", + "timeFieldName": "@timestamp", + "sourceFilters": [], + "type": "esql", + "fieldFormats": {}, + "runtimeFieldMap": {}, + "allowNoIndex": false, + "name": "metrics-panw_metrics.interfaces-*", + "allowHidden": false + } + } + }, + "visualizationType": "lnsDatatable", + "type": "lens" + }, + "disabledActions": [ + "OPEN_FLYOUT_ADD_DRILLDOWN" + ], + "enhancements": {} + }, + "title": "Link Monitoring Interface Status" + }, + { + "type": "lens", + "gridData": { + "x": 0, + "y": 53, + "w": 24, + "h": 15, + "i": "23122ef5-651c-4028-aa6c-2fccdfdbd42b" + }, + "panelIndex": "23122ef5-651c-4028-aa6c-2fccdfdbd42b", + "embeddableConfig": { + "attributes": { + "title": "Table count() & Tunnel Name & Gateway & Protocol & Mode", + "references": [ + { + "type": "index-pattern", + "id": "a393e2233dbee924d20fe92704376310e9ea039054a4868af91f952c5bd1df1c", + "name": "textBasedLanguages-datasource-layer-3d6280f8-ad2f-4749-a7e7-615cd44ede8a" + } + ], + "state": { + "datasourceStates": { + "textBased": { + "layers": { + "3d6280f8-ad2f-4749-a7e7-615cd44ede8a": { + "index": "a393e2233dbee924d20fe92704376310e9ea039054a4868af91f952c5bd1df1c", + "query": { + "esql": "FROM metrics-panw_metrics.interfaces-* | keep panw.interfaces.ipsec_tunnel.name, panw.interfaces.ipsec_tunnel.gw, panw.interfaces.ipsec_tunnel.proto, panw.interfaces.ipsec_tunnel.mode, panw.interfaces.ipsec_tunnel.life.sec | where panw.interfaces.ipsec_tunnel.name is not null and length(panw.interfaces.ipsec_tunnel.name) > 0 | rename panw.interfaces.ipsec_tunnel.name as `Tunnel Name`, panw.interfaces.ipsec_tunnel.gw as `Gateway`, panw.interfaces.ipsec_tunnel.proto as `Protocol`, panw.interfaces.ipsec_tunnel.mode as `Mode`, panw.interfaces.ipsec_tunnel.life.sec as `Lifetime (sec)` | stats count() by `Tunnel Name`, `Gateway`, `Protocol`, `Mode`, `Lifetime (sec)`" + }, + "columns": [ + { + "columnId": "Tunnel Name", + "fieldName": "Tunnel Name", + "meta": { + "type": "string", + "esType": "keyword" + }, + "inMetricDimension": true + }, + { + "columnId": "Gateway", + "fieldName": "Gateway", + "meta": { + "type": "string", + "esType": "keyword" + }, + "inMetricDimension": true + }, + { + "columnId": "Protocol", + "fieldName": "Protocol", + "meta": { + "type": "string", + "esType": "keyword" + }, + "inMetricDimension": true + }, + { + "columnId": "Mode", + "fieldName": "Mode", + "meta": { + "type": "string", + "esType": "keyword" + }, + "inMetricDimension": true + }, + { + "columnId": "23272146-c800-4cd7-9a75-626d78549368", + "fieldName": "Lifetime (sec)", + "meta": { + "type": "number", + "esType": "long" + } + } + ], + "timeField": "@timestamp" + } + }, + "indexPatternRefs": [ + { + "id": "a393e2233dbee924d20fe92704376310e9ea039054a4868af91f952c5bd1df1c", + "title": "metrics-panw_metrics.interfaces-*", + "timeField": "@timestamp" + } + ] + } + }, + "filters": [], + "query": { + "esql": "FROM metrics-panw_metrics.interfaces-* | keep panw.interfaces.ipsec_tunnel.name, panw.interfaces.ipsec_tunnel.gw, panw.interfaces.ipsec_tunnel.proto, panw.interfaces.ipsec_tunnel.mode, panw.interfaces.ipsec_tunnel.life.sec | where panw.interfaces.ipsec_tunnel.name is not null and length(panw.interfaces.ipsec_tunnel.name) > 0 | rename panw.interfaces.ipsec_tunnel.name as `Tunnel Name`, panw.interfaces.ipsec_tunnel.gw as `Gateway`, panw.interfaces.ipsec_tunnel.proto as `Protocol`, panw.interfaces.ipsec_tunnel.mode as `Mode`, panw.interfaces.ipsec_tunnel.life.sec as `Lifetime (sec)` | stats count() by `Tunnel Name`, `Gateway`, `Protocol`, `Mode`, `Lifetime (sec)`" + }, + "visualization": { + "layerId": "3d6280f8-ad2f-4749-a7e7-615cd44ede8a", + "layerType": "data", + "columns": [ + { + "columnId": "Tunnel Name" + }, + { + "columnId": "Gateway" + }, + { + "columnId": "Protocol" + }, + { + "columnId": "Mode" + }, + { + "columnId": "23272146-c800-4cd7-9a75-626d78549368", + "isTransposed": false, + "isMetric": true, + "alignment": "left", + "colorMode": "cell", + "palette": { + "type": "palette", + "name": "positive", + "params": { + "stops": [ + { + "color": "#d6e9e4", + "stop": 20 + }, + { + "color": "#aed3ca", + "stop": 40 + }, + { + "color": "#85bdb1", + "stop": 60 + }, + { + "color": "#5aa898", + "stop": 80 + }, + { + "color": "#209280", + "stop": 100 + } + ] + } + } + } + ] + }, + "adHocDataViews": { + "a393e2233dbee924d20fe92704376310e9ea039054a4868af91f952c5bd1df1c": { + "id": "a393e2233dbee924d20fe92704376310e9ea039054a4868af91f952c5bd1df1c", + "title": "metrics-panw_metrics.interfaces-*", + "timeFieldName": "@timestamp", + "sourceFilters": [], + "type": "esql", + "fieldFormats": {}, + "runtimeFieldMap": {}, + "allowNoIndex": false, + "name": "metrics-panw_metrics.interfaces-*", + "allowHidden": false + } + } + }, + "visualizationType": "lnsDatatable", + "type": "lens" + }, + "disabledActions": [ + "OPEN_FLYOUT_ADD_DRILLDOWN" + ], + "enhancements": {} + }, + "title": "IPsec Tunnel Configurations" + } + ], + "title": "[Metrics Palo Alto Networks] Interfaces Overview" + }, + "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern", + "id": "metrics-*" + }, + { + "type": "index-pattern", + "id": "metrics-*", + "name": "ca86528d-ee01-4a61-ba2d-50a1155d1273:indexpattern-datasource-layer-cb36a339-a5da-41cb-b64a-ed1a5ac7149d" + }, + { + "type": "index-pattern", + "id": "metrics-*", + "name": "9c5ede59-41a3-40d6-814e-5ac97c5a96ad:indexpattern-datasource-layer-cb36a339-a5da-41cb-b64a-ed1a5ac7149d" + }, + { + "type": "index-pattern", + "id": "metrics-*", + "name": "8731075c-5e94-4fa6-8395-2ed0e53d5dfe:indexpattern-datasource-layer-2657c5de-9757-4e3f-ac8c-72255c18230a" + }, + { + "type": "index-pattern", + "id": "metrics-*", + "name": "f5091176-14d3-4b13-b506-bf87ac0111ae:indexpattern-datasource-layer-2657c5de-9757-4e3f-ac8c-72255c18230a" + }, + { + "type": "index-pattern", + "id": "a393e2233dbee924d20fe92704376310e9ea039054a4868af91f952c5bd1df1c", + "name": "a47c890c-25ba-474e-bd81-f0769d49bc53:textBasedLanguages-datasource-layer-b15af2e7-d211-4978-9fe9-ba67d556692e" + }, + { + "type": "index-pattern", + "id": "metrics-*", + "name": "e95b9995-7630-496a-bd64-a165e255e8ce:indexpattern-datasource-layer-12e3f316-a404-48d7-99fe-e42e40a21172" + }, + { + "type": "index-pattern", + "id": "a393e2233dbee924d20fe92704376310e9ea039054a4868af91f952c5bd1df1c", + "name": "f9234ebe-3ad7-4bc2-8fea-48a5f22e7f28:textBasedLanguages-datasource-layer-8191f79a-63ea-4f65-9760-0d718ba8c9c0" + }, + { + "type": "index-pattern", + "id": "a393e2233dbee924d20fe92704376310e9ea039054a4868af91f952c5bd1df1c", + "name": "116e3b34-3a6c-40b9-9a60-0469f1fd4fec:textBasedLanguages-datasource-layer-1de8dfa2-bb41-4294-b9e5-8e26887994d6" + }, + { + "type": "index-pattern", + "id": "a393e2233dbee924d20fe92704376310e9ea039054a4868af91f952c5bd1df1c", + "name": "7bff3a19-00f9-423a-855e-6c526ded376b:textBasedLanguages-datasource-layer-776e5efb-f6c8-4d95-8726-746fbbf5c09e" + }, + { + "type": "index-pattern", + "id": "a393e2233dbee924d20fe92704376310e9ea039054a4868af91f952c5bd1df1c", + "name": "23122ef5-651c-4028-aa6c-2fccdfdbd42b:textBasedLanguages-datasource-layer-3d6280f8-ad2f-4749-a7e7-615cd44ede8a" + }, + { + "name": "controlGroup_08e03c57-408c-4833-9d90-3a51c55ff8aa:optionsListDataView", + "type": "index-pattern", + "id": "metrics-*" + }, + { + "name": "controlGroup_c5bcd707-b6f2-41c8-b959-a3775b1cf701:optionsListDataView", + "type": "index-pattern", + "id": "metrics-*" + } + ], + "managed": true, + "coreMigrationVersion": "8.8.0", + "typeMigrationVersion": "10.2.0" +} \ No newline at end of file From 466b47e081315605b7e51118e9b3abbc9080a8d1 Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Mon, 7 Oct 2024 16:51:22 +0300 Subject: [PATCH 38/50] remove agent mappings --- .../data_stream/interfaces/fields/agent.yml | 33 ------------------- .../data_stream/routing/fields/agent.yml | 33 ------------------- .../data_stream/system/fields/agent.yml | 33 ------------------- .../data_stream/vpn/fields/agent.yml | 33 ------------------- 4 files changed, 132 deletions(-) delete mode 100644 packages/panw_metrics/data_stream/interfaces/fields/agent.yml delete mode 100644 packages/panw_metrics/data_stream/routing/fields/agent.yml delete mode 100644 packages/panw_metrics/data_stream/system/fields/agent.yml delete mode 100644 packages/panw_metrics/data_stream/vpn/fields/agent.yml diff --git a/packages/panw_metrics/data_stream/interfaces/fields/agent.yml b/packages/panw_metrics/data_stream/interfaces/fields/agent.yml deleted file mode 100644 index 2bc58530bac..00000000000 --- a/packages/panw_metrics/data_stream/interfaces/fields/agent.yml +++ /dev/null @@ -1,33 +0,0 @@ -- name: cloud - title: Cloud - group: 2 - description: Fields related to the cloud or infrastructure the events are coming from. - footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' - type: group - fields: - - name: image.id - type: keyword - description: Image ID for the cloud instance. -- name: host - title: Host - group: 2 - description: 'A host is defined as a general computing instance. ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' - type: group - fields: - - name: containerized - type: boolean - description: > - If the host is a container. - - - name: os.build - type: keyword - example: "18D109" - description: > - OS build information. - - - name: os.codename - type: keyword - example: "stretch" - description: > - OS codename, if any. - diff --git a/packages/panw_metrics/data_stream/routing/fields/agent.yml b/packages/panw_metrics/data_stream/routing/fields/agent.yml deleted file mode 100644 index 2bc58530bac..00000000000 --- a/packages/panw_metrics/data_stream/routing/fields/agent.yml +++ /dev/null @@ -1,33 +0,0 @@ -- name: cloud - title: Cloud - group: 2 - description: Fields related to the cloud or infrastructure the events are coming from. - footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' - type: group - fields: - - name: image.id - type: keyword - description: Image ID for the cloud instance. -- name: host - title: Host - group: 2 - description: 'A host is defined as a general computing instance. ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' - type: group - fields: - - name: containerized - type: boolean - description: > - If the host is a container. - - - name: os.build - type: keyword - example: "18D109" - description: > - OS build information. - - - name: os.codename - type: keyword - example: "stretch" - description: > - OS codename, if any. - diff --git a/packages/panw_metrics/data_stream/system/fields/agent.yml b/packages/panw_metrics/data_stream/system/fields/agent.yml deleted file mode 100644 index 2bc58530bac..00000000000 --- a/packages/panw_metrics/data_stream/system/fields/agent.yml +++ /dev/null @@ -1,33 +0,0 @@ -- name: cloud - title: Cloud - group: 2 - description: Fields related to the cloud or infrastructure the events are coming from. - footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' - type: group - fields: - - name: image.id - type: keyword - description: Image ID for the cloud instance. -- name: host - title: Host - group: 2 - description: 'A host is defined as a general computing instance. ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' - type: group - fields: - - name: containerized - type: boolean - description: > - If the host is a container. - - - name: os.build - type: keyword - example: "18D109" - description: > - OS build information. - - - name: os.codename - type: keyword - example: "stretch" - description: > - OS codename, if any. - diff --git a/packages/panw_metrics/data_stream/vpn/fields/agent.yml b/packages/panw_metrics/data_stream/vpn/fields/agent.yml deleted file mode 100644 index 2bc58530bac..00000000000 --- a/packages/panw_metrics/data_stream/vpn/fields/agent.yml +++ /dev/null @@ -1,33 +0,0 @@ -- name: cloud - title: Cloud - group: 2 - description: Fields related to the cloud or infrastructure the events are coming from. - footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' - type: group - fields: - - name: image.id - type: keyword - description: Image ID for the cloud instance. -- name: host - title: Host - group: 2 - description: 'A host is defined as a general computing instance. ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' - type: group - fields: - - name: containerized - type: boolean - description: > - If the host is a container. - - - name: os.build - type: keyword - example: "18D109" - description: > - OS build information. - - - name: os.codename - type: keyword - example: "stretch" - description: > - OS codename, if any. - From 79be808b730a96fad1b88025cddca3a36e485945 Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Mon, 7 Oct 2024 16:51:44 +0300 Subject: [PATCH 39/50] store text type fields --- packages/panw_metrics/data_stream/system/fields/fields.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/panw_metrics/data_stream/system/fields/fields.yml b/packages/panw_metrics/data_stream/system/fields/fields.yml index 574ec350252..854226f1ea8 100644 --- a/packages/panw_metrics/data_stream/system/fields/fields.yml +++ b/packages/panw_metrics/data_stream/system/fields/fields.yml @@ -338,6 +338,7 @@ - name: description type: text + store: true description: > Description field @@ -374,6 +375,7 @@ - name: description type: text + store: true description: > Description field From 52b750ffc5c9d7d734214145b22458c1dbf49dd6 Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Mon, 7 Oct 2024 16:52:00 +0300 Subject: [PATCH 40/50] enable tsdb --- .../data_stream/interfaces/manifest.yml | 31 ++----------------- .../data_stream/routing/manifest.yml | 31 ++----------------- .../data_stream/system/manifest.yml | 31 ++----------------- .../panw_metrics/data_stream/vpn/manifest.yml | 31 ++----------------- 4 files changed, 12 insertions(+), 112 deletions(-) diff --git a/packages/panw_metrics/data_stream/interfaces/manifest.yml b/packages/panw_metrics/data_stream/interfaces/manifest.yml index ed929a49a35..78af3b92827 100644 --- a/packages/panw_metrics/data_stream/interfaces/manifest.yml +++ b/packages/panw_metrics/data_stream/interfaces/manifest.yml @@ -12,34 +12,6 @@ streams: multi: false required: true show_user: true - - name: host_ip - type: text - title: Host IP - default: 127.0.0.1 - multi: false - required: true - show_user: true - - name: port - type: text - title: Port - default: 443 - multi: false - required: false - show_user: true - - name: api_key - type: text - title: API Key - secret: true - multi: false - required: true - show_user: true - - name: api_debug_mode - type: bool - title: Debug Mode - default: false - multi: false - required: false - show_user: true - name: tags type: text title: Tags @@ -56,3 +28,6 @@ streams: required: false show_user: false description: Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/fleet/current/elastic-agent-processor-configuration.html) for details. +elasticsearch: + source_mode: synthetic + index_mode: time_series \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/routing/manifest.yml b/packages/panw_metrics/data_stream/routing/manifest.yml index b5345d68199..61fe9ee927a 100644 --- a/packages/panw_metrics/data_stream/routing/manifest.yml +++ b/packages/panw_metrics/data_stream/routing/manifest.yml @@ -12,34 +12,6 @@ streams: multi: false required: true show_user: true - - name: host_ip - type: text - title: Host IP - default: 127.0.0.1 - multi: false - required: true - show_user: true - - name: port - type: text - title: Port - default: 443 - multi: false - required: false - show_user: true - - name: api_key - type: text - title: API Key - secret: true - multi: false - required: true - show_user: true - - name: api_debug_mode - type: bool - title: Debug Mode - default: false - multi: false - required: false - show_user: true - name: tags type: text title: Tags @@ -56,3 +28,6 @@ streams: required: false show_user: false description: Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/fleet/current/elastic-agent-processor-configuration.html) for details. +elasticsearch: + source_mode: synthetic + index_mode: time_series \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/system/manifest.yml b/packages/panw_metrics/data_stream/system/manifest.yml index e3d0e4e19d9..291332acee8 100644 --- a/packages/panw_metrics/data_stream/system/manifest.yml +++ b/packages/panw_metrics/data_stream/system/manifest.yml @@ -12,34 +12,6 @@ streams: multi: false required: true show_user: true - - name: host_ip - type: text - title: Host IP - default: 127.0.0.1 - multi: false - required: true - show_user: true - - name: port - type: text - title: Port - default: 443 - multi: false - required: false - show_user: true - - name: api_key - type: text - title: API Key - secret: true - multi: false - required: true - show_user: true - - name: api_debug_mode - type: bool - title: Debug Mode - default: false - multi: false - required: false - show_user: true - name: tags type: text title: Tags @@ -56,3 +28,6 @@ streams: required: false show_user: false description: Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/fleet/current/elastic-agent-processor-configuration.html) for details. +elasticsearch: + source_mode: synthetic + index_mode: time_series \ No newline at end of file diff --git a/packages/panw_metrics/data_stream/vpn/manifest.yml b/packages/panw_metrics/data_stream/vpn/manifest.yml index f221dd3fd1d..c942207eedb 100644 --- a/packages/panw_metrics/data_stream/vpn/manifest.yml +++ b/packages/panw_metrics/data_stream/vpn/manifest.yml @@ -12,34 +12,6 @@ streams: multi: false required: true show_user: true - - name: host_ip - type: text - title: Host IP - default: 127.0.0.1 - multi: false - required: true - show_user: true - - name: port - type: text - title: Port - default: 443 - multi: false - required: false - show_user: true - - name: api_key - type: text - title: API Key - secret: true - multi: false - required: true - show_user: true - - name: api_debug_mode - type: bool - title: Debug Mode - default: false - multi: false - required: false - show_user: true - name: tags type: text title: Tags @@ -56,3 +28,6 @@ streams: required: false show_user: false description: Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/fleet/current/elastic-agent-processor-configuration.html) for details. +elasticsearch: + source_mode: synthetic + index_mode: time_series \ No newline at end of file From 2137bf7c29311cef4e5b11d1d509f45f96fadca0 Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Mon, 7 Oct 2024 16:52:38 +0300 Subject: [PATCH 41/50] move vars at integration level bump format version --- packages/panw_metrics/manifest.yml | 31 +++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/packages/panw_metrics/manifest.yml b/packages/panw_metrics/manifest.yml index b4f5dcef8c6..14dad74bc0f 100644 --- a/packages/panw_metrics/manifest.yml +++ b/packages/panw_metrics/manifest.yml @@ -1,4 +1,4 @@ -format_version: 3.1.4 +format_version: 3.2.0 name: panw_metrics title: "Palo Alto Networks Metrics" version: "0.1.0" @@ -17,6 +17,35 @@ icons: title: PANW logo size: 32x32 type: image/svg+xml +vars: + - name: host_ip + type: text + title: Host IP + default: 127.0.0.1 + multi: false + required: true + show_user: true + - name: port + type: text + title: Port + default: 443 + multi: false + required: false + show_user: true + - name: api_key + type: text + title: API Key + secret: true + multi: false + required: true + show_user: true + - name: api_debug_mode + type: bool + title: Debug Mode + default: false + multi: false + required: false + show_user: true policy_templates: - name: panw_metrics title: Palo Alto Networks metrics From a6b92914e737f7d99e0277377c6f940c6c1fdd69 Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Mon, 7 Oct 2024 16:52:45 +0300 Subject: [PATCH 42/50] update docs --- packages/panw_metrics/docs/README.md | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/packages/panw_metrics/docs/README.md b/packages/panw_metrics/docs/README.md index 519ed80f136..5f16f921191 100644 --- a/packages/panw_metrics/docs/README.md +++ b/packages/panw_metrics/docs/README.md @@ -146,13 +146,9 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | Field | Description | Type | Unit | Metric Type | |---|---|---|---|---| | @timestamp | Event timestamp. | date | | | -| cloud.image.id | Image ID for the cloud instance. | keyword | | | | data_stream.dataset | Data stream dataset. | constant_keyword | | | | data_stream.namespace | Data stream namespace. | constant_keyword | | | | data_stream.type | Data stream type. | constant_keyword | | | -| host.containerized | If the host is a container. | boolean | | | -| host.os.build | OS build information. | keyword | | | -| host.os.codename | OS codename, if any. | keyword | | | | panw.interfaces.ha.enabled | HA enabled | boolean | | | | panw.interfaces.ha.link_monitoring.enabled | Indicates if link monitoring is enabled | boolean | | | | panw.interfaces.ha.link_monitoring.failure_condition | Condition that triggers a link monitoring failure, e.g., "any" | keyword | | | @@ -351,13 +347,9 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | Field | Description | Type | Unit | Metric Type | |---|---|---|---|---| | @timestamp | Event timestamp. | date | | | -| cloud.image.id | Image ID for the cloud instance. | keyword | | | | data_stream.dataset | Data stream dataset. | constant_keyword | | | | data_stream.namespace | Data stream namespace. | constant_keyword | | | | data_stream.type | Data stream type. | constant_keyword | | | -| host.containerized | If the host is a container. | boolean | | | -| host.os.build | OS build information. | keyword | | | -| host.os.codename | OS codename, if any. | keyword | | | | panw.routing.bgp.aggregate_confed_as | Indicates that Autonomous System (AS) aggregation is enabled for the confederation | boolean | | | | panw.routing.bgp.connect_retry_interval | The interval (in seconds) between connection retries | long | s | gauge | | panw.routing.bgp.established_counts | Number of times the BGP session has successfully transitioned to the "Established" state | long | | gauge | @@ -509,13 +501,9 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | Field | Description | Type | Unit | Metric Type | |---|---|---|---|---| | @timestamp | Event timestamp. | date | | | -| cloud.image.id | Image ID for the cloud instance. | keyword | | | | data_stream.dataset | Data stream dataset. | constant_keyword | | | | data_stream.namespace | Data stream namespace. | constant_keyword | | | | data_stream.type | Data stream type. | constant_keyword | | | -| host.containerized | If the host is a container. | boolean | | | -| host.os.build | OS build information. | keyword | | | -| host.os.codename | OS codename, if any. | keyword | | | | panw.system.certificate.db_exp_date | Expiration date, format: 310329235959Z (Mar 29 23:59:59 2031 GMT) | keyword | | | | panw.system.certificate.db_file | File name of the certificate database | keyword | | | | panw.system.certificate.db_name | Name of the certificate database | keyword | | | @@ -682,13 +670,9 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | Field | Description | Type | Unit | Metric Type | |---|---|---|---|---| | @timestamp | Event timestamp. | date | | | -| cloud.image.id | Image ID for the cloud instance. | keyword | | | | data_stream.dataset | Data stream dataset. | constant_keyword | | | | data_stream.namespace | Data stream namespace. | constant_keyword | | | | data_stream.type | Data stream type. | constant_keyword | | | -| host.containerized | If the host is a container. | boolean | | | -| host.os.build | OS build information. | keyword | | | -| host.os.codename | OS codename, if any. | keyword | | | | panw.vpn.globalprotect.gateway.current_users | Current number of users connected to the GlobalProtect gateway | long | | gauge | | panw.vpn.globalprotect.gateway.name | Name of the GlobalProtect gateway | keyword | | | | panw.vpn.globalprotect.gateway.previous_users | Previous number of users connected to the GlobalProtect gateway | long | | gauge | From 2e9c587b99ca4f798b5baea577bfd75baac429fe Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Mon, 7 Oct 2024 19:30:51 +0300 Subject: [PATCH 43/50] add ecs dimensions to all data streams --- .../data_stream/interfaces/fields/ecs.yml | 12 ++++++++++++ .../panw_metrics/data_stream/routing/fields/ecs.yml | 12 ++++++++++++ .../panw_metrics/data_stream/system/fields/ecs.yml | 12 ++++++++++++ packages/panw_metrics/data_stream/vpn/fields/ecs.yml | 12 ++++++++++++ 4 files changed, 48 insertions(+) create mode 100644 packages/panw_metrics/data_stream/interfaces/fields/ecs.yml create mode 100644 packages/panw_metrics/data_stream/routing/fields/ecs.yml create mode 100644 packages/panw_metrics/data_stream/system/fields/ecs.yml create mode 100644 packages/panw_metrics/data_stream/vpn/fields/ecs.yml diff --git a/packages/panw_metrics/data_stream/interfaces/fields/ecs.yml b/packages/panw_metrics/data_stream/interfaces/fields/ecs.yml new file mode 100644 index 00000000000..f08476cb0c7 --- /dev/null +++ b/packages/panw_metrics/data_stream/interfaces/fields/ecs.yml @@ -0,0 +1,12 @@ +- external: ecs + name: agent.id + dimension: true +- external: ecs + name: container.id + dimension: true +- external: ecs + name: host.name + dimension: true +- external: ecs + name: host.id + dimension: true diff --git a/packages/panw_metrics/data_stream/routing/fields/ecs.yml b/packages/panw_metrics/data_stream/routing/fields/ecs.yml new file mode 100644 index 00000000000..f08476cb0c7 --- /dev/null +++ b/packages/panw_metrics/data_stream/routing/fields/ecs.yml @@ -0,0 +1,12 @@ +- external: ecs + name: agent.id + dimension: true +- external: ecs + name: container.id + dimension: true +- external: ecs + name: host.name + dimension: true +- external: ecs + name: host.id + dimension: true diff --git a/packages/panw_metrics/data_stream/system/fields/ecs.yml b/packages/panw_metrics/data_stream/system/fields/ecs.yml new file mode 100644 index 00000000000..f08476cb0c7 --- /dev/null +++ b/packages/panw_metrics/data_stream/system/fields/ecs.yml @@ -0,0 +1,12 @@ +- external: ecs + name: agent.id + dimension: true +- external: ecs + name: container.id + dimension: true +- external: ecs + name: host.name + dimension: true +- external: ecs + name: host.id + dimension: true diff --git a/packages/panw_metrics/data_stream/vpn/fields/ecs.yml b/packages/panw_metrics/data_stream/vpn/fields/ecs.yml new file mode 100644 index 00000000000..f08476cb0c7 --- /dev/null +++ b/packages/panw_metrics/data_stream/vpn/fields/ecs.yml @@ -0,0 +1,12 @@ +- external: ecs + name: agent.id + dimension: true +- external: ecs + name: container.id + dimension: true +- external: ecs + name: host.name + dimension: true +- external: ecs + name: host.id + dimension: true From a97888a2bdd38708759fe7755811b5b7e0337fa1 Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Mon, 7 Oct 2024 19:31:52 +0300 Subject: [PATCH 44/50] add missing dimensions --- .../panw_metrics/data_stream/interfaces/fields/fields.yml | 5 +++++ packages/panw_metrics/data_stream/system/fields/fields.yml | 2 ++ 2 files changed, 7 insertions(+) diff --git a/packages/panw_metrics/data_stream/interfaces/fields/fields.yml b/packages/panw_metrics/data_stream/interfaces/fields/fields.yml index ad88f6e4dc3..2cf998c2725 100644 --- a/packages/panw_metrics/data_stream/interfaces/fields/fields.yml +++ b/packages/panw_metrics/data_stream/interfaces/fields/fields.yml @@ -48,6 +48,7 @@ - name: full_state type: keyword + dimension: true description: > Physical full state, speed/duplex/state, e.g., "1000/full/up" @@ -122,11 +123,13 @@ - name: mode type: keyword + dimension: true description: > HA mode, e.g., "active-active" or "active-passive" - name: running_sync type: keyword + dimension: true description: > Indicates the sychronization status of the HA pair, e.g., "synchronized", "not-synchronized", "synchronizing" @@ -450,11 +453,13 @@ fields: - name: id type: keyword + dimension: true description: > ID of the IPsec tunnel - name: name type: keyword + dimension: true description: > Name of the IPsec tunnel diff --git a/packages/panw_metrics/data_stream/system/fields/fields.yml b/packages/panw_metrics/data_stream/system/fields/fields.yml index 854226f1ea8..bbbdd704fc5 100644 --- a/packages/panw_metrics/data_stream/system/fields/fields.yml +++ b/packages/panw_metrics/data_stream/system/fields/fields.yml @@ -407,6 +407,7 @@ fields: - name: issuer type: keyword + dimension: true description: > Issuer of the certificate database @@ -454,6 +455,7 @@ - name: db_status type: keyword + dimension: true description: > Status of the certificate database From dfe8c25547184df5fe53568eb01647f9c883cf39 Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Mon, 7 Oct 2024 19:31:59 +0300 Subject: [PATCH 45/50] update docs --- packages/panw_metrics/docs/README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/packages/panw_metrics/docs/README.md b/packages/panw_metrics/docs/README.md index 5f16f921191..68e88121249 100644 --- a/packages/panw_metrics/docs/README.md +++ b/packages/panw_metrics/docs/README.md @@ -146,9 +146,13 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | Field | Description | Type | Unit | Metric Type | |---|---|---|---|---| | @timestamp | Event timestamp. | date | | | +| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | | | +| container.id | Unique container id. | keyword | | | | data_stream.dataset | Data stream dataset. | constant_keyword | | | | data_stream.namespace | Data stream namespace. | constant_keyword | | | | data_stream.type | Data stream type. | constant_keyword | | | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | | | +| host.name | Name of the host. It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | | | | panw.interfaces.ha.enabled | HA enabled | boolean | | | | panw.interfaces.ha.link_monitoring.enabled | Indicates if link monitoring is enabled | boolean | | | | panw.interfaces.ha.link_monitoring.failure_condition | Condition that triggers a link monitoring failure, e.g., "any" | keyword | | | @@ -347,9 +351,13 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | Field | Description | Type | Unit | Metric Type | |---|---|---|---|---| | @timestamp | Event timestamp. | date | | | +| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | | | +| container.id | Unique container id. | keyword | | | | data_stream.dataset | Data stream dataset. | constant_keyword | | | | data_stream.namespace | Data stream namespace. | constant_keyword | | | | data_stream.type | Data stream type. | constant_keyword | | | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | | | +| host.name | Name of the host. It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | | | | panw.routing.bgp.aggregate_confed_as | Indicates that Autonomous System (AS) aggregation is enabled for the confederation | boolean | | | | panw.routing.bgp.connect_retry_interval | The interval (in seconds) between connection retries | long | s | gauge | | panw.routing.bgp.established_counts | Number of times the BGP session has successfully transitioned to the "Established" state | long | | gauge | @@ -501,9 +509,13 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | Field | Description | Type | Unit | Metric Type | |---|---|---|---|---| | @timestamp | Event timestamp. | date | | | +| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | | | +| container.id | Unique container id. | keyword | | | | data_stream.dataset | Data stream dataset. | constant_keyword | | | | data_stream.namespace | Data stream namespace. | constant_keyword | | | | data_stream.type | Data stream type. | constant_keyword | | | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | | | +| host.name | Name of the host. It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | | | | panw.system.certificate.db_exp_date | Expiration date, format: 310329235959Z (Mar 29 23:59:59 2031 GMT) | keyword | | | | panw.system.certificate.db_file | File name of the certificate database | keyword | | | | panw.system.certificate.db_name | Name of the certificate database | keyword | | | @@ -670,9 +682,13 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | Field | Description | Type | Unit | Metric Type | |---|---|---|---|---| | @timestamp | Event timestamp. | date | | | +| agent.id | Unique identifier of this agent (if one exists). Example: For Beats this would be beat.id. | keyword | | | +| container.id | Unique container id. | keyword | | | | data_stream.dataset | Data stream dataset. | constant_keyword | | | | data_stream.namespace | Data stream namespace. | constant_keyword | | | | data_stream.type | Data stream type. | constant_keyword | | | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | | | +| host.name | Name of the host. It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | | | | panw.vpn.globalprotect.gateway.current_users | Current number of users connected to the GlobalProtect gateway | long | | gauge | | panw.vpn.globalprotect.gateway.name | Name of the GlobalProtect gateway | keyword | | | | panw.vpn.globalprotect.gateway.previous_users | Previous number of users connected to the GlobalProtect gateway | long | | gauge | From 411bdb79c1d39207c2ef3ffd1886bc05d44e21a9 Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Mon, 7 Oct 2024 19:53:12 +0300 Subject: [PATCH 46/50] remove redundant descriptions --- .../panw_metrics/data_stream/routing/fields/fields.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/panw_metrics/data_stream/routing/fields/fields.yml b/packages/panw_metrics/data_stream/routing/fields/fields.yml index d491cc047d3..eb6e9000b0d 100644 --- a/packages/panw_metrics/data_stream/routing/fields/fields.yml +++ b/packages/panw_metrics/data_stream/routing/fields/fields.yml @@ -106,21 +106,21 @@ unit: s metric_type: gauge description: > - The interval (in seconds) between connection retries + The interval between connection retries - name: open_delay type: long unit: s metric_type: gauge description: > - Delay before sending an Open message (in seconds) + Delay before sending an Open message - name: idle_hold type: long unit: s metric_type: gauge description: > - The idle hold time (in seconds) before retrying a connection after failure + The idle hold time before retrying a connection after failure - name: prefix_limit type: long @@ -140,14 +140,14 @@ unit: s metric_type: gauge description: > - Represents the locally configured hold time on this peer (in seconds) + Represents the locally configured hold time on this peer - name: keepalive type: long unit: s metric_type: gauge description: > - The interval (in seconds) at which BGP keepalive messages are sent, negotiated between peers + The interval at which BGP keepalive messages are sent, negotiated between peers - name: keepalive_config type: long From a1ff050e203cc4d9bb744e0976800e4a26f30bcd Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Mon, 7 Oct 2024 19:53:31 +0300 Subject: [PATCH 47/50] remove dashboards --- ...-a8cb4123-a6d3-48a7-aa23-b40427821182.json | 523 ------ ...-b852ed05-eafa-4f8f-b6cc-df7c1ad7f257.json | 571 ------ ...-f4120bd3-ced7-497e-a075-8afdae59eff5.json | 1376 -------------- ...-f8f0b70a-01cf-497d-89ac-a3e2c0d6bbb7.json | 1585 ----------------- 4 files changed, 4055 deletions(-) delete mode 100644 packages/panw_metrics/kibana/dashboard/panw_metrics-a8cb4123-a6d3-48a7-aa23-b40427821182.json delete mode 100644 packages/panw_metrics/kibana/dashboard/panw_metrics-b852ed05-eafa-4f8f-b6cc-df7c1ad7f257.json delete mode 100644 packages/panw_metrics/kibana/dashboard/panw_metrics-f4120bd3-ced7-497e-a075-8afdae59eff5.json delete mode 100644 packages/panw_metrics/kibana/dashboard/panw_metrics-f8f0b70a-01cf-497d-89ac-a3e2c0d6bbb7.json diff --git a/packages/panw_metrics/kibana/dashboard/panw_metrics-a8cb4123-a6d3-48a7-aa23-b40427821182.json b/packages/panw_metrics/kibana/dashboard/panw_metrics-a8cb4123-a6d3-48a7-aa23-b40427821182.json deleted file mode 100644 index 8e000b7b9f4..00000000000 --- a/packages/panw_metrics/kibana/dashboard/panw_metrics-a8cb4123-a6d3-48a7-aa23-b40427821182.json +++ /dev/null @@ -1,523 +0,0 @@ -{ - "attributes": { - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": { - "filter": [ - { - "$state": { - "store": "appState" - }, - "meta": { - "alias": null, - "disabled": false, - "field": "event.dataset", - "indexRefName": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", - "key": "event.dataset", - "negate": false, - "params": { - "query": "panw_metrics.vpn" - }, - "type": "phrase" - }, - "query": { - "match_phrase": { - "event.dataset": "panw_metrics.vpn" - } - } - } - ], - "query": { - "language": "kuery", - "query": "" - } - } - }, - "optionsJSON": { - "hidePanelTitles": false, - "syncColors": false, - "syncCursor": true, - "syncTooltips": false, - "useMargins": true - }, - "panelsJSON": [ - { - "embeddableConfig": { - "attributes": { - "references": [ - { - "id": "metrics-*", - "name": "indexpattern-datasource-layer-fae93e77-35f6-4b38-91a2-fe9457238e69", - "type": "index-pattern" - } - ], - "state": { - "adHocDataViews": {}, - "datasourceStates": { - "formBased": { - "layers": { - "fae93e77-35f6-4b38-91a2-fe9457238e69": { - "columnOrder": [ - "f0624b44-c950-4001-86b6-1e194f1fd194", - "ff496ebe-09cf-4a41-beae-f76fb48280ca" - ], - "columns": { - "f0624b44-c950-4001-86b6-1e194f1fd194": { - "dataType": "string", - "isBucketed": true, - "label": "Top value of panw.vpn.globalprotect.gateway.name", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "ff496ebe-09cf-4a41-beae-f76fb48280ca", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": false, - "parentFormat": { - "id": "terms" - }, - "size": 1 - }, - "scale": "ordinal", - "sourceField": "panw.vpn.globalprotect.gateway.name" - }, - "ff496ebe-09cf-4a41-beae-f76fb48280ca": { - "customLabel": true, - "dataType": "number", - "filter": { - "language": "kuery", - "query": "\"panw.vpn.globalprotect.gateway.current_users\": *" - }, - "isBucketed": false, - "label": "Current Users", - "operationType": "last_value", - "params": { - "sortField": "@timestamp" - }, - "scale": "ratio", - "sourceField": "panw.vpn.globalprotect.gateway.current_users" - } - }, - "ignoreGlobalFilters": false, - "incompleteColumns": {}, - "sampling": 1 - } - } - }, - "indexpattern": { - "layers": {} - }, - "textBased": { - "layers": {} - } - }, - "filters": [], - "internalReferences": [], - "query": { - "language": "kuery", - "query": "" - }, - "visualization": { - "breakdownByAccessor": "f0624b44-c950-4001-86b6-1e194f1fd194", - "layerId": "fae93e77-35f6-4b38-91a2-fe9457238e69", - "layerType": "data", - "metricAccessor": "ff496ebe-09cf-4a41-beae-f76fb48280ca" - } - }, - "title": "", - "type": "lens", - "visualizationType": "lnsMetric" - }, - "enhancements": {} - }, - "gridData": { - "h": 7, - "i": "3d3ec772-3948-4363-9247-eed5148d011c", - "w": 9, - "x": 0, - "y": 0 - }, - "panelIndex": "3d3ec772-3948-4363-9247-eed5148d011c", - "type": "lens" - }, - { - "embeddableConfig": { - "attributes": { - "references": [ - { - "id": "metrics-*", - "name": "indexpattern-datasource-layer-32d68d60-ef81-402f-aa34-13b4f3b9a394", - "type": "index-pattern" - }, - { - "id": "metrics-*", - "name": "1ce1141d-b6ed-48cc-8d5b-4314a120f947", - "type": "index-pattern" - } - ], - "state": { - "adHocDataViews": {}, - "datasourceStates": { - "formBased": { - "layers": { - "32d68d60-ef81-402f-aa34-13b4f3b9a394": { - "columnOrder": [ - "68820aa9-e51d-4f55-9e53-96c78df4fc45", - "af1cea40-b5a7-4e91-b8e4-230a812b50c8", - "1a323a19-603e-42bb-9273-c139bdce609c", - "96d62b6e-fafd-49c7-ae30-1df9b312ed6e", - "b120c442-bbd6-4e95-a28e-caa24a876c4b", - "fac9fac0-12b4-4c9c-8b6a-cd1f0eafa61d", - "b531d8fb-a0f6-4cbc-a214-b990182758e2", - "379dc4ae-09f8-4f2a-be6d-690d31f7fa42", - "6e45ed00-f6b4-4170-aed1-3f2ecda73757" - ], - "columns": { - "1a323a19-603e-42bb-9273-c139bdce609c": { - "customLabel": true, - "dataType": "ip", - "isBucketed": true, - "label": "Client IP", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "379dc4ae-09f8-4f2a-be6d-690d31f7fa42", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "vpn.globalprotect.session.client_ip" - }, - "379dc4ae-09f8-4f2a-be6d-690d31f7fa42": { - "dataType": "number", - "isBucketed": false, - "label": "Count of records", - "operationType": "count", - "params": { - "emptyAsNull": true - }, - "scale": "ratio", - "sourceField": "___records___" - }, - "68820aa9-e51d-4f55-9e53-96c78df4fc45": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "Gateway", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "379dc4ae-09f8-4f2a-be6d-690d31f7fa42", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": false, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "vpn.globalprotect.gateway.name" - }, - "6e45ed00-f6b4-4170-aed1-3f2ecda73757": { - "dataType": "number", - "isBucketed": false, - "label": "Median of vpn.globalprotect.session.lifetime", - "operationType": "median", - "params": { - "emptyAsNull": true - }, - "scale": "ratio", - "sourceField": "vpn.globalprotect.session.lifetime" - }, - "96d62b6e-fafd-49c7-ae30-1df9b312ed6e": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "Username", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "379dc4ae-09f8-4f2a-be6d-690d31f7fa42", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "vpn.globalprotect.session.primary_username" - }, - "af1cea40-b5a7-4e91-b8e4-230a812b50c8": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "Client Computer", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "379dc4ae-09f8-4f2a-be6d-690d31f7fa42", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "vpn.globalprotect.session.computer" - }, - "b120c442-bbd6-4e95-a28e-caa24a876c4b": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "Domain", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "379dc4ae-09f8-4f2a-be6d-690d31f7fa42", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 19 - }, - "scale": "ordinal", - "sourceField": "vpn.globalprotect.session.domain" - }, - "b531d8fb-a0f6-4cbc-a214-b990182758e2": { - "customLabel": true, - "dataType": "boolean", - "isBucketed": true, - "label": "Local", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "379dc4ae-09f8-4f2a-be6d-690d31f7fa42", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 19 - }, - "scale": "ordinal", - "sourceField": "vpn.globalprotect.session.is_local" - }, - "fac9fac0-12b4-4c9c-8b6a-cd1f0eafa61d": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "Type", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "379dc4ae-09f8-4f2a-be6d-690d31f7fa42", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "vpn.globalprotect.session.tunnel_type" - } - }, - "incompleteColumns": {}, - "sampling": 1 - } - } - }, - "indexpattern": { - "layers": {} - }, - "textBased": { - "layers": {} - } - }, - "filters": [ - { - "$state": { - "store": "appState" - }, - "meta": { - "alias": null, - "disabled": false, - "field": "event.dataset", - "index": "1ce1141d-b6ed-48cc-8d5b-4314a120f947", - "key": "event.dataset", - "negate": false, - "params": { - "query": "panw.vpn" - }, - "type": "phrase" - }, - "query": { - "match_phrase": { - "event.dataset": "panw.vpn" - } - } - } - ], - "internalReferences": [], - "query": { - "language": "kuery", - "query": "" - }, - "visualization": { - "columns": [ - { - "columnId": "68820aa9-e51d-4f55-9e53-96c78df4fc45", - "isTransposed": false - }, - { - "columnId": "af1cea40-b5a7-4e91-b8e4-230a812b50c8", - "isTransposed": false - }, - { - "columnId": "1a323a19-603e-42bb-9273-c139bdce609c", - "isTransposed": false - }, - { - "columnId": "96d62b6e-fafd-49c7-ae30-1df9b312ed6e", - "isTransposed": false - }, - { - "columnId": "b120c442-bbd6-4e95-a28e-caa24a876c4b", - "isTransposed": false - }, - { - "columnId": "fac9fac0-12b4-4c9c-8b6a-cd1f0eafa61d", - "isTransposed": false - }, - { - "columnId": "b531d8fb-a0f6-4cbc-a214-b990182758e2", - "isTransposed": false - }, - { - "columnId": "379dc4ae-09f8-4f2a-be6d-690d31f7fa42", - "hidden": true, - "isMetric": true, - "isTransposed": false - }, - { - "columnId": "6e45ed00-f6b4-4170-aed1-3f2ecda73757", - "isTransposed": false - } - ], - "layerId": "32d68d60-ef81-402f-aa34-13b4f3b9a394", - "layerType": "data" - } - }, - "title": "", - "type": "lens", - "visualizationType": "lnsDatatable" - }, - "enhancements": {} - }, - "gridData": { - "h": 15, - "i": "8f30eb25-c2d1-4b73-b3c4-60a28e32f03e", - "w": 33, - "x": 9, - "y": 0 - }, - "panelIndex": "8f30eb25-c2d1-4b73-b3c4-60a28e32f03e", - "title": "Current Sessions", - "type": "lens" - } - ], - "timeRestore": false, - "title": "PANW GlobalProtect", - "version": 2 - }, - "coreMigrationVersion": "8.8.0", - "created_at": "2024-10-02T19:20:10.729Z", - "id": "panw_metrics-a8cb4123-a6d3-48a7-aa23-b40427821182", - "managed": true, - "references": [ - { - "id": "metrics-*", - "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", - "type": "index-pattern" - }, - { - "id": "metrics-*", - "name": "3d3ec772-3948-4363-9247-eed5148d011c:indexpattern-datasource-layer-fae93e77-35f6-4b38-91a2-fe9457238e69", - "type": "index-pattern" - }, - { - "id": "metrics-*", - "name": "8f30eb25-c2d1-4b73-b3c4-60a28e32f03e:indexpattern-datasource-layer-32d68d60-ef81-402f-aa34-13b4f3b9a394", - "type": "index-pattern" - }, - { - "id": "metrics-*", - "name": "8f30eb25-c2d1-4b73-b3c4-60a28e32f03e:1ce1141d-b6ed-48cc-8d5b-4314a120f947", - "type": "index-pattern" - } - ], - "type": "dashboard", - "typeMigrationVersion": "10.2.0" -} \ No newline at end of file diff --git a/packages/panw_metrics/kibana/dashboard/panw_metrics-b852ed05-eafa-4f8f-b6cc-df7c1ad7f257.json b/packages/panw_metrics/kibana/dashboard/panw_metrics-b852ed05-eafa-4f8f-b6cc-df7c1ad7f257.json deleted file mode 100644 index a7b7e3e7cbb..00000000000 --- a/packages/panw_metrics/kibana/dashboard/panw_metrics-b852ed05-eafa-4f8f-b6cc-df7c1ad7f257.json +++ /dev/null @@ -1,571 +0,0 @@ -{ - "attributes": { - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": { - "filter": [ - { - "$state": { - "store": "appState" - }, - "meta": { - "alias": null, - "disabled": false, - "field": "event.dataset", - "indexRefName": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", - "key": "event.dataset", - "negate": false, - "params": { - "query": "panw_metrics.routing" - }, - "type": "phrase" - }, - "query": { - "match_phrase": { - "event.dataset": "panw_metrics.routing" - } - } - } - ], - "query": { - "language": "kuery", - "query": "" - } - } - }, - "optionsJSON": { - "hidePanelTitles": false, - "syncColors": false, - "syncCursor": true, - "syncTooltips": false, - "useMargins": true - }, - "panelsJSON": [ - { - "embeddableConfig": { - "attributes": { - "references": [ - { - "id": "metrics-*", - "name": "indexpattern-datasource-layer-853bca20-9ae1-4cf0-ae48-975775575fec", - "type": "index-pattern" - } - ], - "state": { - "adHocDataViews": {}, - "datasourceStates": { - "formBased": { - "layers": { - "853bca20-9ae1-4cf0-ae48-975775575fec": { - "columnOrder": [ - "4ed9e769-6bc4-4b15-8970-2ee408e538da", - "e979cba0-9935-4bfa-9006-c74bb7b496e4" - ], - "columns": { - "4ed9e769-6bc4-4b15-8970-2ee408e538da": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "Peer Group", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "e979cba0-9935-4bfa-9006-c74bb7b496e4", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 10 - }, - "scale": "ordinal", - "sourceField": "panw.routing.bgp.peer_group" - }, - "e979cba0-9935-4bfa-9006-c74bb7b496e4": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "Member Count", - "operationType": "unique_count", - "params": { - "emptyAsNull": true - }, - "scale": "ratio", - "sourceField": "panw.routing.bgp.local_ip" - } - }, - "ignoreGlobalFilters": false, - "incompleteColumns": {}, - "sampling": 1 - } - } - }, - "indexpattern": { - "layers": {} - }, - "textBased": { - "layers": {} - } - }, - "filters": [], - "internalReferences": [], - "query": { - "language": "kuery", - "query": "" - }, - "visualization": { - "columns": [ - { - "columnId": "4ed9e769-6bc4-4b15-8970-2ee408e538da" - }, - { - "columnId": "e979cba0-9935-4bfa-9006-c74bb7b496e4" - } - ], - "layerId": "853bca20-9ae1-4cf0-ae48-975775575fec", - "layerType": "data" - } - }, - "title": "", - "type": "lens", - "visualizationType": "lnsDatatable" - }, - "enhancements": {} - }, - "gridData": { - "h": 18, - "i": "fc81bc43-0063-443e-8a5a-df0897874191", - "w": 16, - "x": 0, - "y": 0 - }, - "panelIndex": "fc81bc43-0063-443e-8a5a-df0897874191", - "title": "Peer Groups", - "type": "lens" - }, - { - "embeddableConfig": { - "attributes": { - "references": [ - { - "id": "metrics-*", - "name": "indexpattern-datasource-layer-7cd7506a-06f0-4ddf-8138-e049a82e2f6d", - "type": "index-pattern" - } - ], - "state": { - "adHocDataViews": {}, - "datasourceStates": { - "formBased": { - "layers": { - "7cd7506a-06f0-4ddf-8138-e049a82e2f6d": { - "columnOrder": [ - "709d7d72-3d36-4d46-9ceb-fa8f9ff69095", - "1453d27b-e00b-4bf0-855d-ab38294da771", - "7ff1c847-4f36-4293-9610-283301210865", - "efd7348c-303a-423f-994a-64364c32cd94", - "12d0ee16-6fae-4ba7-873f-d134e9198897" - ], - "columns": { - "12d0ee16-6fae-4ba7-873f-d134e9198897": { - "dataType": "number", - "isBucketed": false, - "label": "Count of records", - "operationType": "count", - "params": { - "emptyAsNull": true - }, - "scale": "ratio", - "sourceField": "___records___" - }, - "1453d27b-e00b-4bf0-855d-ab38294da771": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "From IP", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "12d0ee16-6fae-4ba7-873f-d134e9198897", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "panw.routing.bgp.local_ip" - }, - "709d7d72-3d36-4d46-9ceb-fa8f9ff69095": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "Peer Group", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "12d0ee16-6fae-4ba7-873f-d134e9198897", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "panw.routing.bgp.peer_group" - }, - "7ff1c847-4f36-4293-9610-283301210865": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "To IP", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "12d0ee16-6fae-4ba7-873f-d134e9198897", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "panw.routing.bgp.peer_ip" - }, - "efd7348c-303a-423f-994a-64364c32cd94": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "Router ID", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "12d0ee16-6fae-4ba7-873f-d134e9198897", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "panw.routing.bgp.peer_router_id" - } - }, - "incompleteColumns": {}, - "sampling": 1 - } - } - }, - "indexpattern": { - "layers": {} - }, - "textBased": { - "layers": {} - } - }, - "filters": [], - "internalReferences": [], - "query": { - "language": "kuery", - "query": "" - }, - "visualization": { - "columns": [ - { - "columnId": "709d7d72-3d36-4d46-9ceb-fa8f9ff69095", - "isTransposed": false - }, - { - "columnId": "7ff1c847-4f36-4293-9610-283301210865", - "isTransposed": false - }, - { - "columnId": "efd7348c-303a-423f-994a-64364c32cd94", - "isMetric": false, - "isTransposed": false - }, - { - "columnId": "12d0ee16-6fae-4ba7-873f-d134e9198897", - "hidden": true, - "isTransposed": false - }, - { - "columnId": "1453d27b-e00b-4bf0-855d-ab38294da771", - "isMetric": false, - "isTransposed": false - } - ], - "layerId": "7cd7506a-06f0-4ddf-8138-e049a82e2f6d", - "layerType": "data" - } - }, - "title": "", - "type": "lens", - "visualizationType": "lnsDatatable" - }, - "enhancements": {} - }, - "gridData": { - "h": 18, - "i": "d1eff82e-248b-411d-a020-ae20ff7f5c48", - "w": 30, - "x": 16, - "y": 0 - }, - "panelIndex": "d1eff82e-248b-411d-a020-ae20ff7f5c48", - "title": "Peers", - "type": "lens" - }, - { - "embeddableConfig": { - "attributes": { - "references": [ - { - "id": "metrics-*", - "name": "indexpattern-datasource-layer-61096ec2-4285-4898-8e43-f36b815c0dc7", - "type": "index-pattern" - } - ], - "state": { - "adHocDataViews": {}, - "datasourceStates": { - "formBased": { - "layers": { - "61096ec2-4285-4898-8e43-f36b815c0dc7": { - "columnOrder": [ - "38793a33-5e5e-420d-9fb0-f23a847336f3", - "4c48ea8c-3899-4ad4-9656-b61e4f58332b", - "e8b20eb8-c5ea-4ac6-a50c-02de3d3f53ad" - ], - "columns": { - "38793a33-5e5e-420d-9fb0-f23a847336f3": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "Peers", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "4c48ea8c-3899-4ad4-9656-b61e4f58332b", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": false, - "parentFormat": { - "id": "terms" - }, - "secondaryFields": [], - "size": 20 - }, - "scale": "ordinal", - "sourceField": "panw.routing.bgp.local_ip" - }, - "4c48ea8c-3899-4ad4-9656-b61e4f58332b": { - "customLabel": true, - "dataType": "number", - "filter": { - "language": "kuery", - "query": "\"panw.routing.bgp.msg_total_in\": *" - }, - "isBucketed": false, - "label": "Total IN", - "operationType": "last_value", - "params": { - "sortField": "@timestamp" - }, - "scale": "ratio", - "sourceField": "panw.routing.bgp.msg_total_in" - }, - "e8b20eb8-c5ea-4ac6-a50c-02de3d3f53ad": { - "customLabel": true, - "dataType": "number", - "filter": { - "language": "kuery", - "query": "\"panw.routing.bgp.msg_total_out\": *" - }, - "isBucketed": false, - "label": "Total OUT", - "operationType": "last_value", - "params": { - "sortField": "@timestamp" - }, - "scale": "ratio", - "sourceField": "panw.routing.bgp.msg_total_out" - } - }, - "ignoreGlobalFilters": false, - "incompleteColumns": {}, - "sampling": 1 - } - } - }, - "indexpattern": { - "layers": {} - }, - "textBased": { - "layers": {} - } - }, - "filters": [], - "internalReferences": [], - "query": { - "language": "kuery", - "query": "" - }, - "visualization": { - "axisTitlesVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "fittingFunction": "None", - "gridlinesVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "labelsOrientation": { - "x": 0, - "yLeft": 0, - "yRight": 0 - }, - "layers": [ - { - "accessors": [ - "4c48ea8c-3899-4ad4-9656-b61e4f58332b", - "e8b20eb8-c5ea-4ac6-a50c-02de3d3f53ad" - ], - "colorMapping": { - "assignments": [], - "colorMode": { - "type": "categorical" - }, - "paletteId": "eui_amsterdam_color_blind", - "specialAssignments": [ - { - "color": { - "type": "loop" - }, - "rule": { - "type": "other" - }, - "touched": false - } - ] - }, - "layerId": "61096ec2-4285-4898-8e43-f36b815c0dc7", - "layerType": "data", - "position": "top", - "seriesType": "bar_horizontal_stacked", - "showGridlines": false, - "xAccessor": "38793a33-5e5e-420d-9fb0-f23a847336f3" - } - ], - "legend": { - "isVisible": true, - "position": "right" - }, - "preferredSeriesType": "bar_horizontal_stacked", - "tickLabelsVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "valueLabels": "hide" - } - }, - "title": "", - "type": "lens", - "visualizationType": "lnsXY" - }, - "enhancements": {} - }, - "gridData": { - "h": 15, - "i": "c48c28ca-a174-4920-8ca6-c8368b11584c", - "w": 24, - "x": 0, - "y": 18 - }, - "panelIndex": "c48c28ca-a174-4920-8ca6-c8368b11584c", - "title": "Messages per Peer", - "type": "lens" - } - ], - "timeRestore": false, - "title": "PANW BGP", - "version": 2 - }, - "coreMigrationVersion": "8.8.0", - "created_at": "2024-10-02T19:20:10.729Z", - "id": "panw_metrics-b852ed05-eafa-4f8f-b6cc-df7c1ad7f257", - "managed": true, - "references": [ - { - "id": "metrics-*", - "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", - "type": "index-pattern" - }, - { - "id": "metrics-*", - "name": "fc81bc43-0063-443e-8a5a-df0897874191:indexpattern-datasource-layer-853bca20-9ae1-4cf0-ae48-975775575fec", - "type": "index-pattern" - }, - { - "id": "metrics-*", - "name": "d1eff82e-248b-411d-a020-ae20ff7f5c48:indexpattern-datasource-layer-7cd7506a-06f0-4ddf-8138-e049a82e2f6d", - "type": "index-pattern" - }, - { - "id": "metrics-*", - "name": "c48c28ca-a174-4920-8ca6-c8368b11584c:indexpattern-datasource-layer-61096ec2-4285-4898-8e43-f36b815c0dc7", - "type": "index-pattern" - } - ], - "type": "dashboard", - "typeMigrationVersion": "10.2.0" -} \ No newline at end of file diff --git a/packages/panw_metrics/kibana/dashboard/panw_metrics-f4120bd3-ced7-497e-a075-8afdae59eff5.json b/packages/panw_metrics/kibana/dashboard/panw_metrics-f4120bd3-ced7-497e-a075-8afdae59eff5.json deleted file mode 100644 index c599644e301..00000000000 --- a/packages/panw_metrics/kibana/dashboard/panw_metrics-f4120bd3-ced7-497e-a075-8afdae59eff5.json +++ /dev/null @@ -1,1376 +0,0 @@ -{ - "attributes": { - "controlGroupInput": { - "chainingSystem": "HIERARCHICAL", - "controlStyle": "oneLine", - "ignoreParentSettingsJSON": { - "ignoreFilters": false, - "ignoreQuery": false, - "ignoreTimerange": false, - "ignoreValidations": false - }, - "panelsJSON": { - "b50424d1-d82e-4c7c-8df4-0e67b63dc27d": { - "explicitInput": { - "enhancements": {}, - "fieldName": "observer.ip", - "grow": false, - "id": "b50424d1-d82e-4c7c-8df4-0e67b63dc27d", - "searchTechnique": "prefix", - "selectedOptions": [], - "title": "observer.ip", - "width": "medium" - }, - "grow": false, - "order": 0, - "type": "optionsListControl", - "width": "medium" - } - }, - "showApplySelections": false - }, - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": { - "filter": [ - { - "$state": { - "store": "appState" - }, - "meta": { - "alias": null, - "disabled": false, - "field": "event.dataset", - "indexRefName": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", - "key": "event.dataset", - "negate": false, - "params": { - "query": "panw_metrics.system" - }, - "type": "phrase" - }, - "query": { - "match_phrase": { - "event.dataset": "panw_metrics.system" - } - } - } - ], - "query": { - "language": "kuery", - "query": "" - } - } - }, - "optionsJSON": { - "hidePanelTitles": false, - "syncColors": false, - "syncCursor": true, - "syncTooltips": false, - "useMargins": true - }, - "panelsJSON": [ - { - "embeddableConfig": { - "attributes": { - "references": [ - { - "id": "metrics-*", - "name": "indexpattern-datasource-layer-84d94cdf-99fe-43f4-b520-8343a94355b6", - "type": "index-pattern" - } - ], - "state": { - "adHocDataViews": {}, - "datasourceStates": { - "formBased": { - "layers": { - "84d94cdf-99fe-43f4-b520-8343a94355b6": { - "columnOrder": [ - "6c356040-3aaf-4d3f-abb5-131eec233680", - "799e8f5f-8751-41aa-af71-55e5b61fa89e", - "9b2e8a4f-81f2-486c-a4e0-9219e35303e3" - ], - "columns": { - "6c356040-3aaf-4d3f-abb5-131eec233680": { - "customLabel": true, - "dataType": "number", - "filter": { - "language": "kuery", - "query": "\"panw.system.uptime.days\": *" - }, - "isBucketed": false, - "label": "Days", - "operationType": "last_value", - "params": { - "sortField": "@timestamp" - }, - "scale": "ratio", - "sourceField": "panw.system.uptime.days" - }, - "799e8f5f-8751-41aa-af71-55e5b61fa89e": { - "customLabel": true, - "dataType": "number", - "filter": { - "language": "kuery", - "query": "\"panw.system.uptime.hours\": *" - }, - "isBucketed": false, - "label": "Hours", - "operationType": "last_value", - "params": { - "sortField": "@timestamp" - }, - "scale": "ratio", - "sourceField": "panw.system.uptime.hours" - }, - "9b2e8a4f-81f2-486c-a4e0-9219e35303e3": { - "customLabel": true, - "dataType": "number", - "filter": { - "language": "kuery", - "query": "\"panw.system.uptime.minutes\": *" - }, - "isBucketed": false, - "label": "Minutes", - "operationType": "last_value", - "params": { - "sortField": "@timestamp" - }, - "scale": "ratio", - "sourceField": "panw.system.uptime.minutes" - } - }, - "incompleteColumns": {}, - "sampling": 1 - } - } - }, - "indexpattern": { - "layers": {} - }, - "textBased": { - "layers": {} - } - }, - "filters": [], - "internalReferences": [], - "query": { - "language": "kuery", - "query": "" - }, - "visualization": { - "columns": [ - { - "columnId": "6c356040-3aaf-4d3f-abb5-131eec233680", - "isTransposed": false - }, - { - "columnId": "799e8f5f-8751-41aa-af71-55e5b61fa89e", - "isTransposed": false - }, - { - "columnId": "9b2e8a4f-81f2-486c-a4e0-9219e35303e3", - "isTransposed": false - } - ], - "layerId": "84d94cdf-99fe-43f4-b520-8343a94355b6", - "layerType": "data" - } - }, - "title": "", - "type": "lens", - "visualizationType": "lnsDatatable" - }, - "enhancements": {} - }, - "gridData": { - "h": 6, - "i": "748398c9-e543-48b3-8cd8-be77f25115b8", - "w": 11, - "x": 0, - "y": 0 - }, - "panelIndex": "748398c9-e543-48b3-8cd8-be77f25115b8", - "title": "Up Time", - "type": "lens" - }, - { - "embeddableConfig": { - "attributes": { - "references": [ - { - "id": "metrics-*", - "name": "indexpattern-datasource-layer-ef579182-b6a5-4392-a32e-2cc104fed1ef", - "type": "index-pattern" - } - ], - "state": { - "adHocDataViews": {}, - "datasourceStates": { - "formBased": { - "layers": { - "ef579182-b6a5-4392-a32e-2cc104fed1ef": { - "columnOrder": [ - "905a04aa-1710-4cb4-bf5a-d2b312177d55", - "deb6ef95-c478-4813-b0d9-69e4a25385d5", - "de5c6831-fb44-488c-a2d0-1c9168f51317", - "65c51155-3397-479c-ae16-1d5f92b497c9", - "437b6d5b-4b0a-466e-8d6b-02f5e7c6a146", - "951b20c4-dd2b-4ec1-be9b-eff9a2c107e5", - "8f8e0e79-3e25-4cba-abf7-a4887722b403", - "f7a662cc-3b57-49cf-9dad-f72d1d79fd64" - ], - "columns": { - "437b6d5b-4b0a-466e-8d6b-02f5e7c6a146": { - "customLabel": true, - "dataType": "number", - "filter": { - "language": "kuery", - "query": "\"panw.system.cpu.wait\": *" - }, - "isBucketed": false, - "label": "Wait", - "operationType": "last_value", - "params": { - "sortField": "@timestamp" - }, - "scale": "ratio", - "sourceField": "panw.system.cpu.wait" - }, - "65c51155-3397-479c-ae16-1d5f92b497c9": { - "customLabel": true, - "dataType": "number", - "filter": { - "language": "kuery", - "query": "\"panw.system.cpu.idle\": *" - }, - "isBucketed": false, - "label": "Idle", - "operationType": "last_value", - "params": { - "sortField": "@timestamp" - }, - "scale": "ratio", - "sourceField": "panw.system.cpu.idle" - }, - "8f8e0e79-3e25-4cba-abf7-a4887722b403": { - "customLabel": true, - "dataType": "number", - "filter": { - "language": "kuery", - "query": "\"panw.system.cpu.system_int\": *" - }, - "isBucketed": false, - "label": "System Interrupt", - "operationType": "last_value", - "params": { - "sortField": "@timestamp" - }, - "scale": "ratio", - "sourceField": "panw.system.cpu.system_int" - }, - "905a04aa-1710-4cb4-bf5a-d2b312177d55": { - "customLabel": true, - "dataType": "number", - "filter": { - "language": "kuery", - "query": "\"panw.system.cpu.user\": *" - }, - "isBucketed": false, - "label": "User", - "operationType": "last_value", - "params": { - "sortField": "@timestamp" - }, - "scale": "ratio", - "sourceField": "panw.system.cpu.user" - }, - "951b20c4-dd2b-4ec1-be9b-eff9a2c107e5": { - "customLabel": true, - "dataType": "number", - "filter": { - "language": "kuery", - "query": "\"panw.system.cpu.hi\": *" - }, - "isBucketed": false, - "label": "HW Interrupt", - "operationType": "last_value", - "params": { - "sortField": "@timestamp" - }, - "scale": "ratio", - "sourceField": "panw.system.cpu.hi" - }, - "de5c6831-fb44-488c-a2d0-1c9168f51317": { - "customLabel": true, - "dataType": "number", - "filter": { - "language": "kuery", - "query": "\"panw.system.cpu.nice\": *" - }, - "isBucketed": false, - "label": "Nice", - "operationType": "last_value", - "params": { - "sortField": "@timestamp" - }, - "scale": "ratio", - "sourceField": "panw.system.cpu.nice" - }, - "deb6ef95-c478-4813-b0d9-69e4a25385d5": { - "customLabel": true, - "dataType": "number", - "filter": { - "language": "kuery", - "query": "\"panw.system.cpu.system\": *" - }, - "isBucketed": false, - "label": "System", - "operationType": "last_value", - "params": { - "sortField": "@timestamp" - }, - "scale": "ratio", - "sourceField": "panw.system.cpu.system" - }, - "f7a662cc-3b57-49cf-9dad-f72d1d79fd64": { - "customLabel": true, - "dataType": "number", - "filter": { - "language": "kuery", - "query": "\"panw.system.cpu.steal\": *" - }, - "isBucketed": false, - "label": "Steal", - "operationType": "last_value", - "params": { - "sortField": "@timestamp" - }, - "scale": "ratio", - "sourceField": "panw.system.cpu.steal" - } - }, - "incompleteColumns": {}, - "sampling": 1 - } - } - }, - "indexpattern": { - "layers": {} - }, - "textBased": { - "layers": {} - } - }, - "filters": [], - "internalReferences": [], - "query": { - "language": "kuery", - "query": "" - }, - "visualization": { - "columns": [ - { - "columnId": "905a04aa-1710-4cb4-bf5a-d2b312177d55", - "isTransposed": false - }, - { - "columnId": "deb6ef95-c478-4813-b0d9-69e4a25385d5", - "isTransposed": false - }, - { - "columnId": "de5c6831-fb44-488c-a2d0-1c9168f51317", - "isTransposed": false - }, - { - "columnId": "65c51155-3397-479c-ae16-1d5f92b497c9", - "isTransposed": false - }, - { - "columnId": "437b6d5b-4b0a-466e-8d6b-02f5e7c6a146", - "isTransposed": false - }, - { - "columnId": "8f8e0e79-3e25-4cba-abf7-a4887722b403", - "isMetric": true, - "isTransposed": false - }, - { - "columnId": "951b20c4-dd2b-4ec1-be9b-eff9a2c107e5", - "isTransposed": false - }, - { - "columnId": "f7a662cc-3b57-49cf-9dad-f72d1d79fd64", - "isTransposed": false - } - ], - "layerId": "ef579182-b6a5-4392-a32e-2cc104fed1ef", - "layerType": "data" - } - }, - "title": "", - "type": "lens", - "visualizationType": "lnsDatatable" - }, - "enhancements": {} - }, - "gridData": { - "h": 6, - "i": "09922c41-3324-43a9-9302-cec9c281902e", - "w": 23, - "x": 11, - "y": 0 - }, - "panelIndex": "09922c41-3324-43a9-9302-cec9c281902e", - "title": "CPU", - "type": "lens" - }, - { - "embeddableConfig": { - "attributes": { - "references": [ - { - "id": "metrics-*", - "name": "indexpattern-datasource-layer-d518bbf9-bd15-4582-9a24-ef33e5ee5002", - "type": "index-pattern" - } - ], - "state": { - "adHocDataViews": {}, - "datasourceStates": { - "formBased": { - "layers": { - "d518bbf9-bd15-4582-9a24-ef33e5ee5002": { - "columnOrder": [ - "9602f473-59a3-443d-8c5a-ddd4672fa3b3" - ], - "columns": { - "9602f473-59a3-443d-8c5a-ddd4672fa3b3": { - "customLabel": true, - "dataType": "boolean", - "filter": { - "language": "kuery", - "query": "panw.system.fan.alarm:true " - }, - "isBucketed": false, - "label": "Alarm Count", - "operationType": "last_value", - "params": { - "sortField": "@timestamp" - }, - "scale": "ratio", - "sourceField": "panw.system.fan.alarm" - } - }, - "incompleteColumns": {} - } - } - }, - "indexpattern": { - "layers": {} - }, - "textBased": { - "layers": {} - } - }, - "filters": [], - "internalReferences": [], - "query": { - "language": "kuery", - "query": "" - }, - "visualization": { - "accessor": "9602f473-59a3-443d-8c5a-ddd4672fa3b3", - "layerId": "d518bbf9-bd15-4582-9a24-ef33e5ee5002", - "layerType": "data" - } - }, - "title": "", - "type": "lens", - "visualizationType": "lnsLegacyMetric" - }, - "enhancements": {} - }, - "gridData": { - "h": 6, - "i": "637a7e88-c3d5-487e-8efd-a5d72429ad60", - "w": 7, - "x": 34, - "y": 0 - }, - "panelIndex": "637a7e88-c3d5-487e-8efd-a5d72429ad60", - "title": "Fan Alarms", - "type": "lens" - }, - { - "embeddableConfig": { - "attributes": { - "references": [ - { - "id": "metrics-*", - "name": "indexpattern-datasource-layer-d518bbf9-bd15-4582-9a24-ef33e5ee5002", - "type": "index-pattern" - } - ], - "state": { - "adHocDataViews": {}, - "datasourceStates": { - "formBased": { - "layers": { - "d518bbf9-bd15-4582-9a24-ef33e5ee5002": { - "columnOrder": [ - "9602f473-59a3-443d-8c5a-ddd4672fa3b3" - ], - "columns": { - "9602f473-59a3-443d-8c5a-ddd4672fa3b3": { - "customLabel": true, - "dataType": "number", - "filter": { - "language": "kuery", - "query": "panw.system.fan.alarm:true " - }, - "isBucketed": false, - "label": "Alarm Count", - "operationType": "unique_count", - "params": { - "emptyAsNull": true - }, - "scale": "ratio", - "sourceField": "panw.system.power.alarm" - } - }, - "incompleteColumns": {} - } - } - }, - "indexpattern": { - "layers": {} - }, - "textBased": { - "layers": {} - } - }, - "filters": [], - "internalReferences": [], - "query": { - "language": "kuery", - "query": "" - }, - "visualization": { - "accessor": "9602f473-59a3-443d-8c5a-ddd4672fa3b3", - "layerId": "d518bbf9-bd15-4582-9a24-ef33e5ee5002", - "layerType": "data" - } - }, - "title": "", - "type": "lens", - "visualizationType": "lnsLegacyMetric" - }, - "enhancements": {} - }, - "gridData": { - "h": 6, - "i": "06fc2325-3c0c-4527-9dfc-9a04afd4d880", - "w": 7, - "x": 41, - "y": 0 - }, - "panelIndex": "06fc2325-3c0c-4527-9dfc-9a04afd4d880", - "title": "Power Alarms", - "type": "lens" - }, - { - "embeddableConfig": { - "attributes": { - "references": [ - { - "id": "metrics-*", - "name": "indexpattern-datasource-layer-28c3773b-a896-466c-8a93-412deeb3313d", - "type": "index-pattern" - } - ], - "state": { - "adHocDataViews": {}, - "datasourceStates": { - "formBased": { - "layers": { - "28c3773b-a896-466c-8a93-412deeb3313d": { - "columnOrder": [ - "c7e7355e-e81d-465c-abcb-3344e49c9366", - "0a0e84ce-cd78-46c5-be35-733b4af304ff", - "d757c3e9-593a-4f46-8df3-a004b522701d", - "a1334703-ed06-4934-8e4b-94028c12e490", - "ad8cb1f6-3e19-4446-9df8-f3c1ba8912b2", - "2dd79849-48ba-42d4-81c4-34dfe4427826" - ], - "columns": { - "0a0e84ce-cd78-46c5-be35-733b4af304ff": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "Mounted", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "d757c3e9-593a-4f46-8df3-a004b522701d", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 5 - }, - "scale": "ordinal", - "sourceField": "panw.system.filesystem.mounted" - }, - "2dd79849-48ba-42d4-81c4-34dfe4427826": { - "customLabel": true, - "dataType": "number", - "filter": { - "language": "kuery", - "query": "\"panw.system.filesystem.use_percent\": *" - }, - "isBucketed": false, - "label": "Percent Used", - "operationType": "last_value", - "params": { - "format": { - "id": "number", - "params": { - "decimals": 0 - } - }, - "sortField": "@timestamp" - }, - "scale": "ratio", - "sourceField": "panw.system.filesystem.use_percent" - }, - "a1334703-ed06-4934-8e4b-94028c12e490": { - "customLabel": true, - "dataType": "number", - "filter": { - "language": "kuery", - "query": "\"panw.system.filesystem.used\": *" - }, - "isBucketed": false, - "label": "Used", - "operationType": "last_value", - "params": { - "format": { - "id": "bytes", - "params": { - "decimals": 1 - } - }, - "sortField": "@timestamp" - }, - "scale": "ratio", - "sourceField": "panw.system.filesystem.used" - }, - "ad8cb1f6-3e19-4446-9df8-f3c1ba8912b2": { - "customLabel": true, - "dataType": "number", - "filter": { - "language": "kuery", - "query": "\"panw.system.filesystem.available\": *" - }, - "isBucketed": false, - "label": "Available", - "operationType": "last_value", - "params": { - "format": { - "id": "bytes", - "params": { - "decimals": 1 - } - }, - "sortField": "@timestamp" - }, - "scale": "ratio", - "sourceField": "panw.system.filesystem.available" - }, - "c7e7355e-e81d-465c-abcb-3344e49c9366": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "Filesystem", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderAgg": { - "dataType": "number", - "isBucketed": false, - "label": "Maximum of oracle.tablespace.data_file.size.free.bytes", - "operationType": "max", - "params": { - "emptyAsNull": true - }, - "scale": "ratio", - "sourceField": "oracle.tablespace.data_file.size.free.bytes" - }, - "orderBy": { - "type": "custom" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 5 - }, - "scale": "ordinal", - "sourceField": "panw.system.filesystem.name" - }, - "d757c3e9-593a-4f46-8df3-a004b522701d": { - "customLabel": true, - "dataType": "number", - "filter": { - "language": "kuery", - "query": "\"panw.system.filesystem.size\": *" - }, - "isBucketed": false, - "label": "Filesystem Size", - "operationType": "last_value", - "params": { - "format": { - "id": "bytes", - "params": { - "decimals": 1 - } - }, - "sortField": "@timestamp" - }, - "scale": "ratio", - "sourceField": "panw.system.filesystem.size" - } - }, - "incompleteColumns": {}, - "sampling": 1 - } - } - }, - "indexpattern": { - "layers": {} - }, - "textBased": { - "layers": {} - } - }, - "filters": [], - "internalReferences": [], - "query": { - "language": "kuery", - "query": "" - }, - "visualization": { - "columns": [ - { - "columnId": "c7e7355e-e81d-465c-abcb-3344e49c9366", - "isTransposed": false - }, - { - "columnId": "0a0e84ce-cd78-46c5-be35-733b4af304ff", - "isTransposed": false - }, - { - "columnId": "d757c3e9-593a-4f46-8df3-a004b522701d", - "isTransposed": false, - "width": 142 - }, - { - "columnId": "a1334703-ed06-4934-8e4b-94028c12e490", - "isTransposed": false, - "width": 123.6 - }, - { - "columnId": "ad8cb1f6-3e19-4446-9df8-f3c1ba8912b2", - "isTransposed": false, - "width": 124.1 - }, - { - "columnId": "2dd79849-48ba-42d4-81c4-34dfe4427826", - "hidden": false, - "isTransposed": false - } - ], - "layerId": "28c3773b-a896-466c-8a93-412deeb3313d", - "layerType": "data" - } - }, - "title": "", - "type": "lens", - "visualizationType": "lnsDatatable" - }, - "enhancements": {} - }, - "gridData": { - "h": 15, - "i": "dc986d61-7048-443d-80c9-f7d002a93332", - "w": 24, - "x": 0, - "y": 6 - }, - "panelIndex": "dc986d61-7048-443d-80c9-f7d002a93332", - "title": "Disk Usage", - "type": "lens" - }, - { - "embeddableConfig": { - "attributes": { - "references": [ - { - "id": "metrics-*", - "name": "indexpattern-datasource-layer-93308fd4-919e-470f-94cd-e05e7d89f7f7", - "type": "index-pattern" - }, - { - "id": "metrics-*", - "name": "indexpattern-datasource-layer-ed5168bf-932a-4c12-9d93-3cbbcff1de60", - "type": "index-pattern" - } - ], - "state": { - "adHocDataViews": {}, - "datasourceStates": { - "formBased": { - "layers": { - "93308fd4-919e-470f-94cd-e05e7d89f7f7": { - "columnOrder": [ - "311360c1-eb5c-436c-9553-8f6aadc91ea5", - "54ba8425-cf85-4a41-bc14-eb717409f9d4", - "9156b77d-c585-4cfc-b23a-baa727bebfbd", - "72cd3b18-27a6-4a62-a650-bbe5f09cbac5" - ], - "columns": { - "311360c1-eb5c-436c-9553-8f6aadc91ea5": { - "dataType": "date", - "isBucketed": true, - "label": "@timestamp", - "operationType": "date_histogram", - "params": { - "dropPartials": false, - "includeEmptyRows": true, - "interval": "m" - }, - "scale": "interval", - "sourceField": "@timestamp" - }, - "54ba8425-cf85-4a41-bc14-eb717409f9d4": { - "customLabel": true, - "dataType": "number", - "filter": { - "language": "kuery", - "query": "\"panw.system.memory.buffer_cache\": *" - }, - "isBucketed": false, - "label": "BufferCache", - "operationType": "last_value", - "params": { - "format": { - "id": "bytes", - "params": { - "decimals": 2 - } - }, - "sortField": "@timestamp" - }, - "scale": "ratio", - "sourceField": "panw.system.memory.buffer_cache" - }, - "72cd3b18-27a6-4a62-a650-bbe5f09cbac5": { - "customLabel": true, - "dataType": "number", - "filter": { - "language": "kuery", - "query": "\"panw.system.memory.free\": *" - }, - "isBucketed": false, - "label": "Free", - "operationType": "last_value", - "params": { - "format": { - "id": "bytes", - "params": { - "decimals": 0 - } - }, - "sortField": "@timestamp" - }, - "scale": "ratio", - "sourceField": "panw.system.memory.free" - }, - "9156b77d-c585-4cfc-b23a-baa727bebfbd": { - "customLabel": true, - "dataType": "number", - "filter": { - "language": "kuery", - "query": "\"panw.system.memory.used\": *" - }, - "isBucketed": false, - "label": "Used", - "operationType": "last_value", - "params": { - "format": { - "id": "bytes", - "params": { - "decimals": 0 - } - }, - "sortField": "@timestamp" - }, - "scale": "ratio", - "sourceField": "panw.system.memory.used" - } - }, - "ignoreGlobalFilters": false, - "incompleteColumns": {}, - "sampling": 1 - }, - "ed5168bf-932a-4c12-9d93-3cbbcff1de60": { - "columnOrder": [ - "610f362a-3ad7-482a-b513-8259accdea4e" - ], - "columns": { - "610f362a-3ad7-482a-b513-8259accdea4e": { - "customLabel": true, - "dataType": "number", - "filter": { - "language": "kuery", - "query": "\"panw.system.memory.total\": *" - }, - "isBucketed": false, - "label": "TotalMemory", - "operationType": "last_value", - "params": { - "format": { - "id": "bytes", - "params": { - "decimals": 2 - } - }, - "sortField": "@timestamp" - }, - "scale": "ratio", - "sourceField": "panw.system.memory.total" - } - }, - "ignoreGlobalFilters": false, - "incompleteColumns": {}, - "linkToLayers": [], - "sampling": 1 - } - } - }, - "indexpattern": { - "layers": {} - }, - "textBased": { - "layers": {} - } - }, - "filters": [], - "internalReferences": [], - "query": { - "language": "kuery", - "query": "" - }, - "visualization": { - "axisTitlesVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "fittingFunction": "None", - "gridlinesVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "labelsOrientation": { - "x": 0, - "yLeft": 0, - "yRight": 0 - }, - "layers": [ - { - "accessors": [ - "72cd3b18-27a6-4a62-a650-bbe5f09cbac5", - "54ba8425-cf85-4a41-bc14-eb717409f9d4", - "9156b77d-c585-4cfc-b23a-baa727bebfbd" - ], - "colorMapping": { - "assignments": [], - "colorMode": { - "type": "categorical" - }, - "paletteId": "eui_amsterdam_color_blind", - "specialAssignments": [ - { - "color": { - "type": "loop" - }, - "rule": { - "type": "other" - }, - "touched": false - } - ] - }, - "layerId": "93308fd4-919e-470f-94cd-e05e7d89f7f7", - "layerType": "data", - "position": "top", - "seriesType": "bar_stacked", - "showGridlines": false, - "xAccessor": "311360c1-eb5c-436c-9553-8f6aadc91ea5" - }, - { - "accessors": [ - "610f362a-3ad7-482a-b513-8259accdea4e" - ], - "layerId": "ed5168bf-932a-4c12-9d93-3cbbcff1de60", - "layerType": "referenceLine", - "yConfig": [ - { - "axisMode": "left", - "forAccessor": "610f362a-3ad7-482a-b513-8259accdea4e", - "icon": "asterisk", - "iconPosition": "left", - "textVisibility": true - } - ] - } - ], - "legend": { - "isVisible": true, - "position": "right" - }, - "preferredSeriesType": "bar_stacked", - "tickLabelsVisibilitySettings": { - "x": true, - "yLeft": true, - "yRight": true - }, - "valueLabels": "hide" - } - }, - "title": "", - "type": "lens", - "visualizationType": "lnsXY" - }, - "enhancements": {} - }, - "gridData": { - "h": 15, - "i": "addf5643-9448-4489-ab0c-a47f485294f9", - "w": 24, - "x": 24, - "y": 6 - }, - "panelIndex": "addf5643-9448-4489-ab0c-a47f485294f9", - "title": "Memory", - "type": "lens" - }, - { - "embeddableConfig": { - "attributes": { - "references": [ - { - "id": "metrics-*", - "name": "indexpattern-datasource-layer-36de673c-5822-45a3-8465-9ea14d9bdba8", - "type": "index-pattern" - } - ], - "state": { - "adHocDataViews": {}, - "datasourceStates": { - "formBased": { - "currentIndexPatternId": "metrics-*", - "layers": { - "36de673c-5822-45a3-8465-9ea14d9bdba8": { - "columnOrder": [ - "7e6e5ee1-4eea-4c3f-ae4b-c93b9b649b2b", - "a7488650-e737-43c4-abad-3e6fc791303e", - "d5074c95-04ef-4640-90d3-903a5b81f256", - "47e76e1e-7945-4185-941e-dfb453f88d64", - "84bb1ec1-fc27-4576-80ec-a7def76b647d", - "1b92870a-e55d-44b8-98b9-1ef855828518" - ], - "columns": { - "1b92870a-e55d-44b8-98b9-1ef855828518": { - "customLabel": true, - "dataType": "date", - "isBucketed": false, - "label": "Expires", - "operationType": "max", - "params": { - "emptyAsNull": true - }, - "scale": "ratio", - "sourceField": "panw.system.license.expires" - }, - "47e76e1e-7945-4185-941e-dfb453f88d64": { - "customLabel": true, - "dataType": "boolean", - "isBucketed": true, - "label": "Expired", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "1b92870a-e55d-44b8-98b9-1ef855828518", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "panw.system.license.expired" - }, - "7e6e5ee1-4eea-4c3f-ae4b-c93b9b649b2b": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "Feature", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "fallback": false, - "type": "alphabetical" - }, - "orderDirection": "asc", - "otherBucket": false, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "panw.system.license.feature" - }, - "84bb1ec1-fc27-4576-80ec-a7def76b647d": { - "customLabel": true, - "dataType": "date", - "isBucketed": false, - "label": "Date Issued", - "operationType": "max", - "params": { - "emptyAsNull": true - }, - "scale": "ratio", - "sourceField": "panw.system.license.issued" - }, - "a7488650-e737-43c4-abad-3e6fc791303e": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "Description", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "1b92870a-e55d-44b8-98b9-1ef855828518", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "panw.system.license.description" - }, - "d5074c95-04ef-4640-90d3-903a5b81f256": { - "customLabel": true, - "dataType": "boolean", - "isBucketed": true, - "label": "Never Expires", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "1b92870a-e55d-44b8-98b9-1ef855828518", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "panw.system.license.never_expires" - } - }, - "incompleteColumns": {}, - "indexPatternId": "metrics-*", - "sampling": 1 - } - } - }, - "indexpattern": { - "layers": {} - }, - "textBased": { - "layers": {} - } - }, - "filters": [], - "internalReferences": [], - "query": { - "language": "kuery", - "query": "" - }, - "visualization": { - "columns": [ - { - "columnId": "7e6e5ee1-4eea-4c3f-ae4b-c93b9b649b2b", - "isTransposed": false, - "width": 176.57142857142858 - }, - { - "columnId": "d5074c95-04ef-4640-90d3-903a5b81f256", - "isTransposed": false - }, - { - "columnId": "47e76e1e-7945-4185-941e-dfb453f88d64", - "isTransposed": false, - "width": 109.08571428571429 - }, - { - "columnId": "a7488650-e737-43c4-abad-3e6fc791303e", - "isTransposed": false - }, - { - "columnId": "1b92870a-e55d-44b8-98b9-1ef855828518", - "isMetric": true, - "isTransposed": false - }, - { - "columnId": "84bb1ec1-fc27-4576-80ec-a7def76b647d", - "isMetric": true, - "isTransposed": false - } - ], - "layerId": "36de673c-5822-45a3-8465-9ea14d9bdba8", - "layerType": "data" - } - }, - "title": "", - "type": "lens", - "visualizationType": "lnsDatatable" - }, - "enhancements": {} - }, - "gridData": { - "h": 12, - "i": "d515adb8-1b3d-4e75-bbed-dd069070f472", - "w": 48, - "x": 0, - "y": 21 - }, - "panelIndex": "d515adb8-1b3d-4e75-bbed-dd069070f472", - "title": "LIcenses", - "type": "lens" - } - ], - "timeRestore": false, - "title": "PANW System Resources (Detail)", - "version": 2 - }, - "coreMigrationVersion": "8.8.0", - "created_at": "2024-10-02T19:26:37.488Z", - "created_by": "u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0", - "id": "panw_metrics-f4120bd3-ced7-497e-a075-8afdae59eff5", - "managed": false, - "references": [ - { - "id": "metrics-*", - "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", - "type": "index-pattern" - }, - { - "id": "metrics-*", - "name": "748398c9-e543-48b3-8cd8-be77f25115b8:indexpattern-datasource-layer-84d94cdf-99fe-43f4-b520-8343a94355b6", - "type": "index-pattern" - }, - { - "id": "metrics-*", - "name": "09922c41-3324-43a9-9302-cec9c281902e:indexpattern-datasource-layer-ef579182-b6a5-4392-a32e-2cc104fed1ef", - "type": "index-pattern" - }, - { - "id": "metrics-*", - "name": "637a7e88-c3d5-487e-8efd-a5d72429ad60:indexpattern-datasource-layer-d518bbf9-bd15-4582-9a24-ef33e5ee5002", - "type": "index-pattern" - }, - { - "id": "metrics-*", - "name": "06fc2325-3c0c-4527-9dfc-9a04afd4d880:indexpattern-datasource-layer-d518bbf9-bd15-4582-9a24-ef33e5ee5002", - "type": "index-pattern" - }, - { - "id": "metrics-*", - "name": "dc986d61-7048-443d-80c9-f7d002a93332:indexpattern-datasource-layer-28c3773b-a896-466c-8a93-412deeb3313d", - "type": "index-pattern" - }, - { - "id": "metrics-*", - "name": "addf5643-9448-4489-ab0c-a47f485294f9:indexpattern-datasource-layer-93308fd4-919e-470f-94cd-e05e7d89f7f7", - "type": "index-pattern" - }, - { - "id": "metrics-*", - "name": "addf5643-9448-4489-ab0c-a47f485294f9:indexpattern-datasource-layer-ed5168bf-932a-4c12-9d93-3cbbcff1de60", - "type": "index-pattern" - }, - { - "id": "metrics-*", - "name": "d515adb8-1b3d-4e75-bbed-dd069070f472:indexpattern-datasource-layer-36de673c-5822-45a3-8465-9ea14d9bdba8", - "type": "index-pattern" - }, - { - "id": "metrics-*", - "name": "controlGroup_b50424d1-d82e-4c7c-8df4-0e67b63dc27d:optionsListDataView", - "type": "index-pattern" - } - ], - "type": "dashboard", - "typeMigrationVersion": "10.2.0", - "updated_by": "u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0" -} \ No newline at end of file diff --git a/packages/panw_metrics/kibana/dashboard/panw_metrics-f8f0b70a-01cf-497d-89ac-a3e2c0d6bbb7.json b/packages/panw_metrics/kibana/dashboard/panw_metrics-f8f0b70a-01cf-497d-89ac-a3e2c0d6bbb7.json deleted file mode 100644 index 492fd29a9ec..00000000000 --- a/packages/panw_metrics/kibana/dashboard/panw_metrics-f8f0b70a-01cf-497d-89ac-a3e2c0d6bbb7.json +++ /dev/null @@ -1,1585 +0,0 @@ -{ - "attributes": { - "controlGroupInput": { - "chainingSystem": "HIERARCHICAL", - "controlStyle": "oneLine", - "ignoreParentSettingsJSON": { - "ignoreFilters": false, - "ignoreQuery": false, - "ignoreTimerange": false, - "ignoreValidations": false - }, - "panelsJSON": { - "5b8b93a6-f1e3-4a55-a3b1-d2ee69bec2a6": { - "explicitInput": { - "enhancements": {}, - "fieldName": "observer.ip", - "grow": false, - "id": "5b8b93a6-f1e3-4a55-a3b1-d2ee69bec2a6", - "searchTechnique": "prefix", - "selectedOptions": [ - "10.200.99.13" - ], - "title": "observer.ip", - "width": "medium" - }, - "grow": false, - "order": 0, - "type": "optionsListControl", - "width": "medium" - } - }, - "showApplySelections": false - }, - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": { - "filter": [ - { - "$state": { - "store": "appState" - }, - "meta": { - "alias": null, - "disabled": false, - "field": "event.dataset", - "indexRefName": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", - "key": "event.dataset", - "negate": false, - "params": { - "query": "panw_metrics.interfaces" - }, - "type": "phrase" - }, - "query": { - "match_phrase": { - "event.dataset": "panw_metrics.interfaces" - } - } - } - ], - "query": { - "language": "kuery", - "query": "" - } - } - }, - "optionsJSON": { - "hidePanelTitles": false, - "syncColors": false, - "syncCursor": true, - "syncTooltips": false, - "useMargins": true - }, - "panelsJSON": [ - { - "embeddableConfig": { - "attributes": { - "references": [ - { - "id": "metrics-*", - "name": "indexpattern-datasource-layer-0bc09006-fc66-4c44-988c-3fc6151319cc", - "type": "index-pattern" - } - ], - "state": { - "adHocDataViews": {}, - "datasourceStates": { - "formBased": { - "layers": { - "0bc09006-fc66-4c44-988c-3fc6151319cc": { - "columnOrder": [ - "8563481a-ced9-44d0-a95d-acf39bac4f75", - "f1932147-2ada-47a0-a954-899b426d5e8b", - "6eff7e67-0123-4dd8-accc-27d0ac1b3e9b", - "2d445f09-fcb5-4fa6-bdc5-9e0b315c8ed3", - "fa15af9a-afcd-4649-8e08-ddf98b7cbf71", - "fff96276-4165-46f8-b62d-e77b7fed1395", - "c97ce536-6dc7-4731-b9c7-c71a8170b336", - "e0e8acb2-fef4-47e4-8b5c-a636dacb621c" - ], - "columns": { - "2d445f09-fcb5-4fa6-bdc5-9e0b315c8ed3": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "Speed", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "e0e8acb2-fef4-47e4-8b5c-a636dacb621c", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "panw.interfaces.physical.speed" - }, - "6eff7e67-0123-4dd8-accc-27d0ac1b3e9b": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "Duplex", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "e0e8acb2-fef4-47e4-8b5c-a636dacb621c", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "panw.interfaces.physical.duplex" - }, - "8563481a-ced9-44d0-a95d-acf39bac4f75": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "Name", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "e0e8acb2-fef4-47e4-8b5c-a636dacb621c", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "panw.interfaces.physical.name" - }, - "c97ce536-6dc7-4731-b9c7-c71a8170b336": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "State", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "e0e8acb2-fef4-47e4-8b5c-a636dacb621c", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "panw.interfaces.physical.state" - }, - "e0e8acb2-fef4-47e4-8b5c-a636dacb621c": { - "dataType": "number", - "isBucketed": false, - "label": "Count of records", - "operationType": "count", - "params": { - "emptyAsNull": true - }, - "scale": "ratio", - "sourceField": "___records___" - }, - "f1932147-2ada-47a0-a954-899b426d5e8b": { - "customLabel": true, - "dataType": "number", - "isBucketed": true, - "label": "ID", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "e0e8acb2-fef4-47e4-8b5c-a636dacb621c", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "panw.interfaces.physical.id" - }, - "fa15af9a-afcd-4649-8e08-ddf98b7cbf71": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "Type", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "e0e8acb2-fef4-47e4-8b5c-a636dacb621c", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "panw.interfaces.physical.type" - }, - "fff96276-4165-46f8-b62d-e77b7fed1395": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "Mode", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "e0e8acb2-fef4-47e4-8b5c-a636dacb621c", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "panw.interfaces.physical.mode" - } - }, - "incompleteColumns": {}, - "sampling": 1 - } - } - }, - "indexpattern": { - "layers": {} - }, - "textBased": { - "layers": {} - } - }, - "filters": [], - "internalReferences": [], - "query": { - "language": "kuery", - "query": "" - }, - "visualization": { - "columns": [ - { - "columnId": "8563481a-ced9-44d0-a95d-acf39bac4f75", - "isTransposed": false - }, - { - "columnId": "6eff7e67-0123-4dd8-accc-27d0ac1b3e9b", - "isMetric": false, - "isTransposed": false - }, - { - "columnId": "2d445f09-fcb5-4fa6-bdc5-9e0b315c8ed3", - "isTransposed": false - }, - { - "columnId": "fa15af9a-afcd-4649-8e08-ddf98b7cbf71", - "isTransposed": false - }, - { - "columnId": "fff96276-4165-46f8-b62d-e77b7fed1395", - "isTransposed": false - }, - { - "columnId": "c97ce536-6dc7-4731-b9c7-c71a8170b336", - "isTransposed": false - }, - { - "columnId": "e0e8acb2-fef4-47e4-8b5c-a636dacb621c", - "hidden": true, - "isTransposed": false - }, - { - "columnId": "f1932147-2ada-47a0-a954-899b426d5e8b", - "isMetric": false, - "isTransposed": false - } - ], - "layerId": "0bc09006-fc66-4c44-988c-3fc6151319cc", - "layerType": "data" - } - }, - "title": "", - "type": "lens", - "visualizationType": "lnsDatatable" - }, - "enhancements": {} - }, - "gridData": { - "h": 18, - "i": "b38b1b60-8e9e-48a3-a4ef-db4270243736", - "w": 27, - "x": 0, - "y": 0 - }, - "panelIndex": "b38b1b60-8e9e-48a3-a4ef-db4270243736", - "title": "Physical Interfaces", - "type": "lens" - }, - { - "embeddableConfig": { - "attributes": { - "references": [ - { - "id": "metrics-*", - "name": "indexpattern-datasource-layer-d5fddad1-5faa-418a-808e-cdb47ba28e4f", - "type": "index-pattern" - } - ], - "state": { - "adHocDataViews": {}, - "datasourceStates": { - "formBased": { - "layers": { - "d5fddad1-5faa-418a-808e-cdb47ba28e4f": { - "columnOrder": [ - "97d9e906-77ad-4205-b91b-90c2c1530f82", - "1955783b-c416-4c60-a7a0-761c97783ce4", - "865e5b10-80b0-4e89-bcea-a181ed9f92ce", - "1bb6da99-aa4a-4e83-9b8c-7e7fce621e3a", - "49329f96-5495-49d6-9fb1-f004e47aafbd", - "5fa88d86-6bd7-4ac5-a43b-0ce636be5fca" - ], - "columns": { - "1955783b-c416-4c60-a7a0-761c97783ce4": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "IP", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "5fa88d86-6bd7-4ac5-a43b-0ce636be5fca", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "panw.interfaces.logical.ip" - }, - "1bb6da99-aa4a-4e83-9b8c-7e7fce621e3a": { - "customLabel": true, - "dataType": "number", - "isBucketed": true, - "label": "VLAN Tag", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "5fa88d86-6bd7-4ac5-a43b-0ce636be5fca", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "panw.interfaces.logical.tag" - }, - "49329f96-5495-49d6-9fb1-f004e47aafbd": { - "customLabel": true, - "dataType": "number", - "isBucketed": true, - "label": "Virtual System", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "5fa88d86-6bd7-4ac5-a43b-0ce636be5fca", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "panw.interfaces.logical.vsys" - }, - "5fa88d86-6bd7-4ac5-a43b-0ce636be5fca": { - "dataType": "number", - "isBucketed": false, - "label": "Count of records", - "operationType": "count", - "params": { - "emptyAsNull": true - }, - "scale": "ratio", - "sourceField": "___records___" - }, - "865e5b10-80b0-4e89-bcea-a181ed9f92ce": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "Zone", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "5fa88d86-6bd7-4ac5-a43b-0ce636be5fca", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "panw.interfaces.logical.zone" - }, - "97d9e906-77ad-4205-b91b-90c2c1530f82": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "Name", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "5fa88d86-6bd7-4ac5-a43b-0ce636be5fca", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": false, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "panw.interfaces.logical.name" - } - }, - "incompleteColumns": {}, - "sampling": 1 - } - } - }, - "indexpattern": { - "layers": {} - }, - "textBased": { - "layers": {} - } - }, - "filters": [], - "internalReferences": [], - "query": { - "language": "kuery", - "query": "" - }, - "visualization": { - "columns": [ - { - "columnId": "97d9e906-77ad-4205-b91b-90c2c1530f82", - "isTransposed": false - }, - { - "columnId": "1955783b-c416-4c60-a7a0-761c97783ce4", - "isTransposed": false - }, - { - "columnId": "865e5b10-80b0-4e89-bcea-a181ed9f92ce", - "isTransposed": false - }, - { - "columnId": "5fa88d86-6bd7-4ac5-a43b-0ce636be5fca", - "hidden": true, - "isMetric": true, - "isTransposed": false - }, - { - "columnId": "1bb6da99-aa4a-4e83-9b8c-7e7fce621e3a", - "isMetric": false, - "isTransposed": false - }, - { - "columnId": "49329f96-5495-49d6-9fb1-f004e47aafbd", - "isMetric": false, - "isTransposed": false - } - ], - "layerId": "d5fddad1-5faa-418a-808e-cdb47ba28e4f", - "layerType": "data" - } - }, - "title": "", - "type": "lens", - "visualizationType": "lnsDatatable" - }, - "enhancements": {} - }, - "gridData": { - "h": 18, - "i": "a6e39853-be2b-4271-a37d-39add2be7622", - "w": 21, - "x": 27, - "y": 0 - }, - "panelIndex": "a6e39853-be2b-4271-a37d-39add2be7622", - "title": "Logical Interfaces", - "type": "lens" - }, - { - "embeddableConfig": { - "attributes": { - "references": [ - { - "id": "metrics-*", - "name": "indexpattern-datasource-layer-2ae143b9-8527-4bac-bff5-5a5415946625", - "type": "index-pattern" - } - ], - "state": { - "adHocDataViews": {}, - "datasourceStates": { - "formBased": { - "layers": { - "2ae143b9-8527-4bac-bff5-5a5415946625": { - "columnOrder": [ - "7d89a264-e7fc-4e32-ad1e-d45d61b01757", - "b6392b7f-c29f-49f9-8f91-8f1c1c0f2a6e", - "e8c20f1f-1eac-49e1-8244-8c05664e0ca7", - "b9bdffc2-7550-4e9a-be56-f4da56bb64f6", - "c8c630b7-b762-4730-9ee2-ebbc1e20a99a", - "4fc3d4d2-8540-41cf-8a92-94a2cde191ab", - "37b92e54-6f33-4d9c-b4df-921fa2b60113" - ], - "columns": { - "37b92e54-6f33-4d9c-b4df-921fa2b60113": { - "dataType": "number", - "isBucketed": false, - "label": "Count of records", - "operationType": "count", - "params": { - "emptyAsNull": true - }, - "scale": "ratio", - "sourceField": "___records___" - }, - "4fc3d4d2-8540-41cf-8a92-94a2cde191ab": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "Encryption Algorithm", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "37b92e54-6f33-4d9c-b4df-921fa2b60113", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "panw.interfaces.ipsec_tunnel.hash" - }, - "7d89a264-e7fc-4e32-ad1e-d45d61b01757": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "Tunnel Name", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "37b92e54-6f33-4d9c-b4df-921fa2b60113", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "panw.interfaces.ipsec_tunnel.name" - }, - "b6392b7f-c29f-49f9-8f91-8f1c1c0f2a6e": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "Gateway", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "37b92e54-6f33-4d9c-b4df-921fa2b60113", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "panw.interfaces.ipsec_tunnel.gw" - }, - "b9bdffc2-7550-4e9a-be56-f4da56bb64f6": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "Protocol", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "37b92e54-6f33-4d9c-b4df-921fa2b60113", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "panw.interfaces.ipsec_tunnel.proto" - }, - "c8c630b7-b762-4730-9ee2-ebbc1e20a99a": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "Mode", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "37b92e54-6f33-4d9c-b4df-921fa2b60113", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "panw.interfaces.ipsec_tunnel.mode" - }, - "e8c20f1f-1eac-49e1-8244-8c05664e0ca7": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "Traffic Selector Responder IP", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "37b92e54-6f33-4d9c-b4df-921fa2b60113", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 20 - }, - "scale": "ordinal", - "sourceField": "panw.interfaces.ipsec_tunnel.TSr_ip" - } - }, - "ignoreGlobalFilters": false, - "incompleteColumns": {}, - "sampling": 1 - } - } - }, - "indexpattern": { - "layers": {} - }, - "textBased": { - "layers": {} - } - }, - "filters": [], - "internalReferences": [], - "query": { - "language": "kuery", - "query": "" - }, - "visualization": { - "columns": [ - { - "columnId": "7d89a264-e7fc-4e32-ad1e-d45d61b01757", - "isMetric": false, - "isTransposed": false - }, - { - "columnId": "b6392b7f-c29f-49f9-8f91-8f1c1c0f2a6e", - "isTransposed": false, - "width": 191.83333333333334 - }, - { - "columnId": "e8c20f1f-1eac-49e1-8244-8c05664e0ca7", - "isTransposed": false - }, - { - "columnId": "b9bdffc2-7550-4e9a-be56-f4da56bb64f6", - "isTransposed": false - }, - { - "columnId": "37b92e54-6f33-4d9c-b4df-921fa2b60113", - "hidden": true, - "isMetric": true, - "isTransposed": false - }, - { - "columnId": "c8c630b7-b762-4730-9ee2-ebbc1e20a99a", - "isMetric": false, - "isTransposed": false - }, - { - "columnId": "4fc3d4d2-8540-41cf-8a92-94a2cde191ab", - "isMetric": false, - "isTransposed": false - } - ], - "layerId": "2ae143b9-8527-4bac-bff5-5a5415946625", - "layerType": "data" - } - }, - "title": "", - "type": "lens", - "visualizationType": "lnsDatatable" - }, - "enhancements": {} - }, - "gridData": { - "h": 13, - "i": "97d4f450-b6be-47e5-b87e-7c847e035bf9", - "w": 24, - "x": 0, - "y": 18 - }, - "panelIndex": "97d4f450-b6be-47e5-b87e-7c847e035bf9", - "title": "IPsec Tunnels", - "type": "lens" - }, - { - "embeddableConfig": { - "attributes": { - "references": [ - { - "id": "metrics-*", - "name": "indexpattern-datasource-layer-7e1403ac-ced7-4233-b2e9-ec9d2ba5fc90", - "type": "index-pattern" - } - ], - "state": { - "adHocDataViews": {}, - "datasourceStates": { - "formBased": { - "layers": { - "7e1403ac-ced7-4233-b2e9-ec9d2ba5fc90": { - "columnOrder": [ - "28ba1f53-e795-4b00-85bb-069083c0e3a0", - "08ae75d6-8b7d-47af-adc5-3a98b891ff92", - "98648eeb-4e67-45c1-a806-6c35dcd3b142", - "3c0759e0-833d-4008-8f1e-04e7dc59ce6a", - "0c2f9134-86e9-43d3-91f8-15a96685fd3f", - "31c2f8f1-e8c5-4f26-aa67-3d4fcf9f43a1" - ], - "columns": { - "08ae75d6-8b7d-47af-adc5-3a98b891ff92": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "HA Mode", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "31c2f8f1-e8c5-4f26-aa67-3d4fcf9f43a1", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 3 - }, - "scale": "ordinal", - "sourceField": "panw.interfaces.ha.mode" - }, - "0c2f9134-86e9-43d3-91f8-15a96685fd3f": { - "customLabel": true, - "dataType": "boolean", - "isBucketed": true, - "label": "Link Monitoring Enabled", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "31c2f8f1-e8c5-4f26-aa67-3d4fcf9f43a1", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 3 - }, - "scale": "ordinal", - "sourceField": "panw.interfaces.ha.link_monitoring.enabled" - }, - "28ba1f53-e795-4b00-85bb-069083c0e3a0": { - "customLabel": true, - "dataType": "boolean", - "isBucketed": true, - "label": "HA Enabled", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "31c2f8f1-e8c5-4f26-aa67-3d4fcf9f43a1", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 5 - }, - "scale": "ordinal", - "sourceField": "panw.interfaces.ha.enabled" - }, - "31c2f8f1-e8c5-4f26-aa67-3d4fcf9f43a1": { - "dataType": "number", - "isBucketed": false, - "label": "Count of records", - "operationType": "count", - "params": { - "emptyAsNull": true - }, - "scale": "ratio", - "sourceField": "___records___" - }, - "3c0759e0-833d-4008-8f1e-04e7dc59ce6a": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "Sync Status", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "31c2f8f1-e8c5-4f26-aa67-3d4fcf9f43a1", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 3 - }, - "scale": "ordinal", - "sourceField": "panw.interfaces.ha.running_sync" - }, - "98648eeb-4e67-45c1-a806-6c35dcd3b142": { - "customLabel": true, - "dataType": "boolean", - "isBucketed": true, - "label": "Sync Enabed", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "31c2f8f1-e8c5-4f26-aa67-3d4fcf9f43a1", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 3 - }, - "scale": "ordinal", - "sourceField": "panw.interfaces.ha.running_sync_enabled" - } - }, - "incompleteColumns": {}, - "sampling": 1 - } - } - }, - "indexpattern": { - "layers": {} - }, - "textBased": { - "layers": {} - } - }, - "filters": [], - "internalReferences": [], - "query": { - "language": "kuery", - "query": "" - }, - "visualization": { - "columns": [ - { - "columnId": "28ba1f53-e795-4b00-85bb-069083c0e3a0", - "isTransposed": false - }, - { - "columnId": "0c2f9134-86e9-43d3-91f8-15a96685fd3f", - "isMetric": false, - "isTransposed": false - }, - { - "columnId": "08ae75d6-8b7d-47af-adc5-3a98b891ff92", - "isTransposed": false - }, - { - "columnId": "3c0759e0-833d-4008-8f1e-04e7dc59ce6a", - "isTransposed": false - }, - { - "columnId": "31c2f8f1-e8c5-4f26-aa67-3d4fcf9f43a1", - "hidden": true, - "isTransposed": false - }, - { - "columnId": "98648eeb-4e67-45c1-a806-6c35dcd3b142", - "isMetric": false, - "isTransposed": false - } - ], - "layerId": "7e1403ac-ced7-4233-b2e9-ec9d2ba5fc90", - "layerType": "data" - } - }, - "title": "", - "type": "lens", - "visualizationType": "lnsDatatable" - }, - "enhancements": {} - }, - "gridData": { - "h": 5, - "i": "4c872954-8afd-46e7-b7e3-6339a71099af", - "w": 24, - "x": 24, - "y": 18 - }, - "panelIndex": "4c872954-8afd-46e7-b7e3-6339a71099af", - "title": "HA Summary", - "type": "lens" - }, - { - "embeddableConfig": { - "attributes": { - "references": [ - { - "id": "metrics-*", - "name": "indexpattern-datasource-layer-71d658f8-244e-4247-8f37-8a5f07d9ca3f", - "type": "index-pattern" - } - ], - "state": { - "adHocDataViews": {}, - "datasourceStates": { - "formBased": { - "layers": { - "71d658f8-244e-4247-8f37-8a5f07d9ca3f": { - "columnOrder": [ - "f2b1d8ff-5a2a-4b28-a06c-644e62f659be", - "1b6be5ae-8071-4756-a13a-94890c583ab3", - "307ce5cc-28de-4ce2-99f1-94dbfcdeb9c7", - "e103e9fd-d0d6-4267-9886-1de2324c195c", - "92d3b5a1-8118-40cc-b6f4-e17ecdaea24d" - ], - "columns": { - "1b6be5ae-8071-4756-a13a-94890c583ab3": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "HA1 IP", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "92d3b5a1-8118-40cc-b6f4-e17ecdaea24d", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 3 - }, - "scale": "ordinal", - "sourceField": "panw.interfaces.ha.local_info.ha1_ipaddr" - }, - "307ce5cc-28de-4ce2-99f1-94dbfcdeb9c7": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "HA2 IP", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "92d3b5a1-8118-40cc-b6f4-e17ecdaea24d", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 3 - }, - "scale": "ordinal", - "sourceField": "panw.interfaces.ha.local_info.ha2_ipaddr" - }, - "92d3b5a1-8118-40cc-b6f4-e17ecdaea24d": { - "dataType": "number", - "isBucketed": false, - "label": "Count of records", - "operationType": "count", - "params": { - "emptyAsNull": true - }, - "scale": "ratio", - "sourceField": "___records___" - }, - "e103e9fd-d0d6-4267-9886-1de2324c195c": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "Preemptive", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "92d3b5a1-8118-40cc-b6f4-e17ecdaea24d", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 3 - }, - "scale": "ordinal", - "sourceField": "panw.interfaces.ha.local_info.preemptive" - }, - "f2b1d8ff-5a2a-4b28-a06c-644e62f659be": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "State", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "92d3b5a1-8118-40cc-b6f4-e17ecdaea24d", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 3 - }, - "scale": "ordinal", - "sourceField": "panw.interfaces.ha.local_info.state" - } - }, - "incompleteColumns": {}, - "sampling": 1 - } - } - }, - "indexpattern": { - "layers": {} - }, - "textBased": { - "layers": {} - } - }, - "filters": [], - "internalReferences": [], - "query": { - "language": "kuery", - "query": "" - }, - "visualization": { - "columns": [ - { - "columnId": "f2b1d8ff-5a2a-4b28-a06c-644e62f659be", - "isTransposed": false - }, - { - "columnId": "1b6be5ae-8071-4756-a13a-94890c583ab3", - "isMetric": false, - "isTransposed": false - }, - { - "columnId": "307ce5cc-28de-4ce2-99f1-94dbfcdeb9c7", - "isTransposed": false - }, - { - "columnId": "92d3b5a1-8118-40cc-b6f4-e17ecdaea24d", - "hidden": true, - "isTransposed": false, - "width": 153.83333333333334 - }, - { - "columnId": "e103e9fd-d0d6-4267-9886-1de2324c195c", - "isMetric": false, - "isTransposed": false - } - ], - "layerId": "71d658f8-244e-4247-8f37-8a5f07d9ca3f", - "layerType": "data" - } - }, - "title": "", - "type": "lens", - "visualizationType": "lnsDatatable" - }, - "enhancements": {} - }, - "gridData": { - "h": 4, - "i": "1378b43d-6b52-4da4-ba75-4d7a159e2443", - "w": 24, - "x": 24, - "y": 23 - }, - "panelIndex": "1378b43d-6b52-4da4-ba75-4d7a159e2443", - "title": "HA Local Node", - "type": "lens" - }, - { - "embeddableConfig": { - "attributes": { - "references": [ - { - "id": "metrics-*", - "name": "indexpattern-datasource-layer-71d658f8-244e-4247-8f37-8a5f07d9ca3f", - "type": "index-pattern" - } - ], - "state": { - "adHocDataViews": {}, - "datasourceStates": { - "formBased": { - "layers": { - "71d658f8-244e-4247-8f37-8a5f07d9ca3f": { - "columnOrder": [ - "f2b1d8ff-5a2a-4b28-a06c-644e62f659be", - "1b6be5ae-8071-4756-a13a-94890c583ab3", - "307ce5cc-28de-4ce2-99f1-94dbfcdeb9c7", - "c0eef8cd-04c8-4fb7-a3bf-32c719ec5726", - "92d3b5a1-8118-40cc-b6f4-e17ecdaea24d" - ], - "columns": { - "1b6be5ae-8071-4756-a13a-94890c583ab3": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "HA1 IP", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "92d3b5a1-8118-40cc-b6f4-e17ecdaea24d", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "secondaryFields": [], - "size": 3 - }, - "scale": "ordinal", - "sourceField": "panw.interfaces.ha.peer_info.ha1_ipaddr" - }, - "307ce5cc-28de-4ce2-99f1-94dbfcdeb9c7": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "HA2 IP", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "92d3b5a1-8118-40cc-b6f4-e17ecdaea24d", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "secondaryFields": [], - "size": 3 - }, - "scale": "ordinal", - "sourceField": "panw.interfaces.ha.peer_info.ha2_ipaddr" - }, - "92d3b5a1-8118-40cc-b6f4-e17ecdaea24d": { - "dataType": "number", - "isBucketed": false, - "label": "Count of records", - "operationType": "count", - "params": { - "emptyAsNull": true - }, - "scale": "ratio", - "sourceField": "___records___" - }, - "c0eef8cd-04c8-4fb7-a3bf-32c719ec5726": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "Preemptive", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "92d3b5a1-8118-40cc-b6f4-e17ecdaea24d", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 3 - }, - "scale": "ordinal", - "sourceField": "panw.interfaces.ha.peer_info.preemptive" - }, - "f2b1d8ff-5a2a-4b28-a06c-644e62f659be": { - "customLabel": true, - "dataType": "string", - "isBucketed": true, - "label": "State", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "92d3b5a1-8118-40cc-b6f4-e17ecdaea24d", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "secondaryFields": [], - "size": 3 - }, - "scale": "ordinal", - "sourceField": "panw.interfaces.ha.peer_info.state" - } - }, - "incompleteColumns": {}, - "sampling": 1 - } - } - }, - "indexpattern": { - "layers": {} - }, - "textBased": { - "layers": {} - } - }, - "filters": [], - "internalReferences": [], - "query": { - "language": "kuery", - "query": "" - }, - "visualization": { - "columns": [ - { - "columnId": "f2b1d8ff-5a2a-4b28-a06c-644e62f659be", - "isTransposed": false - }, - { - "columnId": "1b6be5ae-8071-4756-a13a-94890c583ab3", - "isMetric": false, - "isTransposed": false - }, - { - "columnId": "307ce5cc-28de-4ce2-99f1-94dbfcdeb9c7", - "isTransposed": false - }, - { - "columnId": "92d3b5a1-8118-40cc-b6f4-e17ecdaea24d", - "hidden": true, - "isTransposed": false, - "width": 153.83333333333334 - }, - { - "columnId": "c0eef8cd-04c8-4fb7-a3bf-32c719ec5726", - "isMetric": false, - "isTransposed": false - } - ], - "layerId": "71d658f8-244e-4247-8f37-8a5f07d9ca3f", - "layerType": "data" - } - }, - "title": "", - "type": "lens", - "visualizationType": "lnsDatatable" - }, - "enhancements": {} - }, - "gridData": { - "h": 4, - "i": "b7bbff81-88b3-485c-9b9c-9734cbe27c35", - "w": 24, - "x": 24, - "y": 27 - }, - "panelIndex": "b7bbff81-88b3-485c-9b9c-9734cbe27c35", - "title": "HA Peer Node ", - "type": "lens" - } - ], - "timeRestore": false, - "title": "PANW Interfaces", - "version": 2 - }, - "coreMigrationVersion": "8.8.0", - "created_at": "2024-10-02T19:20:10.729Z", - "id": "panw_metrics-f8f0b70a-01cf-497d-89ac-a3e2c0d6bbb7", - "managed": true, - "references": [ - { - "id": "metrics-*", - "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", - "type": "index-pattern" - }, - { - "id": "metrics-*", - "name": "b38b1b60-8e9e-48a3-a4ef-db4270243736:indexpattern-datasource-layer-0bc09006-fc66-4c44-988c-3fc6151319cc", - "type": "index-pattern" - }, - { - "id": "metrics-*", - "name": "a6e39853-be2b-4271-a37d-39add2be7622:indexpattern-datasource-layer-d5fddad1-5faa-418a-808e-cdb47ba28e4f", - "type": "index-pattern" - }, - { - "id": "metrics-*", - "name": "97d4f450-b6be-47e5-b87e-7c847e035bf9:indexpattern-datasource-layer-2ae143b9-8527-4bac-bff5-5a5415946625", - "type": "index-pattern" - }, - { - "id": "metrics-*", - "name": "4c872954-8afd-46e7-b7e3-6339a71099af:indexpattern-datasource-layer-7e1403ac-ced7-4233-b2e9-ec9d2ba5fc90", - "type": "index-pattern" - }, - { - "id": "metrics-*", - "name": "1378b43d-6b52-4da4-ba75-4d7a159e2443:indexpattern-datasource-layer-71d658f8-244e-4247-8f37-8a5f07d9ca3f", - "type": "index-pattern" - }, - { - "id": "metrics-*", - "name": "b7bbff81-88b3-485c-9b9c-9734cbe27c35:indexpattern-datasource-layer-71d658f8-244e-4247-8f37-8a5f07d9ca3f", - "type": "index-pattern" - }, - { - "id": "metrics-*", - "name": "controlGroup_5b8b93a6-f1e3-4a55-a3b1-d2ee69bec2a6:optionsListDataView", - "type": "index-pattern" - } - ], - "type": "dashboard", - "typeMigrationVersion": "10.2.0" -} \ No newline at end of file From ca4ebf76f1702ef1d36760981ad27834ff111672 Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Mon, 7 Oct 2024 19:53:45 +0300 Subject: [PATCH 48/50] add dashboards screenshots --- .../img/panw_interfaces_dashboard.png | Bin 0 -> 424211 bytes .../img/panw_routing_dashboard.png | Bin 0 -> 424965 bytes .../panw_metrics/img/panw_system_dashboard.png | Bin 0 -> 520121 bytes .../panw_metrics/img/panw_vpn_dashboard.png | Bin 0 -> 276696 bytes packages/panw_metrics/manifest.yml | 17 +++++++++++++++++ 5 files changed, 17 insertions(+) create mode 100644 packages/panw_metrics/img/panw_interfaces_dashboard.png create mode 100644 packages/panw_metrics/img/panw_routing_dashboard.png create mode 100644 packages/panw_metrics/img/panw_system_dashboard.png create mode 100644 packages/panw_metrics/img/panw_vpn_dashboard.png diff --git a/packages/panw_metrics/img/panw_interfaces_dashboard.png b/packages/panw_metrics/img/panw_interfaces_dashboard.png new file mode 100644 index 0000000000000000000000000000000000000000..8c1a688878702c10fb92958a00482cdc2ea3bcb9 GIT binary patch literal 424211 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%0DocTT_F0}mo8Ow5 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�%t%b}$?=tT5&lN!k5I~*n+sNQKUNW5Y@WomzCLqWmz`=i zUiU33(zfGxC;Xd89jj8;P|9~lb7QbZ=1#NHQ@6szt_g&&PSO{h`Qd2?6Wr2|5kLRH z>GNYh@kei#jFO+vt7iQ=LhPJb-ODi!)>!T@DrSU8I$u5!D-|6ZQkBPdEW6;h3KQk+ z(28_!(EWt}7ReKwtc6d3Vc1*jPF(qU0xKK+Md8|yN=t%Iv+a!jhP}qPyzX)1y=nw1 zJiI7tvGfGPFoFH|mVM(>5~ws+3M$57-sflr&91~)JV`DL*KjgyjG_Nq3&0}C-5vJ2 zovl^3O2g%{0Wj;&lT;$Z7S4q`k_16|J|UE~vn8(*V)*6Cc^A)2Z%Vea4?No#LMUCF zJkl$0W~2dfQ!Ci=pm&9#28j7s=ZaKlt8j!#b`AEzzhj_{C;|~od2kHEnB-Oy9Pju5 zPHrP#D0P>Ovpx)tARvX6w0T@+XF55OHYp6PD=#U9$;8{`Y|=6C@_&cBfCw&a%4Fpx5{A2_S5fjGV2}0@7j%}o z+gxv`c~FN_d-W}^{EoF$M+MsFN=-RYBY}hGj3TRVh--!+eQB1&Z)SFc{O{62U7w1I zUP~mNx$`w~83?-)VUn~Iv{DxGVepWZR6a1+Ia4i;DRo^{s5XP}VuuI{PHXmMhO-X} zm;xYc@rYf&2><+%v9L$^frYH>&tIC~%cu!TW#?7vJ?c-IDKVX{!ZFaB?_Mp3BPD$; zozYQeChtQR3jGl(TXQIs+LhR1Tr8OIFL?u%o`1l!KxG|}!(GJ9Pvn(bEQi+LYcug; z<8k8DG=YO-NdCw&fzGJw+JUDS;3tF`AoDU9|9Ua$>axprS5jRh^oao*WVn3$cGg@F zo>o|YN0I4q$HUG)UISEg^aZ(zghhvpgLLp~cdBr{;>#Mt28|V+pn+Y-U}bIU{=RL} z(~gtqqrk^pEty|V#$vdj@!3(r0R?Gy?D0C6z#1wM)Xv&ma)-OIQ!*9T1yw+2v-WVt zgRRba7AR7JT>h%m}5?@71?tfT^w#on2 z)O0RH2?H4T$m=6xR{TML3$xUnt=fxV0Ne;&r5*~eZJ-$)vsc70f+Q_rf$TTm@zjto z@u2}c&h9w%%(K4y2*QaCj_xVLTI-NxTxndNgx$3AA>-oV#|2mKm{K;TTW-WE)Z&7s z{R>SEsWsu(>+)LUEf*l~o1jLG?0LU^+7&?jU(n4KWR5|@botROFg)J=nSn`oQ^Vi6 z@aOxntKC&GCS6aGm7+k#Ad2!9c-Bsc@@_la?>2=2>^c)`ZDn1!aD}Y9Su#_PweaWW zpR9*28frQPybW-|t-nq0{JrWmG|{5lfiis!;2Z=u`E@(B)WOSRwGzwE8iY*UbHdiC zW{Yve23;#3TG2m@x=5)9h#o3#J!fJVtSCC)M$++CTq`q}I~RJVAn4{GR*qai1L-Yd zrEbPb@;h(iQEPLjlTMtQZeGv@^2Haga zthy3)${n|T>OmL$j`p2#X;a@d4ENVA1w;SU;xGOI&6<6xmeFMdAjFz&A7#h*3E5wmG@+5^SM#m;3w%LUQEWVLX1ki;eXWvR%|mC>V87LXb&{hqFu zq0pe$ejvq!$ddZYEbBJc^zxpoHws@`h`Bilx+^N!H?AY!(Opt)g`S5}_L@KXP1Q7| z@^pZvNFnjed0uXe!l%n9?Gr{BeD#Qz*ve*)+Fi}_oT7_2boU9Y>uF_7 zHnHoGqX&Vaf98M$Dl^tYw9=J+1Xyt_dU*W|+wuL>XV8BzfXkJ54DExJ)^${(G^(${ zWD1WcXGtR&JXp(|C=x}EraBE)ssW*|`(O7Z%sT3~sE)pV*Uz2(DlxSn&0U1AXx{5q z2biT4U5Tz`-%?#1PMv!u4WXHB@J@BW-1k5`P2{nH$hffGA+as(Gr zuaIZ7UmKh;7Kl3c$DBNdxK|YN&law*ja8qp@MDP`VnE%Q%z+4Q`HS9~0lsz&IeYn~ z>+nnwG~Ym6;<%Tm5111k8l*69FI`i|XAnPG`1+%~VWK6FXgEjbEm}efz4wsBnZgA< z)1xKcc$lo*8+s?$7NeN~ac2?|kJC+wSe8Y;IlR2hetQTQqo9eU|A3cP!MB9q3y~$o zfhZxjab4fN*-6C%Ode$cQV6HzB-mtN0$iuDW1gdB=sFLmY~CS^21Hx1 z*_!e*MX-T#&D-`a-dl)6oPMj8siHlt_t?Sf-w#4H)6WLy3V)OFEmzMg525tvSILQ? z^jKoq7rY9g3<4z)*!C5Qzz1a~9NSpc2HL!7BuN0b$huvU?4oQMb^$VN`Gl_PZLwGJ z&2eG&=JSpF;j%_X&UT-TnUmdd#bQIT0yQzAawrlpuOKh@Hm(sUO*Y{SNsjl6wiO1&q{=6A=kQ(BYI&||q&7#@ep6Z=oobp#Lwf8!}RewNgh6#1E8lyZr7Q)pG);K#YHS5AsV>KW8x#rAZM9^+E z7LiHvahfjdWIkb_;KuDN?|QwU<}n~IZn1|S zW-KHAXnFx#S*p3TLlLTdt9pNSGz*PVnhCdzts-0yg!}#M3*3~4-H!Hm+gy&zV+e7? z1=}J9?50sT3Jr3LxpF?qA$}m)8H1Zq)Bafi3DV)E43RHMx8Zg7RCSaX0~4UTKx``m zP=-}fg?%!^xrYVI%KI*YkO$8(6umx zSqotgY52+EJ=_l?fEI`%R?<_(J{N^@u7dU+|w ze{;wTaccz_bPD`BL7e&4w%}2|`!l~MAk!dObNLNJQ21@asM)xgZnvfWY2F&zFhg^Y z4s{^7j{a{B8Uy&BIr#O7U!-P0w%TGydxBkf~pC2E*!1Y5EN9~WqI$Sgu&vZ z7m<4@1QRIM%@<0xEfA^xA$0Kqw-WM8IC7>V(nN$)1h-N$Bu?H`=Uf71HA@Ju{UZHS zMek0k;>wuu!I%|;Z+e}nNzqy+y4t^T5~q`|G(I@v()z_EG-jo*N|n1s-J~-1w`klN z7V+OO_+tRs@6vYAoHao8x<<|97;ylSmhaOkFd4R})4lr>9tt3V8KKFrdu{gorPal% zhEL-#Sp84F)b?dvS_1`x1-utIG*e)if3cfR;PvixBqh`6Yfcfs@fjJ(h|P#n7;vP8 zov*TmnZM}BDql=5O&fU|`8WDh(W1ZRsXi6N}k;SGoX4ol?3Le z(Sw`n@3)QZ@w+Epg!^M@KQl(cy6mUK)UNwo&m; z$hSRE@o}O|D@7HIij3zsJ+$y@u30Q?OKOAsi<@*R_lk|zm%8{*DiKvERNJ;CmzW8V zy65-->T^N3Hle@K5B!yEVGsj!ywvaNUdLmbI2Wo;sea8ib=LU0%(@!)5B<%*73|2p z0dm2wqwK|@fNs}j+FirW3RpTL4>0D=&c78EQ3Il)^03tS**rijL)2TnuKy1el1blR zTA%-yu^2$0mG3uiq$65p7WeCxnfANPxhjpDn9?Pz&@2@ zYjNvIz$@pxP@OyJDYFU1_HzbAR_Irsn!d^f0|iubPQOeXZ9npR9B5dI46QU4BZK$f zy3Xro5(sqAD(Aq&TsfGSnYd<~my>%?|3BW|GOVht>mQazknUEImhLWL3yO57bhGJh z0jZ6&f^>IxY>-lv?k|EKqh7s6U|j-GRl-xzcKu7V03u~Se; z(}9CjLn~oF73*!w`8`5dM0!S<(pPRgLR0D0MhKBbt)E16_*R|LV5Q78uAm1y1Nvj* zWkpZK&Qs-?U}PH1e85Y!m#g)|V>414;Hqng$>U)|pZoeGW1b?EB=bH!06rR}LOfA| zuB+Quvdy?P=`QjcRa=JpNo0s!tn`$#vEC4Mc4^qrW`9!9Cj)9YYfRPwZCd3XHuz_Y z_IC%yJ>arcDeHvOdyzn`9IY;hqc@~TvT2zS6r|S`kVRIfoXsle?M)GBJo-H>tGJk4 zs9zzy!RP=Q`cQ$&%=jT49Z_yBEvdz~SO1V|`B|B^s7mN|OpgK7ZsuF5IKU#Gaw9AU zH5Y{Xlq?zkLC1y|K7T_!tLFn@VG50;#H*JJ1E0kWwO;K=x&?uZjWPp~rD@iLbJWQ1 zL#^zwvR5~qoT|AX%F2P%Qm-h1dd+yPO*%10N5=y;W{eAu3pNgpQ9dJ=w}11R|CGs< z6^cnq(^jrdv2n8d*SdU(e`bi3`JaMKi1Z$renNxsAH4yh>TjeOusEYX#3Kk=ahexY z3=Q@KHv< zi*bv|=7bu-$6S`yx#+?>!*w)DK%&t3p~xeG$3PSJh<`#bKGj^JNxHvDpWPs>h}Uvp zVj{}=hGj>4?RVI#@FW#Q_qddl$fphDXbqXgNBu{?aR)JfS=_;~ks$w6%3~PpMF|(9 z*9+j)q=ca32mFDS->eQ^@=KSTp6{mRJ8eiLc_ia#|kff&o2tbiHv8~gi{qBwQnLHAWRir;wf zpNLt$2@pmtr`|aHYljKIdU`XwB@(E?-Q5jnN^z>L`RYlf_p`GjT?xs-!BH{q6@|H# zg{ozfb;NHeYb$!HU;6{hRlSX>YLC(Qh=r)F*w0wWN>+vVSb6fV+YG`9NiC| zHBT%QK&iPJ-M3htxs8stBR4h*u&&WhSpj5>->1jtucu6-50aK6n;CCBuowGN7JnDM zr9^rsP&+9doyU^lNoN);&CM>@Ob2w)W&#~8kLC5H_e#r@!+y)i&$TXnG-ng?kuOSQ z?o6o`w|EK>cpC{mBr44etb$Z(9rL@F-ME3O)Rv^9ensW<@t^AlxAGVNzf<^M{g6Hc z3SSXu{dIx$wU-s>&AM`F{_W7|Vy^+a^r8hCvl6xZ+J{~Udv6QX zR5o-}Fx6|SV>~$Ft#&n+I#~K%>y1)48t&UG(BJH`BQ!N?s5HyF`hfQ2h?WHGF@Ma& zjedmpO%wDBMAqGZUF0y&yM{S#eLqP5SU4TlRR3d$5Sf5VJhBc@PYWRsSQYR?Ahsnv|(6{dKfdU{%-fX3Jo7*oP4 zM@A_ZZ>c5-U@U<15Eg`a`yg7%K+w^s91v1A)+&1od|8hG}2EW#J*$%-<4Cd(m_ z;pOS6bfpdPMAK#za^hOy;dv-5oEE(+retU1X(~PN0FDVn`xh%-~hk`7@9<2K!xx! zsqysqI-e6qv#_VQ?}X3;biShP{8|K|3EwCgxmX+$+&6YEz!5u`oxJHmNaCrRQ}t6@ zA%|yn=x-K&WW9}nt1ZI{Ni3tg$hGUvmU;BHS5B)>go6#Nw({FhEN@w%Y|hbIRfQoGJ=x>-Ra|Yr2TXg z_C7TB`KXn@q9fE#J?e3xM9izlldPyS19XyQec+e29=PI(muu?e1e_-!QV}L^kZ^BM zr42s+QATI~Rqy@wYLKE$1f09jN$G=5UZ}pb1O#as^ZkRghEnh-@;jfL&j-0XZuTtQ zImk=83&izE-jVil=x1wPODk;#oed8H&lf!R10T4Rm{55MAIdq!_Nr4ZE&7+7EjvBv zHzixH$<^H-+i!R4c;-K+O=v)SVIbSBe>MQ)dOuU$Gh8RkmZ`@vj>y_UiXyKAc1EO> zZW9KhC|!Q*h`v#4YY|?r{J}VX4#xbUK>&ODy)I<}WiR_Wl-m{GeAtq$b@v_e?S2Q} zdy4?xMt1|F+bhP*V!q;Yca$5vls76JK+?GffvJg0V)LNJ{J`o#WhZlWart`M(f(3j zO}VIT7=PsM!|ySVyqbfTx=-8RdK$siI&mPT);gmUT&RI}1dy37`96`OeTlZx0+3gmZR9`Mbwx((*TaVIpZl3ScMBj-7>crz!; z;@3kHbZA&b$+s*FKUW<$p7t@KeM|_?$7+!TA=XGB}uzZ9g<|@hGPgp@V zY**Nz4X-QopFe(hk+{I&wad9@;r8TaH%-s+;N0veTcMyjuwBtY;)?&bQ40=+1f=tG zD7!v|-n`x1MoK$ie&@o6=tCwi;rm?{Xlhw^9@!saF#86h3{2QSSzN0kprx`4@TGd_ zv7+Mz{!WFeC4&6wM|WH3!{$p>A!P66Ab+0F$=3ZB+s-$`}*SG<+NMuq2PpYyJ|2oQ!nkSX~+W z{dY7fJN3!=+56D8So4N`PoO@GDP!RPl~fRKhPkI>V1j@)1YwE7izH$9Xi2n!J#+lr zVCh_M5_>Z=;c>CM$86WhlrnbQZrFKMNS4g-D@4TIZmHyh$yQsTO(H>;HKLvvk9+6~ z=;9}Cc5WwZ;wqmd&h&SpV7JK+Vs($$EK?|(;hTrl*Pa9r+65hWGO^c%kb8QElh~P^ zqdR7}deaf!@KSn<9!M+%BLzP~0u_}@7a^!Y$bxYMc$ZF%=v_1-I~XdCHIE6MranZt z&Pp$)czn@lF`;&ul<%skBYn{x4RWIXMk0)?{B3tpR9m8=L%P9OYu4XnoqPm|Ncght zVi4#`Ae8E1qzyxSAN5aIE7DY{jYMJ72K zQNCrlwi&t7<_;wJ^Cv{@ORjT#^O}TPsCNy?dWu`+(~6o{w`OEALjF;>nXsjdtEW}Q zF0&={QRR&e`lbHvVx%7B*>Dbf(&&re1qT2LQmCb|3eS=BY@@lB|8{ZCT1~nWX!n$Q z(6cYioZEqsaLUZEr!3P(wdoc22>d zA~fXjnCGPWQ>18}!Fb6;xruC=VPRdIqb8dW?yYXZ;Pa0Ii_foFy;5cVX^s11u}G3j00t9AH| z>x{}zp(1C}yP^98rBZwTPQuU7Al5+j^2FjvIl-wqMNpz^tVAxt`ejPKHT=VwP?D^= zPYmXG&C_qgzrQ_B_6us5KkGWB>Mf+U$KO3Yb1GP-w_K(zcBpe3@86W$_rMSXYPNkI zg$&HI4%Qif9lnd zc=~58Kq-GVRI7VN>*6g1iaV#3b% z-qxS@Y3ZjdKIl-R26jDRNRr#)*3HgPN$SOmrGigcot>VR>ZAp!h{&KE@4ln8-)$N1 zA&n9NPW5Dl2R*B{R$3vSZd&${l)$GJ;qrM!AcMaB4E5@!36Cf?^0kH8{n^$B*Fy_N z*WVupWX+&pV`B$+`{s3Y=CVJnDtpwJL04Nw49Qe4ilz1dVXNJ^;hW*EmV1>D(GHw^ z%Abhv2kJ+%h|i!k#AYZD1rYa|>qtUry9XpPBb>6G_q$ug)IW!Bojx-GJjJ8<-5R^=2Wu6?RquQz8?meg~p;D z58UK^BlZlnNQ7bKjJ%Ydw`6Z%Q2m62OUKO*&{=(@FDr6P%3%D6`Wy7}9LXD8Vx>NRFDSxpy6 zQhHJHQsQfE3pV*Gt2Q0w*~jp+HdcI1YNFRh$v}sN-UCw>&G2{RlJ7+^wj98`Wdttg zZ_91qXbH;`JkAdOnvw#8=y7t?%7rugg`lt5jD*#y?l!u&)-d<{U4c*Fh zwAwONcne^2*#aLR)C*OO?V1-q(72uFBHyg21r!MR+(oJJUVvolI;2AltG?a~zS$PS z@Cc}>cx4#%M2sa|+$|j|AST%88Ytm>%FGwT2zL3zz;#e$?CN#>BX0)5dY2bno$yL zOagbh8V&xi9=d^%%59i#h3Z&wrL7r|brnY414NQaaF-&2?nC+Qctqozu1Cge(q32P zO_hy>1`A)w$O{S!r~BHvF$a1>9;Bl?;!&6&sR0LjHYVHBLneq;pPN9BJQL(w*{3W- zXr5#&-OAaJLOs=3`|u}%S3#)-0iL8&8rm)8Yl;^7CcsTmc*_I7Key(yDl9Fc0+^BR z_Tv3Cdtj6H1Q9NIfbo1?qQu)~!S^aOH=<_My0#FDBGvEC9COE+PM5 zbI~u~uWr%Nkq_QGxPx}%9y}2Wb!7#S4@2(qbDzi9)I{AKHWj?mGdU{?gA#~2ks$Ly z@Z^s@-|u`qWK_piSlS;n3QNVhaAI(74)77zApTKizLUKJkDa;4+Id?}bGzaQ=Sx?Z zYn>_-PL^DCpOOkch)vdp%bWPrS|6763hk=gg2Xhpx=Z$y(j2xAfRRkjpN39)o-`kw z5Wlp0c)~aRHj49dar)BR4_%v$a~kIb$kjhexRaz$kdgY8GmpdNcXFV0il2zt|k)_@Gfkdv|(Ra)QyYM^;n3EBr_$Ync!+nNuD zmd~tku!t%)t)IL^R8G)?2iKF4x}Hq@W*@jG0%;{2z>BFz0+pfc=8m46EY7NGXRjzZQYE!wkYi4!buMYIva= zyqJG^{;+w4EKpG#=oXn&XV`cWa20^9l=ctqO!FE?H1zhvXa-2d>>l;f7)Y(R4<<#hhCiMQd~ z<+m1fxriVGi`$W-z2fm^BN5WefjqA5=N9dXa$7Cq>yc@t zjzBzx3n<#hQa>WKD5i8>Nld(MS~G8sM0Z5@N(QZL6`c}MUfF}bTNfm#k;4w3Z2dCo;cZ z5CNuV8H1KEJ(J3wh|4n)^unL7|JkO(l9$WQ3Fm=4p>SI4YT|`vK z_NUKs|Hv4?Z1}x)90WKxL>(=^#m_lSQN7gvIHX@JFeJZbhyn#7HhtQ?cE$7NdeXm3 z>JRDB%lR$7J@CH=&%!JQ{ysbhTE+P%sfx9I0ciVJESZl9j~XZMx0vsxrxW=PYW_)3 z94(NKkNXgxvmy!byT@aOb8s_CPP z^h|=X{}O$D zz`gcprej>^XTRa*4|S411mt_qIP4##`{#=~;(%faJVFKj*$)3JZ%pimd=B?Gr2dtx z(x3C8wLGKvXMO&6MijvA`R{#r{5y;L!@bmh&KIPY3HfJR|BoR25P;8zpYgNzz^y7E z{@wlmk``bFvFL6eWDN6k<7W^XXHXOhq zAqu$<{`DawU_PDn*!;);#=s&fTmUtQUK#mcAA$$wV;PiD!TFte{nP;X4PZLdaSRCm z`Vbs2AJO`g!neQiw?FKFPXaIc@ffa#!`^!_5gKMnMM zcA_H&%!ecp%J{FQ3i)X|Z#Yc;)l^x2nkszCGlG9LRnSjUmH5E%KN9}oC!(M8`M=5x z`@IYR1N{HrtgJC1m6esw-A;N1Ys2x;sRhN`h8Ci3XJ z#6+`(Fk>GEA|j%n5#E+sVd%WeCf%I=j%p3e;F1Hfj()sM;fsH~`aRzi!_M8)^GioZ zKlhT03ju1O_Se$W6;nVGZC!{C4%rdko_-5d>uA@u6FcU~qr+)aZj&$p7oUA}Y8Yo;_*u>+)bs zqD}74cLV+ZG|Jtd-0s>wySx)~{KJ6FrK-xH%))@ADBTWmVUS-k>g1t8)Z%A%6a>e& zM<*EEl5KNH)*tj|=iZ*&HE05YhkS+k>9MV8AwI9B*;UZtcyY>C+bP?lk1&ycV6W|v zSqA$xp-*x^>zisUt{DXmMRXF11_1To^BHYnfT`HL=JpA6E9#ii<-?7IaxU45Cif)A|s9R(dFO zEZAgIkvT!3C~aUBNwOf5ks7bTZVT)eZ65(f(DDKeQhXG?7ki*}woc$uDO4nT57!6UvW~R*3O^gCx}vJXp}wo zuFr>VkHs90oiD2=nqdwN^(6^xy`WI1o)fiwyK7@!rUj+~oN!U%r>V^Tp9O=FR-vGM zXsQX6uU~}Baa$p2|5a2?ViL8)%c|UKhl1RMLTNUf{i0y(S)}hGE)_JMfV}Gi!62j3 zi^z~Ly_iBdu#;A@kx|W7*mz-;BXkpsw8S>?WVG6lI@*=m4=CgNC=g$qo-UT$%Q8?? zD>MmQcKf+l_$!^cyAoX_)rg||5JZmtoG2cLT*@Y%zdj|mm8|IP*9czKw8iz)GmXA0 z?w30pF6(QwlE=q$7`>pLG1P|&%t*bQW^rp;+CLI4@5^T0WeEjM#S*M?Mz$o{GNjrv ze=;(uS~U7PxnlXVd?2k}kq!F9dS10bjkk4UCMEh{A*jhRT0dLFi|LeXvSDFVB%3mP znLBstQCHvF;miSFrI;!C44X@f?ap>f)x1f|jN&IY+FYs?RJN)TT7D8UC!>>Q$VIBc zGI^)w=Me>3u(3xp?np)MA?-9*L;V#YVX$Ubo*&TxUYND8n?lSF5Lt5vX zfoLq0&m7`Z z+h1cjH2#SL8n`mEi}gUA^~kcNv92JM)G?1`fa#k?Wc7aav~y{J?!f}X zqcLsR?XXshhx4HRH7D!{rOe8{x5Zl8gFB1zVgNiQI^^lhNFSHQ;3l7x*PJ@mz?n?DjX(kDj6k6JMy~7HsU)~eD`$To z!jC~?<+kRzZeZUu7lY2qiOcYeJs!c8?XK|S)U^CkSnEV4gWcx3DB(sHT|eQJDa+DM z>n69Lc;6*tFi@RpIEi;&S)$0|!rTLNeeCc?+Q+5j0Vw_ zu5f1jRp2gv_UbL#AlT?@!6|j96Tsl2>->SP(3lNm2i@ zcILvYU8y^tk~TUB9UDB5H-c^6YB5;4S!q)CnNp5cGFau<$`>wR%(I+Pi^t=DS^duj zZkShmbAmwb8ABx{wn}@Hx;F5Iz+G8ax)B~2x{S`m8NM$0S;9KA4}{coM}O zrdtk@OJ!}AN|l?V(_X`-IDe_Uz?aD*kD(HB%nIu*rW&l55sh%&^qdgIWX@ zGMTDyj}L}br=8ugq+qDAH+AAeFXT1_DnhihVzQ1dOotwLPnV0D?M{uW>IC_XpsB20 zEmza40ITLN5fqH$FN*=;GLAQOVy`W{R143frDxd@XV$?hc{kP_mgR(@RU;c1A@)6) ze(t&xxhAPWS(!DtNbfp<@i<2=Y1$_$_tvPsHi&ij!c2?lwLKOrOt=U$HWM~*!i-O9 z?bV{Cv}E(68W%DZxxj zLwqg5`_m2>3^SA$DdRu*E2gI>FZ@{CLrhz*a!Se1vKw_1$u2b1$i49j*;fSCWna9H zE1**E8*I`OJ|3pd7(M_r^AU0GM8&rTJ&wcYN?~a4a(zf9MaovClx4*bvGC=?y(K-F z_IDMJznlRmQ`SmK z%RXIlB&AZhH(CvwX|lxX({m1y5T4cvVOg>w{G1TOX}u`!2lENOS`FIp%T*3MJI%+O${I;0UL=f#6nA- z0*w-P-aE0?Pb>!+@m6O1#!RQOEbBP-yhQldYbKt-;($x~Y6{1<+iH+*5Fh>_-9i9+ zo^O)O{{np65s4I(c&+efEdWzkgjv3Q6_;pDtllOCEmg{RUX`KqzMZ_~vl-G0`_(Ov ziM6Gx(<5r&%v$x(Xq{8QB zX8+1DGU5oLH#MOmuPyOtg`SR@PawmS_Eh1;*5lELTc3Qh2^917kyH9nWmyg07e@oL zSwt5+@h+`dM73PQpPNr-H1t^{@4>ARZpziX?%m5S{#$9T~DTkg4)mL}h8$5n1K0P>ovX~#AsOf2X zGWc#a#JE330;OaaM8UJ3(KE3gMwe*Ooi)+Bm)EcfTbIyP>|ZpmckWVLn4B0Lb8u^f z5nvZHZ4#ixS`%y60*86e?uP>&g0av8eY77bQAqOqB zT9aK*5ov98&QN#gJZdS-&LNrr6r|2VV?BCkL(A>^P$!g?w8)oo^wT-sSnuR3SV1kR zYkA&IyCU9~YLftu$a4))WbBb`=x7Lfv7?5Jqp~}2=~Icvc60+8al^}%nYGldCm(2_ z2Dr5YG)b0wkrldx{$n@J7WGkYICcqKl(Nx?@iR~=Qn{`y@#*246 zPs>y7xpMpsBh%@f%5yO-m`BvnVbj`z#=Ba;Ee1-{KtydWOSm@1fb7m^>qW7|FJ!Tr zyP=5gXo{$Y^UxLS#2uFKk^0U_%Wbo(d3Ib_4R$bpcLhfp674A-CGwbW3ZM9_CpIaq zCx4|Hf7kSs>}<7F$#<|fXkp{>&gkM@&9YGPe1}~T$%&4wL zvEUF{@XuVj$@f74KJ8TlyTC3N3$I9k2C}ZF23O2c~gbTdq zNkHsc&egiRBp^*Iu1ZkciO!s|5fx`YpNDeA)+tkq9D^Bo4N0*$1$?zxjeYk}pw?MC zDvdB%Y3Sv&#nsWZ^UgsO!R3YLG@b^803`RIziRr#P(AXBO~$7rVllrULEqYzQ69|I zDR1B5X?`&@PRf-ZE5UhcKKAi64j-o|enpF@SfVlmWOE-95ijBBYf<>9#a1n)nf0MD zoz+&QtJC0QDNAOwO}pX=ySI>00iqN*jY9a@DPdBAbv{cXkmW>2<#X_{hr|3o zd1JmBKSyMcCUDcLl|Hke7D(63R!PNk%aY8fsBuHNrgyTCg-IjBhH@B8{S0kh>)0#v z=dlkvXR@9`mJNx%+D1Myg-@eoQwBJ?6t44IRi8TfCAsbtFuC-P<(jTOfJE$peTlMq zf?4AE?TQ+CyRD`-g=LRh)NrC|2Zw+yddk{Y67rgumzVP+R-B2JBlB6ZSj}oSRFKiL zM>`G!ri?vB-$HzReG1e~cgOY9h;_HgL-B2N&l*Kal0Cua4IFiaoQ(0A!2P-t7g_U# zo>sncUg?Vbmc2Qs4;QWB^Ip+>)o@mcRyRQbN!3cg3bRV>td&*Bs&JQ$j;EI~rrk%2 z7ilTRT)zPau2eEM8kDuQK9C_YkzpvcBb+(3n zylJ~)-R$YKT2TpbI)8qdSCQ1v_k_Dy84omHda+u>qE7AS7mmtj>0^(BSr~dJN61$q zwu%TMu-(<{5+x`NU2q=#=qsnJy+!Cs&{{$^mtGv=(|~pI$pMRwwHf%#@gL_nGI%bq zl9_HpOED+JL2AfuvC@GFK)QbuyUw z&SIM5=*FR>yWly2&T5NE-y_+{^!1>g(WMXmmg+)A)gRO9lry@C@Pus8Ax>8>S`McZ z4>zu|yQ@of7+;R!0U0Z?wuJK>v_h%qyD7XHTyX0my+z3Kcpew)UAIXTV_X70_43JdGIOE~~xj`Fw7?ka;!z128ApITB3M3_! z&TG;U??ldY4|G0VuyGhw(PdU`;j5$6Fc0qG$`F(M)<^%D{#;vMd}~{&+otIF7I;uof7ALi^X7P6td`2Q zIr9wJ=Xk(*Dt{(LS!VbcA$M&m6hMt)o!+z*EtQA(oRspNO5XFg{F%uU4xnD!vHX9{ zZHi)Df2=mjCxo{JlD>buOYz{_qy8CQAbIIZRBqy9?@B!#b!Tc76(GBu8Sv`Dhw_5o zqDO%larRkT0*WUhs9%uyz2wI_J7B-E%L1rtc~`oc>R0Jt=jQ{NYAK|Y<7=T~$6-i@ z7HWN{A2ZeokScd&`z!UY3s_*+T%@_^oo$bT;?GPwn!v^-kZI4RkgUN5p?zqtC-%Sa1_5*Usi4A7 zc%w6y9>Dn@8@w7At-xbwEL1co-~d4YG+}EHKoiDOGxSjF>wY2>1KOvL#zvT9BAWU(wHHE0X zT52j~q3TEvrHKO;3Mv2=!F|RD&`Bx8i1N>8ne8Ma?%c&x4_R3Ul!AT^eeW-PM=`w_ zfKNz=Oz#lemiiNil779`_d&p(QL0=0v(@;1LR}q^8Rb+J5#y4c&~Xu>iY*WhY0!wV zjyX80jAhxs#wC;@i`S@j49w6n{~$_!Pws=`__pH<12!C@EO!3qEBL#ZnqONE`XoL% zNgZ!1iLF<-5KO0$W0*5OKE-h(=kV1}di*V^7gskPQR&;APaLbx`H`BGaxu<>fov=% zzBwvjLW5%n%M^Xq>X69C-9c4~*~cLf`Nr1t9p z(B-Y-ze2qa4R8Py=;7~Y`iaP6ld~iLlK;318~pJHG(-*iPV;~G!!NIu{~QPVmtXwD za zgS+AXPVD{pb^vwvonZAh+Qs~VuY(X{{5!pbz&Ob8|7H^a;)Y}Nx7qJFN4l6F0Vo3b z&hP&A#-HUw|H3(7R_uRQ&94k7JZuZ2mPYtjdi|t;as2;%95HYw@!wQ)M{)Gn23%Qm_=8GL_6L(!11i9`nBM$Kt)Jfrx|^HZ=Ya|B8msdHJ>AbDx|))mqbD zWxUqeJuQeMs#U_=NoKhD{;x9sDAk4<)m-K_ojV}$Ma1~r-0dp?&h5cM1ady zTk?X>qwt&EG)Y>}rm=5MY>2vAzR-Nc9XH_%6uY+a*eG73F!3Q|-nW9KTco^CVS3$W8CqthRnwnYmS+)vC9qJdO~W}(%~jnynEyRoyxMO=t`gU?Z&<5F7xX;;A3zZ&tdq^ z#8oo1Wy!GZ9`;RK4K+!|)4e|JT>52_ERjg=#gaO%?Xr07RQuCHdgXorO2)Kg-2X)u z7V)1L`O~fe(SrC8N2c$1gz4}7xmCNU?z4#J8QRIrI?1kx4#as`(H{m0SU#%y(E^s% z&m(Fni-IPWHnau{EC4{0Gm~1b@VvL-jD=L`0R6RE>ii}FN%q@|6Z#6=UHjc;!`zQ! zsV@t|!m}2^5W8^&mOCW&)Bu3nZHUE5$Z; z_;_6Mlvg9))s>ytW~Pzt^fA0>6?S&c?Z7?zD*5=@fmv4)n`49dbes7m1cEr^nx0Pt zl@IJ_tme}6!qzGB`_(<4Pmus1r$tv6*KAn_WV6D7Vq>)SzQ2e-WT9PzZy#bWIWx2CyAVf1rOJ8z zB~pz@amZOi!()%&f=<{A|HS*TlWBdD8mB_xQx6 z6BBa76s_G-8`Io7iWu6SjILYF+$;FygN^a?a*{Rm>R|~_BSuO)HV#{Un8HY|C|UI8@3$)5n!_m6*<3oKa9}fq+X`z(WqW!xcbIoQV^YMvCs}Se2rHHne%;}e71Mfw*9b{|K37oOabAsmBE z!xDA|7^-!3bI1EcaVhp9K%tkz)h=J%cZ5?* zoLJ>`9aGW-f-kptwmxt`yVFJ;wJWo+eIqSnb86C(<24ra*(I$Q_FpzGi^`29AbgM& zqC1~}DUJN7IezXIIXmz)LA};z)_Ay=Vng<2yu{6b{n2%Fa z=e(HsNnFZi?qGYyMMKLG6r0mOhr`SU$&F*B_C8WjrN&K&5*=* zLBrd$e`p;##)2=j+OnYD+sjl`yPJGiN*hAd+7I;fjF)(vTw5gAz~fCw7Y z7W+B&#J&HRsvW{hXzp~4;bHm>&D;4bE`oLS9EnHi`eMSO?VGvt`Rb=d`qwoSGb-CC zqvHqVR=e18dbd`#g5Qf4i#D0EJDxF9j(^+T;YRKTK6({BMmp}>>XJjE7wIgQ-jOFwaJrg3Lpm|rEl_uwO)^hqVGQxZa z26_<2O)46f856(qFn0~Nr(fMT36sgwG*%%3T>6wVPVMe5!Z&gVTqRKZA4(9P>*H#@ ztH&dUYwl%j!Fs)CoG%K3fJ4H9GHm&i%C+S=U3Cb&clP&Da+y@iDW>OHS~~TI-(v!@ z%J212X-J}o3go<}=&l%+ouZRbwMM+ro0S55$Auu$U3CYCN=x#46L}HlB z8^%vj4WVAKE)?@+l{&^!xpXv%h$5@1u{|KM5sHZy4E7ctd)TJTOqrkOGZBYNuE`ux z&e&o3!?&T%^7=!8@j!qmXTZot)|H9z$J(n|zRNwD&5%F0>wFUFvH@92WTwUYn!K-= zOY~oUUC3pzvuZfT@HlKIxhO2&*&N2&yf&j*|U%Mt|%HEQSNTL{fdfpIfm z8O2AT_8z+hG}9(ASJM#XtB6-ix52Ni8G(Oxsv*7-5^)E5{XHRUBa9N;N4~zCU z)8KiIPLH_3qm~qG-$1N`&3chEDZ}bVrW@DSdEZa#GCV4LInQ%;#+h2EVK?jy^_~&S zJ@Zd>x4)$=n;_d(+9ii!acK7h9=y)%TRJFEw@LDM5uHYHPKKL>k?(L_$v)3 zoO>|rrsGe(%1YZQR8XVfUv{PbUkQDsD>x1+rzCCJK9b+mtjffxtgV(hzU<9^ z2rVczJv~-7oDZXRr{6AZB=ty)f{#pR*k~rSKV9lfrBqcl{2_Uvrkjqyr^;Cn%R?IlPr>ec4w2}|6}hxqoQ1zf6>>7 zf?xzB3y6|Yat1{h0m(_SO3p*hSwP7-=V4%AfRQxhq!I+l3`jXb79(=R=z3n#^z-nUEtd~ts=JaRbqelD5J9HDh z0lFZlKlZkp)Dv#Q2T3$LP)hg5!)RHvvsdm-lUjYU97Zpyp z<=f{BrN=(UW9?mOuGpzWb>8%5{WZxaHyuxPAG@aOkWtpS-Ormoy9Z35da~#TlyAU}t!tlk*;wW- z$WgHPG_{9$@eHW`omhacUO2uAx-vFMY{{2U#AcH=ICCkW63$Y^?tIK;<5@2(y%Q?F z)G8RftScdU++#l2zaxX*RSx0x!vE&pf10PcbzJt);`Qutz9U@lJUKY^RwhYH1fEP+ zKjLwz109oW&_2{GZA(wV1|57u`9-w!mr21qRo4Qbw-TD5b3LkjGn&V);`S5G$^y8% z{L=xuFNjDAivr0>qRE9_<9$OT9vV&xZ5>q@ZO;H6tN#K;Ro?a zCKsa>=bN)K<73m*esyJ0a6X6us_X0?Xyti(x@o$-wP9)e*Bw7d4G+&*l1^DDK;z*3 zgh?-Q^mE+`?$)CVtM`%N&7V(oM|;8?oyAQKh+k0sj!S)+@4}*|myRy977%yR3LGLX z*%0-8LbciT-0RS`1$;}IEpIsDWSctG1lno2_G;R_EdA_()I_l7wdzFU{vPcL>q*uw zE_GU0Vtf@Z&1}(A^(CJK+eYbr*@%@ms^u#zk)hu93q}0qgK8mS_l>T{#8zk{gzx9? zpO+V_lc(x^YSB%&-=a`eJy)P(7|^59mxea<2p)9s8EQb~DS}nGd!Js+CgSk45a3u^ z=CQ{gZ8Qj^ld@8b?n6r2n7y`>Uc4r)|Eh+AFSEuBHnZs5=mL&)e6<-tk*(1nA4Tri zziJaUK-H>ouL$v#tqiU6{p$MZ0C~IS5u@(H?lvB1;>==^cjOnnW62h{WV$_lz5X@$ zo@L=&G6gh2eN#pGC)JHhUj~hKUx-k=E!>+4_`M%K0Iq)3UIiVFb&-Y83D3n;x@$Xy zbFykf4hyDKd{)~J5PCBKUDI5=Z7Fv>?IBY+ahgpuyn>P&QNSZTL}H`TYopt*g$tgg7iO{8U!s$ZRGrfL z{5FPeF=OCk-E=#LT8x3RW3O8V!BNYAY=A`4Nza`Wd9#zn)_4z|dxy`dDioWU6F%=h z0Up$?Z3v{>Kx>55RC~unxyXm8=Pg;#kAL%ag*BrqxIfi4TJzgzr`1qa3N94AESa2I zC^70G2DNlQ@6c8ww$q5rozh-n&FL?;Fhdq`tOz~f7c|q>->umORPQ;-VRKYT3* znV3GF9C-!*zA!s|-P%Ell^7qxTA}GqtCE)56M?lzQNJw#}^N0@Fddt(I`1qR-CG9Y^o+AA#K(RJk76317nY zPYM`LsfX(_JRRGXF7&7DpyR54F;h|aL*6!MZ5_-eS2XrI*|)BT5rZ<;hx%B>0?1jy zW%#Gss=g0R!`g!(S2j&|&*zb2<)X^BIo8?VwkY*Ye?v|)>bjGL58jm}>aa}JO42`+XYk6Tj*keVPV%`e>~P<&(AIEAZ-9Z4PhFBaY0@MLkQr{2K(L z*@*@93u;a-W>fvH==g9E{NUp6xarS6`sU_DZ$(3ENs!S-q<;iNG26{l zotq&glIFgkBy|={uTPkI54Ly4Fvaa1CsQ)bc;2&mv=Y^QRn8M~BRJD=e30Mj;`II!(R@Jnn&&t!EP5b@GcBvV>M%gA7QZB~j_^a{;m9T?e zN<$A}Gway!sR)<%yquXMGk90|YwyvDk(Gf~wx-bCG6rv&iOJnN8kA&N6Qr8TS!z!^ zxGg4QxsHxf2M;zL$PraOy;aJ?Z?64m1~%9L3*`#ea(~HSrKVxpqO?2<+4hI{5rd%T z<3BjPs{a&oU>g_ZDJh9ZbBoc8EyP~1;{LPlrBVk^piUuDy%#%Qn8gkOyJC2%bR5$Uh5vEr7fX%C+Je zTudUA`M#~T^VYt+s?pIVxGv*EoqeXE?u4Nw#FxVzP5z^@+b5-T-Ivy>~KZYwBk-_&Z@iIz$(3U zyc26*OpN-fxYjeUgPmEg6)MSd< zZ1|pdU8bKI@Id*-Y+fwR0V=PL#R<9NgA9#L=f4jGi!mKe-GRAI)EAD8#3|*4`f-Jy zAP_}cA{P0!#x?P5#Rp`d!$r++vXy9}!A#?H!MgcSy<=|O`~u)*M7^71qiJdY?CR&U zM@~`?slRCEBy(llP6}6k}a+POVA;8kCNEmFtVSy^kom zw?aN>{V98^J(vcXk<6GAt_c8T)tm*$RNu@y?J)*cSDgt`@(W#(NVrhxGXgrpn#RBI9(TynC^VG}=5IZX$zejYu!u7_bAuzI-pK~Mi zlc4e?{V}$fEt-ag?arwNL`h9oA|y|HxZz1^$yHV0v;|$cQk|}Jl=GtYfn&(2xB}lq z!6J2V|Ko4b7b)O}`W|t+J5Q79lnrIr%V%D;?VkN=Lw9%=YMTw3=Y3m+I8LP#RQ8ow zqyz)SHQ~f_E^XbQHl}ZGH#-m2Ji|2#>%ES-5mPVO4x!){zk7CS!FR$?FI-u|z4Wq0 z{neMmYvxFQyc`}(xO0;xhDjFRR78daD8|1eKFQ7mE)f3r*rJK*${GpAPTALdkKBrX z_#d3yg8p)H98&;tg}}H8i53lulbZSR+%}Wf&#%#VD_mg)Jys4AZ&Rs67u#qa+LsW6 zKI*6TA1H7!0Gm>rDE{~Fy>DmzCC%ltik9ul7a=OaBX8GkvmXxb#(JwGl~08qs%$u> zfi5pc-C~*r2d8Vt=DwJXZ%8*+8Bh*~f7?IS1IzaUTGlaCyf1IIx8FMH zLXBTHE?c2o7Hi5mx&aNpJsA6!>gk8baETk$YrVu8tw6v#_u z^vLuze-^?Y+Eu>P!qve$VTqH?3B#4}G`yESo zsG2!%c!a)~7<7@B%)i~mwcxbr4Po8(=SX;ttyQPGW2=BRkZf1YZVHb6IUBo23Lc$i zG@QTXnB?ATN21g`q!&smyV<_pP9qppmby^u~{IDeF!-KKph{zJZ(f(yZJ3u|wy`GsskmilI?ZS96q7OH6IWyU9C6V@`_KTUSy7!%)oG z5mI79-P`N61nOh4&Mi>^w7SPvFY1!F#0D^4owIb-*z*I-OQ|08;%ZR@7>R>J-VsZx%p@b>Yc~(;9W8=Xd?M| zl3tr#{7rg3l#`AsR`6A+VoTpD7nkx)4U zYE6>t8Dv75KL&lAg0A?lFII>>)y_|sx;B@$=ZsQcT(!TcSo0d3^Zk`)J*_0oT6gdD zvcYK%9uz!mw^_(cMm38ojI*qK)jme_fL-EazOw%(trcfkBnjfX2w(0F?19KTE7{S_ z#ogw`#c~!}m2XMZ_&4^HLU_+s9BWI+S3VCz@j%g`Zk|!u2b%+!lIq-I(%4?(G0O~x zYY<2p$P_>y-IdYJ>TpP9-t*_DgHM5is-A8u(j9sQ6dk>vXKH&QaGLn=FzA4pE<0EG zJg(5OjfI1sGpEzC(%+vxWySFDLrOl|s+`uoM6Qtz(gW5Y#UtDJAhX~l_+i|s{VZ&X zBi8?Sn9E=0GwVlhqW!uB)TrfV4s(aE11F8L!Np#%%qybh1kktsRL|hfU3){O8r+&%$kG^BvtlC3yaLzqX z&NHR@auG@6PTq^pRyb#^M1V%y=6S(_f$#n~@BnaC=2ylA`IX~&*+rp7cwubQ!h=me z?yz&oe)J~S?v*Cg!ZY8NXkaLQR4}Rsari?cK-b|hMY+P(riO^Zghcb=Lz;@J{CL5s4S18E?oXYXjC|og z3I<5+9&q#b-HSi_#$RC^!?h|;@K+el*>2@M;B2?kI|a3fvNY``jAm6qy}!=`(CnXUkD{9WJWjkQzh)bX!PGy@)+&6EUVeMpgoh9(()`ZJ-gvWcE0gS^&V#0D!5A zB`I>8^XYkjf9A*c6L2K%j%nWk5*v`gUNJ`CKJ?cQI1~YREkMezv8C)Igy{ujfEd6* ziZQAHn88j2fao1`p9lQ5hrh;?VWgZzii>67$F%I}n~D8XTgC9fj%l=UXW|6|j+DCr=#kUa zd8dEA11O0IFlhlutREjoO8--HpYa#Km*fPKjj^7-#%-V0^;TBW4^-v=hk#{!%W+N^Cfu z?+PG#Rgt48b!>eS#~4V*VheE3`X3Ia9|2#o?(gFU@XG(Jb1(+;_TZo2fuDf(82~zs z1ZQkGFm~g|YB?G9*ba;t#C#yY9-T>!={)d79x9DJUeOiA?Q04WJba46!gQaLal(!zw}7IiR9dKhXx%3#~3Pa5Eb z)^2pHUaCc!h_3@ z3eH#vFji>4v#Bl&olx*^@IOFdCEn7r;5e>H4xn^A2V(XJo6~z3IITD~ zMF7wk;{;f-mkr24o#F8{}dVt@Bt$$E}6{su614c|;{JFwm2g#--x?4xxy zrd`|baPR@pXvmLV$lngQVDXReVAQ~*CLWcfG<6wlHPf(v|@8PjRExHJy5~fB>B?-`xtP%PK*QP zG{HzIP%jgAl}v&0pb!;mY^|xnH29KrxEqIUn-_!tFEm0HJBIB=#L>W{1=Oc6S+InR zX+LopG`}-re)%k;-rW~o&~YqwrWQL(NXx;^nRKLJN8Zuz;_#i4r#3Uml*uS7ZUJVb zC)FnFatL>&a#bEE=Vs*)$clRnc_q1$XmA*5+`@hJ43&sS5OaIW=@$BYR43M+zeyC_ zWPkX}O$4#r=Q*UeTEDk7-?OP_fkoalJwS&jXWtE+P0$iB6c^l0@B$w2kHWZ{U?=oC3XP{D;H zZ7k*W@fpLo_lekE+)WS20Z7%kA!CoD zLR0{!lTRZ;anw2$qix;)@-ZNQQV+vyG8`ZC1MnwX|MD?J7#ZXG7*gQV9=1bdxITsj zAe|l8$M}!}L51tj9L|S0mRkpGm-B>XINm@Qs{a%xG17Ly*aYYm(Agdvl1d8LMD_jH1#Ina5(1d7 zGoU8J@iF|ErB5XVF2VirP(D5p0HufRFSuS|bNUJJ*)zU4#9yYw$QU<^-~gm_I8(@l zn?+~x!>?Av*;vgnHh$I68Yj-N z#_;2$@;nHKbt-`M@wX&PIEZM~N?_?6L+o+D#lJB92qO|73F1V(?3j4&DPtFw5&QT! z1I)X&33K9P5nxPEBk->vjRp|icGO4XL~Ksq&;tS4B^=_f@dGT)l;Fr%A0wp}O_T4~ zV-<@5(yRX!r0HRD*MOLgNNmiU6iEzXq1c;&f3u`Y+ovjBZ;{`oRev9Lv!+`kWCeCL5U>Zo`KeXY<*aMUC zlA5GF#r7uR)d1=9|LSGz0zl@YNadL&uvz!*z$6rtkt8@o?qHa->0ZLAAgKBS2Eg;c zo&Z~|!9oB(l__@wae|f&OvX!8CQgGrYi13wbOqX}$Jp!XgXxOt`jxv6Cqo050HlUI zGb6%|7wdokxLs%=N(pCkvfcX^ zt+Xyd0H@C1=^;42ZxLAfR7|{vwRFEQ#TS|+(?A>t%?nT}d<*+CK0cQ)GR9GmUy{I| z^iv&Mas1vquw%u^e!YS{dO84@P>(qlCU+^u(UkcLmsS3ao86aIBabW5u@zUOdM3S4}Oz zr`WGT1#qN91aP{U2$I6_ciq6!3;eqx^M8ZU{~L_{ZM6T}f>AK(h1I@?MLMN=*YP4` z!z75G8v3>FTGEEpI`noOKLgJ#+$uO5mS`o|`9=)kXR{WDO(G?o+=Ty|kY zViTVkoPQljHE0#2b6ECqI9;;3LkwT{wp>Ji8HTDB-51ue4YCRvohx~5bskf_b(hlh z+~D)If2bON`CzkDS%sbPP_ek5b2~Q5QPRX7@v_34k+DfZPQrW@sTi_RJ)lqPI02i| z`$7CKukF$R>}$})U%%WWZ-x(K$%>LU0GH;DZf9e8)yoB->EQ5nAxK3=s)l*^N1>x* zraB9stIqoxigI^{?LQ6x4naO<>z^UM1%GV>TV(5po1{EUXNiRYVVc&<@GG4lxV_@M zw(~Iw;F!FEmmXj_rjE{mV&^jSLZy>UT~g+Ce5=eY|CRhJLbfTrb{lv86*y#S0qdjl zB^4fu5Jj2bc`IAbK9LmeRiZ`f43v&lJ_pb3sl34ZM@$~N)4@d6-O84wJ6TFmI*P~Q zT@j`28Xc)CZtsAFmQ6nXXLsSpc)iOc34(Wk;J6ygOEwiZUNCI8eeVfvCJht!cZ+F>53Xtyc zHXiN}dKskFAv=rZ$5rKxDs;w2eA>{^LWR3>D#y}g%xNcJcYa!F3>6TC0BEV5A@2lF{( zHGIbVs2%HVge4giO(6vf%P^EXS57%Al@!{8uJrb3mKOLXzb{uDBhno-d86-Wz3{cQ zPlJ$XsrTn>2fw4#kn9=$HS@yA_#zbY%O-JOS;*+sgdt}V*}u^?oo%Ph3?g~l3M-o;qmp@zsA9`l@g_21daPl7hYY^1 zG8*S0!)~;kl4B(^?kGNW-;>`}N@ymeo@ zsH{=rs>EWxc14wQiKr3q7cT|`*J(wSdpVM06aEP5^+1E{SXAwKzcqt*LIHgnVV;iW z3Xk$^iWY2Lm&#FJ;jVnkSdU2Y+|9eOzeW;d&VE*T2_&${igQ&|!y$C(ABKEt$)y3@ zQC=j$KWcaj=H)AFr5g|JI!D&qD+WDi5nZt%B`4Okmmbp>$`2D8^~!ZR7Oy8W%0HuZ z*`m50Ugu&*M*g>zs8)){M^BxV88@CnIlJS$ZDc#y$)BPXf*U4yU$-Bc2D<_M{;ZlH zQo%Y$;kizX45o+HP`Zo|jlc=3vGCDMK1d4ji8?P*w&6pV{=(t27A6Vx>2n=y^J)AH=tMbhrN=+leq-)v&Y3lgGW!)bXYh zSlX<)PankWJQdfLGl@~GJGB}81m7wlo6D!D*{2KC1G&qy6=0KP-*CuH-fHJ^y_7MHBFnRM zeJ${AK_GQn*2giqafp$A(Q6*9pBJ2**%tKdqF?;iAt4-XMtb+&c$ z+I90(u}%qdm>LwzpKoOXvWL@;U$GC&s*0LgGP=#rEKK6ech2+(1H@1-Ae*qC$kV;A z;eaEXDeN=(+mV5Vd{ZM#810U%+ur(lU*fs`D}g8P&1%^lvF7@6moJwc8_2<_O7FhM zB*z<8%FGU#wjijKKdq;B_1G5C?8U}=SRBLSYe5#WTWnt`uiOj!a*sMT+pt!R40;i7 zzjuc4Y0Ht8!#vr#t7}!O*PJ0({a{PI4`Dt5`}7W;M2QEYO&gUyCQ7_kjZe-y8b)J8 ziWIPekrp7kl+j_Af@YePT0tt@yYn1qS;_P!W07*OTxbp6h-X#70yG)GXj4CxNgR;i zJskh(5=L2~{B4gZm8^2Xvx2Vs*|hV94~eLVUP^x#H(kChK}G*lDgiTh5ti^*N4D4< z_BI}X4}-f;A1j=nY}DOx((5hRL8cXW%U+VB&{Ck~>D;tj(N{3v+xX1)=#-88)cX># z^^E;|<(j7kkP=O$a?<@RN|=*xe>Vd@%12DDx1Bl*|4BDzje}GW5;0hQKAB6;%kt=i zSahDM=tCVc`tf74KstjpKgMI?7m~Bw7cb6+lBXzk=>PO~1F=xEAO+i%#BEU>`f}D5 zdEJdxkGxlHJQefs!trJLc6qj2dv%e>qGAGSZjY1Z$bEu3jff!Bp8q{UC-5V zaI`tPduCm`CA)odAdwKkT;r+~1PEKBRvVG@S*St<-l{C`7QDA6luHR>$tBwT^!r%9HAnr>ABquMNy%|(X`xXJoPdU3Y^1lj zsWBL=iZ^BL9pF%_IgxRv03GJyli|dOM|a zjHE6wIS@6xbcPjFi};Pk!HFd=RcI`o*3YWjVxM@{={bE`*Abr+_T+^cJPny0<(|=G zE5C`qJ?5!awvI${At@-1PTZ(U;g?23bs%VkN=D1d-D$?@VpFzMu@^sE)Hmil8ujkB zwJ?o{4sKaw(OL|d&K0%PXiF&$y0smWY}%Oo9g#%0*Z?%3wvu?U z+90_iG|K*>khFkS)_|vfLl|+g=)6fMsqn+NHkcI_MAAS5*+An9X>>ThGSB?=v_wm| zcSvlpmOqTmNLC0ah&@ilK4Pyb#`F(DTQHpvg>2Npi#NU#b?)od4+NJ$Q2DVVBY>TJq9;t&(E(iPl)cUOjK|t_z{(J7`0Rc1eHE z;;WXPrFUaN9w9mmJ?_f%cP)FEN`LHD17289NN)TV`~okF4!#c;Zvza*z*IWwa?JAX zS+=n=+g=FtGEe+iHhN)IVz9MuOHc~D^)*Dxrcq9-ld-HVnSL8#*<9oq2|K71WU z=(e-ctO6j+;?hY;uYf?46o@Quq}aeW{i1AxbtEZkqBf|<%8b^$xiD2}X6`H*S?1C{ zBp!vZ92%4l_$2m~X=Ma0_-;Q`Q!rHhq`v{*_7{~W6+1{8Qhr*tKgI zukW@xC5osJ+N;gFvRhlT;#PK8zfi}{U&H$CbU1E`97L&XpChp+ygFNfCXd_Et{mXk1~Cv&Dd3ZBCJ` zkmTMCwj0SZ*TdH&;4`}R_u220Xjf#Klo+$5XH4A9n2 zXQLvAiO+)++qhQ1)(^*g3W2LW+dFimKs18TFkf0axC8&f>KxWvGp}TBbS^A(7!G;So!P0@+Kmn#v!HlLqVF4D<{9kPUGCl5k;E0G&3}h7>0~yj^Pe2=R+aU| z`75AdL3IhXn#<-VU(QO!WQLR$WiNvUE}`hqg}j?JnKoyh(k5yWauO$~d|6M)Nu|y$ z^V~XF!K%$vC(kr^`P~G^4rWxbz6zVowuVbkP0cy)anHQjaVe|SiSyft=PMRxOGmsM zjcG?Su~IfnNBfumPB|=fZ1zWZFKCTSDbyk}PqORHU8=5mU!z)_ru`e5#8<3 zjF}9yO=cu-mbtq{;^^dvd>XJRv{yhS7&fEb#X0tA5SLRFVNq8L#|u9?6YHIw%1DZm z+SGPwh?91CdFRrtjXB**JP0tK3moRjfkK`wFx%SE)W$uC-ngIjUTxS9BGH+yTz)F* zc}B%^jM$OcYkqIk%nJN#jS~OK~9g9kFAqqy^5WKTrm_7Mv>`^cO&MHSsPfMxA zu5y98FprKc$jUp781(2@HC9I(-&LkaXUV*7eWs;nlf*_Qi%jU_og)Vu>yJB1P;&D= z`j-PVFx?HL<6d*$v}pg(evzP2;dsemepYXgb?@AU6K(G|0r z7I(iW-Ai|iooLA3rl0>KkF(O$un{VQ)Fd_(c&b#f!sZ zL78XfI}U}Dlw|6hv8-;FBibxX&!ZQ0)#hZaUBS7c8ET(u3O_gZeK^xH-8p>&uL=Hs zB?IfNzb4(w^6Ns-tMu5X#av~tV_)p zE+~!G9vb*?0qtlqOFkUv%@2ZTqz&hP)<3kGdX#)pOBd29GwC5ip~69WS-yzebnmWX z$3$uPbh~c4%hB%&wBEx=xV{&ErieatsdvBi9J-=-l*Fk)cf}zk^Wd<4@T*>PU((aF zb#7bx!m9^X13$b%EGw^AjLU|IC4$#)AbRJ@_y29Duen zOWGQZgsi;0j~5fB+ohkd|9R(#`5~BH7Ste?Ni{ZG;pJXnXNgpanVXVV5&NKK*vEPB zj*p4#`~5M5)sSVQ7<_Seg4b6yrv0^5Qh)bWa3nK+xSeQnb~=Z*8EGhw@*K;isrlnJ zZ`;bVPja@>Vk63d4yq1@iTFjge( z1~dq^2H7EjP&;X_C$VuOr9_j!Egor=4k;o48mRr0p7zHo!c{3w&+G$2LluOyT*^%5 zK_9nKCXK%5$OMy!1j+|50Kb8}s!-F+`~I5%;&8`qwSV^s+k2`k!tZc_jy;X|pL!X%w1Rm;ZhGlPY%hwB`C8u;zh4q)Qlwp8EBh49)r z#A(?m1a5$d>bDBBXTwL{9ai*4qAa-k`&tZ#ud+qdmjZ?=!z? zIx_)1F{&=O7`%%P_M(#yT6-S%-@JHMOWe-!YxU^Pb`1G()cS~Ay!BI=S#+wtUU0^gRjhdMx`W&Bn zNsIGc@DL5sJ3fWUu5UGYG(Xm-)!3tY^l5$LBQMKZHOPGN?O=T}Xr%Jlhjsxs@hQs6 zdK=D~t4F`F0OFla=3|Ao_Q0vxSI4~YLUUQ2Bh*i}8;Hh4?(pd-+2q7m(VI{nE@ced zp!idcZmPd5L*N5+a%yb!X41~r?GvjsG&>{Rvw0`OMs1oiB4QpVATMjxfy%D)&`Zx~XK&O^#^Df#i;5|cF z%vmwq4bY#_SM52MFQLlUCmXZYl|cnJe<60R`T@F_JfC43t8|jvb+ppe1wjoV?tLx5 zXWZ`5a#NRWKoU?6zTB7lh$?I+0V2L`4Ot$CaT2PM+Hqb*+p_7G{aM64%tuzWO$uk` zcSRIfq$jSf#$6j)2d7MIRa~P~#PF8B zEM(7*VO#RUHngBa@tm{obo-_ANNDFj);0M!G6BvR!?AXx0o1#sCxixC-TOUhtY^`O6>%b;>JCsJzwDKyBbL7tN7TZPmqi zc>1RlW9_RVoy`3vT(s<*zy>TtNXGU2QqB86aac9^u)KVs&&4 zF5fKLSciU)FCu>T4HbomDR*=a_A2pyR`_?Cs6jeYr4QUrvP$N5i4tWIwB0QzZ+tF@ z?)SkHDo|4_4n=WYr>JBcu}=BV?DnJjMJ6wE&{$-C!9vS!Fhqw+Q%ui49vUkg#PZ

0+HVdX4FT(ls#zF&-eVpx(tx$zFZ|})% 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�g9CB`&TAX{#S9Ue;0x78oo zpd(D~0dc8F5UWDpH=anc?r?+XC(P0<-$Cl*a>uno$hKP$P zf(Ov)@jrAbv6Bvf+yMuPc2)37rWKHtSwcda%COSiK9lmW1X<~doHkT?Q1nAxay0&y zcIZp5FiH&J*VyTVMDK&;4Pr3aL(r6@O#q9gK7l5FeIiVICb zoEt+Ny2$hpVB5@1MW*Pe0T5VL^W)d~YTEMfS>BdK8PWui&Re<9oe}nyZT;eZ5qH&1 z5Z*}|_=|-Gb&VI3>LHgJN#ec%6?9IJ@Zn)lJZHAgvKl2h8k;50{KKMo)DGxz<$yh9 zZ9FJGytx9pGFh-POUr-pZvSc4-$b|O=G^LZkR*kMNrm&pNvNnEKD{A%hZR`fUlcqN zA%^27FWFEc**u&x$eCfb#;8v5uIPxgLiN%AuUL)4e)`jGi^CexU*$u(F+S7>&=CD^ zwjHd@Y$5~?WziauLq(et{?@BFV^uMu7MkZQuBn?6<8G|F?+e&zx#K z9NNhA9AO3f$dB$D@zf_kE91_J7vjy@5lO>+n&@J{GdJ3!uvTq}1U}%0r(aLVaKJ;q zz#fXC!jdfniZU=<|6|z~Y5V5jg-9byI)Q>9^; zic3uy?yU^P)JM!ON`dcy+5g7WYVNUEg@N=y-Fk(&;Ul96bD9u_kN?h$k5U}C(*k&0 zK-md&U0jS3MfkBb!-()0lmGUbwLKEW`Bc-zfJP3t2W>5G7tx>XL%R0=|1JyI(z3Xk zA^6)o5uIR649FPOv9Nsd+z%2ARZYZw&{x^S9F{^> z9_M%+WEg?(+&506&1hU%VcVmRF8biyXy&w>g2AC87&WvQjGpnI z7T~A?`k4Wbn;c)mS!Il2DH`RkTK;*z3coO9T2f8N7IA6Z%;UieVpS!uE+*wA0rXBK zg~Nqfvv$*cjO(1@hX~cO4u@ZY2ys^S2&F z%t6A`T$M}g2fU?IBaHHf2dp19W#FGm{XN_7r;i;BL!st@Bh>ru*JBzq3;uc?wo3pw z{xn!tPTSYX7fHaA***Lluh4agF&HSokuse0RgaewkOE_hoP#P{V%BfBu$O~A z^3GDf8;=rU3F`L}+jrdri49`Gn(>gP-Y>FcJJ|RBm71G<9R<=(uf4`j>)==TK1^0v zK&sS{)apwei}LJfz}KAMr0qv#M=EV5Az$6R!$QiIj{!VChj9k(reJ&#AWE<*ril?J zTw(b;kuj>HtVgkw6u56$gLpLAm1S{8Xd)q7WNq1ED1y~qB~kmab7XMWM1MhLMvOL| z97#(=z+KApzqJP*)oAO|BtKF-u`RC)*-Vum;KnQMyd(<@9EA%q>_ zjSn1Cezv7EZdf3xy@`FJDPTQ8#Am2kYa!JP$Ayt*^{Z1taeHtmr38 zCwCr!Z-Wct@0uNH9tcHw>j3rD2}xgdC7E84S}mJth0GU*;Gb(}q#hrVXsbFZBm{`x zdD#Ie_-GUh2sJ36vVfYOy=#ekf^-8q<^IK=Nii6d!JV_|T7W7v>cTI<=?m#6NvObH z`>^`}yxZEF`TDo8s_Zc>!5GP>SLks~&OygAgnVSn;t=WQQd7UQ{d0QGKX_m0Hn_QQ zV>tin-~w+*{VTI7F`OdeU-l~-Z3BP+kRcN9*=@d=B-ac4j}=Mx==T5#j#TI$X<{@` zek0+N%EY&pLKh0#Zbv%!wkU4`=t5I_<0>ii0@d>4exS)NXd>u~Pra+mD*J$5;~Ddh zN2bC6S8*_){e`S+9@lzHM z>Msvb%3M$J`Qc7)oo;v`)N}%(f8fBBc11KFp|AiDI zcaQ^P=_jW3PP;iN?#Q}-a5d#MIaso%Wmi8wtW&UFeY!OW44W&$Zzn_JRb^7&0F*W_ zdUKnR@&+TKm^G+8>a6CY)9+Rtvg&%+_2X7YiQ{a<9@ zSCPX8$V@(HKS>6DaYA_wHc~eXBG=X4VZ;KHN$-8(pg*hgF^3kTb&PvCZ zr6xFg(D3K6sTBdqC;iJJD2qjWkMcf+YF@u{s*ZneuJ}tIqv5|$Ld{GN0pFltc}9kM zrk70hXW)&DXWkVF)WX!T)J~-w_ba4897MjrlA7oVL}1_??d;nlbi)* z)+)5B(U8n!ygMT%g>iwLg%ZZ&492623s?e3*1$C8Aw_#vF}(UcG~F#R_5GOmx@cK9 z;&X$i;HBFG{lp+SoChpZzbY|R!WfPLD=c!sofm~Dm0~$x1dm3(#Sxvczjp2I7Cl}5 zISU14S~*ctI9eD+XoQ=fU<^YozAAZe2XG)tw9)aJne#hu%ELiqj7*yKv-y)J4ALiD zQhgI3_l7^wcWwq{N@qkZdxA))n(@{G zW(et4A+NKI7Hm)L_qzJUQzfD4GACX{GsvjTHgvm(w0euAU-(72C^_up ze;@H@N@S!=5CdE5I?oXVIf3OgJL+(q6mZZWRNI%^?!u?@vt+KdO3e9;jZ|+OsZby_?$V9ooCPyRGTZre#cbc`4~v@+UaWex0Xc zQ}zJH-~K&;gF+z7bF~;q2Ht@HT3(8U%8UJKErq?@P-TZ-oe}^gI3?1OjS}|Ra@7W%CO+AAe#dPmN~yZAz)Ux{;1;g9(QT5tsD<)bSfnX)sbyFc8GGZqYxAdj!{ z+R#;5)HxKTOrMUGi+cZx1TlnEDEgB`c(XFBqG|+&fIQ&K>->Sl3_zU-L>^!*d;aBb zEeSQ?`ddpXNqHOOX$a%#Q9}OpPr7I8kj)V)(+0xjb9bJ52Z`X?{lNDx#}|8-wB3t%0m^{j#{oB1MyQ@8`d8x);k6Z*QvK z(bzP2uOEkyise(BuTsHwMJ$i)d_^4m7QDQKd0=1d%?!@LI*Rfp!9fTNLv59f8_6C3 z2rd59fSGFsX1!;_`Xi-&_go_V@}NvBA$k#_SuS|II5kpo%28eGvwBg>+bz{oZ}5gQ z;8Uh@hzu_(`Q*f^aCDyaWqWP@(YpV+5ZHv>5EH=ihyJZgGVyIiN&YX(4-yOU=KmG) zp}m{GA)f&eOrLzg`fMI2B5<2^^j?K)(Cfr&`ey5O`R>dkPn*|vJ6Cd<$sGQ3A4S&I z7jY%~YP0ck(#qR0#SAN7pA+OgLnSNwt;y4aLE1Ziofi1>{fa_%w$AD8J972sb0@dA zrldIXETJ@>r#Rs9QW$2L{~x;EGA!$;*&dcqKsuxa1Ox#I>F&6Z2I&TsZs}H}8|f4f zq(d5{Ly&IiknV1H_s#8d{^vQ@^?m~`KK%CHvuD<faTy*y@kGsh*L@r zY*?+MuLB|+e7{H3pQArPiME`sE=o{4){uThf)h#2B4C82)%JuZy-&i)l!Wxckyfj+ z7-f&9C`!9YU^tvyc;Gv&Qluy3RYbe4lxm`sk+dNNN2uv1pDMY?bX`Bcr+JgLy9sYO zN#9$*=MXDtrTFKYitG0Fs$uE4bA35vLl1iaV20O7jUb8+sC?YlnZ@8csQ^jdki^S<9> z8t_hdF}sK&B!lfni+>9vA|g?lb&0>DZRI!rW0hvVWO}#c7`t1X>H8*9JrrSD#gu~R zSYVKWk!l`u1s1TjDjhq)Om`Mgih$PNA8CL&>Zu^!Y@j79f>aVBYz%K+;1<@#N(xNw zA?)K&A2`sXOhN-$(Ju#G8RR$YVN52e5^BlQwg%Jq-{exe{x~A9b717fThMhz>EF<- z>}=g(&wVf4s|{pcQ=&lUgo81qD89cUS!CA<&1nCy%Hh~zz&x}=1M1AT zPuLk6_N5g-tuk>8&BpSD!&cWVEOLz=1>(d!PIN_4CEUn!`h{uk?3=4|)`h+hF-<)+m`N z%vSva->3Io6_92gSeDU$VQo9n33_neZeOzS-5+lp02Gb5_lzi1CUMV*W@y2`3UV*y zFWbZ=7<;tv0I0a(PBh%4m*Bohq!xI4QePrcF>XX0ayn9`My~%kKRM&>;Kor{(;M19 zE>@WifpE?6;!7aqcPAnkYWJ2XUs^C$;ZNS^iJv(blwrJEI)NlItrm zVMxYvG+L7vij3Ftxtzgcy9RfNqs-A$ck(p|IJTs)EnFT==Ch*&F;4!CCExsJWlq$j zd>9$R{!vwWY-*m>CMXo~*I{XMmAsg@dk2m-V5yO6sJwsd`5QCM`1oi#i484;jlYYs z+dA=oD;T#0gFJBq?W|o?0a^z7kWd;xcZ?%0FVbD>@ytd#3Sa@z?d_1N;p31|1f6(iEQsoD6!TTKR@)$ zwBuoTN~F^DLfaYBA|gyG=8KTJrOMhWuHWU^&(Aeszk9Irb~ah%3x!vMn$VxW0ufk_ zPhQL{h&H^_Qq0cUmtBh(B5bztZduSuSx{o;R-=LE)S_nW1M`}u zh6h|clfIw&Q+=~e%Epk8f@2pG!WUDcm32kWbaY(ue-mx?2}~iuj9AdT`(JlIIJm~ zh{|S~c}5gt9~@Q8_q*~u&ka`I%DNtlvF}^JA6!I}-(faAorPDQNZK#l`5d?pw?4mP zSW`FJu*g^IHr>T-cgd1QbdbhcobdwF(cJydihH5za4YxYdJe*34&92!-Q52_X%IE^ zvaUk_t^qlB5@Ij){W=p-;zuCOalpY@N~c@=#=^=`0xX7oZdA=Qgx~QJqq7d3q$hWt zzf?#k+_UI$x+9mtd zBk(Cfj-28!?rJc9qlnw_6w{;1iAIa7_6gM`zh|3O|D`$n$LpkpA-EX3+GCvCN?XF+ zomY-8M!X8x9&t0cf&+F)#{>Yi$nd}|eYqec|*0VfQiXg%O=Wngp z=-D@2UM)+LM8Oxh*mL9;pLx#N7~$r-7$tQv$@%XVyz|A+#jbHIg-Y>l!has#37Pai zU*1A@h>CM0ZMl^jDv@DN;y~*fy$f&tF?4&Ph4aErE$b;PW!33v?J);zr_z21X!4sGEXz@mN{T5oNUshe7_4HtbTS7JX6 z_q7d+kQdF2FPwtowp7A}bXHia^4+sj+79E(1m+%|C-HbjQ(c%0v>!9;?hxL+dpCK$ zWlv2y|E;3DK%W`0kGQJi)_B@(b%svX^H}VQ&db)O_)t}?LG;}V?qHe6`)%ROLsgmt zmXjwOIX6da=k8q15qyp9tMh7$^UG?@-~5lN%-r4Ny+h_?f+ zI8sfOas_t{ccS!~USU{HE8qT@mK5}t;WLT76Zn321Yvq9F?GOTwL>q+ICUZ%vcIcZ zRiM&kZblZA5N=Lkbz$|y$ooQv2X2%lBhmhDaQI|zaUq?L#cRC@I5WoJp`)9s2s`I? z2)hko`0)`Pcf>MO@lso*kdGCTNAjS8E`X zn2T^lA*3O-oinT?G_iD`cF9|FWK(&riSn|H)Pe?8J% z5y~9ybklN8RVM7#6?G;roh}AG2FP|rsnFUn30&0OeBap|4u2`$pID^2t3KmQtuxwT4u@m_hiR@73%Y0!F47{?i-XsQmm9%nquiBZAD{qn2skK%K? zwc$e*(H~7-j|9_h3E51wc-lg@-!xqOAq*wsepu}{8|2DBvv{~7<8tczXT?~2du={K zx%b<8<3Q$LgiMl)O`Ze)cg>$pWi6m9$8F}24RYlxezq%UOoIw zU{C*!Vx(AJ7H?H)Bz#0sYbhw})wE)Yb_S7(6kFtL8D<9mFjEfN-XxxRek5j0{T1qH zme1z3?hD<|Z0N6`n3W46p7lZ^2KY68CvB zt6EpKCUF(&1!L&;W7V`=VQwNSyzG^fA|+ zXLLs&Epp4JT;qvibX8)hOkLe&{G!MTW24IYp%H$Z5WXbeYvU$Fso?w z6$M=(^5Klry;ngWt;u(y+vsB1DhRSI&_rb;yHb8t+D_G*JCaDN*rZ2=c)^iZHJ3-^ zP2Z`uoRN&?9-s_^nDypot#DvR#-GConra%IFvPcDPr9R*xbKr4MkpR$nMeDNNkMtF zdy|T!!HTIt0_rnJ#F{Wr9YJXePzY4pWyf(QQT5=r-urYiy8KI1=ck-PZwmad7zly-8w^FFXhe2c zoy6=x(lbaiJ`{wAq*|y^+ft1Ht%iNA4Lhgjaf|98y@kr!Y%zI*HHj}kjn>HL{Vlk5 zwd>hNWZnFN=(}%r`Fr@k6wbJ2Pf*EIxPC^=FceQd1oUcj63hRCLf^@ zoP}LA65Xj|2}vj7aGE=R-pb9Tj)2vcdD?UT=hL3&v>ug)80K|#U;i3mCvlp7UL(Jb zV3n%)b>*=mTVd(J)=E78v9$APY>Y~kTivNmP%(nmq`7M`fc%ON?-6NW2__0*Ommz{ zP(qVU$g3D*H7G_AhF?LX`4A}nc9{hS`l1#gOmbl$Va!WSAw%(Oi#?~SBg~(?>_a3j#F0;RwJPl=h=Z0D;3&D=ktO%99nZhv&lA=q?KE&Sa2;Z z$~&8*pAkd@p0Ru&9CjiVF~2sHBhn%1O+=$EbGFN0o1h}G+aE~9I(t5g<3uZXw>W=p zGRm+%SdN52ee*G5qPMvqOGw1WrfqAosbL-NFTv_UOXC1NZ9;oil5}fmaGmFe*psOW zlZTD-RfLS9Q*A%02u`0)hu8B8`F!8KQ(O&na%~;WKRSEyS&K=ZR7IYJ zqqbO04dF847ml-jz;^$F@h(*Ak+nQ*AYn2o7Ce&&36lb}3Z+t+P{8)j9dCp!=sgV< zmJ}iDw5dA~s^A;-uO({3Qe>`v89E=BGO(%_AMdW=u2aJU&u7%wu=%40s3YKfe|CM% z(32sZsXX;}XRp*vCGJgHjnWwTgGL?uqsC-?@L<-IXjspTq}u+sC@Cbk>-d%a8?6aC z)PS!U-1=q~6ALBvp@Q0cxJ|UTp=nPa8ETZEO!P5`B^nW;EJG4hsE}mA#3ZR_XRWTX zHFs7kZ=*~T&w2tdmqZPj(nt><>FAhK9*pWy)7*uB38ns)nhMgGYqz(!(F3FsZOyCe zqxtc}OY$Wq#|6&K(*t59`=QWmkp`B`$kwDtf;tVD7(&F-1|V;wk0c^KRNRotaQ5dA zYBv}#yWu`Dq5<>1eHY8rcd-}2C;-ZgB*`T~D!US;cM*5L9S&xbC%kE1rhtco0w@U6-8MceiRPnPzJ z*|&9^d!tL8*v>?in9A+@Go%$)tWZ|Hj`+jV1^twq6GpV1FEZxNqA; zF!ar8zTlKzp2M@!kkg5LE|9EMBbYSe$6EBk-gAW)JDYQ4)yl8D{iNBwSDF+j+K_BQ zbsxnOGp*PKGvjB*B_nxF-Jp+K-o5E&-1}) z{6hgc{ja4uM_1#D{mQqqEmx?^Rf1Ajyq8OU}$!;ujXNG||ZO&2F zT%Go#8hZpZscpw7O#hD-z|LBv(!z{~BEt&z`y*v9Cu|(2Y~C>6H&42LdRw;T-npYz z&Ik-1@oZH@sq4V&59oUV0lRK`C|5^wV?EtD$;8gh z?N{?kUR53={Fd`~LhNX!IWz8We*X-&4^Yl(UhP>UV2*u38x3M;*WW1Avb#yK7+}295AySNPQoDt;oBAmd*D zbD)P7=7Gaua62n*Rmc9ZX8FFa-~fiEI}1nvJ01(=l~AF^WMBy&^~|uRiE1Bu{XkU% zs+7C0YEZ~g(AZ(d(e6f(4fuj5Q++qEKVj{X7gprrT5Zz1dq@g|%vV`SY7LW5c)pw( zb&X4vlwL|I5Og>~5gqi2kFBJ8Ag5rZ9&cy#kX51ZyVG?gf}iVX`85AZ`_OI2 zmTX$d7$PymJLV+=gV^PTN{x;ik%(8=;-<37#r{nKLDUzw((A^o=n#pX`Pi#q`5g)K z&h!@y462>MBVs>!XCwIdF#Kzf=opu|&1=W}6=ok4hTVzQ;!0P1b$8fi-R7%$`kS-2 z<^1cNWC2a}!dCk2r}Ixj3oA)M66)p6GiiZ|oMBtE>&xAY9v!2kD>Pd~8MKQU2R&rJnof%*-|yu$!x2 z->&piX$vlqWxv1SqjRPx`#d`qi$&{;kvdsak!XSIHtqP1H?ExgNKN*mcAwV%5r*hQ zmGf7tAN~7BkCmt9^CD{4%zC^77`#0}rtyM_uD#Vpzf)+}m55Qyx>GwnOhjOhqJi*6 zFz$w(powfQ5b07dD@A^I2|G8e)f(O3qOWOBYnYPB7_3zTMo5&Wuu(+<#ZFoQjv2~~!d*o(Cv zwJ$>FHC9e<^b&%`_8K)e*0{i?0J!8~^Al5>>vuYt`G4^=k($p@ke~WD4;n(I?GW=0 z0{Vi#u22(0azwoIZtXs|KQyx~%(k5xa?q|3Ft|4vi8 zz3y4>*gr$*?3!;1r|NcJ(EAZ*zcw`4!dAL+rh2|S>cu~}Mu&&54<+wrX3CMS8@7_u zbUqVh>HkES^YSLq#DBQ_7A#Hnz7wo#!{SC$b;Nyu# zozB`1<&JC*d$HM39=D+m?Zq?OE*)d12*igzx|J(4-}1IQouRvC+kDb)eTSCYPeWO% zhs;{8^2%-D%?Hyzx`JgEl7a$K$uTnTX`6$<6;Opq6VBnIKuZ!xp{hB1L!llN5gL3D zp&j0eF!w1E0yu2pxChLiW1n}}0r@ zvCd}p@<0;XB@EH4#^~5CNmt!f$~WciHbG!F-w3#({lNL|aTheuM!||09UpD!Kt%&Y z3!*`8@CqRqIUr0i*oKOFDXwk!oC&(*fAEB~94Or$Q373Dh7mV}ev{cH{>O0CE5}}R z=jZYyPd>AEtv>w0@RW9HRD%D4l-0OX_0shh!Vkqa1!PV(oJA`}Ax;8=lnwO~JDcL7 zPx`X{rPA6@WMpIxPJ<;Ty-YEaxJ*NrLY})g_u{!s9!JfaSN}hhZ$G9z2_0&f2 zfP>${-S~83fTD>7Y2@}GQPXtlgBhY-7xukC6n5;Pntbmi{s~0y!-Om}Oe74x8cyhb z#Q+TaUSjK^1ZnPv_TjV~whK5lqUPA(fkLyJ0Oez^&!4%^=J1e@fEDmqvAg1{HNL5( zqh1Z-bZkVwwl&!8LNxMO@8ArsGRxS2(s2@;|_W;T|oI#jOCff#`FctA7(B8kL z6X^#977C!%kX^?L`qgQ8i3rph6mTIhM~`p(9#o(h;q)F`Xy1lc)Y0Wcfuv>B)AprW zlVI&@#7sHe66q4EcXlhDVY40|vG`qhZ@KO8%(`qWl~t<(P1PrATp6f$Qoc(Qc@WR! z&A5JXeW6)<1o>^U+~`s`cY!-cezmD;IFK^X-XTM95OF8lxi-)zN_9t(_s)z$+K|3Y2xh=r}S4L?lr21yk#y$P&2X63@4(}a4RV7OelCUC^ZfD3&LEBS8dBNc-I zi2uY#zy(D5c)=2pr_49_22fWY0#h&GKU;l^!}193^psQb={67Q388DhiGvbhQ`uAz zV*fQEpI}-*MYd2rskUx1uOaC}bQcuqT$Ntd@KGm6+OvLPk<+i{4sk?SSiESUjvraI zjI6wj`CB%MI3^{^e@)O0HC;#u)p5om>wH+krDj4@NxIC4cy_Fe@78s~Hc#UTlCA|s zDt}5)>Q?k*YyaD5Z-rmL%gqT@wTz9SS6A+$M`)$Jmx7YXKi2Fi!8&eXW_+{N`~=dh z49N62oWCAmJwPer<7QJ{r9=cBlOY3h-Er+iA)tN8=jTr=#5s{T^fQ~l4Q!=g@H|S^ zW*U?Yd}kw6cy|~>f>Bf~m+D;awU4nE;Af1&9iOH%TOR8*SGfnNseLb&Af+YXmMFF5 zHSHfU?)hoBT=|2=7gm#nG&xu4~K?nhhbz2yIPKQI5|e(r1U6ut$p%KAE=$NTbWIl;@G6lTmOUhk7 zoZN8piH*XF!rwC8>KT@CRY_&1lnDa?zUaaJ#d z@Atd7c3bk}@DR>UJF%MW1V2(<{EU+V`L%#T9fNGnrI8@n%D)6{Y5__hX!rKL5(w7R z;tLHip%Ol4Bt!*dz5a;wFzxrj>@zqdisrdF3`KDgOA!GBCsDb+&HPtK7dbd6CDADD^X~_A(i9)1GWB`GXE6L{$30r3evE)w1 zS7z(W&?0@e>!2_zQKAH{OH-7@Id>vrq2zt}uw07=2=g?cZ;VrVq{u>0Gf=OTB zQUHzJy__Z60);RIu}}(}PEps?oH}b4I}YRK=J9q!EOS_a(-rjFBa`)XA}W@VY;7l| z%#G(vee?hW$KeTFbVbo`7<+j_waf2zyPQZkxPfu*ezCNZAaTBU(m`0gz~P6;-dwSs zyP%x)NKcbhyY}w;e33w(yzisvKkKqdzplb$TRT8|8XIi)`+C|wOE*))WDQDJ^CPma zKYoH1zvtwyQ>@ zn&nu~;Oo@i?CtH-yQ7~)Z6_CN42?X8&6e3Fsb!Pg!#{LW>wN!9rctByCci#h&H)(z$q7u8mo6+eCp zs0X6|#yG^F4(ZlI0Uvy?`pRItzbue7N)~<;Q*j^t%n|4m4QQzOj0n!`o{%W~*SV?u zss;@VH)uW&`yB~H>tWw&{GZ||Mueh5lZEmKZmYjuGKkQ4Iz?A*wdrSv2coDlYd^(? zflj4e0ZE1lsN`Dx?8^#vPpRCb8a+Gc`YtH;+uP&d@cG{-f0r$t@SSLOCAK6P2a6oL zz(b|`4#W`r#R7ZQJ+9#ZhOB6xaahzS%3}lLA;h2`3;i?nWAmUNo7c{r2CN>YER?gV zp+{L41;*ppvWX?qc0*$1CjP}93i%mLWdQ|11t3QX+g~ksijU7SLi~s`s;~>sI z>^LN6?uImv2eJ)s;?p5^;K@B&_zS>FxAMQ{P0b9l%dRT;&0PkcNUH`}G4H4NkGpl` zi0J9**}qL%Y^HqenV|wF5{0twMMb3^ zP#e`e1`}2_a!@Y_BTiPCBS`9atQWjjANM^BcOBTZzBQPR70 zcW+nzq2d0C5t4{A@8)d|`s5dA)FqJ**h5WKypV9vsd?HP<{{y@Qc*tGFuqChJDvjt z91l1L`xNf`8r(4@xFgUe1nLZdd-4S0z8eaG=X~CbkIva)Q`7OkAvN0yO3KBnLmb@F z#SsbRk++~IX&{22=coPCA1Z9Z)B6<_tUpU(QBk1cfVHah+xiG^1gc&e`_?66A;B}aEo_5&-mNmu%hz!UlF+oCS75ibM;bS~nr>=z z<=XWDK~h^2<@3!db#5S6s7P4Nnlp{$ z5Hs7vWHC>IZIJ4k6N)V0=1xB7HnJjYz^H233CA5q?maH(zzBU47@+03(r&$(CIKPY zy@2otkTbS;@D207l<2!Xxlv&ZmFC=|-4QdWt&e=U^e0huM_u#aB=~$lBKL7=Q=iuU}9NWkA|~I_a%p(Q>3Z-+OC?5H@W5z;|a)1bvcjUWGZO*o6+Tlxt(_P#CJ*$ zJh9sRXw&#G@s+)UpWO#R0it>?<`_M(_Xg069F~c^VAF|t^-m%)&JrQs+Db^z$RH-C zuKwKnU=85gFu%XXF5cS(2~{7ML{c_04@ny?LH8bKF!aIn zsF{DXFQnNV=8FnqKcPnXoFJD=Z~hNDbyZ%$>666=I4qjZSQM(7G5>0g zZ3hE%uYIgG**m%os12UL;GF8~773`#23Sp9Ls)5&Ik7IRSn~cGwbtlZSa4@?;$3Su zZr3+sK+^TO9gFrXndb4_R!8`m{GN`AwtFOvw4A+~zzX@7OK6nnrv6g+zrsK|Gi`oO z^UmeK)Kl!&OuFsHdkP)vjbcMrtH>SV_6|is%O(oXCQAf2$BT^*w74Eq?24F=H^tZ^ zMYC0w8YlDW>N7l|1%c|mH>xhfL=oC8Q5gxkB~qXushA3CJamxe+keKRuKr#Y7|*}H zS!H9MU$-dV=l8L9HpG*8RmdwPbo&RkN^gHF$R=68PUgkdAe17Lvk_4?FCQ+J-|8yy z!krms(BiRs1Juh~`&^;4Fp?q%%Gnpzot{4&VJScJ3^esb_2RiEiL<=LKwZ0sX8Eu5NXUDZ0vYzX1-T#)NOfGe|1eXBZ*8jbR)CbdJ8{rA4_ozq|oXt5U zfO@cgwe25Oy-850hmSr+X`cWWmm~@A2Y?Xv5Q#-D|7Xh4$oE-Qc`}#RnqS`kN@Rz| zgk%K->Qwom4sPW=9`Il~2LRfGo99)k^7rz#sd3FMp7iuj-RXUzTal~WUaNS-7f6P( zci1kb;|}XYb3`L#DS?0_5+jtwMG9;0`&v{4ga?ttk`=zD@7BK4M*7RIhepPEsV#O( zfK9J}wc40h|L3ScJ9-H3^J4fm<})Tr)Cqu`^@(@ z28Ai?Eq@7fs`7AAXO5TL@N&r7OPabiz*yCC-PFggC_WIviv?)T^5<)`OPMqU670I8 zJx!|Yj89fKzFHK3^znY0$V~4nVr-2{a1sS{P>Ou{__FCEoas@`t-eLxd*}e|GQNin z<6t1cTgG7>D2=CyQYx4FLoMyf2@!V1soo^HQ~1(D9nx|m@!~D|D*?*awF8hDi?_SW zWaDJ5+&xo2(US!)o3mNWlj~yU2gIb8h&O6mx#{HeY5fsf;1RvdUD^lavU)B)q}Nv7DX zgQUgCrNW30tsXPZ%KSeWyP0W0KLLnKVxEgyBOUo$_OF0z1qB4?7%-T`^9cy-+EHtD zAW-y+3h($Vy}Vixlx~iKUH9-ecDtWJYbdxX;TNw>-w~tm`mza0h9y~RTnux^7$%P7 z^aH)p*9hj8Zw<1RTJ@8EIph)tYt`BLe{M|{0*9rVAeH$p75G~Fc_qEqIds~kE`_F= zTqj4)*bB=@B~y<3f13l83UWv~z4jlA!V?>49jn;pDIt`+Obp{|<;w!e9i!gJ=z~__ z$H+Fp{4&HWq<8HJc-S7gPrD00n{t ztPll4Dhdyp7P7#ALZS*6*$~7EO0X!cD0aydSR4uat-0|lfwwa=dlSPA*)a=9mAXYq zC#yRCYOGe|9huIE)Gn`kxUo9f=)FHo%8_Let>=v@VTnj`O7S1YQ6LTb`@PgvUaQ{-3(|2wVFs}^i$B!fK$B2^u8u8W-2BevEeRf{@Xe+GQH#| zhi(u7Thu$SsQ((Jkc0EDPxoKfEjXz$=#m;KsSV~~k@2ed)el-Y2b68k8eHtjm#AoF03ZqT$<% zds*2L(=DAK#aQ2`B6}}jmL0O{EmS4{+87}uc|xSs*xB(rK2kk0LO>ej++~(agL6Zu zN19rje}Wi7i)ms6tVyh@^j?DeeG7xjSzSA0DG7Y`|87Y&Foxf5HduzYbp;klH>BtI zA1y$@^NibRzc%Yg5-Kpl7N$Ty2X7Wf`A{^gNQEDeL9LK@(=1Du?e237ZFn-;uM|#4 zBW$pm*81581%y&Y0#pFAFODBr6{PUvI6n=la;$P|oUg^6#@uU}&e9VVv3s^TdZ@U| z$?J8BN9KL^uGhjx9FOepZC6FQ3e0 z5tz|6EWgw>@1>?SguXjYAkql8Vi7d%xL0xkKaF`4yp8Ib@ZoNGeJ%%Avd8*GgDQTZsnzKLa^tI+z!axoZll7m z?*+Ai3`ilXvIi;wj3$i|mL1iQn!!I4hnI)xIPLS*KPEfAhd(;AZULR}CXxp6?&=Xf zAy=WG7gz=WW+kU<8q4z!QJRb5$#qqq{1+pfuM+u%jt`#Kd~wGIoP8lsl_E;i^Ey|< zQ|~2P+c&z&VXa10&kJXFkgI7;n4MhLteMDa^Ae z=xG6CK<6udu-c->jZCrQ&|Umw!R6ROGG56>d2a$bN@D-6QL?>H>3(JHW+(7iVW+F) z%1dPNGil6PGTT>)dNNb&xmgy_i9tKDk|#u zb^5lL&a&J=n74q42s9=r`|- znkr`6`6c={<&U{?zZ(Yr|4}&`4B3;nGqn&TH+EF42d!gGJsR*hev~wB5PVyFEuoF+Phr_P(RORcU$Y`s|@=$6%GzmY@Sh55Y~EE7XEml6h^B( zEo?qIjCrQ8UUSr-EIRU7 z-_)|<)Pz4^_ODEjH@cq(hQx3W?-|pY6UnnA<+utxx{qT-H!tJv10&p0c-GP}wdHJs zXb7Wp7mE=Hj14etZi3_$K}pP7D&X~!FUld(0J+P93}%xdQ2 zn&0GR{oKh~(oN(Sfi)YP8mkPIxoSUOy_{bzUGI8VeY0wp7HHnV|%{-_@a=pen(#K zh>PbRe({RBhYn=kfBq(Xd-u-ee0B|Mtd@%`yg@y&$#Bo9;dboGTeR+C$2cnvz@M{V{^U59^xsusKnlVo?dQ0Zln zdhcA~bI?_n3C%|5cc|>{*$nLo?n9XTnsZb@>Iv#1V41*xyI!$wkTtCGgF-?NT~=z) z)t8O1>rbTy*Jy|nsD-REQD3O9qnvP*Qr&eYdUntMsF>o9Y9ulkVY(T=v^K-W_!7HV z8IUH)$mM+O?#RwLa6O#z!7)86z_)!wvMxRh6_8>uz^cZGLO=yK3lt;&GCS@U|N1RA zGU}JBAk7yr(As~dXWJz&58M~qE-DLUA+CRbqo~(5>)(+QT{Wh~QOl=XyBE0Pm+y_2WsY0kyb$r2N?NA@cOAQP}DKMd(j%$|taWpL57nwVO^K?BNSJ38@xz-i0rrR9dnN_L`98<@h*_N&aVzmVp) z;B0BAmJy-Mh$8YoK~Of(jVw^WARrPQXSE1?4%R|PY0hAIzs5rRQfLHj$25HV*r7?+~u-AGBagc{;nJEi;RpRIgGIk*h5sRUMia=Ur2~h zVTxe+-&!D?TgGqjuL7Po(Ot^;q(8mXV_GW(qM#)EZH`OoMbS=p&TY`0ybA(XK$WDI z5*(l!9A?Xpz)!}U4WDudS~E|~9vT9r+WgA4`okv`OLX`IoB9fs5fQm|F?(Z5iE z&UmE;BRr4KIkY|-lcJ)mgZ`Wfpdmy(Q`;$Z>QQ+iivEMGvO+FZ1CS9+m7A2$m(ijz zIulbvYH`Cr;=BF3$SGs^U$-djt^n&9PjYI|0ji!@ZrskkMiVySBb6`3Q!0oQ(4q51i}jsu4Qo{yZ4c1WukoDAhk zRogja;*NIsOUf~k_})!Qob7+IvrPQFvU0O1s2-RNO?SL{KK4_V-+Z|duQJxnWq}|t zxOG@Ey^B7OeT<_L0;NuHh6bSX`HLP{g5$YeS_63#}irkdg_Ve)mN%^t^k-c>f- z2vT>eRq?D+fi+^1U74%LG9f$%>uQ$VT1grUXAen~RMbNvxELkP`;9G=%ity59_f(q z(oo*8pIA&LRN}b_7VvHkk3XqeWyFrd3fmewi;PO|>r>F$JR*9dO02&_b8L(9lEuLc zoo#|shoQc8hPB}Z#ZR6BK1)(LYFnH{3b4pDT7Qd{NNa6FnIZCyRXj7G3 z!?!4EcI|#y+FvIW)s!jX6vAc;k#{x`%TU^>#*3Mzm`lr^300RAmcx@l7b&H_Ulh=<_B;KRj?N4-)jdL;D9_o447~vnz4oKd=QVS83K?u&~(8@(|x7l{l7sp{L##nnDkIT})wsj+v@ zNhO?GmCF7=rhTHu9$2p`IlaZf0gUn9hdt;9ZYu{e1ddQA8L7lEo+bv9)}s5vQ% z@0H`EINJ88jLyWnx;src=^UgHLtv`EzC1{O8{|iosE6`Y67lWph1d3IRsMQW8;KtX zv7u)kg{)W^MLCOq@fuN_>i%dU>^T)l$SvT) zcN(Ic1c>uml)@SjS~`=ah`;CM+ui+fzjbjrBl2}!PV1e}I_cs}X>dhR_wa68{zxi2 z+kmM1RHubLcCt4!uZ?!x-OEyoa&<>H3|D_|L2!Vsrz?P@$uCa?bvyAVac#%L8e6Ww z0zKlzq4WYtWxoIv$Z6Y(vwRFC3pII=4?pfg%*!ZS>H#iDBR1Rt^4nN^LkrUfl=j2z zY~uAn55QKuhWO-%ec4y0qo&+PgA)Wp(4~%huzcUk`{akey@E&fIyX8B)u@chCg)H= zO}N?>dAB5%qH$6w-WxH0f;238t%OsWGjxhJ>)&GE?(yY4?X&gaMak)?c1eq?aNDg{ zkAu$CGTDWcacDZKlvK0>MvrkStiS1(Fw&3_C54L0zl|1er)qgdZh4L4=-3>d$e^UC z6&m5C6}Xv1oT6KcnQpEB$V$$tFu9ztNnaqW0Q=dbpu@YLw`1dDhKr4Rh9+j81ewV8 zG0{6~`P2`769`e(vtT+nm$YIzE3BKEFYjhSEN|b^?cuu^wLNJQzB;(6sg*hgwx5xL zcup-tO-i>mtMW!%SlGw@nHxbMbW2WfGt8;n*aCg*!S*=En|J&=$>bivNZr_xJk z*Q2%?3gmh5owE*%#SB6@FuHn~VDrV}59Ug>GuKpF-Wqj+i@d1bdmK?Ft|D7%o1M*% zqOAMN;qJC(6Yz~8ZsWfb`uL0(w?^OW)WkVj?nY6kNfC7?)Or$W6x41eneR?0r~lDW zRh(z0UD*E^HmIoHb+tucJ0^*H^>cio%+b*iIlM8Xb=c_q(yHr>+#@L5sXw9SJ*Ob) zW}hl&naM~VLMba}7l=F5*dIqNSy}?YkwO>T@NdC;H!5%cYrzBe3#JP6IsCU^(BUls zLG;7Pu$e-Upgx6nc#2?2vi&J3MfNSD>oC6Ta74z`_k~TKlsm@~@m`rsxu*_(C{q5` zRA8Kh?|!lg^-?mo8?^c3V{7Dl)oE7H=_tk00&-R&3k zA~Pk`muOvnjm!X~70vQltQm|{d_xXy_?+=;dXm@pV&o|N)*WAUOm&}#MUwJX<~K5k zbs;bRJcmCN^HC@lZ;iU1A#fE%%$5MBZWi^t9=MDb^l|PxcldYK;LrfIVwx$T4PIHS% ze7glb77cjj^!byQXCXqVRZ;yaYYAnIM=@6%N( zqk0ubM8q?sQSM`&`7lFfTaZsLH0H65e!v3OZx3#M*x&1qzXT{Lp27Bk8Zo&S3r>Po zc)lWL4!uW|9p??n3ewebYhx-7isWF9{LF=9FA)uCp7{pVa|Q&vMG>3>1yU-x+2Y;x z`3RQp5gf9imFfO=T$Cgu1bQ7qx@`s)x_5mzWloMmUcO5PrnWXB(%4L&A1+^~ z3b*Ib8u@5ra%)Y0&B=L$z;`0bpdzEUHW!ZGr9gYO+!cZEkQtNujsYyo_~L6iR&tu3 ztBq_+R+scS-`~exx4i`U`S}gouidf1x!*&XLlM}yd(1p>6+z6FqbR6AX1htQN-eK2 zroIBlj|B&KfvG^u=UQTjc#=n9SrBy;EYL+7t5<;;YokJt5m`r^QRsc z>St=p5jeAZ#_}+YERKb9v=uM?v;;3AwD6HFTSPfkOiiLxvpXm|9tfE$Uuo zItLWj;F9>dx_b;wRFW7eFPELRN!V6cgMQ2AK&)*+XGAFOTMEN$*|xd3qVP(s#^`kO zPYK)5ZfXft+RFs*IOuVHtNqpcjbl5&9dd+RE{7QClY#|{47BkQ)?h{>R)!AbQRD_P zr7+^(B%k;&-1oKa-IWo4Nr6E`!(bnTwXpj!w&G*>H;&YQEK(N!`X0!Wy%6*y?8wEC z9zSOrXHVs|Z&i|qP+U9PL{0K!so5;j3oDJ*vicIMZhZFj1t~9CNVQ~T$MKntK}Lyhz`;WR*ygLyyuQh?@!2FyyHf4A zu`7Sd5*JM0^Dhs!4?Ri^iULD$E+)G*D!ds}wEiq+eOen-hDLKkbdu z-5AovQYfQ87b_dao3NH6ui`KETQPpkTuTz{10^g%X8+=nZN!BeLI$YTw84}EEW1Yv z8W{KF=_n}&fpOdi##=0anMi$$&WaaazeZESj`7K0W=S?_UnQ3Q|LA(ls5-W#Yd8?x z9fAk<0KwfI0tqg`3GN!)T|;n!6Wrb1-GjS31edpW$UXPmXMEp3HoeClqpR1dnl7g^k%U+t)VwoiFdXlm%1Qz zIr%o#(UB?jQ1(b@)N~S}to%HDT~83_pC}D(vvHX$6dB|1Z2z7j%#7aYJXs4SJhG#R zV6gmP@?@;P#AaIX8@pRDq?HFkEt}kE_qCT2Gr>Z5Yzl%iN1fhN@~3g3XGzhRBEkZ; z7)%qcK$t#gFur~?Sn+ckl}$+0C`_;ce*@8^k+%RAS_WaErX`qLVTf#LuMZ4BdbB_B zDnbYICk1vq`tyJRHSS)d3-n!cG96+ZFb`hTBuBnGE^N2as&aEvpvB9Q7#xJfkbDugu zh%dDtUwG=A9I`T}0*?6OIXi7%3&&c-&qYV4wg-&YrzFL5~Pp6|1m~ra>oK?eOs9KV2?eSX9t$ z<=LY%n?Z$eZtg$Ie+&cviC}6PjE1J8^!xuUe{SD`Xk#iStj~MMtEx@IqX{1~I(o}h zQb0Y;B>TJ0sWF^yP%Z7%t%Ze!!n$g(%1!U_9OKw-oF~zSJni7-7dV1;EjHpR>&1%J zg9w35oP_-Hw1;=x(L%-AcD&1`B>o(cq^G4zD$pZXU2*|#tS;g)v{LV7|?T@f+Bb zK|AZ}Q;-KeJvNj-IuF*s!0Y`R+t_kVDJ#oAVgnZA{SzpY=0GXq=5^d}! zy46u%j9OEAjQk$`NG0ID$Qh$%CxvXRZ%E9=5E9Ch6?Ug}DYEyLQ`N&5o&B}RV7|7s z!MM?`$pHy3JGvuQakjF1ml1CHFEJ3Z8EblJa7;g+K!{31;DE)!)5G(H7gdme3xV!d z{wui8yH*5$0VIyOGhFKRH*pPRT7(}z=BhQ)N>(SeoKL3P)apjN1o@!&N( z!jYA4vJ=sUo;;1mO+maojSP?NVRfRJ3ic5;m3?y)U0!ipO!Ec3!)Q7S{ZQeZ{`4Yh)xk^jRLW@A|$A>PkR_GhU z4Pu;KGakgJP|Vpfk3`CMIAY4Lfs*wrT5@rSRMdrG`5xO7;wfCxw?|N00~=^#6x6i* z{d%cY>z<(>eos4+8RY7%wGfqAjo`{D#!Tt!=m%VF+)EDN{{p2U@4sDYIy|{bu$Lb! z9WtLR0S?(v><}s#39&XrlX(i`;F5Gp3W*hH1;f7NWafG}E_0Y zfZ^;7h_S~DEN5-K_93AF2M5@f@kRmQK~|v8vGqZ3H$V*#Qgn+$ z1PSm$+-wSw;g1&zLj<+a!pbKHsI(H70b zo9uV^SfPT_wX_7qUQJ}yviJC@y0RT2`4(66%_bdx^H*W={Q3oF-)#Nnm-B-M4c2lN zKI4Wvb`|5qx_d-sh`7(IPIUd#gDrH`i+1qrO#_{~8LP7UNhL;Bb1+sVCC$i|z?4iL z1cwuNf?}0X&##zO%FWzu4Jxk7nkH|79XTNSg4Ar6I7NjaM92l|qw>0pd4Ve-LORM{ z-Z}r`q7G@?qy+wfM)A_QcZ~Jpqsp^^A0|6$2*1vg73Rg(NHgw=E3P99jw!%xIx-JU zuQDHUbP^F1#oUJS>&W-#!*Z~C;8!%`a)3aOuoVJdYjq9n(q^Z?|8-3e6wAwpR=EVi zbL4?<8F)n*{7JElKh+dA5~YS(K$DaW*Am%Y3^G|6GFmPVc8z(kC0t8>0lM1Apah#QEua;`RpXZpAd@i2ULLC~}d~f&d_A&QnfA%5z7G z8)EMCA1?s$1BG(aJtuyVdMG|&bsqYgHx@v{F8&gq2`z3&5eN|yAU+ax#!Nss;DiKD zt=_<`Gt^50%Ln6c9sqY{mV}567Z8!-ii4KUy%SNJOE|#MSyO>((7Q0L z3Fuj~wr37lP}5U;hkbleFwcd+h3nM@8-DWE{P_O8;uNd3c{@UWI)3W`a<>0X7MV_X z*CD)LR?r;GrV)kYPzf2L+JcjxMx=s7Q!QG~ZFCIF@Ze0G`x=K0ADH3RbXg^98}=ku zR$=m+iTBdwXFH5#j*gZi6snck*oPLk)o1`}z`M@LE1v3n-727n5qEwr`WdUdAZyx# zdv&^;a%8zB`(?J-3?u%Wy#{?@&9$S4z%bQy@6J#ln!|`$LKk(#kDo)lPEitYaXSa*5CR(R#%88^ z?hkhKN9K^ndb?j=To?63e!>df1O){ao1Ow(3V?Q?&UfN7KcpD2ZdS4F@Wk~jL#qO@ z(7`~sKl%mtvp)?Mo#UY2iU0xHeaSe%Bi|hXN=VYnebQ3x)WqOBChOo$8lrlFu{{X` zBJxEjQ@$`Bj+sf@wGoC#u#`_^B|Vm-Q$TcXKp(;{8B)6y-aHw%AoRi(EEoPX#0h{S z)n9mH-lHIDgb&WZ9!}gz=~$CXy)fOpyOBA~F8}%SaCL$HMI^*%$nV;^knH}A)Y||^ z3PR4S`5`5I>P%-cn9H^t{)~dm5J}%<0ZlP9qZ7?wQh0X34;u08@HJ8DQ^9_rz+L44 z`9Y0jO(I_#3@!rZltQ2$#Y(X%3h4DXDOcIQCZ)Ja9D`~L{7ai_V1sTCg({B*&VrAH zLV*j+wRSEI@yy}vt=&gKt4{YKT5;8MY;DpR7vyI~R-0rkLkU)o%dUt@$OKu%BI+h* zkLQkzS>Vu#52?Vc<>fC-^Sbg+Pgjo)Gt6FY1?B&V&Qff58C!W*tZXQV-n=wDVfe@~l_^K2S(N}o#rlHm zq#ohqtwjXLz^7U?{#*cV3OFu%fAjQXA34dG$jg&s9p4%&7ZFf^W!YgvL{H&iT<(9} z{S!IsW-8-rsrAF&!OceXk2&-ouPhvt4q;p&v=AMdW?NV(8mmmEs^JU5;YxmV-fCa7 z4Fr_Qe$Cy+ss0+;wS$-VRn8}Phpa?YYjuyHW6^kGbSpz^DfCr>*X4b`>LCYCa0{=x z-Xe@^S)3zwNv_WQz6Z$}bLB-qeJcAzi8v`Mhg5d+c?AazC(;Vh0xW^7g#p&)YTIJ< z7EEgqR+D7{KjjapQ;Z#>**v4l)Riqg%LM7yGHf62otf8 z?!+-u`I)Z}l0CLH!T2slmhHs2LqWEGxi25Y5xJ)%_t{*o{E2t2>a^DJQk5JS+!ch z(B^H$qtU6_h%2Jmr=JTA@XU717(yJj)(7wlH6uZdXVfP+IrULW*wqyiu3tr5L=jco z?GJ}YQ}`Is#GsN$2u8OF%HteN3mi2E8!}_fqpxVs^-L9h_SK35ZT8+@@`2#W;5!Tz zGnlE`%LVUk;0-%dtfQ_!^Mcz7U+Pz;QxFV_w-~B11N{NS%20lPzsO7sHDZMnHACl@ z_>+!y2_o9Bjn>8cPeGDBhYS%3y9NtXJ?7u~d9)eNc1OD_@hpVr#7wI5^>^lFG~t!# z-Lnl0i5Yk#5@=H(Oee(8u|0Krnv4-T#ReYpQ3c&=)PPsQbO7$4cdDBioeg0?VE z&6f{4N3DA-vUP=TOh=@RyPU5L2x6z(s zx0@G6guG`5xJB3L&LOve(h~X~ zaZ+O2NDac8Dp1l_7{tR+@x5fF5YJHzFw`h0@9h|PNne6rWB{%QUV~5)eW*GqDIzfb z@=QNgX^?vcdjXj3D$c>j){<>fBEeWu?Ng`{dsbOyEiH*HTsZ|9u4|w}V1TJUB_7yz z3%{_a*6Us@i5mCC&{7m&O%@b{#PY_RxGeq`rWti8jD=el&EMc5AlU2bnFm#cncE*t zAz7HyDX6LWpYB4qF)iU;6&LS6YNOAVjI_V8ncd3LB1m?yr>27Ry`N7z58|c1JUZiUYZLQ^l7JD2Xp@vO=W`0hK%nF*BIq zsJ{r5&>y71{U5^N_<F1&4$RUmK4^E&z~r;ipMR|kyUIIlZdDfITGColjXf2SG0CU z^uLQ2@oGt$uqrCP(js`878~UQjc8MiO>>B3zSQ98hYS^d{5(py^_oAfrGgF#@ zltd~shHUd|kuwzUZ3(Y!T-IKVp9%jvZO`w{k^y>LhG<%p}I2u$^>}Oe@J~V~las zY>W2?K6ct1SfUI_!DZu0yZ2zg$(0=4uI{$p6vg&?@FHjS$R-+Wh|XVZ`8w05JflWg;iYK!xdm z8EYcd_1m=rppk)W+h7lDga)SToi#WlR zj*m1J`}XGCokr{GiUvJzSI@_L>L{;%Jhr9@izzce{XPn5XyD4u{<2o&33GR4-?<6f ziCc9tqmMD9UK5+_=rA-sIQtP5H_?}q$O$cZFcd0QmWO0qV!agR4H>wU1j#(TxwKowRwyEzp|hr zwqfV<5TWj|#MVVYfhj(REumBA2FF@nP7W+jW4(_23WL0h=yXI=O`-lp#Ao})rc5YL zZKqEoBvDRsyX#x1Si8df%;&C(=?4 zkNE!Zr%vgO^jgvx{h8MLqa`e`_g#8L9fC4p$u8Fcuko%a|0B<_%&X&Ljxg_)cU~sY zfkuOkoKSM~`$-$cpN2#P>|ge|$c_{@Xxn>vkzC(kxzYZ7ArqT0bQLX8jkH@r!#^Ke zv$8@Ia!Aq8bMM+bf&Js+daGcoCC5U0c-%g$uv zB>1Xqgwxyr#aF3>$W@VIN7%A8185$gCKLD=;&;B`rHM8$3gexB;+oY&Y3iyvj>qJ^tA;2sNzY_LiuQ2*)8< z^GV??)`Hav9%cLthYP=qx!u?upLL+ZyLzY9CQ^T%Zw&Z zMk2VAZ(Fj1qhzzmZg zY3SvKe;xA^dHTon{@P{UAm9kY^(vUKP5Hq>#QI%n_xcE5wZW-vg@{f>O^%PJ^#|<1 zkJPi%O>)0uz78cM#D_I$5u#h@HRwqFu88krR))dwX(g`|6`AZW*zxBVl05|nTAi5m zcBG8oykYsWI85Ux2>sm%lLZoBi3PG=+GA6e&+`(%M|TK}^4{824Nmi11>sE8(BICQ zxW_yr!p4qZs(}r%pO5i<#39LdEe*k!o`X@km8QpL<*{!enf}qs`dslUbstLjqp;Q^ zW4u_ye=*o2|AQ`*6giT(tay#wFS!=Ap3TO~99CfMZB0Twc)8hd0zruZiSj3={$}?3 z(|yBmmr3pofPYFk`_Pg9NXq1N%X)k<2`vWKoOOrA_(w-AS*J1|trz=c93smyn@62D znJ6Mq{vvvQJmjW03HB<2rP5;{GZPE3U2dhVwJy0*yW9H||BYd#ZTPqAS-=WK3G?oX zRjrVcETU0Kgii4m&3UMffz|6swUdsyjHmtQZzpcv1DP>Dr-g@Z@~^kEGSgw2vE(+c zQd6&365Oe_3b*lXm6?&?N7cWe5pa6}u!HFb=ihPKbC zc;8+<-gwnfd2wME&d1{ke{k=#UJxn7Y@3l= z5K@BGQ+la1nNONv9gB_z^StyS2E&AJdxYUMsTN_v^i!`}Eg)zVsNYHS4+v;FN3nF8 zjIo*Ropx6c%$3>p*qK=_28)>s(JZ^$S^K&|9_?44MUZf>8GpN38Os2hon+LvAuhou zfCuyrKmNXMzdh{Ji+QlI>2ZONrl>tgm1b3=|K^QdJm+{w*=GO97C~NAFZm@{D0T)7 zjHC^Q>LY^)`wSx(Ux&i!K0#jtk*{*|()b>!)s&+0M$i0GO3-`TYZ|!+m$UlnJ!~?~ z8|<3LhW3q0$-am%;jwesMYl}UMwPexY^dIYY=W~L7+F_0whO;Bv-PcpAolke%@3Hf zA6x^?oPc)=*N$14c*Cc;hc?XPA}m!PJY6VfmE>aivh$!O&HacE$e!q?#RL;vaL<7Y z@c}W``!7{e@)39U70DP6ELDfs9IPB6&dH|t`edMj+y0m|w!?c;?D>7uT>~ROpAecb z&a-!Nt>f4MNgvR>4BJu5W+vMy-wmK<$0eCI zzw@g<8I@ON@wwdz3Si8*yvF{+qZUv=Svg31X(CB>%@~%e;@_#d2U` z@Y@|BH5c-k6P}P|LI#|vYsqO<;YeT~4Gx#Ktp@)*y*h}nb};oOfF_NO`q-uP=GQNY zTmt|9K}fO=?oA^(^0Q*Sf+&q^~w&@nBQR@j7T+CTnT`(yXfL5e3$MoY_|Bz1Lkw#&fB9q zUNTL%ZIPeK%|PRKHpRl4G>OTUtZGuCP+4yZ7Yic+fB=wwA52224Zr(zO|H} z5)nXy*yO~H5pf%^^ewgS+Qvlubu;}5e|ig(gU{pYo3f2QRI^{O68zG99TAPGY1#h1 zPv%rFPvQV2z9-m`$KGG?AX6T~gbHKB>p$4DV_9+52svmGq-fyiR7fZ9EJOc~NNadr zvYVKsKebOU(Q+7gzR;Lsn+x!1T7GDVqOTTU3<%6(caYbZ!DpGC##@MoJmmN&O;K126 zG`xb6I#Ma?h3@uzgc*6SU+TjRhMc+Hw76y=mmPZ8d}GqWvw2~|+Cp4sTMha3wc#(9 zJQ~`atHocAL50e=<#y!kuY;>QT`x*4o8rX%wrxM^bxF}-X$&P@ zws<~I|1?t*QJqy-kl(o(?*D4$-|a+LO?C94lr2O+{hCO6`CsNN zj^PN@)d&duuzlNr`2_K#RsUU*Z8VtvYzN%Nb+FXA(+YhyiNX1|oaK-4vEdaSR!yak z0q9nv-uIMNoi>+kJ4i#JvRyg#AGWbz&CB>#G;6UXRV>>q%P6^;9&w)%?=Tgor|Vf| zZm9eFo>o@!*TPAYKPRQeUNeF{UCgw(-z`|%wj2t&2EFfIm2EW@UMW%4s4?h)la>iOjlLqJcm`*u2kq#|SCI zqep_`x(+YRc)ZCfV_(s|PI#2I&;WFrB{^F2hZk^SW@-pL%EaH5t2e%OW&ITYoxEnpqjKV1Y`&R|~N3 zdB2*mFc?vzH~>|?90@_?qaK-MGJ;ej2xS4-Xiy0X_DACa^4nvXHoFdmuM#+7&lOln zcMXdbMW;9rbe{vC3b#8lCoeelO^lF6WLzdF9)E>o!B@753JTGrtl&mO5H`vIS%#KANkq(qLmTn0fyLsQp$OT0b`z4m*BT}VqD zzL(MsN%|V;^xI+ z5B~8Vbo{uCv2C(B$E`uw_c@OHP{0Y|m1~=|GV-qs*yISj+NR8LjPo`&vsmywq7dF& z$R6Uadz^>S;S=^MCjOP{JD_^LHb%2=Z$Imocu-qJ5u^8Czb#^jSaEJ-Y(MK&&l;6f2{Zx;)~&A zxWUpIefWg>YS)p?tV-{?$|H6J^?P!el(eBqS;Ur5 zofQIW=iyNFs>~;j*O4Dqd>^d~W>hYn;zdYBTLsV4VEO7qTt2mwOWG&T}(R(UgdID3G6@({c#* z&&k7o@pMI;SAR!Y)K z;i>qHqT>3<%t{+gh^kVgL*z)=@m9p@H23M<2_DB5 zmIy8d+w`?!ybAGlDZE4rF1WIHc19`uH%CWncdJ7?SG^C~J)Ila3US|%eU-7SU7YCD ze;=Qx^bcgBr95upRqY=kMUE~%pHwz*iQsc}D-ldjPi0oCAlu)K;n6(bpJ#Pw%e_bR zs$S9_cV!uJxE(&Q$W5R!2bPsHa1(%((S=Sy4@%z5K##*Rsa+$~0YQlz=5#J_w%19; z=OAHBOqAN%9W1Oh6potmK%#OM*g)g3`D?U`Qpw`EqCdm(XMMrjJ5lt$>meCbg>@naLHoh71R@J)ZYp zAIx;6-lf`MTXWe~Z{5%)rmkdhjI=3di6$life zvt)pP&Z{jR?*ZZE2`n6+CoaP`jUu3YT znLXYvX{}wvk8s^tD+P|rS>dXRiO!`U^Qx+`?wwCudPDNurwA%kF}Wy_^N}aeKz{@B zvITi%{}lo;EGhu&i#4q$4#;#Dm z5=hiHcuN>egUi%%i>ZX;x~`4%d$Ht*aikn`#!o~))?M13`Tf^pI8|wG3TD}Zxi~YG z+3_Kmh@QJ$&rP^xi-mj8G=bpm8c6@fcem1jer6;hHWqE>qo1dkkJk}|FkifGHtDf{>eiCw7qIctv*}3&fyRo~c ztK)xkvcsN)wPt{NU(PcISz$>2>SW;Z>QaD@%?g~1@Jx(+7G9Dg=HNg9cSnNdV^U$Z zK#-T_3m;9Uq9Qf|5c8q}NwDY#&y5yk$fmZ;(bWba5;}#ZW(pe6Q&ZDxaz=zmVidYN zQ6(QN@I&N!BFZ={kH?W8xrBt3zTY2;i7{C6k90OHFu^2opwR!W(&kd}9O51$I`ZB1 zU9jPouUTQa1ek(5thkR>pL%_2lE0!%cdG?S%L=JKxJTa%9_ZB)X6ejSkgt~vS~WJL zC+{Vclc6*>sIOZ(voSm}K|$T&)}ciCXa#1X{AP?ywz1!iS17AMDc!bDa$Y+-(mXRf|-!X$gm`B9s6I&3m-Rhr#N?A=NIL77bGjFjxS(-L1%8;#-ZQc zMtCjjFw)g(!kJ*ZhDG6I?7OsfmN1z^VB};YqGUmEM^GPDv5#AHvhv0^EzzHhBYBvG z`FhEBpevB0eE;C97EMWBSI(|@8RM96E!)hPyz575l4H_AHiw~E$BWS{I!*+eJ!&aZ zd}`orreQ-LRg(_Zm5s3)8k0MnE(jj(c7#=v_H@o6zE~bB;NiV4Qd|7AI14v{6$vmv z_aS|tnUvE1^xkiQP-IIA;MPa6Jd!T}`@JvXRj^ovzAPmwNRa^n76m)E_f$q85}z!U z5!Rzk?|t~3IjO=AKwnzZ$&S3{sw#0>SoD&gnwegseCH&m12;(1MpXJ+$i)HCmbO4g z>%;fxwy1w_{H&ShQnwl7%($4N4fT439n)ApVW%d(ZoyAdDV%r3m{s|q+>FrGYSDj4 z|IWUcLJqx-@!~NvDq3ok8c~Y0*_j!V8)Y)fKwc3eM?R-qfIV%xvlsh`)S*$kxBDhz zWp|IN4@LkGViRu`=Y;3D_upTT#CeV*er>?L(K$A(vd|BrU->PnXii8md=IudO0L8r~54thv)|9K^&3+b&e5F8e>7dbZRH?2@RI#?n~ zlsy9(`p-R3$CfPxkjeS$i( zct_nk|CCy%CJLB9OvfTqbt6#{;=;AXFWbfgspoKU0|%F1mu;?C1KiDeZ8Y!x5^WwE zP2E?d9nYnO^v9D?NZqy5mc<=T@*EC4)KFR`*c(#=&$&cg_M}LC+oA~r?U4&o|a+2Y6FQJ;*T}LpO~%r zXpqv74o{%;F<%(a)PYBKa zh5L}#4eMyWrenbhq3bTS7v+{1%$02jdp|g{s?aq>D?kukPA}PtA7R%pe4@e>A;}r8 zxlvuO)AmDbtg^6*I00hQwh-r3ZQIZY-nQeiL?dDN)M}pCFP&rw7E=~35EJed1nM*u zZOBLz)#d*1OE>&_TE z{(Xb-;P4J^OKIA<+0OOS&YV8_jX1#F>R^foQ?h3h&V0*5>_%kbi)dw zB^;L_<%=}|*{WjzcLT_I^|7iS3Hay+tf;O)wBonm1Cqd|+iFq?34!UO{R_^&x^7~l z8uvhmU`FE7;xcs=tyATfA(-7e`2`fvFi;qhu(je$a>J&%bY8tfXo$RAw|!vFTx0t} zapBh9mBo)ey6sRn{^r*W<@#Ha$x6nKX;do*8<&Q6&FMJw;g@MoPNp8H2-U2*>BZCO z7HlhhEhhrmhi7XJEp?$Xyp-)-c4+6!-%xDT`24c)oHEPJkHDJPvMIw5esg5>W&4A% zmEK`kc~pVByEf=9+gp9kparscW(*D84I7S%Rd(l?06LMJb?a;!VvoigGd?OL`0{CFtDc*xJ z5rx1y>K~WdzZO$EaC+qdYvL!UmGmWvnaOuWJccg+5Y1 zEhLe0)xvN?If=qs$d1e$4e=D!5kiv6IusqOyuoVt0Fl)2oc68q{43e=!59=!>NDu(mR91kEIfq*vpTFB{ zDOR!USek)z$5*#=^&!ehFKfbYKD1z}E`_#dW&O;h|6k3g={Be`>fe)sT}?G zT-gE6h;}{V)ecq<)Q!=xtF?orui0DF-R)xpSwx4=JO67gZMtIF$~+Ij%`40o(9**E z$v~!eLNq?tI08=}R&_f0N@Q&KquD3QZ4V<)p68X3U6^Xh4u!jMA z?4P0UKla!lFTl2A_ckNI7z|jgwjY2sTHi`y8wEo}{<21;Tz+FQ&EkUOq7IYE+Z5Ms~>GCD6cf72iu{5s*3YfQQqfRnc{k(ZdhKiz;@RJvx9bxQmhg%tnANS@CU&qu|?{ zJ*u~ZxCoDVcc1ZaWy$B<^|^B!&jd$p@Vhk`3{7b|4nRg5o0x!q7el&H0FIw}_t{9o z7|UbPCbE#{Zo`1?7?5s8SYMAdSJuy6KNW#d5LVl0hs;ayHc9bJFi&k6;l7zmki2wb z1_nr8p{~9dVNi);sscdx42Aei0#~u00yXL#P(gs#dPTASUvx%A4E*NHm_}xN6ZS(? z_a8pREe+t}*Op2!Rg^H2l)T=73o!v;-N?}re)>xng!1<)z^-@Wiu`J!lAjq2)<4Hs zKRuMc_bMPGSIqaj*bw$3(}{p*6>=uBW$$AfEn-9Mep+Dy{}eh?q#a7~_dzA(Bcuj@ zrqq=2?wT#>dpUnz0U0BtbE!cN&t7|bF%uAlb;$U*C}T3r zLxWf#IH)fx4-Jfpo*Za(*CG7eqvh72V+4URYyeoe$yHS*<1gG3IRpYxfZ3MAzbfoi zDJ&Q<`1yx)zOy{0OjNUX*H6Ea>wa?}3ooeZX+6s=YG$49@wyHMsKl9Y?{c?-+*S z4JrI1{z7`O8vMhiCqWwW-3JK0qiIXZ9N#_l5_&XAgb_4-XQ{WZ~t@!Jf4CdCOn#qt>zyP`}zjD`(LkwxX1cxXmiwE zDI_>Lqhf-^wrAn}Yo!=+W}B^_h)%%Ev#Sji*s9cz9dw^}i*<_D+#3z%nU) zN%yk)P`d?hxFI@(^Hyl3PNf5>QssBa5W+s)L!TSf^|@9XV=8DvRko zS}`N6#1NeuP9hi9U_K0sc&KsG6c#cqcOv#4i>%+X2X@Hc_b=vP6A31Bsg1Df@l_>z z5*qgF2K_O7p`F}EUv*?p$rzh4wTmDZ6wr*Va!%&)wPF-&X{oue5`Kx#NH0UX^~dac zS0rNjne*CJK@#&EoC=7BcTs|%(~ z)A;3-05YR*2q1&BEBMQpN!1~8E;`_HBnE%?Vm%cp1yy@EVJ~tSfY{|24}ukw;aI^z6kKJ=Zf1dQNuGEp0D5VA@;a+Jq!n5@nOQn?(2@Qz<#=Bl&Ti;rGqWjN0?u{OrE69JZ+Ku|p_~jfMxk-9%E>_mcJzS62-RT>4 zlq{%gzlH|&tO%XI!b3xo!hNzSI(k&g%2#Y`@J~8=Md4|)NCMohr1=e`D3PjL(TUP# z`9DN^{)EBp#Zj;>{cQ#mCkt>N&0UEhPo>2PzHf&h>XZ{mf07a8Y9zpNb9-SXx^`r+ zfRq`<YAuOx}iOE_$_VE)YAc@u>-IJoF7ng(t z%himzbrS-%^L!I@`Q`Mc%a!P&ePhp4Ubl%-ym^hp>4U*D*KrO)T>ti?g^mdUqV}_X zP0~@*8J_JcGg2g_RZuVRd+EQgCTgM`Z<>v-~{p3(9vlm#41CY|GCE&fncfF(4k${%DX=<-e{Qv{ex*99z`srHoQ`pd&CU}6EFd;snX zEIu;CN6yIX3;n#G?&l>&M`tU|rmxVggpFO*CHJRCsJknLq*nY8NBd|e#UdsiWGC*j z^{406EQfp;!P@M|Vv>@qaZflt1^epx@ZvrpS-D}UBNQO&uL)@1fe8)NW_I91A8;O0 z%AzqeXy^Qz&2h%*o$0G|L8QXpMIQ|k>Uh!3NJP~B1h*bSXlc-NQ^sk60u z4Gz8;bimvVBR2{Rm#msRYIAewvfa2@GLOciM?Put+{Ew;uAAtGrirCn%6h*a6yN5+Z}X{Pp0Okr-0Q=8YNrk`prY{A3qr^d%;P)3xY zTn5Wnc3mHecqL#SqSU*T27HOXkmMSAYp)QKwOjB6Qx;`IEV1448^w+xsn z7%H(c6Yl6ej${FjdC^{^tG<3(5l2ffp<_O;mLEt+7TP2++`NG@J^|`{3C`ItA3h60 zQpmJ=9j6YjdD0^qQOwV^G!U66v{um@?pzkF#6 zX^5WzZAf>J*)d`37*b_2Zh}8d4yXfw4EjQxLKW`QAJ3V}RU*12cMI&hZ@4>OL_a84p%Qj45maVOjBWGp+X-Ck}=8cLZnR5#- z`YQ_N#NB;j5?*xe@ZCsH62i>p@0?-{TtZvjF=@{hf4Q{ZHTjJg(f%4|E_J~2pX((r zV;Wx*A!ElAE{Vyj&L5e)_^>F~>-g;aa2^cJx99-9(t0#dOk14SUYBOMx)}dswA*B# z6PDt~x2Qi;s^{eROHKE$R@_=oI6ak=6m<-;fmvH&)dXDqy(USalcQgdnvGo0U%IqZ zQXCzaBH>O)x5zlEn7YcqYR0BemJ1ZfsGc>3L_netUgh^IAdnz<@?s*DDe*x9*y{9X z2niljGLCsMh-?`EGgH5&xBx}-uberT&<|R!va(*m;xZgx%N?}jT*$GYmc893ai$7+R6r)DF9Q281NxM!0hxe6LX}tmm2%l-5cuWYb%ZuJe5dW&aCfo`P(TSu zXMv#6KPGir8Z7Qf;OL-<1XNs7DtbK7=n(`ZUT{w_|2DyHx%WIgHhDzyJ7`%#)+a9fVIJ6|w)KE`v z{{BWKHM=+iNjaG1d5-hO{siJ3Wn+AYGw^O=ip)p6Z=w8FIX1=nV)hknb(S;MWn-@W za;mmqanEnUD+X}uYMIt&ZkA*^y+1T`4CHy(`2VYkh{{Hh9+I>4K#hAUBeMJ1?0>i@ zbUZrB2X7?T7WJeh%2oPuJQ|H6aEvJUW_`l;n==T}K@ecTd*L!Sw;TFUfz9ZQ0vcVP zaaD;@Qtr}cr3X3EK0@TNrv7p20-N=3nJBXK{d3HN5d^NO79~A2U(tY%+)=5k0*5U(esLIL zxzVD0Uh9~VEHEAERJ$T1Cdj#s;M8Sy95-6s<2oML-)O1t7O4!(xCxH=;)~>B>COvq zoAY1?K2A1d=9~?#EBrA?;YI*cD%ssD@mS|#3tF`sRNy|sXPxYmz~LXhCKv4K+M^N1 zC&r=g<1KZpTT2pd8sa6c^0f%k%?^Foj-^G{#X|o;Fd)5vs;0uH6|_{)luaH)-kpS^ zUeynnAaO7C$>82dMxmkZF!0N+x~6SH;dOdurjJ)3Y#%*!XBiUG z*yM!U9uFYhcYRA%cw@JpGwRtG7sd^H3-f_m#L$6$(HsG&n=q;7i1qvjX3vy*&9#qM zJcr>-72n8Nrj?lVJ*h_A_k!)N->*55V)A<~Zjs-oSjXZA{2j8zt)06v@@&S8aGXha zJmVOd>Cx(qO4bhht}WMdt?{(lm7PcwhPj6iOqc@lf3~OfRZl~9)wQ#!+kX~%2k)uP0GXuS}P$i_P%&=Z@&N$SavFw{*ZLs1*3>*;y(_Ec-ZYq+EK|)s_g&xyT zYvC>FZk~1=I!e=i{gY^2Op{Pi$*WsGb#kT6)0Ss`uU2`a4B^K*Uw|xBC zTxl0~9?NNME692S3s!BpQawpRdPiAWU!MJE4~8ovR*3Kd$?qf9?yno9Dx+F%9FR?^ zY4z>zm0=bgmH(!JQgIDN^X#N8aJ1i*x` zb@sS~PXueUS0GfADWab8J-;H}HyYG?yAU?8k)ksWCe(uk_>|__v+(SCCR#0wX%X z?F#u$=y(EPaJv#-IS2L-{gVk*K)e#|uP?T#brivEdxQ|o^Ydx`;{}KaD;RWnkC84Q z2(EXfa9-fzY|TfCLA|fsqWeB*b$5H*eXf!vuWfQsqCRvbb7aGJhCb@*^evKBlg}W# zRhGgquCbZb_0ZYur{l~xL&Lq+m8STR@q-%4%2qw+6q9Y88fXxcoovzWS|-?u%Dix;rEU z4&88Qq(wkV>5xXcyFozU5Yk9@gOqfGA|Z%$hje$}0es(AzxTQS!2QK%a>Q~@(kHM;3a#U? z%VB{8B!rq}hhBjEsNZp5qfHy*nUW&+rjHRwxs-%kjzoKYA@k|v(H!N_*jG%Tu0J3D z!^BqboLL}+RIw>q!nY@s^ff78NO?X%n9CBEgGIJyoPw9p#!k_bHuJA+78lEo>u&nj zndkh>db5`=$25CqBUOdx{H+l<#d>H)U7Tm%R9UK#V%PIY_gvZTv=kp23QJ;>%qVp& zn0E51pT0`s&&e%hTlu* zj6$8J_eWHn0FFyaL1Xw9vywbYg$M0|Tp@*M^DTYSgphcVl2C!%-G`FY2~ zI-wB@y(OID9;0}d12f`HM0hT3h0sDe*Z953v0c-?{i(dAxtFkNZwr%;jP|YK*s2RX~PUlG~zXlpCUyLZez5Pz#JHoX-i@;`I6<@)R z^C4j34O?)Nt*S=e+WrSx)0tMJUA{5NrO8*>te{I8(Hw0>dX%@9RbiYi%<)SGCXF6CA1OUTI{lEoAj5 zo!Qd}Q7?I`Mq@g2;0Ae2b%;i>eOUjBJ^!VpHk-AeE3~(G)3f#vT8p&M95uXCo)S!7 zlpmJxV%27Q@vww~8o4Hzf2J|kuR8fuZ#SdmdshiHQKK4yvGIz+Tn*mV#w5;uF<}sw z=_Fna3s-xfaF4*4tIVMuAW(9iI?2#Dpyv<9hI)dk5f9*=1~j9ts>VTMX*1&IpO(Qx zW%cWtmE&Yc3O>+$_>mlV`Zn42PN|WA(J{P}qOznQgw-@uADhV4m@HJ9B>9$PfjoYT^in=ATWU7q$vMJ!L zCOD~~^4CVP8^3&HkSa+`+#+wlJz-fa+}HlcL1ogH4o+2)-x2y1Yh($-T+Ixp8w z-ZGUi*(Q`@7wmg4h_>T4p+Pvq@pIO_CO;#4r-DOMwWsE1YNs;w;kMg8P7jR66g4L=cfzykmnvO8W@YGNbaW1uYjm_Z2}i@ok$*ge1Y*+fd#&Y-g7nq{Vwq!*0bi;P;Sl z$!Pl0Jq&7>&JYeZuqzE7I$3Ttaq2WEc-nXI6f|FV9`1mnAgM_8Hxn`MKDVbN= zfcK%A&>`bEM|6DATCbC)WC_CpNWMaPHrzen#yXVkxdDJ{hHP`9XmRw>*e}Ji z>Th$)+FA$2n`YmPbZOEXQe{l9RQp_#2nE3ShQ=_-!k7d^ooG;NezRl}&alSMuH7G3(ahq+E zZXyaapgpBJ*0J-oq$?riwz`BV;<^5I9eJv$6#G0G+YRV=!J?

`D#?(t~{vjj;4AS7cz$QLqH$xFO*Pgpoc8Mw~M_ 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

|CVhI^0lVFu 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

#-yIGfec+QmzOd%ef}Vv|$e#DR){74Hze0 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 literal 0 HcmV?d00001 diff --git a/packages/panw_metrics/img/panw_routing_dashboard.png b/packages/panw_metrics/img/panw_routing_dashboard.png new file mode 100644 index 0000000000000000000000000000000000000000..7c6f298755a13cdc42f93a272bcb55cf904fb91c GIT binary patch literal 424965 zcmcF~WmFv9vUWm9kPry&65K7g69y;9-~+)4?!hetcXtc!&fxA&fWh6}HRv}<-t*pb z&${=V`{!G$X=e5G>fXER*;UW3dL~d_R{RYj9^$iS&)!H%0D#Y)y#ho3>fv8OuWVj; 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

>m8@GBnpS=>58n`zw@1Lw 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%0ASI?l1!cHvX3$?{K;p9S}t%x7mAl=Y0ELAARz1 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%0AR6R6{Ru@SnL&F{G3J-l9; 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

%4F5xW-v(bhhul`i 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 Glm81q2%^FO literal 0 HcmV?d00001 diff --git a/packages/panw_metrics/img/panw_system_dashboard.png b/packages/panw_metrics/img/panw_system_dashboard.png new file mode 100644 index 0000000000000000000000000000000000000000..82cdc2136c04d7b003f085b3f86f4038a06ceda3 GIT binary patch literal 520121 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

*bLzj96w6&ZiExiO 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

vtFwubMcR0ek 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%0DP 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

      &!Rq@ z{?5wB&BN@{T{jnjuO&;Wk=_PRqLerSpJ0V7f4Z&dY#BgE{gu$IUg0h9Eow{7gGnd` zarpfzu4@Et(eXvhK3y;hS@RZqyK&tn=lbB{qik#ez$4+lt#`AKZZ+E}0&hZ`>=S6r z1k4zPrxnrhIKTEl)xsDM+GJ@GmFNW=yx>JG6bx-sR5$uk^_AGR*J@%FTA@G76F3@r zq%617a|I_~f&_1;M%vsd%u#&i1zj{Y6Hqr1$z)f5m!^FPml`Q~;wQADv`;kgl&MTu zAp6}V6gjz%)O6{Z;J?9`C^RjGJ+Yx8%^m+E?NHQY6J~UL&@Ffm#RIy4dYbPSL6DSR^ zKLD@xt_NHBE+|?`S11Fpnktk_zp>0s3}mv9)ywK&qzx~Q3Q&DzUS%M}YX2-n%^O>x z!B45cST?f=LHsIUV_3hR_RP&K%-L?&VD)mA*yL?Uu)7@C*w8SBzpD*6v=f3NDWh z?2Rf$&*(}VolI+VR!bitJ?-!#{8P2#`3BVZ(w=)lN6nTn)-}yaR-y+qS1CXDHI8Oy zC)(%4WNxtjFdD&81@f+ngMjF?#4LX>tLkv6Wr+l_dZpug!;=&MFWD;~V5o;B?z(b1 z*J{C5eAWW- z2_{}KVtkb1Su+xu&&^0J+oiBoXe{mP*0KrlqFL?R`H4$BEVSn~pGPaTcyQLxGUsZ7vO zAd#TL$wou%5B4m6-MxAy1Fe&l3_FC!pQ&TrFu|Grc);T%Oz8zw=b$dd6eOXsH)f4n8vlzlPGpNOIPf_=h|_DcLU)$n;A+YC@I7c*&tZrp;rse7^m z=X0&(o?}r zO?K%GEIBs?w!`P#1fc8n#;N78)Ri0H0mssjZZq;8#Ro0y)?N>7SSwzy8M&bJh>k&o z+zB)YE{%LO*_n~QLt1(*g>jqBBIA18`ZNag8O5IhMY|*t1`y=oix0OnPe)~cP0;^3 zb1K83D}=eHujajdVv0Fqpa0}v)fK<9GAote7g^UA_IZQ>L0y|TcM3TepMLI-)r;m! zUArIf2X7Kd&_&uVPiRQwu$}F&^Jjum(|{@NWSG{VBDF*eaDExFQutn?Iis{p_8;Fa z|L&~t-bj|x!JXebJ5J|1JMv;LAU?}T6T{qQ9{b8R?&V8fdHenB7F3ckAXQ(AK1H$d zc115PF-~TuZ&9&D(xp^I!-~;qBTQ^ow=Z%3YQ%YYyuIT~{$+XxM8VZJ(ax&TvOM27 z|2RtkK5M53qCcR>e&?TR)X2?qB8|CP=c_+4G^&Qyd2M{N#{>J1rMd4>y?Fklb7ypf z3;SLYb^fw_60s+L>U98{AopB!uZegs@jGOFH0JsF)pfn3{;n2?Odg#-`}}$N z-YNIIv>yo4FZid{ZF(Ds^>Kkg&9_Id{t+h%swuJ#1RUpkIQmZsll1X-=4T1|{>ie;+TxIOA=YlHD=?1J(iO2Ldt!SRU5zf|IcRzJYxB*$tq1`15LiAD_fO z*R|ApQp7%g-+&rebzpVFu7ryHEuL!7xj3`g`nUhl2HEqS@`df6tJ|Mny*QfC_U{UI z#BV;}5odze-{)Jx&qx>_9siL*_HSVpDx?bkeYSk&+1Y6?B(N_C0cX357O2$$kIp-k z(5>;;cDv2vezsU$2!0#1zmHooopVlf0*JEyDym*VAvu3nu3M`_r!Lf8T&k`s@Y@zz8AczmHpDoIOym(k<$MCx30;w|8!wt*+FS=ET2W zc#`;BoCEhvoc_^<)bp*|dhegB^PgXRL$zg8&ey@Vy_YK4W}4}*i>{n&(Gc4mt_iB+b*eeC zV`Jq)MEhuaBq}yp6MM9J1+16@6kRmTR4tH8H2Tb?6$pqJ06k~ zrLaiTT`7!hyjc&1fpPk-ey$-wi`P5&ghFQJl6nHhoyW=qO`r+ zBPHy%`4Fy~kK{}}?Kejr$;G%_F*6q0s-rQatqO?Usyic;!*A;KQsGn`N-fIHUA}KM z7TTNx78Q?mtyNAMi#n25#b9jPyitiNIs0*0G@@wBi|Foao3iXja--&r(tWSyo}~|t zu05Rd8NqT)=QEub$VD33FynjTmdbqG?H47lJp#*=$+Tm$Si618wLlec#=*i|Key5L zwAidV^h0=6rJ{4?>0`M-60qST3RlxmxZP@|`fvdxzVp$}`hdCv+C-dtE8a8}IMtpx zfRycP&kx*Vewy3D<}uAy@QB#!Y{fwy3*HmD#Zb zyYdq@*`0^Sd%~PLbEHeIGK3dg0BYCGNPyOzLK3BsS`&ob3s&KRbvEs99;xh%FM;4C zC*l~lOp_j8qhRXUJyW{o&`~xP3Co##(~}EX-vD_?7ALrhV?L7mLIy$oLJJAy`QZ4S z^c&^N-?C68D&z=yz{3zrV({CedK_Z#s9Pd=>YIBx8UFrNpjm_=I9)>(V7%g!kd6%} zW(l26F$OrZD>9D10rzF7^cai?4JhH!M4r0Tp!Id|-5hr_D4eUxdm`sglwCidk=5H9 zPXH2>K=vz4*9SiGg0jg8WPusAIXdKIj-LeqTw-*mi5yu6^!S~q$Vk;CGUAl*wre{g z@#HX|4XZzMECJ0=t0x0fpYi@=H%9a)3Cmv2Z$6Hvt4;iX2ADq7SgA*qWZ_Df?Iq(E z{z9M1VyQ|3ye!xKvTEipv@DN4a@oFhe0?nsbM$+=qo}2_8{UV>v?J3}_TSE}B*i1P zrYj}hVR>x5O4$jL;^mv@$(CxRYckq?ea}ch>%gXf2e`TI*#b;~=u|Y5^wl_sNo&%i} z-l8?ZR-bUW%z)7?9kNlD{mb>0h@uc7gmMp*=I+6?t4A;A1frW4 z3FxW?(nVZo;h?QLpX(V{qnpovEChB~mlyC|EQE~BU8X*e3b$g%T5O^HF^$>N(GcON z#YG}t|9gpWJLCCN(*wVpg*`9#=APQxqoFUjIMEZs&re)ZwKU<1$D(D+^)vyPZ8xSL zj9^A&$~W&h1GD(Ve&XyX09>Rwwt7Ksw=WM_S>*&f^E0w5moTLB7Xd;O#>AIHGr0?n zE8tLn+?bhJ2;)CUm#~YsPGuK`ikF3iT5)o7HajCA8wyqRkHf!1fi$)^p3}0^y>QNT zxh6PQF&*fv!GNci?yjGLZS*VTbteLT>93Te7P8x01vkW0PBrrUS}o}tK3KFD{kG;Vq);csSzUe4NH12~fE zePMWR;#xpGfpRByejKn|(*g_y+qNikH*LQAUfHViz0&~ft7{O{l^9xxZ?f+&Y%OQ| zR$Js=RJMsr*a@%g;H^N6%9E4%Pg-Ai<#6S0g>7Ix*U@&E-r4?26!pm5Fwu2Xcp_Ii z-h3ocDy$s;O>H3pP>#4i#DS%*UTL4prA}O0~^o%zCm0 zx$tiVZWh6|cC(W{(n>}%2KpOZ2lF9LIM-hfHROX3?zrqluomYwN29l;%rUtkX?7Xm zb3p+KG_Tswf%b>WZ342RE!H;YS#X7b!3V^a>!F)sju1}d>EXT)o?4M^TwZ=YrUiJf zr^CtR`8(0W?arM6?ta%Xv8|k;#AD{D&6OTx(*YL7at^Y0#GU)qRQ|!F*OOT~Ni&Pm zQu#^Sh0a&U-}WTm3$tsiS8TzJwcfnSm7TY#-ko7>WnS`+$ko&AsUGDD?`uIujmnT= zY+Eu*3fQF=s+Vl772VmCzWt%wA@zd_zvyLW|0+O`;Fxn5Z_^+k1rY zRMF{6v9kdgzj4eJduFN3go}QeU%W?M!3g{=`~v0`>D>;~Zb^mDjrXSx2D5oWp{kN? z(=IM9y)ZCl069n*WUTSh5olMlgjX2|bMzwS*WINmrWST5v(?HMsE=beipk$R(g0L>aFu=eBdqK;shE5PFfMg|u$a^?C+LY_?PC=N1+V1=bPA7Ju zVRp*XG|&6Q?;@gc=+|rqvf$}I0uW*vK;?uS)n)%_N-1?LE|<6vh_Wgnj%!*EYh^%b zJyR<+TJ8E$^XJE1Wg8TYRpw@erfy47;%yY3RFa1+NrJy)CV9U#QU zt-E)Ao|Yh>bl=WZSn4mdIq{_eFvT!NmF|zPy!xO6SKi|+X|Heurbr5Am}K+r_(OB5 zP9U`s0*UYT38bDOPW%l>3ApF#IRc9wnt@aV2waE;$`@1S;HgUA)>a1FT;h6u+#MM3 z!Q*8Y%`YC;FqO6py-Q4F2F${&nSv`NO#q?F3oB(x#d)4D$Y!hbBy}S|j09sUYuZjI zbI%r6M;D*Z`S1tWFCI1v&{xFr#~PjaXK=4Cw46;?-BMS;W+7h8ySH@O?0w3Ijm#uL z;gy~$R?N;|s>mqve34`Fh3xAnccUACrUs0-H~o`o?m*!nO0Do#tM;o<64E|}mbo7m zpEt~gEr#QYa^w$L(jae^!`!hAHV&^|ZJ)F`+P_KGCX@{u5BsrS+J6Ls@IZ3ZsNE&l zE3-kB?Z4I|JWn6LJYhSrbVUr76td;EXs@roUeltKc1$esWc=3_1g=*8Bc8m=wPDj==`;Sz@ z4ObRk!HYKBw`<2;*}tbA!tJ}SRfyRZ0g@lUoo-QfJ@}9=o-eYqh(~E*VL_A;0BOhp z)lyE|?FkANy!lDmm!mD$qNSZaWHYyXyf@D21x4gA^$W(Xhg7+1QfI2>!0k+;)tiaT zhBjtpw@RNTyXJy5jb?e)V*r-$^V^J90sF3#EJ!;2=2m?QcCF;+2bG z<6)1J#z&YINMMnD#bik{$BxInH!C=uHu)x7cJRLT1hH`stQ0Zb18e{TQX)qG1MhKn z;|#b@&vvU4m2Ql78Kg}~y^lE%l=A~(7r3h;=KMR`ttLQSQL`#ooF7vwV0=a-$$^>s z+x;2aJcGXG?V#m>C(D@Z+{Ehfa&=x@3v`&7SoYb#1D8RV1BekXg7@5oU&Ru#I*I`; zWC0LfxaID!jEsaM?G=IF&@VM;@0_d$mC^rO>E4}O?;WXaAt!e$tbql_+p3@Uk zn)5|{Ys}qUh2sT#T)J{?@rSkbE;(d>l#4`n32l7WYy?Ptuo``*y=*=DlpE+B`=JKu zMFE;zAf({lh0tl&n}N-^1MgYP0L^Bpo3qz^6<0F$DFRm8`dKlzbnICxUNOn0qTOJ- zw~nd|YZ}#g{#QC_@;dN&C?Nr_+Az=C4m$Z#D?*s`glp4>zyR zy}$=HC60oH8AW*pF|1}Ze#N>z(55w9;IaTx8FAR8`f7S2vHAk{N4 zSPoOsDV#r~u>1MGQr}QFlapO*Jx4})O7hv}ChRM^(->fpSWZaN>K#!f+jk=*oqvM` z2}x)xw*nd9Iipo?P^bW4f3Qx#(s>ix6FSwz1B53v!2p*(7f1jKVpTjGr^Ra_v!b|Dhp3DLWN@bf9;d zvt+v$iz?Z_$g`;d{I(V6|JjBCnieg#0mbMDXZ%et^)SHzLe;qvKI0r9Hx!s|RFGU3 z7#6p*C4XaX3j-uvf}7D|7v?x+EvCjo_Bt*UGowW_^!JZ>HgN#Z$8bO-IqPX!D}FQ3 zRAi3u!ssgk&&2|Y!JZ&GYjCN>(P<)iYN>3^;UG}kj-x-?H2^+n6|f2mW}0w&B-cDJ z0M2gz{o^37+!@@MOk&{)?Jl(RX+0=CYIGKB_)MnNi5bR;{71TZpT~M4H|JyAc?$bl zw;2%!q_DSEC?krIDeMEA7W0eC%sumI8r?*l^HIlk_Te|XNMYaH*z$tX3I{0dFpMXc zT`}PODk3WzC_6LL*wWMUU_=rsMf=i!c>|ADxv3??_US=fshd`G(F&Knc;)(5 z9kX{uU95gw=$BSzxtDPzv)>|0dM;oRAMZ|qx07kM<}nv2`5L2$&xakcI{N=U@1O zHlPV+)aB~nsO#A(w0XU5SiKRrB5!}uLcLaS2Fobp)^z#c(Qc0)F7J#Vl5kEVZXn(` zn~c7j-(n6T=TE6WHTvpJz7l+zFF0|U7HLD+R9ufX*Ac~SmgKxv*>*Hx@q>C{i>ypJ zJtV@hJvpM6m6HWPj|RR|Glp&+YatN*^7~@0${8u~j;+Hx(FGf|54V0U;cTzKGIHSG zyT9BaRee2m{{sBFukA7UvFT;%IcVRGo4crmD#`VjA7Qp~^s>GweH4xW#7yqi5^E6m zBE@?7S|qKx;88fg#d&1)#1j9o-x!<&0jmoiit0!TCIMpr2sb(0CMLW6?3DaS^xh#| z$Z+^k^6qI=N;{cNZBqF_V9tr$i14Y@wSx}})$8b>y|82_>sFn)oUL}5(QTjZZa0;u z#j^U<+e5o#Kx$CzSRtO1)j3`JJuEIRabXB^XM6wE+_A4SE-3+R-TDRY3sg=3lX`>y z9QCvh{3x?W$&+_;xXD5XP#{^^+5R?zxRRY;>T3d9b?jm46paE_%Rh@p9nbR_N>6C5 zcTk#IAuQ@w)gm#+=1M z_ETy^>QZmE-ig4JJ1gC06YjyU=`6&&L|aU%n=3rSel=>2Z93jftK*5k@=;U(47?>; z2v1K(Y@y}U!(^7{jC+4=zHazDnf8M64?>J_^EN5lgB5_lge+e0QgV&?O*Wo`dq8H! z8>Y@3?>N<83rv7)#cNSEcfG$=m*qWSJ->RMMFUd}z5&rYb>?yBEzh-*!T@%Td|PBf zkQI}QvFJ^)ySVO-ogU{-W+Tl<<-)K(yxC-bT(WMkgHf8=St=(kLBE-fyZP(aBb@mE zF>lbxo&Jwp3|ND=80Tm#c<@)~L;%up^@nAf0*jD6GiUA!L^LBGBeJVnKX;dwj;OZc zIgo60?+lzrG+!s__zz1c;{*Eff^Z;UignRyBlMF;#c>>>P?>1qp7xxoKB$-IRuE!w z{&>zevBBFr!x$VdIv)q(S(;D+5>Ta#@V5v?e`_x&pYhPqhu7$PWd)pOhpP>u4S=2| zcM4PRxr9#Ky={3te!4+!VIg-Kwxp!$A8*p8O~sQ9DYQQE*LBe}af$so!HRYYOli=JCUKAPu0Wf5at>H2i zrY3lq0T1!DIzpU-^X-y@k2|P&tUKRYebXNT9?#1zb}m%J!%^`n6Soi$64ZNXdu9V( z*JHNcd-%+Q2i_qidewQFQl8d8zLtu~x(zaTS~HK&ta=ij4d28lG#q}Sy>=u)B0QRu z=!L#8m}^?`Ys$s0^w3_@wT}S7kuh0Ha;F%%v-_aVw5}Vo1H-_VfiT?Dirr3TRhYGQ z!^tVQo-Pu(Gdk^x3JRKk5fBvgi%kUF%)dGPjleIr?avEHE2Oy5YvPu=cmH#Yo z6Vsd(-SK<>&iUvu6bpU&y&cYcOb8TJQhW6P5^pw=h=TKBMjaRe9-Ip^{29V+H(5;q zpY&XEdbolD7|YHm9HH)!^=#0o!??-Omj^J7bj6dcU;umBY0k(U-Z~D_rvt_S)JsuK z@0<)jp>_*>$eJVNlrT^MpIed$uMe60r>hSE*r4av|F3P37gdWP_M7`P!Pl@cWG;Yp zZ$co_S@>yHTCaN61Z_S@?MZc)wAXqe1Q|<b$cx*}bp!wO^4{8@j!@4ZOtO4=F)-fLxzvjFy4FWxwsNAlahMmZ|J zW-k_a`#V4z`5om^lZ$Sl{(lhX0l_98`(;sq`!4YATQ^_Y?45-$TsXdD#UrN%aBKq# zrGTYz`_VvWp7iSAOw)V-Mq}hP!Z9o&17yJ;8hc9KiZ@Ro#_t3`S7Jkm^;fNURSZJ# zZ%%#I>;A}jEorv3)xQ60ocdLs(cmRZ&}Ge0-u$XPLE9M%pc^Y+AxI$CF3g2Ng=Gwl zr{w{fwe{DS7*ag0<`=uqx`L{I%)t0l7$%Upk2jym`&zIrm3#tjBkJX-rV^-6p`yns$Dunp%Xig3W7%J?CQesZ z&sd}9C6I`bYI&~^)C7xROCz{_0Te%=^x9>KS_A>yCoCu0qN2fgV{nIj zkRWrR7J+%2G`1>HN$ag>8@+dc#GkIWr+FEMMT$%SD6p9FaOdeiaZ`2nUiBK|^A1ep zmL7z)qs`xXABBm{pn0L^sH0D+vy+C-D_74X1r`5^I=?LoemlhIvGJsu^Pubff_jmS zUb))N@KUAgIZ%+`c<1!>--3kZ`ddw!-M#ndea^f(nUKqi2V;DTbC9+zcfu-tC>LM|C@d_t z4C>c&0Gt|duLauy#XCJ6hhd+o1P4>2S*n;4J{@jMHxybnVI;d$sQ|-5@K59^`e2I& zwzT+FG zG_etg{%w%+xQUbTiq0Gxt!&Jr4!QFHjJr0a!(pZSFVLLmrJxX#2C}dbS0OJKL=o=Z zVIw2Cgv*W4Nsj)#81nj8?JLk(@~_)GNF_Y4ZtvWVuK+~O!joou^MW;DiHB0=tIzmD zQ5;ngm~M_o5G^+cSzQB19q^pm_1x*5;Y&_e&8sG$EH}%kfH`+RnCZxiW1iT zWt=%&V4f|3#mZ_=qZow$A9%+2wc0=rKy`mNyZxTn#k!`GTBuUdk(8~I5d|*rx zfayesS0Mr=u(0@b-nkD(!}#osfeAfMW(c5T(K6TEYyjSACA@a1x^=h0+?;!Ub~fy^ zEdRRXu`|P3g`II9`y==F3P6*GBy;qH{K~D7*zgoHBVj_mY^Oek_a_LT7yPKw!-HdA zmqIuZ+K>lsOZB}cJP=t01T^}V8kX1q?#WhZK%zda&F`OM6SNMDKEQD0ts^=)RQM&l z-&&R5QB@U4s&FWstt`@}_M@_6>I!NzFcAZ}SMxsEe=`9L-k?V(=|#431*HY>uLjyy z1(qAp#{Jt)ngja`J?!g5;;FSMD?=G|GU}jj+BjRh;&#RZ$^b0iR_ovQ1V^Y-#%{T{ zU3g+&^|bR)&J4_L6&2@b{0>5ED!-}*0uB`OK+MztxPI2B_3fpMZ=wPlP{WhPDh(4b zc%{E4<1$Q8CC&MM*gt6vb;097lZk;-uIgQ)rsb+PZ)o3kMuK zTv+fLT+WiFrCH-p08*jo+sc8CSeQYDu}{+PYPpEZ1(BpMs~67;PaBF&5t8j6CjehE z`N~>(q=rnZfMQ@j@O=~5kCyT7>Due`g3}g6BQr$vPEJmQ{4IcDPy=H7t*Z&2JOG>b zO0pWsXvm%VAFRdH=oe{I zYxnmbxd)5$+Tdg5ez`jYsk`Q z9w%nH9NaXoNa9?*m)yWb7KcK67uaj|Gn0)?-txUv?LwXf6u<4p z3L(-5j2%z81tR%tuYUyV1dcft`iicW@ALfOw>7#)$qm#_EjSLH0lSG$g{)E}vF9nb3VXw4hoB z_55K_C6l9V{~?|L4Z^@4F3Wi&NXzpY`&%lH%^z+}wGr|ifXvCl7x2aL%qkb7a|ZB{ zGB8={$_PQaQJ@~82&UzU6K%VB-G}B6{VWE2?n!}t)Geb3C3igf9JZOQoPLI3;Wst~ z1E1NLSzP@2X%(uFjQ6O1yY6OFi=P#9Y{GP$-BHQL9)shXM@51BQq&ehKtX2i3wtJY zu?;}v*QHR}ZhHXJ>Kh4;em0`<^qg-ddM$2%02z}i!!L>6B|d<0+QQkELqF{uJstTP zCDa#F#j$-~d-91apgMACQhKb)zy)pu2C`+da3-a~t+xlQz}Yj;EN5OrP5e!grQ$Xp z@>-_{A9HMdtG_-D99M)c4aPp;v0mArFYX5-S`y~F7lJ{(O=kd%GqJv2^mDV9itD}& z=I0=i?-w3+r^{ zssX`orvxmrm^ZdbmkHx`1BE-o>rr{&Ba_d76l_L4In{uU{q?)0{`A<>{CyBfA+R$6 zv?*E`bFu%~0H~7TbdSI4M7ArR&~P|^8ekqk{|;FOjx;ZzB!8>*01BF>mKLQ;BqCZ}T7V>mZm@9YCHbd3>XID_>H?J9@gHk|5JYF~k{&*1Cnq z?V40jFwypH5rD)l@FDQ(wl z>6~m9!%St_?7H^6zv?DL!*gk1Z=gZF$f(mpOW$()XM_6As>4L|sVOS>_`p_Wbr{rU z(;$3Y4wT60bqJKQqVB@_WMtanS>J#Fr^KxS{Sa}NAJEGG*3AEJ!e;+~ps>+X_&K?- z(52%vR~qU2W~vINQJRN+5}9obcAc4?&N7H|RsgZ2WnZg0O{5vnh8~vLhkAQ^BY}$X z7aMUOgm*v1#cx=Anv$p_{Qb}`?i?)L9e;Fa`#$39k2v?<^5w1Y&4SX4WX2#<4@V z3yq1sRDGx8=7B-O+brnpKdj11_oP;>w&6hi@n8qa47TIJtt+CZt?OhH^ZP!edKCN* zEG$^r+_E{`1I$pSLI26HPSMT5K|tF1 z;w}O~cqrs|?KT}Ik~zs3*ep6+ll|Co=H)ffvw@Q5ipGRYmr8*-kZ_jGA;SP-zNdFJ zRt`gbqq>})_s7OQ*AF2aOrwBK$iFb_OdG?TNv>fqd)I$wdH z(g0e@fB743KNu^KK$e5jJCI@4dbp2k_z+g zr0xdX1Yh6DuaZ;7#9^^qS7>)SVHyk$P7W7YCIVB#6bV&EZyZ4#Y-ZPWFg_2JI;1$gN7?=1n$7w;1L9t3p*X ziJ3pI)h|3mt)#ChT&XDFL#Vc z|3hD{1VHy$x90>8IZvt>LltJsQQqmo28mF`j8!6*9AkZJE#-`L^2)mtNrF^se4Y`!O-~5u* z+J!^*08|I56L*4Om=??-lHYA~@GmN|Do6?MVQ_5aU4`V`4uaWCM*TNih-(@_3u<2LeC5MF?FWD4v-&|KIv znAR%lmO*4&`vC9}D(30ry$TBQBw`ROS~y3uEZpfdUHy~uvu8eesqMYo(Ukyh*w>pO zDcL8L^U9pV{iijv7F2MJ3`P?`qNY|jgDd^q^fHh|MFn=?2T~NVYAM1btC{LT zQF)t}3Xy-pzdI;pqWNLp@B``<+B11!YSc0&{nBb)>9tm?( zQyg{|(!Jk~6mIS?PjgF)N*IHY(^1p>&eJMqPhv>~0?kQ(rp4(f7x+%|5|!D$@n>hk`GvG zsio`8kgV+}eLrBi67tX8>6EV{!gg}< zL0^XYh>L%0my6ozko$H=@dQ{@)U#YGXKlr@OjdBVE+N+o__A{6W7jq_|BjCeI&Bg? zBQ}I-ju55T9VO^OZ0UN2dF(AcJ*|7z?}H^p@8qIf0HGq&A3?W4D2%EfCHus)1cLb= zJ!ZBpTKSV`-p>PeX5juwxs|epMp9yjf4|Q0x{{i)lsvBe%BY!8QM(~A^XW@~=xyzF z(wm=;P2Swo9$RL2U_`roNWo>IvAgUv#p)XNWdX~dwb-gRD|S4pLWDUl>iXIvzHS~^ zR%R=vD2vCs{c682^F-s85=ZmBPf=0$oY@HpbPF9W6o*1W@!H;gzF|=z50~a+c9ype z+a~(*s=Rs!h<2EBit63pq+7TQaI>C1a<2+6^|Wl>sXg($dOVSCknuQxYCUqsOXMq> zA*r|;kHntbG@S%ytW zUUFULK;MB#g_y@*N$2A=;4uJG3rTr0-ROH~Hyh8BQA+7hJQWfQ zD?9a&sEWyYaP6RRdgI;p{h)UbUthc2RDVYpQb{~)s|a7q@w>5c(kR2 zc5$+=ak2|-&9Qcc=w;08(7==q)otxRON2unIM&_4Be`5i0HVqU^0NP7t5sOxcj!F~ zs1N!J&W27f{17T^zjonsy*MCGZLd~@h>i+G5H0?b=v+`+ld<9i2) zJDC3e7P%a>x3WWN?>T7mU z3wh}7q#_6SpDU$&_PIg=zyC#;9xS=0z40NWV*HnVb=nvFUx(CH6RbhB4`@1qK4ZvL zr=@qWI;NYv@n92x)y+pJ^uI%OGten{P9Ow|@380(&4YYlNkPZQziYHY5UUJgrcUYj z{MjbZBa8{y2fRDjt?%lCulY5HUf4~Ph#Q?ezNexVNMPl5n1RI5L?wn)mr zq?}`;*3DzR$NtT3mow0GHZaz!i^mrjq(O6GkFQ)MzymA+Th5EoD1keE;GZ$SpXPoz zGByp=yVl+&ghDL2tJ=^Te8ZRxj4k`8DKPxks#4Iq-|3?waq{2%t-IxNbrYacccFaQ5id8L`9?|m5!lPK)OUpDS-i`(IJQKhTk4SeC}88_kExEj^q2j-#>bYFkIKZ_O;fz z&UKz^V;kZ!Gs^v}iqxqeDe32542f&~4KUg5e=pM@tgOv#6OyS6$AOvvm(6tEqwkgp ziHXT0v_z*e0WGASJm?w+TTwkjkFi53%*Br`hFGW;Rd+52d&@#J&Iyvf!h1fATy)G)wX4l zq8)P1oH-Nx7Wzn7vAIxUqSwsztDC!re3q%n@_1XPv9J)w51mDSo5ew>?oQEWq)Fp! zgD(ZAb^J?QRNC|B7>i$N#C$q5G8z`&JbSBwvC_jOU6z)zMt> z{PvR}j0+yun4JDPmeKP1Te793s7M{o7cRCo+WjsKu%4xUys(v;ipJWeU~W%uir`*e zRHvj_lV%K|%EObk#1sbP9g2#hr>+ovTrIINni$PmmSg+US1zt<`L(cg>+>zw(amqG z3=H!r$={L?L3d?D#?qk`(9v1L?!jBAN$-siB{if-DT1eb(vg1l2$z&^IrW=w6s1DT z9O@>Sxo-~Hfk?+s`P!loj}&5|%qe+T%PQ>!9%jKq%X83Ewwmro1pC@;9U$WM}kvMqKIQ3yKfja zmv{xqFl~b`Bn~I*oTXH#&0;u=_vcTe;|z_(%oN8ChCX>Uw8^)Dq@9 zjCzyy?6)WzG=l^gI+$xT#8{BWl~l{iS>>72g0J64&fuB!mE|t zl5|?hMzQ0=B{JWdE9c)FFg*+)W-H4l{w#(I?>?=O*&=dih*EF*w&riBc;9Qc{<{0q zr!BKe7THqu_ci6ouMVwlD%cg?O=0lF4I_}dfpO-HS8%|T!ik4Y5SCY;MQOz!EY10G zkSi!m+SVup|Lz3Ttfe*HlPwLpTQUAYPO3F6OAy*xl;cct{26J( z(FqinHIMi~ertNEK+W)!{*qP0xu*jgy6vl^(c5A%@%HxihE|SD8a>n;bGe|B@BE>Y z78DkswbQsJ%)-JoT=)mfTelfO*YBpR7*Y3=+ zRu>a1b`p-}v#DR`=*iZ8+pWLxWSdBJbKYTjYT%Yy!SwZTB@jyk=0Ch@Wz#dN`zY*& z-0q>i;&*ph>6QC|xalVO834b?JvbvQF#w$$o6O~#S+v51vm-;Tq>om{rmu~_=)?E4hp6tdGVf~&UA`GQoPpjg zAFq7oGBy_>vAqrmtrWth@KBLxUOos5TfID-qXoNY_#c4-_C@rQu=)8UZm^Z7rermJ z^`zte8p5J>a<@QYY^8X&yd>ojEe2qjKWZPHKXOz4a2Jt6#E#=q3d)-z>k1dgz>GY^ zL{e0`kfW6XEsH`*3Ipj%7m@t*^VFUqqk?9US>t|-$z}0-_plK;Q-y~tPCVH@{vrEj zQzn-GVQS4RIqG53*EU>Vpg#!lV{Y$K4`JjGr5aMNs3BNW38x4AIb7z`V&i&=|^Qd z+Y#49Hq6joDE{ztv)!o|)wedkqoL6Jx`MnsHCz$V!UqoM7FkGBrd=Ko@GUt*Hk{saiDs__~JzqC=<8>90>n z;TJ&FjpYMJ>eWa6tPU}z2x2U(t4c}*d~=dYQwDhiq{gD!zx5>oa3qrTm4~dNJz&Jh z8cb;(RT806viTqIHB;LrL;45nH$=Esa{Z_mbk(?=NCxRGnEe{hkTvPL+natdnoa*2 zTgCNfJ&LzMiukXw4b6~BfGAsFR#8*Re&3za`SP4{QO+zcDS&3%DN1@B&B+O&yAf&l zsfrzWUFwMoHNnoct^Y#^1UrO4lkR_pKyfy;GF>ySZA8$WfB@aweBbtX$HrxKnXKM^#s} zOJ`q6t)0Ngo0}#+8hUeH0|XJPbROS0wHIF~A_ZmnL=FX*PdCw2wM{fL2dmVoJS}V9DVRS&}5>^I(_mN1+VM= zCh>w~5Nz9}f88Tpm+*=TM`YxDi&3b3otTm$GKqWK_2e}9MrD{>zBec}jcTmx_@ z*ja%HbeAl85us*52kB$Syn30DnK`IsZ1+@4Pls3B-BIt)fQk{L2>m%PYDf$qpLytV zhNBhNWUrLGyX$%4-D+kI_lwa|)z!l2CX=D2X|(seh$0~+tBm0p7_3K?o}O7zJV)vD z>C=+oVQFJ>c7@8Go|N`Nlu81;CJR_+&RXjsM>%~X6u%KiNj>24EnY61eP`W`ulf3M z=Qj~9Qb;zGrupbFs2C^oHB_+I(ab~d=pJ$;E9i7+Je$s|ntrCr8cDC%8ey)9!9^$U zf3!9;m-exeU@B`V7pSp+N8U7`TYNH(@*1G8QMT5`YqGVXw(h!8$UnoI+IRa}vO=?8 z>(RDq{RMqt{TY3MU7xy2#CkgQ-FzSDsHf@AZ_Y~Bi({WhFuK)B|J)63$p=heX5+Ab zU3ZS&!T*>iqRG!@gtj690jQin*l6YI8c1wltB`NXb;%loRHRSH)lR19iJ_jIZB{7Z zE>N(}G=_>jjj6Hx$!(v1rF7UA67U7^19Y;IyB7%!5ObA1IWUhJy^0I;djBnrl;Mtr zXV7NEk!K6dY-?*nBp^*v4tuQu0M-(m85j$MPn>W${|z6WCpH^lm#kjtoV-*GiuwaJ?79ba}j ztz}1%EnftUI?L^g2*%TON2jT{B_9S2PG3viCYcUK1JzucNJ{55O@;dsXH%=&KSO1+ zW+;OE{aNAl!}E4atra32ohAa-$Ymuglg&}kBU3BLXD#8BfI64mpDn9+fY;aC(U)jF z6)=*Pr(MgMOR`+Q!S-PVTvKZl69!kZ;%N{D5bZ)%;HYbTU}9oZ(bxT zCkJ|4Ue63yXPzYlK#Nzx8b0i_v*pdSvvnlMO~z!?)OyPSh}I+)H2>c=$NrGB&^LpH zOO6;6^KON^&cF$%(mU}#@1#D*@S}7bzLHn`eK+|}APw~S7^~T`ES~f&TUn)vpqAvM z6mQ*%U068VSo?*)CCg?E)elPB`eCQ%<@@1NjF5 zr_I-|{-pfLS>CHnq|q1PH7L*kTv~}ZWf;{VueXh$chH;JOjV=1qY_H=Qk`np|IJL(;;}+|Y8pRc^Z7^dfb! zeUtHyrZIqL!Ixf5)Bw__C`@n!X0nDdq7WwEdb_ZetBk^vjMUc?Q!|n2J zd;Zmk8aL{o@}y*A1#bZ_OhIAwmUG*=-pn`FvIoS)#W{HxoXe*HDP{^8+L+ z1C#Rp`u>*l$#t5!P(forIepDNv4Y>t$#z$`rxW zN*rY5Q3j>ZiLbGO9mz7F%`MOP@z#+LqmOkz*O%{@mbi2!-;x)X&A0eqHt6DGuM>bN zv~hFD-%@ALf^&IU1r)z`G!Rox&Kv8lpkx$ZF3&2dDUHZrVl{fq9iDI8pIIUGE-}`1 zf^5kbE-ImDIF>17*jpUDjvLQq)CJgb+@4aM@Wcnv2|LaXjJCVSN&M=`*kk;>6XlZe zq;6vWrWd})Jc9%S4tm!};vkEP)r%rc$Cu>Yz&?qrN)sK*FLf^3TJb`EnnuCp%U3TqVk{BLO+>RwJWom`W1R(`Vz}%)1@*@eBLRJ^tM9 z1{)4YTSk8Mc*$wAj(R#SX`nYqESqOr9ILOdM}1q-jkK0^-iB2*I5^#;BJmq`ocn%- zlz;q6M@nSu81!9?@3g6mrKN1qSS_N1c8;(CULl z`)aC6ZgDp!dzAH~-|3cEL`fmP>pK95in5n7i*(sAAf3~Ps-@~+Bu?(kT1HyRo^)QR z#?07UItw#(4WDt8haAy=wQr^9$A&new_AM~z@h-5gref{1uQ0l39VLdW!`%;ig{N%1vbd63$Y`B^RJWw)SZ^sGY zg^!r=4POEot%Dv4S@zu_ZVP(y6`vy5*XRiexl_qVHUrE%X$)$ja1LtC~Ry!zj(P%QUzPidEW5+@mn2CB6Tu zwep@ZbNkAB=67fn2?Rik>m9Q#t}>mXO^D1UlYDuT*>d&8ge)vPN_kb)uo+ZOr_;nF zm@)r^)3?p2Q+g$c2lj;lN1m4DA=Gs-quAQegxj~-*evg#giF|g5=f&}LplH>8hx!j2-oasO^q&G@&&u>X+LAhLd41%l+(fM@isO*np z1`#;X;!@G=cHY;&w1M={AbskAkgkHv9`R;No@dbYFe$<^KnxcgNVxdga~ec*18s(D zlF5zt&m*)ls3VTf*L{knBth8@T1<**gryX}FS!n%?NVcI%VcEtqIErO6Kuhg4pSj> z)g3bP$#VqH2dEn6dFm!{t^pkB5-?U109ad7~bm>}?kaI_Ri$KvDm$!uRNaO!HDS z{$Q&gp9a8E$kF#uxHgaO7@Iqx%sXq<(3D4-qN`owx@O;29Ma@_>h=YMx`OF7uR|7> zSA2g9S=7qdNq7lfj3R>{Jfx3hXmLS_(!0>N2PK8SMI6+n=$6%JSyF~t!KB-!gW+~oK!~}YO(!Tk?bJBS^`0cIPTn3^R>s6D}S$p^`abn(kog)EzA>$#1( zW0Q$wnTjqhZkmzTANJZz$!-_tb>y{EfCT37wT+&EL1qOJ3J7dlv~I>>c|2Klf~(PF zlubReT0*IQayeP9M6Dy<;*LbaYe6kfPoKj##_cJ(z`dNiT+d&%Fj-2o%b&ffMr&0nolSnM^u?HXft=k>v? zJfK19ca=%Vgu3!P-M zOoIe_$9N;h?M%Fdd-tf1q+!qYRF@Qcs!KHOSwk~HIkor-mz%?NVWsQdTpv$H^F1cX51I#E5@-|<0 zkpc9S`KJ+q*3~*hlb`)MjXn*NILvh45?^vSsf~q0krL~^!Fc6LrQi~f5&|%9O!4NK- z#s}U5+9;QYy;!Kb&q zu?=w{kdyPx+-v1;IJwvhp59vRdhEJ8Omry}HZrTErvW9WXO^CP`A{KAHSbNAit*Er z^XCCq?{Cp1^La2Lc5BONTf4J2RVgde)EH(m1TCS!!{C{5ukj~KYmWGtj`h&(f7#k- z9$)Vg50}9y!AM6*3Gf9TS_q4pva5W5zeG~NWW+pEJ@Z~%(0cH3 zt)zTO@;k8rmn7YT<8aSt=Z?tKu#k(Rl*BJ@R%2)tTW~H?nN4(mhjWchlaMa0wQsD_ zO*VD+J1Y?_mrmB5Ra<{fck@>W1QNqt=+l~3f6^cm^6B0JsJ3Qk{4GD>^J`SE|3(w= zu*JT?m|O$4PK(wAtxWYM^_rElj&I-d3Q0#aYd9kEVN3vSOJt~&NCM{Pdbs2-YDMqb zVH}dL5K2F~VbH_+y;>36iZzmD+IrzWo#9*z#JZhj8nz8{<)qRmuxPgp+myupQ;^tm zOW2Y(ZH=k_lwC7~qgaHWwgpNBot)wJR$z z>!$x}FE6ggmcHDk8=723iaglCB~`+0-EKlsUF)>2`pSnPQ0+_w^%3{Cl~J7nR*`@HzBzc@OvvBJ#40K9=!=?f-`aOgC_gAN>2o^M_%!1RkG7c)A5+8rJK`FiS z*(%ZGLIYdJTm^1Iz;8N&zpUk%-QHX&tMc6kd8vx0&9J;*-*>wh4HXrw7JqmIMz_DP zF)Iekqe!D3P5FLdqL)<_kGpu$du(gY;`Pm2Xf%3pWLa7%34wSAF}+ouDLhiZFBGX% z$eWUxEl9+qQnymmn*Gt+E0}w_7|hKTQvEPAt!(47j+Q+v(*D3WT0-9|AeijD#k9Y= zV^nwU5J~Ro9;YJ-AYKY?g@)uLuli@pp-|T{nTEHGUJC7nyll@@)q^|(54$+P84LLZ zmInO|EH$n`>eu>4RwM_^Cl@C)C>ai0v7t(>T3Vl5u>Fxg&v?GKV^014nV@&fesN0a z2Z2X9iV^X&#Q*6rfa*m(w4TO4SEuEG7#wY#4~I`-8~XE%Vjo?r|AB+bhUc%GdalLNa4s9#cp(p} zb~MIFh>sr+OH=)#&rTv`d|fz8@?GX=DAD-VVsj^%SveeYc@mWqqN4f-BgwnA`Pv@c z$$W~irJe`Nv+WWhRp1h&`Q*)u~VwQM8MW6hd&p zC(z`yp@l5HB>qqR+Yr%yMOQzwr))@-zu%6O63&8b^lNkbdcSOX*agktkQ5OW)1C+l zBpd(X6=pb9)zz_eLHT5&M@w zS6RT6Bb8HE`!gEI`IlP#^DjeIHb0P z$yX07CKXW7X(Y*ub7@wo07d1N#)F6V&uvM{LiG>@@l|@|aNphXnjKeY!_Et0)GAv= z%z=mjUJhD~9W#xCX{O7DSF&=y9dkp1fHrPNU-MlU2q_=8^6DI}`my7304257$e_iA z4zSmlOBF32y36#k&@u*(&82gt@H#ss|JE&g!+Wk);Tk2Y`U@Xu{8Bk)uA@5Fec^to zj#|%O;-HKGC%y!@v>x4GC7tj5s&hAzi!~b(8RnC0uV;VwCB(8w|5!EHB8XJrVmWmU z!}vms#gnsEQxw3FIMwl-<1hgN;oLQF>H0`|K8E}59zt0=c+2t*O{AkGp4`rx?#0%n zLUX?G2G*uFCZuM2waPU`Q9X*;IBOJ=}OWZrZh@fZ2x5r@+1|62~liWHK5oD!#!^p{Sq8dzAgHjm{3 zDdf+|39vq*3dl!}&s51TdCL8geu3K(P28YaA+P_~6)V*K_KN*?r@PaNM4U3cQ|az4 z>{`b>kKUQh-Z6GEF_zmX3l>oey_1aG+1fii-Vw0I2<^Ae^h)O_Fv1o!g2U~_QW6gwu0)X*H9VqZQkr(Rz!J>fHvW)*;%fjbF(|K$b z^gDlPL}VOzP(rZ5&iSLbpb(iHmum4|=oSm^>nesLwl9cjzo`}nt8E=+>0L%u8St0f zr^z#NhEII3T&`6ue3AefwP6}-0{!OG!4-4i73M{RY#Ovc?ISsDst{O%(`2%DavCN+>MB_prxh#62&h!XuKhb)^Y@uN@QaWz6=DysS~Fv z&T^uK6Tqw#!VJxz5U@#Un$AG?Q4W*=pKq+{d7u7^I`Ap*nO}C;yJYxy2b~t=TC%8j z2*uA(gnd`}d+KcwF?jeP6$Ry}UF>)RAQ?1yG<7x@R-pEYKK@HaET$ z5xNPOOCYb<^R=qP9{5@#t+kvLQUVeu_{=5>d|Ci$_=`q>lutLJ*v2@++uPcz??9s2 z-^RWZ(*7Gmo8u{d<*#l z3e4a7&>E{7JWq1NFdg(RB+Xh>=F&Dd^Af};Ek3eQ%N@RDYI}1CV6x=Qx(9Ozx))x! zYW+@}h9*XV-4Uokm)p_;J2uN_0GHqC`%)GrMzR;PD;@r3WE}Sv(<0{3OWB0U=o0JUZY7V zQXKsXDEJk>f|A9503}&5N1((5fRc%H=8gTvO1r;kp=OEi`a;gCXYtawAuvWqti%ZjI?oO<6`o>|jJU#+Ej4a@;upf8VwAv2t zN}(-k!mF#&T5(F~Ml#6j6F^0NrWCD-H3?&P4%t|pNa@?g;@m3`0IAgC?;7lsZcEOh znj1D|Tho=*2ZZ`Hilp6o-6A!yey3!qhJG63o7M%Zl?X zOyX?I5eCD;-VY!D(&mWO5p#j2`)Q|w|6!7 zleB2A#U=ZRItsVHQQ@EW`Fm?9dS(Lk-#H!sg&7+EIjac6-}Lv;6GQ&l2@!&+zFa>w zL6^@Lpo1BJQEJp8Qv>jI5tkHIg*365%TwJpXtD)uXAcQ@vYE~IXc)uEr2=hU4H4I% zNg|IF8Y8;IKuaqF%q-&(#~?nhZn^-rB@oTFbiFzTF-R&pb*gwOUTouGMvn~tN!&^9 zedjWHA>$g6%YS*d>37aPr1ab+Wj}Ot18)ov#yRR$w`wT>33IyQwNGQB(q7lEmmCgb z!8rfw-GSOu2KF88)c9kE4-H_9UdH^^q3H?wo?gDc|KWB3BIbMnnmA0uPjB`e`jtI_ z_xF$8T>xDeQ%SLU@ew~_?nO`^{dmz)_SoJGY~iv8nIX^0NW*T2kKb7G>;}tM8|H+0H(C96KPpI z6J@J!C)^xM!qO_o7VDAo`UjQ{;Klu7d@*C&uFSz^HfA|`8$#u}5L!IgEe3*AYZ`vy z1e>4WBZDcRLTr4guq#{^6kY;_Lz_F_xH&f>Uu?YjE%N!wYdKGPIk~8C?ZM9hRj;f- zEnvmW?YpqB0OlcvC61LQ3~~#%8p0Nw4c|gy@CJ?H>#{{_>Cq2$} zy|3Kak9bAc@ep(Huofl62T%YI^LXhm zgVRJhS4E5!fi6ddbn{QrzrS49PwC$e8Q34~sWhk1A_;%A1d)l&C>D&k6hBMIqBMv# zbB6JD5$Ix0%jeek*R<|(n{mw&qjsg)5)u+rNjE#EP8s@laGHCx`q#*qfYBZ2Esqo1 z53frRrHWaqKI)CXYWB4-E-oNOWYKwQlh~&LjOIB=sL_L2pu6>P_9{A|N;nAvQS_p1 z{*=c?jji+9GhU6wAuh>T9G$DNpI;R3_B8-ffOZ&0NOsv=5G@bDtLE(kmJ42H(xgLu z0QTiaXMk43l$_*YY^C3_qHLT0u1vww4eOecm*Rs!e)*4Ws4gcew5@V^>nyU#mXa$O z%JcrqZE#%Y47CnITm*0wXl34~4LFKYdH!WvK)}gb0ZTSStKY8Po~`zVp)RK%m}*qh zj_)pvU|X47HL7rRsTgLEy9=zf%O;2p`bjAsIOa7`XJkpa7@Vgvc}l7xcWafWe0Nh# zwc=BNR@s_|4X1D2o&3{Zd2@XD^KpT0Cm&VW{S%5}D-!|i(8o)XMmrKNOjFnh6eQDqZXq8(}0h>}vN(!nqAw$wwnrB={w7R-F>^dKWjK|rmysJ*1 zl*IOI+3F7a_GIKbPzk6$!aYe<1O;rK+bRu(QTmNX|F!27aO!_MK%>aw(irU}`>O*? zb?XO}##3ND)HvBI#O6yB4iKjF?aJ=~(INw!`rNG>N;cW|NvZTeZt>%{2st8wD-JYY zPh#g3>HkyNnDp82voSD5{A;r?{vXE=yS-&fO!+4As)n+|xSyg-i0J3nt=G&?!}2tQ zbFh}yL8FFVw&TNa9p$UCURHDZ-S_L8sQdTcZ+|1dZh4|+*2pqPNz;$c66uw+K0t^96zYbpKk!cY!0Do$Z`s03k~Wr6==o1f zw6vmK>K(FTpKJATNut3pE~UlBv(`KIdXqjpgEH#pMG(BcODDZ~;o!Vm_4r5WSrr z1K@2`*%)n22*-&WtMSGIrT<<(#bkgXh{MQNlCQ{(wLCdx1J6!%+hH&RC{a1}zgan; z<~^Fe%!1KIa*4Zlwkb;m^l6PZR==AkFX@Fc|PR(~ti4%1IIg?B=AU_XaA? z$!G@$y-Vf?YT3O;N>9FX5<30&^_@KEq{Pbrc*14(%}RGMX=(A>Pz3`Zl3ZQJDFNFe zw0OY=-AAFBz&ujo^f>|Z=qLr6w}=@9ynCmV4>cTUCR4lx;%++ptR$Z|Eu>beT(KH7%PN}LIg7gs(Z9ZH140JZg z#Z4Uq3tzp_&R`A|ifD70Ni8d9nFD3$zf3 z940y#(34);&A=h9U!oQgDQDU_Kna3uwGmq!OS!V$WMVTt0IzTN6-;fmlaiVCwgxO> z=pczLK5W9e1chkEE=AU@sr=pGugB9eu)*n`j4M=S@YMT|-C8`qu{yweP({zy?J8?* zppCLOHqMG^wW-BUK+?1_RrxyhGVN5(n&21`F%2F8D2d5ELl37Mn z+x*H$0bf*C8eFNSEYT}B4D}4OP{Hgig)B`Ije(pZ^q7lL_b3h~JT*Z4_y-!EkGqmwiRxf26qqulesZH+w`ddRC|KSb@op&3qQ=-_W`mK+v0Re-h?+ruxnL+)<0lHM8_ zpW@Goxo5!O2@LqJnopY}USSUt5i;;G$Y|ohe6Y=fY>L@Lq~1o@B{nxE<0o(oy*I@_ z=)j~s`~OV`#vr-dZ(-u0ilpwQ>&QJyh23_qs{WZHX&2=YXp?NSUX)P&J z7dh5Fwv#zyn~z37O$2iC^6?kowG(sSKclQ%{Xobgo2~NZ=5YKTkx~0*xfLL1PRd9$hEUnddY% zE#5IiN3$=XT#%%QzME)2&^DG}hD+IOr`t)aJgpH3%4Up0cSI?D;yDLk7n#KBk7LMbs3!)b`dlYX?h=!dY#JJFThB{y2?oH8C7#J4_ z&Xc`*P0fr=O=w(59T!8*wL~bp655J!0_99M+#DIY>bTpjr}M>8cKn5e)r>(tFus`g$ehL7Pes^xn-N(heGi#8L8P4{wk!_tZ!sXCm?9QD8Swks6L zR%;Zbl5uD*PlooVnoa;k*X9$;*veKaB2EHCB~`Qn(U$8@*__|K^Ue`me4pXN!&gsP zIG3EwDgU&5X>zP#zGr)0XU%@mYa~3`)plWAT_Ws5EqtQRtZ*?rJY2~<_&xspI204q zf03wVaCW-88wH(Z#DvsPoFtn`JLV2|CO9{-!_;NgHX11)pLtFW^(OJ_TOG4r|LG{Y z4Ea>HG33?nmtrJ8h4NG=J&asqp=@51q5Iw#KA5&+(k?a)y>>_8ONi%Y%EPdPyMw8$ z0s?BzGi1q{1=h0F-en_IUtMSg4 zzU7#BIAXB6_e1Jl%}Pez6|AhjLScvQ zOamgW$TpF7AhI>A5`tM3z|$Y=z6)hjkGEi}$c%_Ej_i$zVl97PsY$Y)rbo_KOL4=Y z)I~W*o`htiKi1zW!GAGqW9D4b+N?Sd{-wgaUh#L^yu57ZH=MV^A!#udP=;s7p!L6ozTRHhkQZB)wD82j1{!^KaKwZmQ5-Ym%h~ z&r|vMz?({$r-7f_4r+wUZ%&-^JrNpG$ND9nNXz_EqoN4^8wLRja84=$=m3T zqpIk}-$cLUKW%@)SydSJ1K+w%3aJDg)jJrFWo-pd(l6XH#)FVCc=%z(oRI=ohNo^@Z*EeKzQo0 zGug&Sravedi`h=c57hOn^dGy#&dW$j^7DAR5pciEY{#NM^Gv(|OBZoTM6!0M4sT>G z`g04O?x!prGYo`hS<&i6KG+Y@h5?fld`GKUT1%11s(2MG^I=-YlKhd^@VKIEqJ!f7 z8`H<3x`94AYRf>)SCul=!Xoy`{Y{l*c0o5@@E`DZ?S|v=+%|yT^^@-tYV4xS8 zZNRN0P%eO_p*jTRA@Z4oeWE!z_fEeE;nGtCkIbK#&EQ`s0s&}<{z9ndA|DBPH3=`Z$LgYc=&Ls>B$zNQogN{q zhmm&IaxJm;_fOB>3T{!7kBp8QE+AI9>`~S@s6ohtfk98Hy;l^OfXrm4nKW>x_T(3f zE2PP@J_!#Dgv+!@A%4(`q}*P&MD=BZkv{1$rKN(f$!;YA#vt2*EZKyB;{LA#`cOT% z?O=2Qo^CUY>SKSgJq?Az@cP+npdnAz~A_ zO?uK}X==cf4oSz6%bn#F8OkHL=?<{jbR1w~o0EehRx@X2*0sur$*V8^7(A3kfTN?& z`6gqFoO*zcO)k1sNmk$mJk39xG!K^jjhspu*sG`|GAyY`V(^bE`=N9-SMos^Z3PxY zt-w^y!69s>$Th~aB+pBL*TJ#p0fSWWS{&xakA@ejb0fFG2v21Wy_R-cuaIOp4?@zp zHFI!?uW~Sxl6A%`su#MtT%=I3wGr;v@ilKcjOdG7eYsiLq8p<^qjXujl*K9qpF=4s zS_J|j-|>654&M5}Uxw-523Jr2Phb7IbP1kszR6%L7L~nhvvhsYavw#RseA`x@CWBj zT$BF%{xVvPS(lTDEL%K4{1kcES%1B5tNdYU47!XWGb`B@LKCPTN>#Ba3Zq-g%^rj% zwu6qXzbiNd$Z1kYAx%{UfHQKA=ySeWzl_)aIP{A2-n+f+LjQQebI=oP^cHS$$O>3- z`l4>avoI~S8eo!x$#U}auEa?iH`ulQSVk{-!sT2>mj z*$r`*&yj;uQxPKN^Z{c#BqOtWbGt5KrMunb91^xsmY!eYryXW5E#eT7U4DMkW#aXs~Wl@l&Z)m*iB{ma$CwnDwVZ~Y@Q{JL016AX# zwC$i8@!N=QjQKl=j9==hQa7Np1?_+1Fsy%e|kPh$Rr z$fKhSe0=vA07l-L?Yiy$g1BNg*9s^RPt{c5`PP|TT_~Y7@}T60Ujcc(_wpdkejbeq zS&Ih9V#^0^j)~3#&)#O-kfzJm9Z>5-c=E8R6(mX;Hl12FDtffd+8I-xt1aW;NNQ5OBvUY$EFHn88h8K&srHGfgqm# zQxNJrCZzeR?zcLkJeO_EU{(!PieBz^7p^n{2T2(ln|v{E$}Fl7W(6@Zdt3csb(Udu zg{6h6`VE^_t&!2;RE^0R{;l_SyjNfW+{^tWVe^AUK+dKxNr(e$lz|YB1b~woe;Me1 z3jMlc{xiWU;VzD^cjbxVEAH^8*Iw!zj8D7y=oB&eDQ+%*^>=$|=UIy0|2A>|n~_PMrRJ~@rgMk$o`ej~p|i^ccBan<=q?4n<%#0V%}C`? zo0eO9@b;oRO$);lb9qkol|wau1Grxm&11qIW^HFdoabY3iSVuTr~2|;!~;Ol=g@`$ z?BsoPhpO@lDeIM`TNxdY7(Rre5-T<)4FvygWcF`HD*Y588BK^j0*Rm~#TpJ$ACRE5t-aoJ~Xa{{7>cS0xsi-<#A* z20wTxBQBmZ=G=Xy@Wf=kX~zT?Zil}@>M2|QbY|K8NOmt_YxNN^x#;y23+#Fj$$q?d z!kq{_wqFk1iF_{TCd?AeKfjkv_cA5`wM_Jxe|f;_7XLKxAttw%j4e6o{_h3f;3{d3 zptm}J-Xo`mtk(AGtLVTVwG*I7h$Y{#Lf2Poc~d@5`LlUeHK~&%OZB@;SYTRaGi7&Y z4vL}DCuUvw>K5{xJU{oKBiMu8;hT5wnxglh_+8x}PLh}q3ryd-@7r6Cu2DZxe0ghs z7t7H_)u;El@n^G7N4c*YtYDPf_{@73q#|r%XgzMa@vzEz`t-#K8aDm39362rV!kVM zw?Cqbx1d*zRqGMwe1DuH_y4>JuJ>+T`Z@Rg4@{I43{)vPxsNKR53W}*>1%)G1f;l> zFHT<|_pqS3{3!Ngu1}_1=m%LsG08elGzUUV{{N1*(V8?5q;ODvQ#b4Vn0rk4Ei@9z zT5;D<{N3koNqOMl3agaw9!JH$G7p&+i&PGoqkcJwxNm5f z!&WeHeXm$y@s|{78!MX^mx!fe2zz9{YB?Z6M@xIk)-65#-iac6d+}>oqB&<5B!{`` zx*0Zl)`ZlpOD@kA*^l80IT=Vm2To#jyXCFZJ=zOFY*giu_3Jb_uuaK%n*kn6$)5wa zFH4_0(Y*N$)NAEV*G0nz%wGAPOm<|=0;lV+mAKxo^>jJ)59ztyNuYNRm3IJwI$mUGrg`-yF`J0!O_an)p5$}#89n$5e zPXShH0`Z&bVkN_`-~Ul*@ALh$7`{I_ByaY9FUE0nX)kl0y_)pb?~mc#Uzlo!=Imd; ze)-bg=fkDr14NIMz~J{{?SDR&H22W}YOrSd*n4Xe=Wi5uD2qq0hMUGd>%w?+>CNH&OS!=0eo#{>fcUD)V-^oLq#(@3K3$u3Q&Q4bOh`n=>+M$j znURJRt6IfW`Rv=VpVO6#Q~{EW2Tq9b=SW}Kz%*7lP=|NPWjnt*^#FBMq%@0&wQcAM z&GPsi+aj*&239v^SG|0b-pt2vO@tYfVv4ShA*wGnLHsSN4$;L{M#V_x&2=Ro$933r zW3wXQs5%mLXo4A4F7h>;vb3@SW#ndy4=}Pu}YHzp~lb} zv8eTB#v$XAOjFEK7!fBi_45x=5{LHI%uZV&OV zyeTpT&I7w!k^{IROXu^<+Lb{M;zh{9JRNkrgJ%E?LJJ_(n3n>a=<~bG!B!3+(6o*@ zEu{=Z-v9$j?Dt5~>2bbzJq3RZL%?|z7v$CthR&l) z){ZayNjno^D?7{uZYF)>ZF8p@UVAY=lBHV}*?OL7(xnb;Hyz<-Wl6FL;uCR;lSJzg zQ^YvO$5tVsOPs)Fce7x%G^$btyWMbMk?Pa?bhVuOl#$V0fadH{(Thm6Uli#IpmJ68 zN>ozTBS?Jua3PGUWlo08usxB5f3lJPobT;7!=M75SmLLfsKWPcmB1gct|$c_!2V~! zW&@?@Q}i+cy{c#_n=|8V{@!75Kw)BHe*2ji_V|giDrKRKPLtlHk2H4>tIeh}G3H+b zX<)F=64rCKHnI3w2@49I4$ivOA3xy>*t`bR$Mu)G39m^~Z8sQ9hiM>wO4}Thb9`s4WMiev+1ZqZQ+jK(SCoHcoTlH^)wRY0R2nQxV)(7& zXWt<_;nydY3&7bCTuo7np8PQV$|3rV1R46;8hQs0A3F{K5JLwx zq|RXJ(BH$q;CIV^5l3@OZ4eaC#(V4ewPf(v@?<}JsME?1mvq#nL4XFnr77J^=C^y! zPL&5%Bu2n-X0REzEJb!@i$cbo~pYw1l>h}QKBOLu1e_yHor#DHIxcE>EUJ%(cfEU8lc|M#d%2{GcQEVs?bZxxbg>Z_E?QUcYB*zSNmi{oLQ>@D`o3 z9rnvTyQ%b#&H5?$nMfX#_0n$I>9TD7^a5a}p(dNcTilGmo6-%%lt%NZje?q!1E0CQ zSHzgp?n!#YkY(p&{bcDhkI@1Fy}*^4ebEI%`-h~XO35D+W|lw56Ur_(URBKoBBolc zv)-fj(>G$sRK#IA03t&vIr@Zx!Dry*J9{w>p_#=BHF-7(xG(ytxab*eTuYjdsq)~b zNLk~ZaVHvPnkikW4wirHQL`Yqejh@x7Dg2_NwSL-)F=Dh*D23{BEaj;J6zhz*3*2N zjW+BQ!WpZDX0*lqO{;{F5`X5|L|NjSKBymQK^Go%9(>taXo)8+<C zB#L}GY9gA4=HB2=t71*mU#B1)$|b{^`W~4}nx?9B)`%WQh10&HGyUz!Zk;*DgurwD zY+JGl&g#5*G=m(-N{t$+N7oZoxM_yc{1klRS!F z0I8==9gvo8^_7oA3Wv^Yel`+SF!oLF79~5_A6pr?arVq0g62fXZ;w?xKx6@~PC#K4 zBF8nE6Il=4@_KfJQAUNL7|2}Ahs-ni;;a$Fx=)>TM+o={n7!`0bs}3XX`MBJBZkF& zJ9N@3>DX2D`4X_Swu8{9sbMWtsCxvp%g>GoL7rQ=SyL7(SMi(~ftiDA=Nr;}_A))y5R|2cjzKNTokL*`Oyl; zHs~(t?;}}isF(k78o01fi%zEs|H>a5Cio8(Ef&#+Az}*SeBVX=e`XMprfBu|-R|Nc zsPfko8nx79!62mZFsi@h8x^UYSZT=^ENN%O~p(j$H` zYS-QE%#D_{-vrHhH!pbgGam<;^!G%(_WGd~aVIcjsSXHaBXVRxY`m%HsSlfM@vXzs zx{T#FmuR8MEwS4oq-ef=zwtCsU% zvci?`_WyIN_~2nv#2&HxrI#_-@CT89W&`u{S;uPj0fa`}Gcsqg(SPL6F1l(#;BP z9lwYU>FfdC-04#Q<~Rajjv~)yXKo$89$d6+cc0+Hp4GCsn zKr*~ZwtsNuo4DI~rQ@x?| zd*Zy3Lty>vi#$xrosYZ!6pSW39@i2$)Boqu@9+)4epG0adg3;( z|1Vexu$V72mC+Bu>$u0hX2>DU4)mJ6GZNy+25mWN9L5^#<@VTLwc zkNPQu=ziIrf-erB)jM9a{E??^X!#eEUN!1((E!N)R|-VaAzL+%MOr?EyA?WDoe;v#h@Wf!1QT1sdIbnzDpW#Ge@rg6bx!s;ZPe)=6f{eZy^mTG@ot zFn*E1Y#knr=k!|3e4sbw`IchwCE7O#xdAPE84Tq?=W!n6*tGbUI^qFVLI-Qd1yb!h zS1x9z2N~74)|e|8CcgOi5nZ|bIf&9DuIvON)&1-z-fy6~T36+uu`heR3bBhTZ9f5B zA)iW`{lMv-*g){AG`G34@Y-(>uM1zM?)0uWAEue@pc8IXRVIhFZUHF-dPS%cnUP-- z$!Q*|HRc}#XsPSQ+kFiU1@_Qt(`(B{l#=J$sLuT_@Au#aiwHqgvrqXM={j4S2C5BB zDp7~6@e?+cv_3D|lUColm4>Gh_{^mU(dpUJ%li5-!d~^(-a|o0W9cgPU%J&6CoDGS z9}LYDB!5IkRo&`U$TP{!=(FyAce-u{WV_!NA*N(13or1xQC$F6_6|PD%#1=Knf;_6 zyYKvro9oBD+@i4BS|VxJ?bzEph6;;HpR=B072p zdOLxczw`oH$43&(Zch|(Ae{NOqCEPIq#nQ0z#q4N9Z$9zh;<3>f&Y(75Y z0oimOolm|23_o%kKux17ETnwb$`av=3$FUg_OhA5I-BLtW)5@)=c zRVuDd`%tP+HM{y&&HVI%+XJu6jR%t_2KL?k*Pi=xC+C7{(oG-XNRdqj*V-)Ud2V&9 z%RgAHsct7Vh(Se_DB92f^G?$v*dn}PTB?4m5SA#56qZz{$??QemV_l zd%h#uOBKrVkUgkxO@ENc5{&O%FdcEs=zzVHY8C9#-!J9w58jZ=#%tsmJgT96} zbl)q2nqS~fPFbY4U8-bE*2?N6xzHD+XriDkCGfe%{Xc{SPF)M~{$x_&DV_D=h0mM= z4{GqCG94}q1zb)QXY8E*f`?8oNGoT=&xB{6w&{qw(gB>!Z;hz&`uHE? z^0b2;a-|YJj=}2JJi{^AX!)wy^vaPkasShV!vhr~^BiI91w{dU&)b^8wxH(kejn5v zJyTHM)p@$$ynx2Vii!%#z=%LQ%du8mVpf73p(h?__e9Nx&{0#qI6YQ3*@m?cw(=My z8Vr|q*13mWRB|>k#`P~bHi!4#PxIL2;y!9sF>3X;krO&2=>bXi#<4I(so*mzn+vJL z_J9Y5b+z6TPai9wLjPPKnw@5SyvX#`R<;^6a=@UUtH*j2@_Ifvlz** zw^vNgd^%>y>IHv?+q1dbmKEf$#Zn(wgCkLz&5rJ))h+3YR8q~8)G8qr@5AnC=6$a& zooDhrt6Dns%sX43VC_AS_gG#9UbkFAtbvh$OeHz&ssU15-DL54t0Ao*FWt{G`0rQ+ z5V>px!loPcy^veE-iip#RC4L5?9?i_npG0dT7E3PSEaE=yA1g{9*N)mZ}iu&G^EBQ zXtZ!_(!4K%yNRGu%@uG=uIk{`&H)RomzxfmXnE(WVkkSLl(|R8T)mVSM(9XiO{%r2 z)?&`Cl!HPCwx>@z{)4zPDZJ1BqmkPD&_>4FaPz*h+f`jdjuS;jeqN(9u2McoLI>@b z59e||aDgM4V-tz)rkl3&;_4G@0!B2-TYM2YGx_Pn>Qe!$EJ0cvOCfw;ArQ-0yi)2b z$1dAcZ(48PE2o&+W#{K0E3DHg6;Bj~{HH3tEA?9>vXHHHBrzz?XI7VP2t=x(Ctr4o z+{p?;pwd=I*p#*eS@=5Iwi*mWePiZGq`F0l^6joDO*yoigz`$3QCnYhmh9fwCRuI5 z`21E_GV|vl&%$6&SJ;nj!5DIGn$J6rJUIPCd*Z_L6=t2b=nPTOqTH2)2$jl?nrHrC zzA5iiU;3`dpt!^^Kv^f};SZVUp}Rcy%6ZLHIbvZ5I`el8rT96}M#lB7@&JY+5EL)B zWIooGfRwo4e?Gwl_EN9XA6%I%1D1sUxxs+)uQl4%kL@GaN&<5bW7$VSGXq>hsoR1D zR7cM+&43!z^SxK1qP%hmD;wEU*#2doH?v!LaJiFJmNhelfc$t5cW@w)^g(3|NW=I} zZfKhgMnO-`YCiR;@lz7>BdOA>>nsmTW81=FiW`X>S%`RjAwm>EL);wsuISd`?@x;F z=nd?&#H+5h``WP5S3+k2Oa-Yk%+ZD*;WUHtGCZ8`7!L?pm{{Riav5vG`;F(epoqmf zA{)GET1W3RI?7qhhAt5gkWEp_gI{v5C5{kR{N8tWQnJ(IE8x4WeaCLngmo@my5xtP z?iW?^!f??|ZE_6wD%3iDQBgq3$B< zu$(jnywwnRm~yha%egoH{kcMf&hxM-*@wIRi6f+eXOuQBaBJZ85IBjZJAJ#y-G93S z)E^U5|Bbu9qz^Ry&{%}1V8V5p*x%&s> zAQzX7@w?VF-{pk}BWd?YiM#(94~Q_2j4?O334BHd8vpr4>BrnAgY{5Ul$7AJTfa-< z0u|t)3{x8~qJYFHeCG2V%((l)O5_yO)id*k1rT#6NtAbLYUBrk=dj)$v_ypP7_YhRMBOp|l(p zI=OYZ+P3EMiVAhsmLLEOlV z>w}WOdP3G1uq>yWj6W#oi;gQ0g~`5wizQW0+}Df!y2g$XB6H;n;=QALtV9tK`=H&@ z`%Qa1^4x!c4;=0|^J(+br%#CrZ{ze8glFbZLBjksS3Z?~T>M2QHm$B1-p!ahm$pTx zi2EpWa~Cv2Ef8*PghJ}BaWVh0%=}tJ@F5Tboc87`muvm^ru_QvpF;3bVq!f0J@+)A zef!k~Y@;CvaysQve2kl=xz7}PhM@T87M-qkxoGY~^*^Sbwh5Sbhiz~C#~oZ>`PC*_ r2|kyRV)+*by#LEZ|Dzws?k|z*L+-2*RIpkH{w`@7XceBj7V`f9?S3}` literal 0 HcmV?d00001 diff --git a/packages/panw_metrics/manifest.yml b/packages/panw_metrics/manifest.yml index 14dad74bc0f..50da5edc494 100644 --- a/packages/panw_metrics/manifest.yml +++ b/packages/panw_metrics/manifest.yml @@ -17,6 +17,23 @@ icons: title: PANW logo size: 32x32 type: image/svg+xml +screenshots: + - src: /img/panw_interfaces_dashboard.png + title: Palo Alto Networks Interfaces dashboard + size: 1678x2181 + type: image/png + - src: /img/panw_routing_dashboard.png + title: Palo Alto Networks Routing dashboard + size: 1717x1721 + type: image/png + - src: /img/panw_system_dashboard.png + title: Palo Alto Networks System dashboard + size: 1678x2973 + type: image/png + - src: /img/panw_vpn_dashboard.png + title: Palo Alto Networks VPN dashboard + size: 1678x2181 + type: image/png vars: - name: host_ip type: text From e3e3c7495d49563520abed09969e76c02036da5b Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Mon, 7 Oct 2024 19:54:26 +0300 Subject: [PATCH 49/50] add missing datastream filter reference --- .../panw_metrics-c100764a-f935-4c7b-a0d0-7622c4e19f6f.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/panw_metrics/kibana/dashboard/panw_metrics-c100764a-f935-4c7b-a0d0-7622c4e19f6f.json b/packages/panw_metrics/kibana/dashboard/panw_metrics-c100764a-f935-4c7b-a0d0-7622c4e19f6f.json index b6d1ec8b717..ce8669651ae 100644 --- a/packages/panw_metrics/kibana/dashboard/panw_metrics-c100764a-f935-4c7b-a0d0-7622c4e19f6f.json +++ b/packages/panw_metrics/kibana/dashboard/panw_metrics-c100764a-f935-4c7b-a0d0-7622c4e19f6f.json @@ -1428,6 +1428,11 @@ "title": "[Metrics Palo Alto Networks] Routing Overview" }, "references": [ + { + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern", + "id": "metrics-*" + }, { "type": "index-pattern", "id": "metrics-*", From 4e511c63e269c6e3cb471b3c2ae23125250f3ae2 Mon Sep 17 00:00:00 2001 From: Gabriel Pop Date: Mon, 7 Oct 2024 19:54:33 +0300 Subject: [PATCH 50/50] update docs --- packages/panw_metrics/docs/README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/panw_metrics/docs/README.md b/packages/panw_metrics/docs/README.md index 68e88121249..85fedafd4e7 100644 --- a/packages/panw_metrics/docs/README.md +++ b/packages/panw_metrics/docs/README.md @@ -359,12 +359,12 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | | | | host.name | Name of the host. It can contain what hostname returns on Unix systems, the fully qualified domain name (FQDN), or a name specified by the user. The recommended value is the lowercase FQDN of the host. | keyword | | | | panw.routing.bgp.aggregate_confed_as | Indicates that Autonomous System (AS) aggregation is enabled for the confederation | boolean | | | -| panw.routing.bgp.connect_retry_interval | The interval (in seconds) between connection retries | long | s | gauge | +| panw.routing.bgp.connect_retry_interval | The interval between connection retries | long | s | gauge | | panw.routing.bgp.established_counts | Number of times the BGP session has successfully transitioned to the "Established" state | long | | gauge | | panw.routing.bgp.holdtime | Time in seconds that the BGP peer will wait for a keepalive message, negotiated between peers | long | s | gauge | -| panw.routing.bgp.holdtime_config | Represents the locally configured hold time on this peer (in seconds) | long | s | gauge | -| panw.routing.bgp.idle_hold | The idle hold time (in seconds) before retrying a connection after failure | long | s | gauge | -| panw.routing.bgp.keepalive | The interval (in seconds) at which BGP keepalive messages are sent, negotiated between peers | long | s | gauge | +| panw.routing.bgp.holdtime_config | Represents the locally configured hold time on this peer | long | s | gauge | +| panw.routing.bgp.idle_hold | The idle hold time before retrying a connection after failure | long | s | gauge | +| panw.routing.bgp.keepalive | The interval at which BGP keepalive messages are sent, negotiated between peers | long | s | gauge | | panw.routing.bgp.keepalive_config | The keepalive configured on this peer | long | s | gauge | | panw.routing.bgp.last_error | The last BGP error message received from the peer | keyword | | | | panw.routing.bgp.last_update_age | Time in seconds since the last update message was received from the peer | long | s | gauge | @@ -378,7 +378,7 @@ Please refer to the following [document](https://www.elastic.co/guide/en/ecs/cur | panw.routing.bgp.nexthop_peer | Indicates whether the peer is being used as the next-hop for the routes received from this peerfields. | boolean | | | | panw.routing.bgp.nexthop_self | Whether the router is configured to use itself as the next-hop for routes sent to this peer | boolean | | | | panw.routing.bgp.nexthop_thirdparty | Third-party next-hop feature is enabled | boolean | | | -| panw.routing.bgp.open_delay | Delay before sending an Open message (in seconds) | long | s | gauge | +| panw.routing.bgp.open_delay | Delay before sending an Open message | long | s | gauge | | panw.routing.bgp.orf_entry_received | Number of ORF (Outbound Route Filtering) entries received from the peer | long | | gauge | | panw.routing.bgp.passive | Indicates if the BGP peer is in passive mode: if yes then router will not initiate a connection to the peer | boolean | | | | panw.routing.bgp.password_set | Indicates whether a password is set for the BGP peer | boolean | | |

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