Files
templates/datacom/datacom_dmos/README.md
2026-04-14 09:13:49 -03:00

12 KiB
Raw Blame History

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 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.


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 servidor Zabbix (geralmente /usr/share/snmp/mibs/ ou /etc/snmp/mibs/). As MIBs utilizadas por este template são:

  • SNMPv2-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

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.


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 Retenção
ICMP Ping icmpping 90 dias
ICMP Loss icmppingloss 90 dias
ICMP Response Time icmppingsec 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 — 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 composição do 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

2. SNMP Discovery — CPU Cores

Chave: snmp.discovery.cpu.cores
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
Read Error temperatureSensorTemperatureReadError

Gráfico: Sensor {#SNMPVALUE} Temperature (Current / Max / 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
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 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

Macros do Template

Macro Valor padrão Descrição
{$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)
{$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)

Gráficos

Nome Itens
Uptime system.uptime[sysUpTime.0]
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

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 (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)

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 (/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:
    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.
    • 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.