> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.itential.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.itential.com/_mcp/server.

# SNMP MIB notifications

> Monitor Platform health using SNMP traps and notifications

Itential Platform supports SNMP (Simple Network Management Protocol) notifications to integrate with enterprise monitoring and management systems.

## SNMP MIB files

Platform includes SNMP MIB (Management Information Base) files that define available notification types and their structures.

### MIB file locations

**Platform 2023.2 and earlier:**

```bash
/opt/pronghorn/current/node_modules/@itential/pronghorn-core/core/mibs/
```

**Platform 6:**

```bash
/opt/itential/platform/server/core/mibs/
```

### Available MIB files

```bash
$ cd /opt/itential/platform/server/core/mibs/
$ ls -l
-rw-r--r-- 1 itential itential 9252 Feb 15 12:39 ITENTIAL-MIB.txt
-rw-r--r-- 1 itential itential 1490 Feb 15 12:13 ITENTIAL-SMI-MIB.txt
```

**ITENTIAL-SMI-MIB.txt:**

* Structure of Management Information (SMI) definitions
* Defines the Itential enterprise OID namespace
* Root OID: `1.3.6.1.4.1.47688`

**ITENTIAL-MIB.txt:**

* Notification types and their associated variables
* Object definitions for trap payloads
* Severity levels and descriptions

## Notification types

Platform sends SNMP notifications (traps) for critical system events, adapter status changes, and application lifecycle events.

### System notifications

| Notification             | OID                           | Description                            |
| ------------------------ | ----------------------------- | -------------------------------------- |
| `itenProngSystemRestart` | `1.3.6.1.4.1.47688.1.1.1.0.4` | Platform has restarted                 |
| `itenProngSysErr`        | `1.3.6.1.4.1.47688.1.1.1.0.5` | Critical error encountered by Platform |

**Use cases:**

* Alert operations team when Platform restarts unexpectedly
* Capture critical system errors for root cause analysis
* Trigger automated remediation workflows
* Track Platform availability metrics

### Application notifications

| Notification        | OID                           | Description                      |
| ------------------- | ----------------------------- | -------------------------------- |
| `itenProngAppUp`    | `1.3.6.1.4.1.47688.1.1.1.0.6` | Application is online            |
| `itenProngAppDown`  | `1.3.6.1.4.1.47688.1.1.1.0.7` | Application is offline           |
| `itenProngAppCrash` | `1.3.6.1.4.1.47688.1.1.1.0.8` | Application crashed unexpectedly |

**Use cases:**

* Monitor critical application health (Workflow Engine, Operations Manager)
* Alert when applications become unavailable
* Track application stability metrics
* Investigate crash patterns and root causes

### Adapter notifications

| Notification            | OID                            | Description                           |
| ----------------------- | ------------------------------ | ------------------------------------- |
| `itenSBAdapterUnreach`  | `1.3.6.1.4.1.47688.1.1.1.0.1`  | Adapter connection failed             |
| `itenSBAdapterEstab`    | `1.3.6.1.4.1.47688.1.1.1.0.2`  | Adapter connection established        |
| `itenSBAdapterFuncErr`  | `1.3.6.1.4.1.47688.1.1.1.0.3`  | Adapter functional error occurred     |
| `itenSBAdapterDegraded` | `1.3.6.1.4.1.47688.1.1.1.0.9`  | Adapter connection degraded           |
| `itenSBAdapterFixed`    | `1.3.6.1.4.1.47688.1.1.1.0.10` | Adapter connection no longer degraded |

**Use cases:**

* Alert when adapters cannot reach downstream systems
* Monitor adapter health and connection stability
* Track degraded connection states
* Trigger remediation when adapters fail

## Notification objects

Notifications include variable bindings that provide detailed context about the event.

### Object definitions

| Object                     | OID                         | Type         | Description                                    |
| -------------------------- | --------------------------- | ------------ | ---------------------------------------------- |
| `itenProngComponentID`     | `1.3.6.1.4.1.47688.1.1.2.1` | String       | Unique identifier for application or adapter   |
| `itenProngAdapterIP4`      | `1.3.6.1.4.1.47688.1.1.2.2` | IPv4 Address | IP address of the adapter instance             |
| `itenProngAdapterPort`     | `1.3.6.1.4.1.47688.1.1.2.3` | Integer      | Port number of the adapter instance            |
| `itenProngAdapterFunction` | `1.3.6.1.4.1.47688.1.1.2.4` | String       | Adapter function/method that encountered error |
| `itenProngAdapterError`    | `1.3.6.1.4.1.47688.1.1.2.5` | String       | Error message or description                   |
| `itenProngSystemError`     | `1.3.6.1.4.1.47688.1.1.2.6` | String       | System error description                       |

