Files
templates/datacom/datacom_dmos
2026-04-13 10:36:53 -03:00
..
2026-04-13 10:36:53 -03:00

IPv0 - Template Datacom DmOS

Visão Geral

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.


Equipamentos Testados

  • Datacom DM4170
  • Datacom DM4270
  • Datacom DM4370
  • Datacom DM4610
  • Outros equipamentos Datacom com DmOS

Requisitos

MIBs

Para o correto funcionamento das coletas SNMP, é necessário que os arquivos de MIB do equipamento estejam presentes no servidor Zabbix. Copie as MIBs diretamente do equipamento com o comando DmOS:

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:

  • SNMPv2-MIB
  • IF-MIB
  • DMOS-SYSMON-MIB
  • DMOS-HW-MONITOR-MIB

Script Externo — PSU Discovery

A regra de descoberta de fontes de alimentação (PSU) depende de um script Python externo. Copie o arquivo dmos_hardware_monitor_mib_psu.py para o diretório de scripts externos do Zabbix:

# Ubuntu / Debian
cp dmos_hardware_monitor_mib_psu.py /usr/lib/zabbix/externalscripts/
chmod +x /usr/lib/zabbix/externalscripts/dmos_hardware_monitor_mib_psu.py

Versão Zabbix

Versão Suporte
7.2 Testado
7.0+ Compatível
6.x ⚠️ Não garantido

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)

Itens Coletados

Sistema (via SNMPv2-MIB)

Item OID Intervalo Retenção
System Contact SNMPv2-MIB::sysContact.0 60 min 90 dias
System Description SNMPv2-MIB::sysDescr.0 60 min 2 semanas
System Location SNMPv2-MIB::sysLocation.0 60 min 7 dias
System Name SNMPv2-MIB::sysName.0 60 min 2 semanas
System Object ID 1.3.6.1.2.1.1.2.0 15 min
System Uptime 1.3.6.1.2.1.1.3.0 60 min 7 dias
SNMP Agent Availability Interno Zabbix 7 dias

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

Traps SNMP

Item Chave Descrição
SNMP Traps (fallback) snmptrap.fallback Coleta todos os traps SNMP sem mapeamento específico

Regras de Descoberta (LLD)

1. SNMP Discovery — Network Interfaces

Chave: net.if.discovery
Tipo: SNMP Agent (IF-MIB)
Intervalo: 1 hora

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

Itens criados por interface:

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


2. SNMP Discovery — CPU Core

Chave: snmp.discovery.cpu.core
Tipo: SNMP Agent (DMOS-SYSMON-MIB::cpuCoreFiveSecondsActive)
Intervalo: 60 min

Itens criados por core (1 e 5 minutos):

Item MIB Unidade
Active CPU core cpuCoreOneMinuteActive / cpuCoreFiveMinutesActive %
Interrupt CPU core cpuCoreOneMinuteInterrupt / cpuCoreFiveMinutesInterrupt %
Nice CPU core cpuCoreOneMinuteNice / cpuCoreFiveMinutesNIce %
Softirq CPU core cpuCoreOneMinuteSoftirq / cpuCoreFiveMinutesSoftirq %
System CPU core cpuCoreOneMinuteSystem / cpuCoreFiveMinutesSystem %
User CPU core cpuCoreOneMinuteUser / cpuCoreFiveMinutesUser %
Wait CPU core cpuCoreOneMinuteWait / cpuCoreFiveMinutesWait %

Gráficos: CPU Core {#SNMPINDEX} Last 1 Minute e CPU Core {#SNMPINDEX} Last 5 Minutes


3. SNMP Discovery — CPU Load

Chave: snmp.discovery.cpu.load
Tipo: SNMP Agent (DMOS-SYSMON-MIB::cpuLoadFiveSecondsActive)
Intervalo: 60 min

Itens criados:

Item MIB Intervalo Unidade
Active CPU load last 1 minute cpuLoadOneMinuteActive padrão %
Active CPU load last 5 minutes cpuLoadFiveMinutesActive 5 min %

Gráficos: CPU Load {#SNMPINDEX} Last 1 Minute e CPU Load {#SNMPINDEX} Last 5 Minutes


4. SNMP Discovery — Memory

Chave: snmp.discovery.memory
Tipo: SNMP Agent (DMOS-SYSMON-MIB::memoryFiveSecondsTotal)
Intervalo: 60 min

Itens criados:

Item MIB Retenção
Available memory memoryOneMinuteAvailable 7 dias
Buffered memory memoryOneMinuteBuffered 7 dias
Cached memory memoryOneMinuteCached 7 dias
Free memory memoryOneMinuteFree 7 dias
Slab Reclaimed memoryOneMinuteSlabRecl 7 dias
Slab Unreclaimed memoryOneMinuteSlabUnrecl 7 dias
Total memory memoryOneMinuteTotal 7 dias
Used memory memoryOneMinuteUsed 7 dias

Gráfico: Memory Status {#SNMPINDEX} Last 1 minute


5. SNMP Discovery — Fan

Chave: snmp.discovery.fan
Tipo: SNMP Agent (DMOS-HW-MONITOR-MIB::fanDescription)
Intervalo: 60 min

Itens criados:

Item MIB Unidade
FAN Description fanDescription
FAN Speed fanSpeed RPM
FAN Status fanSpeedStatus
FAN Read Error fanSpeedReadError

Gráfico: FAN {#SNMPVALUE} Speed


6. SNMP Discovery — Temperature Sensor

Chave: snmp.discovery.temp.sensor
Tipo: SNMP Agent (DMOS-HW-MONITOR-MIB::temperatureSensorDescription)
Intervalo: 60 min

Itens criados:

Item MIB Unidade Pré-processamento
Current Temperature temperatureSensorCurrentTemperature ºC × 0,1
Description temperatureSensorDescription
Hysteresis Temperature temperatureSensorHysteresis ºC × 0,1
Max Temperature temperatureSensorMaxTemperature ºC × 0,1
Min Temperature temperatureSensorMinTemperature ºC × 0,1

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

Triggers

Triggers Fixas

Nome Severidade Condição
Unavailable by ICMP ping 🔴 High 3 polls consecutivos sem resposta ICMP
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
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
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} 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

Macros do Template

Macro Valor padrão Descrição
{$SNMP_COMMUNITY} public Community SNMP
{$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

Gráficos

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

Value Maps

Nome Uso
Service state ICMP Ping (0=Down, 1=Up)
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

Inventário de Host

Os seguintes campos de inventário são preenchidos automaticamente:

Campo Item
CONTACT System Contact
HARDWARE System Description
LOCATION System Location
NAME System Name

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.
  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.
    • Vincule o template IPv0 - Template Datacom DmOS.
  5. Aguarde o próximo ciclo de polling para confirmar os dados coletados.

Grupos de Template

  • Templates Datacom
  • Templates IPv0

Autor

Teccnia — IPv0
Template derivado das MIBs proprietárias Datacom DmOS com base nos templates oficiais do repositório datacom-teracom/dmos-zabbix-template.