Templates Datacom DmOS
This commit is contained in:
@@ -4,7 +4,9 @@
|
||||
|
||||
Template desenvolvido para monitoramento de equipamentos Datacom com sistema operacional **DmOS** via **SNMPv1/v2c**, compatível com o **Zabbix 7.2** ou superior.
|
||||
|
||||
Realiza o monitoramento completo de disponibilidade (ICMP), informações de sistema, interfaces de rede, CPU, memória, ventiladores (FANs), sensores de temperatura e fontes de alimentação (PSU), fazendo uso extensivo de **Low-Level Discovery (LLD)** para descoberta automática de componentes.
|
||||
Realiza o monitoramento de disponibilidade (ICMP), informações de sistema, CPU, memória, ventiladores (FANs), sensores de temperatura e fontes de alimentação (PSU), fazendo uso extensivo de **Low-Level Discovery (LLD)** para descoberta automática de componentes.
|
||||
|
||||
> **Nota:** O monitoramento de interfaces de rede está disponível em um template separado.
|
||||
|
||||
---
|
||||
|
||||
@@ -28,10 +30,9 @@ Para o correto funcionamento das coletas SNMP, é necessário que os arquivos de
|
||||
copy mibs
|
||||
```
|
||||
|
||||
Em seguida, disponibilize os arquivos no diretório de MIBs do Zabbix (geralmente `/usr/share/snmp/mibs/` ou `/etc/snmp/mibs/`). As MIBs utilizadas por este template são:
|
||||
Em seguida, disponibilize os arquivos no diretório de MIBs do servidor Zabbix (geralmente `/usr/share/snmp/mibs/` ou `/etc/snmp/mibs/`). As MIBs utilizadas por este template são:
|
||||
|
||||
- `SNMPv2-MIB`
|
||||
- `IF-MIB`
|
||||
- `DMOS-SYSMON-MIB`
|
||||
- `DMOS-HW-MONITOR-MIB`
|
||||
|
||||
@@ -57,33 +58,7 @@ chmod +x /usr/lib/zabbix/externalscripts/dmos_hardware_monitor_mib_psu.py
|
||||
|
||||
## Configuração
|
||||
|
||||
### SNMP
|
||||
|
||||
Configure o host no Zabbix com interface **SNMP** apontando para o IP do equipamento. A macro `{$SNMP_COMMUNITY}` deve ser definida no host com a community correta:
|
||||
|
||||
| Macro | Valor padrão | Descrição |
|
||||
|-------------------|-------------|----------------------------------|
|
||||
| `{$SNMP_COMMUNITY}` | `public` | Community SNMP do equipamento |
|
||||
|
||||
### Filtros de Interface
|
||||
|
||||
As interfaces descobertas podem ser filtradas pelas seguintes macros. Altere os valores conforme necessário no host ou template:
|
||||
|
||||
| Macro | Valor padrão | Descrição |
|
||||
|-------|-------------|-----------|
|
||||
| `{$NET.IF.IFNAME.MATCHES}` | `^.*$` | Regex de nomes de interface a incluir |
|
||||
| `{$NET.IF.IFNAME.NOT_MATCHES}` | `(^Software Loopback...\|^NULL...\|^[Ll]o...\|docker...\|br-...)` | Exclui loopbacks, docker e similares |
|
||||
| `{$NET.IF.IFADMINSTATUS.MATCHES}` | `^.*` | Status administrativo a incluir |
|
||||
| `{$NET.IF.IFADMINSTATUS.NOT_MATCHES}` | `^2$` | Exclui interfaces administrativamente down |
|
||||
| `{$NET.IF.IFOPERSTATUS.MATCHES}` | `^u\|^1` | Status operacional a incluir |
|
||||
| `{$NET.IF.IFOPERSTATUS.NOT_MATCHES}` | `^6$` | Exclui interfaces notPresent |
|
||||
| `{$NET.IF.IFALIAS.MATCHES}` | `.*` | Filtra por alias |
|
||||
| `{$NET.IF.IFALIAS.NOT_MATCHES}` | `CHANGE_IF_NEEDED` | Desabilitado por padrão |
|
||||
| `{$NET.IF.IFDESCR.MATCHES}` | `.*` | Filtra por descrição |
|
||||
| `{$NET.IF.IFDESCR.NOT_MATCHES}` | `CHANGE_IF_NEEDED` | Desabilitado por padrão |
|
||||
| `{$NET.IF.IFTYPE.MATCHES}` | `.*` | Filtra por tipo de interface |
|
||||
| `{$NET.IF.IFTYPE.NOT_MATCHES}` | `CHANGE_IF_NEEDED` | Desabilitado por padrão |
|
||||
| `{$IFCONTROL}` | `1` | Habilita alertas de link down (0 = desabilita) |
|
||||
Configure o host no Zabbix com interface **SNMP** apontando para o IP do equipamento. Defina a macro `{$SNMP_COMMUNITY}` no host com a community correta.
|
||||
|
||||
---
|
||||
|
||||
@@ -103,11 +78,11 @@ As interfaces descobertas podem ser filtradas pelas seguintes macros. Altere os
|
||||
|
||||
### Disponibilidade (ICMP)
|
||||
|
||||
| Item | Chave | Intervalo | Retenção |
|
||||
|------|-------|-----------|---------|
|
||||
| ICMP Ping | `icmpping` | padrão | 90 dias |
|
||||
| ICMP Loss | `icmppingloss` | padrão | 90 dias |
|
||||
| ICMP Response Time | `icmppingsec` | padrão | 90 dias |
|
||||
| Item | Chave | Retenção |
|
||||
|------|-------|---------|
|
||||
| ICMP Ping | `icmpping` | 90 dias |
|
||||
| ICMP Loss | `icmppingloss` | 90 dias |
|
||||
| ICMP Response Time | `icmppingsec` | 90 dias |
|
||||
|
||||
### Traps SNMP
|
||||
|
||||
@@ -119,45 +94,33 @@ As interfaces descobertas podem ser filtradas pelas seguintes macros. Altere os
|
||||
|
||||
## Regras de Descoberta (LLD)
|
||||
|
||||
### 1. SNMP Discovery — Network Interfaces
|
||||
### 1. SNMP Discovery — PSU
|
||||
|
||||
**Chave:** `net.if.discovery`
|
||||
**Tipo:** SNMP Agent (IF-MIB)
|
||||
**Intervalo:** 1 hora
|
||||
**Chave:** `dmos_hardware_monitor_mib_psu.py["{HOST.CONN}", "{$SNMP_COMMUNITY}"]`
|
||||
**Tipo:** External Check (script Python)
|
||||
**Intervalo:** 60 min
|
||||
|
||||
> ⚠️ **Requer** o script `dmos_hardware_monitor_mib_psu.py` instalado no diretório de scripts externos do Zabbix.
|
||||
|
||||
**Variáveis descobertas:**
|
||||
|
||||
| Macro | Descrição |
|
||||
|-------|-----------|
|
||||
| `{#IFNAME}` | Nome da interface |
|
||||
| `{#IFALIAS}` | Alias/descrição da interface |
|
||||
| `{#IFDESCR}` | Descrição do IF-MIB |
|
||||
| `{#IFOPERSTATUS}` | Status operacional |
|
||||
| `{#IFADMINSTATUS}` | Status administrativo |
|
||||
| `{#IFTYPE}` | Tipo de interface |
|
||||
| `{#SNMPINDEX}` | Índice SNMP |
|
||||
| `{#PSU_SLOT_NAME}` | Nome do slot da PSU (ex.: `1/PSU1`) |
|
||||
| `{#PSU_SLOT_NAME_LEN}` | Comprimento do nome em formato decimal |
|
||||
| `{#PSU_SLOT_NAME_DEC}` | Nome em decimal para composição do OID SNMP (ex.: `49.47.80.83.85.49`) |
|
||||
|
||||
**Itens criados por interface:**
|
||||
**Itens criados:**
|
||||
|
||||
| Item | OID | Intervalo | Unidade |
|
||||
|------|-----|-----------|---------|
|
||||
| Bits recebidos | `ifHCInOctets` | 3 min | bps |
|
||||
| Bits enviados | `ifHCOutOctets` | 3 min | bps |
|
||||
| Pacotes recebidos descartados | `ifInDiscards` | 3 min | — |
|
||||
| Pacotes recebidos com erros | `ifInErrors` | 3 min | — |
|
||||
| Pacotes enviados descartados | `ifOutDiscards` | 3 min | — |
|
||||
| Pacotes enviados com erros | `ifOutErrors` | 3 min | — |
|
||||
| Velocidade da interface | `ifHighSpeed` | 5 min | bps |
|
||||
| Status operacional | `ifOperStatus` | — | — |
|
||||
| Tipo de interface | `ifType` | 1 hora | — |
|
||||
|
||||
**Gráfico:** `Interface {#IFNAME}({#IFALIAS}): Network traffic`
|
||||
| Item | OID | Intervalo |
|
||||
|------|-----|-----------|
|
||||
| `{#PSU_SLOT_NAME}` Status | `DMOS-HW-MONITOR-MIB::psuStatus.{#PSU_SLOT_NAME_LEN}.{#PSU_SLOT_NAME_DEC}` | 5 min |
|
||||
|
||||
---
|
||||
|
||||
### 2. SNMP Discovery — CPU Core
|
||||
### 2. SNMP Discovery — CPU Cores
|
||||
|
||||
**Chave:** `snmp.discovery.cpu.core`
|
||||
**Chave:** `snmp.discovery.cpu.cores`
|
||||
**Tipo:** SNMP Agent (`DMOS-SYSMON-MIB::cpuCoreFiveSecondsActive`)
|
||||
**Intervalo:** 60 min
|
||||
|
||||
@@ -251,30 +214,9 @@ As interfaces descobertas podem ser filtradas pelas seguintes macros. Altere os
|
||||
| Hysteresis Temperature | `temperatureSensorHysteresis` | ºC | × 0,1 |
|
||||
| Max Temperature | `temperatureSensorMaxTemperature` | ºC | × 0,1 |
|
||||
| Min Temperature | `temperatureSensorMinTemperature` | ºC | × 0,1 |
|
||||
| Read Error | `temperatureSensorTemperatureReadError` | — | — |
|
||||
|
||||
---
|
||||
|
||||
### 7. SNMP Discovery — PSU
|
||||
|
||||
**Chave:** `dmos_hardware_monitor_mib_psu.py["{HOST.CONN}", "{$SNMP_COMMUNITY}"]`
|
||||
**Tipo:** External Check (script Python)
|
||||
**Intervalo:** 60 min
|
||||
|
||||
> ⚠️ **Requer** o script `dmos_hardware_monitor_mib_psu.py` instalado no diretório de scripts externos do Zabbix.
|
||||
|
||||
**Variáveis descobertas:**
|
||||
|
||||
| Macro | Descrição |
|
||||
|-------|-----------|
|
||||
| `{#PSU_SLOT_NAME}` | Nome do slot da PSU (ex.: `1/PSU1`) |
|
||||
| `{#PSU_SLOT_NAME_LEN}` | Comprimento do nome em formato decimal |
|
||||
| `{#PSU_SLOT_NAME_DEC}` | Nome em decimal para uso no OID SNMP (ex.: `49.47.80.83.85.49`) |
|
||||
|
||||
**Itens criados:**
|
||||
|
||||
| Item | OID | Intervalo |
|
||||
|------|-----|-----------|
|
||||
| `{#PSU_SLOT_NAME}` Status | `DMOS-HW-MONITOR-MIB::psuStatus.{#PSU_SLOT_NAME_LEN}.{#PSU_SLOT_NAME_DEC}` | 5 min |
|
||||
**Gráfico:** `Sensor {#SNMPVALUE} Temperature` (Current / Max / Min)
|
||||
|
||||
---
|
||||
|
||||
@@ -288,20 +230,17 @@ As interfaces descobertas podem ser filtradas pelas seguintes macros. Altere os
|
||||
| No SNMP data collection | 🟡 Warning | SNMP indisponível por `{$SNMP.TIMEOUT}` (padrão: 5 min) |
|
||||
| Host has been restarted | 🟡 Warning | Uptime < 10 minutos |
|
||||
| High ICMP ping loss | 🟡 Warning | Perda > `{$ICMP_LOSS_WARN}`% (padrão: 20%) por 5 min |
|
||||
| High ICMP ping response time | 🟡 Warning | Tempo médio > `{$ICMP_RESPONSE_TIME_WARN}`s (padrão: 0.15s) por 5 min |
|
||||
| High ICMP ping response time | 🟡 Warning | Tempo médio > `{$ICMP_RESPONSE_TIME_WARN}`s (padrão: 0,15s) por 5 min |
|
||||
| System name has changed | 🔵 Info | Nome SNMP alterado |
|
||||
|
||||
### Trigger Prototypes (LLD)
|
||||
|
||||
| Nome | Severidade | Condição |
|
||||
|------|-----------|---------|
|
||||
| Interface `{#IFNAME}`: Link down | 🟠 Average | Status operacional = down (controlado por `{$IFCONTROL}`) |
|
||||
| Interface `{#IFNAME}`: High bandwidth usage | 🟡 Warning | Utilização > `{$IF.UTIL.MAX}`% (padrão: 90%) por 15 min |
|
||||
| Interface `{#IFNAME}`: High error rate | 🟡 Warning | Taxa de erros > `{$IF.ERRORS.WARN}` pps (padrão: 2) por 5 min |
|
||||
| Interface `{#IFNAME}`: Ethernet has changed to lower speed | 🔵 Info | Velocidade caiu abaixo do máximo conhecido |
|
||||
| CPU Load High Usage > `{$CPU.UTIL.CRIT}`% | 🟡 Warning | Uso de CPU ativo > 80% (padrão) por 5 min |
|
||||
| CPU Core High Usage > `{$CPU.UTIL.CRIT}`% | 🟡 Warning | CPU Core ativo > 80% (padrão) por 5 min |
|
||||
| CPU Load High Usage > `{$CPU.UTIL.CRIT}`% | 🟡 Warning | CPU Load ativo > 80% (padrão) por 5 min |
|
||||
| Memory Available Low < 100MB | 🔴 High | Memória disponível < 100.000.000 bytes |
|
||||
| FAN `{#SNMPVALUE}` Status Error | 🔴 High | Status do FAN diferente de OK (0) |
|
||||
| FAN `{#SNMPVALUE}` Status Error | 🔴 High | Status do FAN diferente de Normal (0) |
|
||||
| FAN `{#SNMPVALUE}` Read Error | 🔴 High | Erro de leitura de velocidade do FAN |
|
||||
| PSU Status Failed: `{#PSU_SLOT_NAME}` | 🔴 High | Status PSU ≠ OK e diferente da leitura anterior |
|
||||
|
||||
@@ -311,30 +250,16 @@ As interfaces descobertas podem ser filtradas pelas seguintes macros. Altere os
|
||||
|
||||
| Macro | Valor padrão | Descrição |
|
||||
|-------|-------------|-----------|
|
||||
| `{$SNMP_COMMUNITY}` | `public` | Community SNMP |
|
||||
| `{$SNMP_COMMUNITY}` | `public` | Community SNMP do equipamento |
|
||||
| `{$SNMP.TIMEOUT}` | `5m` | Timeout para trigger de SNMP indisponível |
|
||||
| `{$CPU.UTIL.CRIT}` | `80` | Limiar crítico de uso de CPU (%) |
|
||||
| `{$MEMORY.UTIL.MAX}` | `90` | Limiar máximo de uso de memória (%) |
|
||||
| `{$ICMP_LOSS_WARN}` | `20` | Limiar de aviso de perda de pacotes ICMP (%) |
|
||||
| `{$ICMP_RESPONSE_TIME_WARN}` | `0.15` | Limiar de aviso de tempo de resposta ICMP (s) |
|
||||
| `{$IF.UTIL.MAX}` | `90` | Utilização máxima de interface (%) |
|
||||
| `{$IF.ERRORS.WARN}` | `2` | Taxa de erro mínima para disparo de alerta (pps) |
|
||||
| `{$IFCONTROL}` | `1` | Controle de alertas de link down (0 = desabilita) |
|
||||
| `{$FAN_CRIT_STATUS}` | `2` | Código de status crítico para FANs |
|
||||
| `{$TEMP_WARN}` | `50` | Temperatura de aviso (ºC) |
|
||||
| `{$TEMP_CRIT}` | `60` | Temperatura crítica (ºC) |
|
||||
| `{$TEMP_CRIT_LOW}` | `5` | Temperatura crítica mínima (ºC) |
|
||||
| `{$NET.IF.IFNAME.NOT_MATCHES}` | `(loopback\|null\|lo\|docker...)` | Interfaces excluídas da descoberta |
|
||||
| `{$NET.IF.IFADMINSTATUS.NOT_MATCHES}` | `^2$` | Exclui interfaces administrativamente down |
|
||||
| `{$NET.IF.IFOPERSTATUS.NOT_MATCHES}` | `^6$` | Exclui interfaces notPresent |
|
||||
|
||||
---
|
||||
|
||||
## Dashboards
|
||||
|
||||
| Nome | Conteúdo |
|
||||
|------|---------|
|
||||
| Network interfaces | Gráfico em grade com tráfego de todas as interfaces descobertas |
|
||||
|
||||
---
|
||||
|
||||
@@ -343,14 +268,13 @@ As interfaces descobertas podem ser filtradas pelas seguintes macros. Altere os
|
||||
| Nome | Itens |
|
||||
|------|-------|
|
||||
| Uptime | `system.uptime[sysUpTime.0]` |
|
||||
| Interface `{#IFNAME}({#IFALIAS})`: Network traffic | Bits in/out, discards in/out |
|
||||
| CPU Core `{#SNMPINDEX}` Last 1 Minute | Active/Interrupt/Nice/Softirq/System/User/Wait |
|
||||
| CPU Core `{#SNMPINDEX}` Last 5 Minutes | Active/Interrupt/Nice/Softirq/System/User/Wait |
|
||||
| CPU Load `{#SNMPINDEX}` Last 1 Minute | cpuLoadOneMinuteActive |
|
||||
| CPU Load `{#SNMPINDEX}` Last 5 Minutes | cpuLoadFiveMinutesActive |
|
||||
| Memory Status `{#SNMPINDEX}` Last 1 minute | Available/Buffered/Cached/Free/SlabRecl/SlabUnrecl/Total/Used |
|
||||
| FAN `{#SNMPVALUE}` Speed | fanSpeed |
|
||||
| Temperature Sensor `{#SNMPVALUE}` | Current/Max/Min/Hysteresis |
|
||||
| CPU Core `{#SNMPINDEX}` Last 1 Minute | Active / Interrupt / Nice / Softirq / System / User / Wait |
|
||||
| CPU Core `{#SNMPINDEX}` Last 5 Minutes | Active / Interrupt / Nice / Softirq / System / User / Wait |
|
||||
| CPU Load `{#SNMPINDEX}` Last 1 Minute | `cpuLoadOneMinuteActive` |
|
||||
| CPU Load `{#SNMPINDEX}` Last 5 Minutes | `cpuLoadFiveMinutesActive` |
|
||||
| Memory Status `{#SNMPINDEX}` Last 1 minute | Available / Buffered / Cached / Free / SlabRecl / SlabUnrecl / Total / Used |
|
||||
| FAN `{#SNMPVALUE}` Speed | `fanSpeed` |
|
||||
| Sensor `{#SNMPVALUE}` Temperature | Current / Max / Min |
|
||||
|
||||
---
|
||||
|
||||
@@ -362,9 +286,9 @@ As interfaces descobertas podem ser filtradas pelas seguintes macros. Altere os
|
||||
| `zabbix.host.available` | SNMP Agent Availability (0/1/2) |
|
||||
| `IF-MIB::ifOperStatus` | Status operacional de interfaces |
|
||||
| `IF-MIB::ifType` | Tipo de interface (290+ mapeamentos) |
|
||||
| `DmOS-HW-MONITOR-MIB PSU Status` | Status das fontes de alimentação |
|
||||
| `DmOS-HW-MONITOR Environment Sensor Status` | Status dos FANs |
|
||||
| `DmOS-HW-MONITOR Read Error` | Erro de leitura de sensor |
|
||||
| `DmOS-HW-MONITOR-MIB PSU Status` | Status das fontes (Ok / Power Input Failure / Fuse Failure / Error) |
|
||||
| `DmOS-HW-MONITOR Environment Sensor Status` | Status dos FANs (Normal / High / Low / Critical / Error / Fail) |
|
||||
| `DmOS-HW-MONITOR Read Error` | Erro de leitura de sensor (Normal / Abnormal) |
|
||||
|
||||
---
|
||||
|
||||
@@ -384,8 +308,11 @@ Os seguintes campos de inventário são preenchidos automaticamente:
|
||||
## Instalação
|
||||
|
||||
1. Importe o arquivo `zbx_export_templates.xml` no Zabbix via **Data collection → Templates → Import**.
|
||||
2. Copie as MIBs DmOS para o servidor Zabbix e reinicie o `snmpd` ou o Zabbix Server conforme necessário.
|
||||
3. Copie `dmos_hardware_monitor_mib_psu.py` para `/usr/lib/zabbix/externalscripts/` e dê permissão de execução.
|
||||
2. Copie as MIBs DmOS para o servidor Zabbix (`/usr/share/snmp/mibs/` ou equivalente).
|
||||
3. Copie `dmos_hardware_monitor_mib_psu.py` para `/usr/lib/zabbix/externalscripts/` e aplique permissão de execução:
|
||||
```bash
|
||||
chmod +x /usr/lib/zabbix/externalscripts/dmos_hardware_monitor_mib_psu.py
|
||||
```
|
||||
4. Crie ou edite o host do equipamento Datacom no Zabbix:
|
||||
- Adicione interface SNMP apontando para o IP do equipamento.
|
||||
- Defina a macro `{$SNMP_COMMUNITY}` com a community correta.
|
||||
|
||||
@@ -421,567 +421,6 @@ Trigger activate if PSU Status is different from OK (0) and difference between p
|
||||
</item_prototype>
|
||||
</item_prototypes>
|
||||
</discovery_rule>
|
||||
<discovery_rule>
|
||||
<uuid>f4362dd3f8414e05a7eae2d1a13249ab</uuid>
|
||||
<name>SNMP Discovery - Network Interfaces Discovery</name>
|
||||
<type>SNMP_AGENT</type>
|
||||
<snmp_oid>discovery[{#IFOPERSTATUS},1.3.6.1.2.1.2.2.1.8,{#IFADMINSTATUS},1.3.6.1.2.1.2.2.1.7,{#IFALIAS},1.3.6.1.2.1.31.1.1.1.18,{#IFNAME},1.3.6.1.2.1.31.1.1.1.1,{#IFDESCR},1.3.6.1.2.1.2.2.1.2,{#IFTYPE},1.3.6.1.2.1.2.2.1.3]</snmp_oid>
|
||||
<key>net.if.discovery</key>
|
||||
<delay>1h</delay>
|
||||
<filter>
|
||||
<conditions>
|
||||
<condition>
|
||||
<macro>{#IFADMINSTATUS}</macro>
|
||||
<value>{$NET.IF.IFADMINSTATUS.MATCHES}</value>
|
||||
</condition>
|
||||
<condition>
|
||||
<macro>{#IFADMINSTATUS}</macro>
|
||||
<value>{$NET.IF.IFADMINSTATUS.NOT_MATCHES}</value>
|
||||
<operator>NOT_MATCHES_REGEX</operator>
|
||||
</condition>
|
||||
<condition>
|
||||
<macro>{#IFALIAS}</macro>
|
||||
<value>{$NET.IF.IFALIAS.MATCHES}</value>
|
||||
</condition>
|
||||
<condition>
|
||||
<macro>{#IFALIAS}</macro>
|
||||
<value>{$NET.IF.IFALIAS.NOT_MATCHES}</value>
|
||||
<operator>NOT_MATCHES_REGEX</operator>
|
||||
</condition>
|
||||
<condition>
|
||||
<macro>{#IFDESCR}</macro>
|
||||
<value>{$NET.IF.IFDESCR.MATCHES}</value>
|
||||
</condition>
|
||||
<condition>
|
||||
<macro>{#IFDESCR}</macro>
|
||||
<value>{$NET.IF.IFDESCR.NOT_MATCHES}</value>
|
||||
<operator>NOT_MATCHES_REGEX</operator>
|
||||
</condition>
|
||||
<condition>
|
||||
<macro>{#IFNAME}</macro>
|
||||
<value>{$NET.IF.IFNAME.MATCHES}</value>
|
||||
</condition>
|
||||
<condition>
|
||||
<macro>{#IFNAME}</macro>
|
||||
<value>{$NET.IF.IFNAME.NOT_MATCHES}</value>
|
||||
<operator>NOT_MATCHES_REGEX</operator>
|
||||
</condition>
|
||||
<condition>
|
||||
<macro>{#IFOPERSTATUS}</macro>
|
||||
<value>{$NET.IF.IFOPERSTATUS.MATCHES}</value>
|
||||
</condition>
|
||||
<condition>
|
||||
<macro>{#IFOPERSTATUS}</macro>
|
||||
<value>{$NET.IF.IFOPERSTATUS.NOT_MATCHES}</value>
|
||||
<operator>NOT_MATCHES_REGEX</operator>
|
||||
</condition>
|
||||
<condition>
|
||||
<macro>{#IFTYPE}</macro>
|
||||
<value>{$NET.IF.IFTYPE.MATCHES}</value>
|
||||
</condition>
|
||||
<condition>
|
||||
<macro>{#IFTYPE}</macro>
|
||||
<value>{$NET.IF.IFTYPE.NOT_MATCHES}</value>
|
||||
<operator>NOT_MATCHES_REGEX</operator>
|
||||
</condition>
|
||||
</conditions>
|
||||
</filter>
|
||||
<description>Discovering interfaces from IF-MIB.</description>
|
||||
<item_prototypes>
|
||||
<item_prototype>
|
||||
<uuid>f3340e49312f491da5e14ab37f22e532</uuid>
|
||||
<name>Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded</name>
|
||||
<type>SNMP_AGENT</type>
|
||||
<snmp_oid>1.3.6.1.2.1.2.2.1.13.{#SNMPINDEX}</snmp_oid>
|
||||
<key>net.if.in.discards[ifInDiscards.{#SNMPINDEX}]</key>
|
||||
<delay>3m</delay>
|
||||
<description>MIB: IF-MIB
|
||||
The number of inbound packets which were chosen to be discarded
|
||||
even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.
|
||||
One possible reason for discarding such a packet could be to free up buffer space.
|
||||
Discontinuities in the value of this counter can occur at re-initialization of the management system,
|
||||
and at other times as indicated by the value of ifCounterDiscontinuityTime.</description>
|
||||
<preprocessing>
|
||||
<step>
|
||||
<type>CHANGE_PER_SECOND</type>
|
||||
</step>
|
||||
</preprocessing>
|
||||
<tags>
|
||||
<tag>
|
||||
<tag>component</tag>
|
||||
<value>network</value>
|
||||
</tag>
|
||||
<tag>
|
||||
<tag>interface</tag>
|
||||
<value>{#IFNAME}</value>
|
||||
</tag>
|
||||
</tags>
|
||||
</item_prototype>
|
||||
<item_prototype>
|
||||
<uuid>00ab5b76a7fd48a4ad5553b5eefa026f</uuid>
|
||||
<name>Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors</name>
|
||||
<type>SNMP_AGENT</type>
|
||||
<snmp_oid>1.3.6.1.2.1.2.2.1.14.{#SNMPINDEX}</snmp_oid>
|
||||
<key>net.if.in.errors[ifInErrors.{#SNMPINDEX}]</key>
|
||||
<delay>3m</delay>
|
||||
<description>MIB: IF-MIB
|
||||
For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</description>
|
||||
<preprocessing>
|
||||
<step>
|
||||
<type>CHANGE_PER_SECOND</type>
|
||||
</step>
|
||||
</preprocessing>
|
||||
<tags>
|
||||
<tag>
|
||||
<tag>component</tag>
|
||||
<value>network</value>
|
||||
</tag>
|
||||
<tag>
|
||||
<tag>interface</tag>
|
||||
<value>{#IFNAME}</value>
|
||||
</tag>
|
||||
</tags>
|
||||
</item_prototype>
|
||||
<item_prototype>
|
||||
<uuid>a9581c3662404ba481d06ddcd5d0c554</uuid>
|
||||
<name>Interface {#IFNAME}({#IFALIAS}): Bits received</name>
|
||||
<type>SNMP_AGENT</type>
|
||||
<snmp_oid>1.3.6.1.2.1.31.1.1.1.6.{#SNMPINDEX}</snmp_oid>
|
||||
<key>net.if.in[ifHCInOctets.{#SNMPINDEX}]</key>
|
||||
<delay>3m</delay>
|
||||
<units>bps</units>
|
||||
<description>MIB: IF-MIB
|
||||
The total number of octets received on the interface, including framing characters. This object is a 64-bit version of ifInOctets. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</description>
|
||||
<preprocessing>
|
||||
<step>
|
||||
<type>CHANGE_PER_SECOND</type>
|
||||
</step>
|
||||
<step>
|
||||
<type>MULTIPLIER</type>
|
||||
<parameters>
|
||||
<parameter>8</parameter>
|
||||
</parameters>
|
||||
</step>
|
||||
</preprocessing>
|
||||
<tags>
|
||||
<tag>
|
||||
<tag>component</tag>
|
||||
<value>network</value>
|
||||
</tag>
|
||||
<tag>
|
||||
<tag>interface</tag>
|
||||
<value>{#IFNAME}</value>
|
||||
</tag>
|
||||
</tags>
|
||||
</item_prototype>
|
||||
<item_prototype>
|
||||
<uuid>1b2eafab575d42cda071035ffc5321a8</uuid>
|
||||
<name>Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded</name>
|
||||
<type>SNMP_AGENT</type>
|
||||
<snmp_oid>1.3.6.1.2.1.2.2.1.19.{#SNMPINDEX}</snmp_oid>
|
||||
<key>net.if.out.discards[ifOutDiscards.{#SNMPINDEX}]</key>
|
||||
<delay>3m</delay>
|
||||
<description>MIB: IF-MIB
|
||||
The number of outbound packets which were chosen to be discarded
|
||||
even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.
|
||||
One possible reason for discarding such a packet could be to free up buffer space.
|
||||
Discontinuities in the value of this counter can occur at re-initialization of the management system,
|
||||
and at other times as indicated by the value of ifCounterDiscontinuityTime.</description>
|
||||
<preprocessing>
|
||||
<step>
|
||||
<type>CHANGE_PER_SECOND</type>
|
||||
</step>
|
||||
</preprocessing>
|
||||
<tags>
|
||||
<tag>
|
||||
<tag>component</tag>
|
||||
<value>network</value>
|
||||
</tag>
|
||||
<tag>
|
||||
<tag>interface</tag>
|
||||
<value>{#IFNAME}</value>
|
||||
</tag>
|
||||
</tags>
|
||||
</item_prototype>
|
||||
<item_prototype>
|
||||
<uuid>5e1ed90e871b4edf9d64ce5c940c140e</uuid>
|
||||
<name>Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors</name>
|
||||
<type>SNMP_AGENT</type>
|
||||
<snmp_oid>1.3.6.1.2.1.2.2.1.20.{#SNMPINDEX}</snmp_oid>
|
||||
<key>net.if.out.errors[ifOutErrors.{#SNMPINDEX}]</key>
|
||||
<delay>3m</delay>
|
||||
<description>MIB: IF-MIB
|
||||
For packet-oriented interfaces, the number of outbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of outbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</description>
|
||||
<preprocessing>
|
||||
<step>
|
||||
<type>CHANGE_PER_SECOND</type>
|
||||
</step>
|
||||
</preprocessing>
|
||||
<tags>
|
||||
<tag>
|
||||
<tag>component</tag>
|
||||
<value>network</value>
|
||||
</tag>
|
||||
<tag>
|
||||
<tag>interface</tag>
|
||||
<value>{#IFNAME}</value>
|
||||
</tag>
|
||||
</tags>
|
||||
</item_prototype>
|
||||
<item_prototype>
|
||||
<uuid>c37f525026474c23b5beeade04369f55</uuid>
|
||||
<name>Interface {#IFNAME}({#IFALIAS}): Bits sent</name>
|
||||
<type>SNMP_AGENT</type>
|
||||
<snmp_oid>1.3.6.1.2.1.31.1.1.1.10.{#SNMPINDEX}</snmp_oid>
|
||||
<key>net.if.out[ifHCOutOctets.{#SNMPINDEX}]</key>
|
||||
<delay>3m</delay>
|
||||
<units>bps</units>
|
||||
<description>MIB: IF-MIB
|
||||
The total number of octets transmitted out of the interface, including framing characters. This object is a 64-bit version of ifOutOctets.Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.</description>
|
||||
<preprocessing>
|
||||
<step>
|
||||
<type>CHANGE_PER_SECOND</type>
|
||||
</step>
|
||||
<step>
|
||||
<type>MULTIPLIER</type>
|
||||
<parameters>
|
||||
<parameter>8</parameter>
|
||||
</parameters>
|
||||
</step>
|
||||
</preprocessing>
|
||||
<tags>
|
||||
<tag>
|
||||
<tag>component</tag>
|
||||
<value>network</value>
|
||||
</tag>
|
||||
<tag>
|
||||
<tag>interface</tag>
|
||||
<value>{#IFNAME}</value>
|
||||
</tag>
|
||||
</tags>
|
||||
</item_prototype>
|
||||
<item_prototype>
|
||||
<uuid>df681c05a7004430ad5699bf43744cda</uuid>
|
||||
<name>Interface {#IFNAME}({#IFALIAS}): Speed</name>
|
||||
<type>SNMP_AGENT</type>
|
||||
<snmp_oid>1.3.6.1.2.1.31.1.1.1.15.{#SNMPINDEX}</snmp_oid>
|
||||
<key>net.if.speed[ifHighSpeed.{#SNMPINDEX}]</key>
|
||||
<delay>5m</delay>
|
||||
<trends>0</trends>
|
||||
<units>bps</units>
|
||||
<description>MIB: IF-MIB
|
||||
An estimate of the interface's current bandwidth in units of 1,000,000 bits per second. If this object reports a value of `n' then the speed of the interface is somewhere in the range of `n-500,000' to`n+499,999'. For interfaces which do not vary in bandwidth or for those where no accurate estimation can be made, this object should contain the nominal bandwidth. For a sub-layer which has no concept of bandwidth, this object should be zero.</description>
|
||||
<preprocessing>
|
||||
<step>
|
||||
<type>MULTIPLIER</type>
|
||||
<parameters>
|
||||
<parameter>1000000</parameter>
|
||||
</parameters>
|
||||
</step>
|
||||
<step>
|
||||
<type>DISCARD_UNCHANGED_HEARTBEAT</type>
|
||||
<parameters>
|
||||
<parameter>1h</parameter>
|
||||
</parameters>
|
||||
</step>
|
||||
</preprocessing>
|
||||
<tags>
|
||||
<tag>
|
||||
<tag>component</tag>
|
||||
<value>network</value>
|
||||
</tag>
|
||||
<tag>
|
||||
<tag>interface</tag>
|
||||
<value>{#IFNAME}</value>
|
||||
</tag>
|
||||
</tags>
|
||||
</item_prototype>
|
||||
<item_prototype>
|
||||
<uuid>7456c0f902b047398aa07de75aa26de1</uuid>
|
||||
<name>Interface {#IFNAME}({#IFALIAS}): Operational status</name>
|
||||
<type>SNMP_AGENT</type>
|
||||
<snmp_oid>1.3.6.1.2.1.2.2.1.8.{#SNMPINDEX}</snmp_oid>
|
||||
<key>net.if.status[ifOperStatus.{#SNMPINDEX}]</key>
|
||||
<trends>0</trends>
|
||||
<description>MIB: IF-MIB
|
||||
The current operational state of the interface.
|
||||
- The testing(3) state indicates that no operational packet scan be passed
|
||||
- If ifAdminStatus is down(2) then ifOperStatus should be down(2)
|
||||
- If ifAdminStatus is changed to up(1) then ifOperStatus should change to up(1) if the interface is ready to transmit and receive network traffic
|
||||
- It should change todormant(5) if the interface is waiting for external actions (such as a serial line waiting for an incoming connection)
|
||||
- It should remain in the down(2) state if and only if there is a fault that prevents it from going to the up(1) state
|
||||
- It should remain in the notPresent(6) state if the interface has missing(typically, hardware) components.</description>
|
||||
<valuemap>
|
||||
<name>IF-MIB::ifOperStatus</name>
|
||||
</valuemap>
|
||||
<tags>
|
||||
<tag>
|
||||
<tag>component</tag>
|
||||
<value>network</value>
|
||||
</tag>
|
||||
<tag>
|
||||
<tag>interface</tag>
|
||||
<value>{#IFNAME}</value>
|
||||
</tag>
|
||||
</tags>
|
||||
<trigger_prototypes>
|
||||
<trigger_prototype>
|
||||
<uuid>9c042fb9de884b50a80259616016722d</uuid>
|
||||
<expression>{$IFCONTROL:"{#IFNAME}"}=1 and last(/IPv0 - Template Datacom DmOS/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/IPv0 - Template Datacom DmOS/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/IPv0 - Template Datacom DmOS/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))</expression>
|
||||
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
|
||||
<recovery_expression>last(/IPv0 - Template Datacom DmOS/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0</recovery_expression>
|
||||
<name>Interface {#IFNAME}({#IFALIAS}): Link down</name>
|
||||
<opdata>Current state: {ITEM.LASTVALUE1}</opdata>
|
||||
<priority>AVERAGE</priority>
|
||||
<description>This trigger expression works as follows:
|
||||
1. It can be triggered if the operations status is down.
|
||||
2. `{$IFCONTROL:"{#IFNAME}"}=1` - a user can redefine the context macro to "0", marking this interface as not important. No new trigger will be fired if this interface is down.
|
||||
3. `{TEMPLATE_NAME:METRIC.diff()}=1` - the trigger fires only if the operational status was up to (1) sometime before (so, does not fire for "eternal off" interfaces.)
|
||||
|
||||
WARNING: if closed manually - it will not fire again on the next poll, because of .diff.</description>
|
||||
<manual_close>YES</manual_close>
|
||||
<tags>
|
||||
<tag>
|
||||
<tag>scope</tag>
|
||||
<value>availability</value>
|
||||
</tag>
|
||||
</tags>
|
||||
</trigger_prototype>
|
||||
</trigger_prototypes>
|
||||
</item_prototype>
|
||||
<item_prototype>
|
||||
<uuid>f4d4a3b2dfde4c97a7b7ad97298e95ab</uuid>
|
||||
<name>Interface {#IFNAME}({#IFALIAS}): Interface type</name>
|
||||
<type>SNMP_AGENT</type>
|
||||
<snmp_oid>1.3.6.1.2.1.2.2.1.3.{#SNMPINDEX}</snmp_oid>
|
||||
<key>net.if.type[ifType.{#SNMPINDEX}]</key>
|
||||
<delay>1h</delay>
|
||||
<trends>0</trends>
|
||||
<description>MIB: IF-MIB
|
||||
The type of interface.
|
||||
Additional values for ifType are assigned by the Internet Assigned Numbers Authority (IANA),
|
||||
through updating the syntax of the IANAifType textual convention.</description>
|
||||
<valuemap>
|
||||
<name>IF-MIB::ifType</name>
|
||||
</valuemap>
|
||||
<preprocessing>
|
||||
<step>
|
||||
<type>DISCARD_UNCHANGED_HEARTBEAT</type>
|
||||
<parameters>
|
||||
<parameter>1d</parameter>
|
||||
</parameters>
|
||||
</step>
|
||||
</preprocessing>
|
||||
<tags>
|
||||
<tag>
|
||||
<tag>component</tag>
|
||||
<value>network</value>
|
||||
</tag>
|
||||
<tag>
|
||||
<tag>interface</tag>
|
||||
<value>{#IFNAME}</value>
|
||||
</tag>
|
||||
</tags>
|
||||
</item_prototype>
|
||||
</item_prototypes>
|
||||
<trigger_prototypes>
|
||||
<trigger_prototype>
|
||||
<uuid>763cbe562ea14bd9bb3f88be5ca2d7c9</uuid>
|
||||
<expression>change(/IPv0 - Template Datacom DmOS/net.if.speed[ifHighSpeed.{#SNMPINDEX}])<0 and last(/IPv0 - Template Datacom DmOS/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0
|
||||
and (
|
||||
last(/IPv0 - Template Datacom DmOS/net.if.type[ifType.{#SNMPINDEX}])=6 or
|
||||
last(/IPv0 - Template Datacom DmOS/net.if.type[ifType.{#SNMPINDEX}])=7 or
|
||||
last(/IPv0 - Template Datacom DmOS/net.if.type[ifType.{#SNMPINDEX}])=11 or
|
||||
last(/IPv0 - Template Datacom DmOS/net.if.type[ifType.{#SNMPINDEX}])=62 or
|
||||
last(/IPv0 - Template Datacom DmOS/net.if.type[ifType.{#SNMPINDEX}])=69 or
|
||||
last(/IPv0 - Template Datacom DmOS/net.if.type[ifType.{#SNMPINDEX}])=117
|
||||
)
|
||||
and
|
||||
(last(/IPv0 - Template Datacom DmOS/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2)</expression>
|
||||
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
|
||||
<recovery_expression>(change(/IPv0 - Template Datacom DmOS/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and last(/IPv0 - Template Datacom DmOS/net.if.speed[ifHighSpeed.{#SNMPINDEX}],#2)>0) or
|
||||
(last(/IPv0 - Template Datacom DmOS/net.if.status[ifOperStatus.{#SNMPINDEX}])=2)</recovery_expression>
|
||||
<name>Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before</name>
|
||||
<opdata>Current reported speed: {ITEM.LASTVALUE1}</opdata>
|
||||
<priority>INFO</priority>
|
||||
<description>This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Acknowledge to close the problem manually.</description>
|
||||
<manual_close>YES</manual_close>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<name>Interface {#IFNAME}({#IFALIAS}): Link down</name>
|
||||
<expression>{$IFCONTROL:"{#IFNAME}"}=1 and last(/IPv0 - Template Datacom DmOS/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/IPv0 - Template Datacom DmOS/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/IPv0 - Template Datacom DmOS/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))</expression>
|
||||
<recovery_expression>last(/IPv0 - Template Datacom DmOS/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0</recovery_expression>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<tags>
|
||||
<tag>
|
||||
<tag>scope</tag>
|
||||
<value>performance</value>
|
||||
</tag>
|
||||
</tags>
|
||||
</trigger_prototype>
|
||||
<trigger_prototype>
|
||||
<uuid>b6b21d02d74d454b8936fbfc7c4db86d</uuid>
|
||||
<expression>(avg(/IPv0 - Template Datacom DmOS/net.if.in[ifHCInOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/IPv0 - Template Datacom DmOS/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) or
|
||||
avg(/IPv0 - Template Datacom DmOS/net.if.out[ifHCOutOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/IPv0 - Template Datacom DmOS/net.if.speed[ifHighSpeed.{#SNMPINDEX}])) and
|
||||
last(/IPv0 - Template Datacom DmOS/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0</expression>
|
||||
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
|
||||
<recovery_expression>avg(/IPv0 - Template Datacom DmOS/net.if.in[ifHCInOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/IPv0 - Template Datacom DmOS/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) and
|
||||
avg(/IPv0 - Template Datacom DmOS/net.if.out[ifHCOutOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/IPv0 - Template Datacom DmOS/net.if.speed[ifHighSpeed.{#SNMPINDEX}])</recovery_expression>
|
||||
<name>Interface {#IFNAME}({#IFALIAS}): High bandwidth usage</name>
|
||||
<event_name>Interface {#IFNAME}({#IFALIAS}): High bandwidth usage (>{$IF.UTIL.MAX:"{#IFNAME}"}%)</event_name>
|
||||
<opdata>In: {ITEM.LASTVALUE1}, out: {ITEM.LASTVALUE3}, speed: {ITEM.LASTVALUE2}</opdata>
|
||||
<priority>WARNING</priority>
|
||||
<description>The utilization of the network interface is close to its estimated maximum bandwidth.</description>
|
||||
<manual_close>YES</manual_close>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<name>Interface {#IFNAME}({#IFALIAS}): Link down</name>
|
||||
<expression>{$IFCONTROL:"{#IFNAME}"}=1 and last(/IPv0 - Template Datacom DmOS/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/IPv0 - Template Datacom DmOS/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/IPv0 - Template Datacom DmOS/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))</expression>
|
||||
<recovery_expression>last(/IPv0 - Template Datacom DmOS/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0</recovery_expression>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<tags>
|
||||
<tag>
|
||||
<tag>scope</tag>
|
||||
<value>performance</value>
|
||||
</tag>
|
||||
</tags>
|
||||
</trigger_prototype>
|
||||
<trigger_prototype>
|
||||
<uuid>f59d7ea314364649a5022cc095ac9871</uuid>
|
||||
<expression>min(/IPv0 - Template Datacom DmOS/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}
|
||||
or min(/IPv0 - Template Datacom DmOS/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}</expression>
|
||||
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
|
||||
<recovery_expression>max(/IPv0 - Template Datacom DmOS/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8
|
||||
and max(/IPv0 - Template Datacom DmOS/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8</recovery_expression>
|
||||
<name>Interface {#IFNAME}({#IFALIAS}): High error rate</name>
|
||||
<event_name>Interface {#IFNAME}({#IFALIAS}): High error rate (>{$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)</event_name>
|
||||
<opdata>errors in: {ITEM.LASTVALUE1}, errors out: {ITEM.LASTVALUE2}</opdata>
|
||||
<priority>WARNING</priority>
|
||||
<description>It recovers when it is below 80% of the `{$IF.ERRORS.WARN:"{#IFNAME}"}` threshold.</description>
|
||||
<manual_close>YES</manual_close>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<name>Interface {#IFNAME}({#IFALIAS}): Link down</name>
|
||||
<expression>{$IFCONTROL:"{#IFNAME}"}=1 and last(/IPv0 - Template Datacom DmOS/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/IPv0 - Template Datacom DmOS/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/IPv0 - Template Datacom DmOS/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))</expression>
|
||||
<recovery_expression>last(/IPv0 - Template Datacom DmOS/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0</recovery_expression>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<tags>
|
||||
<tag>
|
||||
<tag>scope</tag>
|
||||
<value>availability</value>
|
||||
</tag>
|
||||
<tag>
|
||||
<tag>scope</tag>
|
||||
<value>performance</value>
|
||||
</tag>
|
||||
</tags>
|
||||
</trigger_prototype>
|
||||
</trigger_prototypes>
|
||||
<graph_prototypes>
|
||||
<graph_prototype>
|
||||
<uuid>6b159eb7d128485bbcf460eb52627800</uuid>
|
||||
<name>Interface {#IFNAME}({#IFALIAS}): Network traffic</name>
|
||||
<graph_items>
|
||||
<graph_item>
|
||||
<color>1A7C11</color>
|
||||
<item>
|
||||
<host>IPv0 - Template Datacom DmOS</host>
|
||||
<key>net.if.in[ifHCInOctets.{#SNMPINDEX}]</key>
|
||||
</item>
|
||||
</graph_item>
|
||||
<graph_item>
|
||||
<sortorder>1</sortorder>
|
||||
<color>FF0000</color>
|
||||
<item>
|
||||
<host>IPv0 - Template Datacom DmOS</host>
|
||||
<key>net.if.out[ifHCOutOctets.{#SNMPINDEX}]</key>
|
||||
</item>
|
||||
</graph_item>
|
||||
<graph_item>
|
||||
<sortorder>2</sortorder>
|
||||
<color>00611C</color>
|
||||
<item>
|
||||
<host>IPv0 - Template Datacom DmOS</host>
|
||||
<key>net.if.in.discards[ifInDiscards.{#SNMPINDEX}]</key>
|
||||
</item>
|
||||
</graph_item>
|
||||
<graph_item>
|
||||
<sortorder>3</sortorder>
|
||||
<color>F7941D</color>
|
||||
<item>
|
||||
<host>IPv0 - Template Datacom DmOS</host>
|
||||
<key>net.if.in.errors[ifInErrors.{#SNMPINDEX}]</key>
|
||||
</item>
|
||||
</graph_item>
|
||||
<graph_item>
|
||||
<sortorder>4</sortorder>
|
||||
<color>FC6EA3</color>
|
||||
<item>
|
||||
<host>IPv0 - Template Datacom DmOS</host>
|
||||
<key>net.if.out.discards[ifOutDiscards.{#SNMPINDEX}]</key>
|
||||
</item>
|
||||
</graph_item>
|
||||
<graph_item>
|
||||
<sortorder>5</sortorder>
|
||||
<color>6C59DC</color>
|
||||
<item>
|
||||
<host>IPv0 - Template Datacom DmOS</host>
|
||||
<key>net.if.out.errors[ifOutErrors.{#SNMPINDEX}]</key>
|
||||
</item>
|
||||
</graph_item>
|
||||
</graph_items>
|
||||
</graph_prototype>
|
||||
</graph_prototypes>
|
||||
<overrides>
|
||||
<override>
|
||||
<name>Discovery only UP</name>
|
||||
<step>1</step>
|
||||
<filter>
|
||||
<conditions>
|
||||
<condition>
|
||||
<macro>{#IFADMINSTATUS}</macro>
|
||||
<value>^2$</value>
|
||||
</condition>
|
||||
</conditions>
|
||||
</filter>
|
||||
<operations>
|
||||
<operation>
|
||||
<operator>LIKE</operator>
|
||||
<value>Bits</value>
|
||||
<discover>DISCOVER</discover>
|
||||
</operation>
|
||||
<operation>
|
||||
<operator>LIKE</operator>
|
||||
<value>Inbound packets</value>
|
||||
<discover>DISCOVER</discover>
|
||||
</operation>
|
||||
<operation>
|
||||
<operator>LIKE</operator>
|
||||
<value>Interface type</value>
|
||||
<discover>DISCOVER</discover>
|
||||
</operation>
|
||||
<operation>
|
||||
<operator>LIKE</operator>
|
||||
<value>Interface type</value>
|
||||
<discover>DISCOVER</discover>
|
||||
</operation>
|
||||
<operation>
|
||||
<operator>LIKE</operator>
|
||||
<value>Outbound packets</value>
|
||||
<discover>DISCOVER</discover>
|
||||
</operation>
|
||||
<operation>
|
||||
<operator>LIKE</operator>
|
||||
<value>Speed</value>
|
||||
<discover>DISCOVER</discover>
|
||||
</operation>
|
||||
</operations>
|
||||
</override>
|
||||
</overrides>
|
||||
</discovery_rule>
|
||||
<discovery_rule>
|
||||
<uuid>497ca11cdfe045478f4ce7c507706db7</uuid>
|
||||
<name>SNMP Discovery - CPU Cores</name>
|
||||
@@ -1976,75 +1415,10 @@ and max(/IPv0 - Template Datacom DmOS/net.if.out.errors[ifOutErrors.{#SNMPINDEX}
|
||||
<value>0.15</value>
|
||||
<description>Warning threshold of the average ICMP response time in seconds.</description>
|
||||
</macro>
|
||||
<macro>
|
||||
<macro>{$IF.ERRORS.WARN}</macro>
|
||||
<value>2</value>
|
||||
<description>Warning threshold of error packet rate. Can be used with interface name as context.</description>
|
||||
</macro>
|
||||
<macro>
|
||||
<macro>{$IF.UTIL.MAX}</macro>
|
||||
<value>90</value>
|
||||
</macro>
|
||||
<macro>
|
||||
<macro>{$IFCONTROL}</macro>
|
||||
<value>1</value>
|
||||
</macro>
|
||||
<macro>
|
||||
<macro>{$MEMORY.UTIL.MAX}</macro>
|
||||
<value>90</value>
|
||||
</macro>
|
||||
<macro>
|
||||
<macro>{$NET.IF.IFADMINSTATUS.MATCHES}</macro>
|
||||
<value>^.*</value>
|
||||
</macro>
|
||||
<macro>
|
||||
<macro>{$NET.IF.IFADMINSTATUS.NOT_MATCHES}</macro>
|
||||
<value>^2$</value>
|
||||
<description>Ignore down(2) administrative status</description>
|
||||
</macro>
|
||||
<macro>
|
||||
<macro>{$NET.IF.IFALIAS.MATCHES}</macro>
|
||||
<value>.*</value>
|
||||
</macro>
|
||||
<macro>
|
||||
<macro>{$NET.IF.IFALIAS.NOT_MATCHES}</macro>
|
||||
<value>CHANGE_IF_NEEDED</value>
|
||||
</macro>
|
||||
<macro>
|
||||
<macro>{$NET.IF.IFDESCR.MATCHES}</macro>
|
||||
<value>.*</value>
|
||||
</macro>
|
||||
<macro>
|
||||
<macro>{$NET.IF.IFDESCR.NOT_MATCHES}</macro>
|
||||
<value>CHANGE_IF_NEEDED</value>
|
||||
</macro>
|
||||
<macro>
|
||||
<macro>{$NET.IF.IFNAME.MATCHES}</macro>
|
||||
<value>^.*$</value>
|
||||
</macro>
|
||||
<macro>
|
||||
<macro>{$NET.IF.IFNAME.NOT_MATCHES}</macro>
|
||||
<value>(^Software Loopback Interface|^NULL[0-9.]*$|^[Ll]o[0-9.]*$|^[Ss]ystem$|^Nu[0-9.]*$|^veth[0-9a-z]+$|docker[0-9]+|br-[a-z0-9]{12})</value>
|
||||
<description>Filter out loopbacks, nulls, docker veth links and docker0 bridge by default</description>
|
||||
</macro>
|
||||
<macro>
|
||||
<macro>{$NET.IF.IFOPERSTATUS.MATCHES}</macro>
|
||||
<value>^u|^1</value>
|
||||
<description>^.*$</description>
|
||||
</macro>
|
||||
<macro>
|
||||
<macro>{$NET.IF.IFOPERSTATUS.NOT_MATCHES}</macro>
|
||||
<value>^6$</value>
|
||||
<description>Ignore notPresent(6)</description>
|
||||
</macro>
|
||||
<macro>
|
||||
<macro>{$NET.IF.IFTYPE.MATCHES}</macro>
|
||||
<value>.*</value>
|
||||
</macro>
|
||||
<macro>
|
||||
<macro>{$NET.IF.IFTYPE.NOT_MATCHES}</macro>
|
||||
<value>CHANGE_IF_NEEDED</value>
|
||||
</macro>
|
||||
<macro>
|
||||
<macro>{$SNMP.TIMEOUT}</macro>
|
||||
<value>5m</value>
|
||||
@@ -2081,14 +1455,6 @@ and max(/IPv0 - Template Datacom DmOS/net.if.out.errors[ifOutErrors.{#SNMPINDEX}
|
||||
<name>columns</name>
|
||||
<value>1</value>
|
||||
</field>
|
||||
<field>
|
||||
<type>GRAPH_PROTOTYPE</type>
|
||||
<name>graphid.0</name>
|
||||
<value>
|
||||
<host>IPv0 - Template Datacom DmOS</host>
|
||||
<name>Interface {#IFNAME}({#IFALIAS}): Network traffic</name>
|
||||
</value>
|
||||
</field>
|
||||
<field>
|
||||
<type>STRING</type>
|
||||
<name>reference</name>
|
||||
|
||||
Reference in New Issue
Block a user