### Notification payloads

Each notification type includes specific variable bindings:

**itenSBAdapterUnreach:**

* `itenProngComponentID` - Adapter identifier (e.g., "nso-adapter-prod")
* `itenProngAdapterIP4` - Target IP address (e.g., "10.1.2.3")
* `itenProngAdapterPort` - Target port (e.g., 8888)

**itenSBAdapterEstab:**

* `itenProngComponentID` - Adapter identifier
* `itenProngAdapterIP4` - Target IP address
* `itenProngAdapterPort` - Target port

**itenSBAdapterFuncErr:**

* `itenProngComponentID` - Adapter identifier
* `itenProngAdapterFunction` - Function name (e.g., "getDeviceConfig")
* `itenProngAdapterError` - Error text (e.g., "Connection timeout")

**itenProngSystemRestart:**

* No additional objects (notification only)

**itenProngSysErr:**

* `itenProngSystemError` - Error description

**itenProngAppUp:**

* `itenProngComponentID` - Application identifier

**itenProngAppDown:**

* `itenProngComponentID` - Application identifier

**itenProngAppCrash:**

* `itenProngComponentID` - Application identifier

**itenSBAdapterDegraded:**

* `itenProngComponentID` - Adapter identifier
* `itenProngAdapterIP4` - Target IP address
* `itenProngAdapterPort` - Target port

**itenSBAdapterFixed:**

* `itenProngComponentID` - Adapter identifier
* `itenProngAdapterIP4` - Target IP address
* `itenProngAdapterPort` - Target port

## Configure SNMP notifications

SNMP notification destinations are configured in the Platform profile or properties file.

### Platform 6 configuration

**Environment variable (single destination):**

```bash
export ITENTIAL_SNMP_ALARM_CONFIGS='[{"host":"nms.example.com","port":162,"community":"public"}]'
```

**Properties file:**

```properties
# Single SNMP destination
snmp_alarm_configs=[{"host":"nms.example.com","port":162,"community":"public"}]
```

**Multiple destinations:**

```bash
export ITENTIAL_SNMP_ALARM_CONFIGS='[
  {"host":"nms1.example.com","port":162,"community":"platform-prod"},
  {"host":"nms2.example.com","port":162,"community":"platform-prod"},
  {"host":"backup-nms.example.com","port":162,"community":"platform-backup"}
]'
```

### Platform 2023.2 configuration

Navigate to **Admin Essentials > Profiles** and edit the active profile.

Add or modify the `snmpProps` section:

```json
{
  "snmpProps": {
    "alarms": [
      {
        "host": "nms.example.com",
        "port": 162,
        "community": "platform-prod"
      },
      {
        "host": "backup-nms.example.com",
        "port": 162,
        "community": "platform-backup"
      }
    ]
  }
}
```

### Configuration parameters

| Parameter   | Type    | Required | Description                                          |
| ----------- | ------- | -------- | ---------------------------------------------------- |
| `host`      | string  | Yes      | Hostname or IP address of SNMP manager/trap receiver |
| `port`      | integer | Yes      | UDP port for SNMP traps (typically 162)              |
| `community` | string  | Yes      | SNMP community string for authentication             |

## Integrate with monitoring systems

### Load MIB files

Import Itential MIB files into your SNMP management system.

**SolarWinds Network Performance Monitor:**

1. Copy MIB files to `C:\ProgramData\SolarWinds\MIBs\`
2. Run **MIB Browser** and import ITENTIAL-SMI-MIB.txt and ITENTIAL-MIB.txt
3. Configure trap receivers to accept traps from Platform servers

**Cisco Prime Infrastructure:**

1. Navigate to **Administration > Settings > MIB Management**
2. Upload ITENTIAL-SMI-MIB.txt and ITENTIAL-MIB.txt
3. Configure trap destinations in SNMP settings

**PRTG Network Monitor:**

1. Copy MIB files to `C:\Program Files (x86)\PRTG Network Monitor\snmplibs\`
2. Create SNMP Trap Receiver sensor
3. Configure trap rules based on Itential OIDs

**Nagios:**

1. Place MIB files in `/usr/share/snmp/mibs/`
2. Configure SNMPTRAPD to accept traps
3. Create SNMPTT configuration for Itential traps
4. Map trap OIDs to Nagios alerts

### Example monitoring rules

**Critical alert - Application crash:**

```
Trap OID: 1.3.6.1.4.1.47688.1.1.1.0.8 (itenProngAppCrash)
Severity: Critical
Action: Page on-call engineer, create incident ticket
```

**Warning alert - Adapter degraded:**

```
Trap OID: 1.3.6.1.4.1.47688.1.1.1.0.9 (itenSBAdapterDegraded)
Severity: Warning
Action: Email operations team, monitor for recovery
```

**Informational - System restart:**

```
Trap OID: 1.3.6.1.4.1.47688.1.1.1.0.4 (itenProngSystemRestart)
Severity: Informational
Action: Log event, check for unexpected restarts
```

## Verify SNMP configuration

### Test SNMP connectivity

**From Platform server:**

```bash
# Test trap sending (requires net-snmp-utils)
snmptrap -v 2c -c platform-prod nms.example.com:162 '' \
  1.3.6.1.4.1.47688.1.1.1.0.4 \
  1.3.6.1.4.1.47688.1.1.2.1 s "test-adapter"
```

**From SNMP manager:**

```bash
# Listen for traps (on SNMP manager)
snmptrapd -f -Lo -c /etc/snmp/snmptrapd.conf
```

### Monitor Platform logs

Check Platform logs for SNMP trap sending:

```bash
grep -i "snmp\|trap" /var/log/itential/pronghorn.log
```

**Example log entries:**

```
[INFO] SNMP trap sent: itenSBAdapterUnreach, adapter=nso-adapter-prod, ip=10.1.2.3, port=8888
[DEBUG] SNMP destination: nms.example.com:162, community=platform-prod
```

### Trigger test notifications

Force Platform to generate test notifications:

**Application restart:**

```bash
# Restart a service to generate app up/down notifications
systemctl restart itential-workflow-engine
```

**Adapter connection failure:**

Temporarily block adapter connectivity to generate unreachable notification:

```bash
# Block adapter port temporarily
iptables -A OUTPUT -p tcp --dport 8888 -j DROP

# Wait for adapter to detect failure (check adapter logs)

# Restore connectivity
iptables -D OUTPUT -p tcp --dport 8888 -j DROP
```

## Troubleshooting

### Traps not received

**Verify SNMP configuration:**

```bash
# Platform 6
env | grep ITENTIAL_SNMP

# Platform 2023.2
mongosh --eval "db.iap_profiles.findOne({_id: 'profile-id'}, {snmpProps: 1})"
```

**Check network connectivity:**

```bash
# Test UDP connectivity to SNMP manager
nc -u nms.example.com 162 < /dev/null

# Check firewall rules
iptables -L -n | grep 162
```

**Verify SNMP manager listening:**

```bash
# On SNMP manager, check trap receiver is running
netstat -uln | grep 162
```

### Incorrect trap data

**Verify MIB files loaded:**

Ensure monitoring system has latest Itential MIB files loaded.

**Check OID resolution:**

```bash
# Translate OID to name
snmptranslate -m +ITENTIAL-MIB 1.3.6.1.4.1.47688.1.1.1.0.4
# Should output: ITENTIAL-MIB::itenProngSystemRestart
```

### High trap volume

**Filter traps:**

Configure monitoring system to filter or rate-limit expected notifications:

* Application restart notifications during maintenance windows
* Adapter connection flapping during network issues
* Degraded state oscillations

**Adjust adapter health check intervals:**

Reduce health check frequency to decrease trap volume:

```properties
service_health_check_interval=60
```

## Best practices

### Configuration

* Use unique community strings per environment (dev, test, prod)
* Configure multiple SNMP destinations for redundancy
* Document trap handling procedures for operations team
* Test SNMP configuration in non-production first
* Restart Platform after SNMP configuration changes

### Monitoring

* Create monitoring rules for all critical notification types
* Set appropriate severity levels per notification type
* Correlate SNMP traps with Platform logs
* Implement automated remediation for common issues
* Regularly review trap patterns and volumes

### Security

* Use SNMPv3 with authentication and encryption (if supported)
* Restrict SNMP trap traffic with firewall rules
* Use non-default community strings
* Rotate community strings regularly
* Monitor for unauthorized SNMP trap sources

### Operations

* Load Itential MIB files into all monitoring systems
* Create runbooks for common SNMP notifications
* Configure escalation policies for critical traps
* Archive trap data for trend analysis
* Review trap configuration after Platform upgrades

## Additional resources

* [SNMP.org](https://www.snmp.com/) - SNMP protocol information
* [Net-SNMP](http://www.net-snmp.org/) - Open source SNMP tools
* [RFC 3411](https://www.rfc-editor.org/rfc/rfc3411) - SNMP Management Framework

## Next steps

#### [Environment variables](/itential-platform/configure/environment-variables-properties-reference)

Configuration reference