SNMP
Monitoring enthält einen eingebetteten, ausschließlich lesenden SNMPv1/v2c-Agenten ohne
Drittabhängigkeiten. Er beantwortet GET-, GETNEXT- und GETBULK-Anfragen aus einem eigenen
Enterprise-MIB-Baum sowie aus Teilmengen der Standard-MIBs (SNMPv2-MIB, HOST-RESOURCES-MIB,
IF-MIB) und kann SNMPv2c-Traps an konfigurierte Empfänger senden. Die mitgelieferte MIB-Datei
FP-STARFACE-MIB.txt beschreibt alle Objekte.
Grundlagen
- Typ: SNMPv1 und SNMPv2c, nur lesend —
SetRequestwird mitnoAccessabgelehnt - Endpunkt: UDP 161 (Standard, im Modul konfigurierbar)
- Authentifizierung/Absicherung: Community-String (Standard
public— bitte ändern) und IP-Filter über die Monitoring-Hosts-Liste; die STARFACE-Firewall wird automatisch nur für die eingetragenen Hosts geöffnet - Format: BER-kodierte SNMP-PDUs; Fließkommawerte (RTP-Qualität, Load) als
DisplayStringmit zwei Dezimalstellen - Lizenz: Edition Monitoring Pro; die Kachel SNMP in den Moduleinstellungen muss eingeschaltet sein (Standard: aus)
- Datenquelle: gemeinsamer Anlagen-Snapshot aller Monitoring-Schnittstellen (Cache-Lebensdauer standardmäßig 30 Sekunden)
Ports unterhalb 1024 kann der Moduldienst nicht direkt binden. Bei konfiguriertem Standardport 161 bindet der Agent intern auf Port 1161 (konfigurierter Port + 1000); das Modul richtet automatisch eine NAT-Weiterleitung UDP 161 → 1161 für die eingetragenen Monitoring-Hosts ein. Für Clients bleibt der konfigurierte Port maßgeblich. Kann die Weiterleitung nicht gesetzt werden, zeigt das Modul eine Warnung an — sprechen Sie den Agenten dann direkt auf dem internen Port an.
SNMPv1/v2c überträgt Community-String und Nutzdaten unverschlüsselt. Verwenden Sie einen individuellen Community-String und beschränken Sie den Zugriff konsequent über die Monitoring-Hosts-Liste. Ein leerer Community-String blockiert sämtliche Anfragen.
Objekte & MIB
MIB-Datei
Die Datei FP-STARFACE-MIB.txt (Modul FP-STARFACE-MIB) laden Sie direkt aus der SNMP-Kachel
der Moduleinstellungen herunter — oder per HTTP von der Anlage:
https://pbx.example.de/downloads/moduledata/<Modul-ID>/FP-STARFACE-MIB.txt
Die vollständige URL mit der Modul-ID Ihrer Installation zeigt das Modul im Tab Anleitungen an. Importieren Sie die MIB in Ihren SNMP-Manager (LibreNMS, Zabbix, PRTG, CheckMk, …), bevor Sie Sensoren konfigurieren.
OID-Wurzel
Der modulspezifische Teilbaum liegt unter:
1.3.6.1.4.1.99999.1 (fpStarface)
Die Enterprise-Nummer 99999 ist ein Platzhalter — der IANA-PEN-Antrag von Fluxpunkt ist
offen. Mit Vergabe der endgültigen Private Enterprise Number ändert sich die OID-Wurzel; die
MIB-Datei wird parallel angepasst. Hinterlegen Sie OIDs in Ihrem Monitoring daher möglichst
über die importierte MIB (Objektnamen) statt als fest verdrahtete Zahlenpfade.
Gruppen des Enterprise-Teilbaums
Alle Skalare sind mit der Instanz-OID <Objekt>.0 erreichbar. OID-Angaben in den folgenden
Tabellen sind relativ zur Wurzel fpStarface = 1.3.6.1.4.1.99999.1.
| Gruppe | OID | Inhalt |
|---|---|---|
fpStarfaceSystem | .1 | Appliance, STARFACE-Version, Seriennummer, Uptime |
fpStarfaceAccounts | .2 | Benutzerkonten und App-/Web-Verbindungen |
fpStarfaceSip | .3 | SIP-Health, Telefone, Peers, Provider-Tabelle |
fpStarfaceChannels | .4 | Gesprächskanäle und aktuelle Telefonie-Last |
fpStarfaceModules | .5 | Installierte Module und Instanzen |
fpStarfaceBackup | .6 | Backup-Ziele und jüngster Lauf |
fpStarfaceOs | .7 | Load, RAM, Festplatte, Datenbankgrößen |
fpStarfaceJava | .8 | JVM-Kennwerte |
fpStarfaceLicense | .9 | STARFACE-Lizenz |
fpStarfaceSecurity | .10 | Sicherheitseinstellungen der Anlage |
fpStarfaceRtp | .11 | RTP-Qualität aktiver Gespräche (Jitter, Paketverlust, RTT, MOS) |
fpStarfaceDb | .12 | PostgreSQL-Client-Verbindungen |
fpStarfaceTraps | .100 | Trap-Definitionen (Notifications) |
System (.1)
| Objekt | OID | Typ | Bedeutung |
|---|---|---|---|
fpsSysApplianceType | .1.1.0 | DisplayString | Appliance-Typ (z. B. „STARFACE Pro", „STARFACE VM") |
fpsSysStarfaceVersion | .1.2.0 | DisplayString | Aktive STARFACE-Version |
fpsSysStarfaceBuildDate | .1.3.0 | DisplayString | Build-Datum der STARFACE-Version |
fpsSysSerialNumber | .1.4.0 | DisplayString | Hardware-Seriennummer |
fpsSysManufacturer | .1.5.0 | DisplayString | Hardware-Hersteller |
fpsSysProductName | .1.6.0 | DisplayString | Hardware-Produktname |
fpsSysLicenseOwner | .1.7.0 | DisplayString | Inhaber der STARFACE-Lizenz |
fpsSysMaxUsers | .1.8.0 | Gauge32 | Maximale Benutzer der Appliance |
fpsSysMaxConnections | .1.9.0 | Gauge32 | Maximale gleichzeitige Anrufe |
fpsSysAsteriskUptime | .1.10.0 | DisplayString | Uptime des Telefonie-Dienstes |
fpsSysDebugMode | .1.11.0 | INTEGER | Debug-Modus (0 = aus, 1 = aktiv) |
Accounts (.2)
| Objekt | OID | Typ | Bedeutung |
|---|---|---|---|
fpsAccLicenseMaxUsers | .2.1.0 | Gauge32 | Lizenz-Maximum Benutzer |
fpsAccTotal | .2.2.0 | Gauge32 | Angelegte Benutzer gesamt |
fpsAccAdmin | .2.3.0 | Gauge32 | Admin-Benutzer |
fpsAccActive | .2.4.0 | Gauge32 | Benutzer im Status ACTIVE |
fpsAccAvailable | .2.5.0 | Gauge32 | Benutzer im Status AVAILABLE |
fpsAccRinging | .2.6.0 | Gauge32 | Benutzer im Status RINGING |
fpsAccUnavailable | .2.7.0 | Gauge32 | Benutzer im Status UNAVAILABLE |
fpsAccWebSessions | .2.8.0 | Gauge32 | Aktive Web-/Admin-Anmeldungen |
fpsAccConnectedAccounts | .2.9.0 | Gauge32 | Accounts mit aktiver App-Verbindung |
fpsAccConnectedClients | .2.10.0 | Gauge32 | Aktive App-Client-Sessions |
SIP (.3)
| Objekt | OID | Typ | Bedeutung |
|---|---|---|---|
fpsSipLocalhostStatus | .3.1.0 | DisplayString | Lokaler SIP-Health-Check (OK/FAILURE) |
fpsSipKnownPhones | .3.2.0 | Gauge32 | Konfigurierte Telefone |
fpsSipOnlinePhones | .3.3.0 | Gauge32 | Davon online |
fpsSipIpChangedPhones | .3.4.0 | Gauge32 | Telefone mit abweichender IP |
fpsSipPeerCount | .3.5.0 | Gauge32 | Aktive SIP-Peers |
fpsSipProviderCount | .3.6.0 | Gauge32 | SIP-Provider-Registrierungen |
SIP-Provider-Tabelle fpsSipProviderTable (.3.7, Index fpsSipProviderIndex):
| Spalte | OID | Typ | Bedeutung |
|---|---|---|---|
fpsSipProviderIndex | .3.7.1.1.<n> | Integer32 | 1-basierter Zeilenindex |
fpsSipProviderUri | .3.7.1.2.<n> | DisplayString | SIP-URI bzw. Host der Registrierung |
fpsSipProviderRegistered | .3.7.1.3.<n> | INTEGER | registered(1) / notRegistered(2) |
Channels (.4)
| Objekt | OID | Typ | Bedeutung |
|---|---|---|---|
fpsChMax | .4.1.0 | Gauge32 | Maximale gleichzeitige Channels |
fpsChActive | .4.2.0 | Gauge32 | Aktive Channels |
fpsChCallsLast5Min | .4.3.0 | Counter32 | Anrufe der letzten 5 Minuten |
fpsChCurrentLinkedCalls | .4.4.0 | Gauge32 | Aktuell verbundene Anrufe |
fpsChCurrentParkedCalls | .4.5.0 | Gauge32 | Aktuell geparkte Anrufe |
fpsChCurrentConferenceCalls | .4.6.0 | Gauge32 | Aktuelle Konferenz-Anrufe |
Modules (.5)
| Objekt | OID | Typ | Bedeutung |
|---|---|---|---|
fpsModInstalled | .5.1.0 | Gauge32 | Installierte Module |
fpsModInstances | .5.2.0 | Gauge32 | Summe aller Modul-Instanzen |
Backup (.6)
| Objekt | OID | Typ | Bedeutung |
|---|---|---|---|
fpsBkpCount | .6.1.0 | Gauge32 | Konfigurierte Backup-Ziele |
fpsBkpLastLocation | .6.2.0 | DisplayString | Ort des jüngsten Backups |
fpsBkpLastTime | .6.3.0 | DisplayString | Zeitstempel des jüngsten Backups |
fpsBkpLastMessage | .6.4.0 | DisplayString | Statusmeldung des jüngsten Backups |
OS (.7)
| Objekt | OID | Typ | Bedeutung |
|---|---|---|---|
fpsOsLoad1 / fpsOsLoad5 / fpsOsLoad15 | .7.1.0–.7.3.0 | DisplayString | Load-Average 1/5/15 Minuten |
fpsOsMemTotalBytes | .7.4.0 | Counter64 | Hauptspeicher gesamt (Bytes) |
fpsOsMemFreeBytes | .7.5.0 | Counter64 | Hauptspeicher frei (Bytes) |
fpsOsMemAvailableBytes | .7.6.0 | Counter64 | Hauptspeicher verfügbar (Bytes) |
fpsOsDiskRootTotalBytes | .7.7.0 | Counter64 | Root-Partition gesamt (Bytes) |
fpsOsDiskRootFreeBytes | .7.8.0 | Counter64 | Root-Partition frei (Bytes) |
fpsOsDbSize | .7.9.0 | Counter64 | Größe der STARFACE-Datenbank (Bytes) |
fpsOsCdrSize | .7.10.0 | Counter64 | Größe der Ruflisten-Daten (Bytes) |
Java (.8)
| Objekt | OID | Typ | Bedeutung |
|---|---|---|---|
fpsJavaVmName / fpsJavaVmVendor / fpsJavaVmVersion / fpsJavaVersion | .8.1.0–.8.4.0 | DisplayString | JVM- und Java-Kennung |
fpsJavaHeapUsed / fpsJavaHeapMax | .8.5.0 / .8.6.0 | Counter64 | Heap belegt/maximal (Bytes) |
fpsJavaNonHeapUsed / fpsJavaNonHeapMax | .8.7.0 / .8.8.0 | Counter64 | Non-Heap belegt/maximal (Bytes) |
fpsJavaMaxMemory | .8.9.0 | Counter64 | Maximal nutzbarer JVM-Speicher (Bytes) |
License (.9) und Security (.10)
| Objekt | OID | Typ | Bedeutung |
|---|---|---|---|
fpsLicOwner | .9.1.0 | DisplayString | Lizenzinhaber |
fpsLicMaxUsers | .9.2.0 | Gauge32 | Maximale Benutzer laut Lizenz |
fpsSecPasswordCheck | .10.1.0 | Integer32 | 1 = Passwortprüfung aktiv |
fpsSecAttackDetection | .10.2.0 | Integer32 | 1 = Angriffserkennung aktiv |
fpsSecBlacklistedHosts | .10.3.0 | Gauge32 | Einträge auf der Blacklist |
fpsSecWhitelistedHosts | .10.4.0 | Gauge32 | Einträge auf der Whitelist |
fpsSecAutoprov | .10.5.0 | Integer32 | 1 = Auto-Provisionierung aktiv |
fpsSecAcceptAllMacs | .10.6.0 | Integer32 | 1 = „alle MAC-Adressen akzeptieren" |
fpsSecAutoFwUpdate | .10.7.0 | Integer32 | 1 = automatische Firmware-Updates aktiv |
RTP-Qualität (.11)
Live-Aggregate über alle aktiven Audio-Channels. Der MOS-Wert ist eine Näherung nach ITU-T
G.107 (E-Modell) — als Indikator zu lesen, nicht als absolute Messung. Ohne aktive Channels
liefern die Objekte noSuchInstance.
| Objekt | OID | Typ | Bedeutung |
|---|---|---|---|
fpsRtpActiveChannels | .11.1.0 | Gauge32 | Audio-Channels mit gültigen RTP-QoS-Daten |
fpsRtpAvgJitterMs / fpsRtpMaxJitterMs | .11.2.0 / .11.3.0 | DisplayString | Jitter Mittelwert/Maximum (ms) |
fpsRtpAvgPacketLossPercent / fpsRtpMaxPacketLossPercent | .11.4.0 / .11.5.0 | DisplayString | Paketverlust Mittelwert/Maximum (%) |
fpsRtpAvgRttMs | .11.6.0 | DisplayString | Mittlere Round-Trip-Time (ms) |
fpsRtpEstimatedMos | .11.7.0 | DisplayString | Geschätzter MOS (1.0–4.5) |
fpsRtpMedianJitterMs | .11.8.0 | DisplayString | Median des Jitters (ms) |
fpsRtpMedianPacketLossPercent | .11.9.0 | DisplayString | Median des Paketverlusts (%) |
fpsRtpMedianRttMs | .11.10.0 | DisplayString | Median der Round-Trip-Time (ms) |
fpsRtpMedianMos | .11.11.0 | DisplayString | Median der MOS-Schätzungen |
Datenbank-Verbindungen (.12)
PostgreSQL-Client-Verbindungen aus pg_stat_activity — zur Früherkennung geleakter
Connection-Pools. Bei nicht verfügbarer Abfrage liefern die Objekte noSuchInstance.
| Objekt | OID | Typ | Bedeutung |
|---|---|---|---|
fpsDbConnTotal | .12.1.0 | Gauge32 | Client-Verbindungen gesamt |
fpsDbConnActive | .12.2.0 | Gauge32 | Status active |
fpsDbConnIdle | .12.3.0 | Gauge32 | Status idle |
fpsDbConnIdleInTransaction | .12.4.0 | Gauge32 | Status idle in transaction (Leak-Signal) |
fpsDbConnMax | .12.5.0 | Gauge32 | PostgreSQL max_connections |
fpsDbConnUtilizationPercent | .12.6.0 | Gauge32 | Auslastung gegen max_connections (%) |
Standard-MIBs
Zusätzlich zum Enterprise-Teilbaum bedient der Agent die Standard-Erkennungspfade gängiger Manager:
| MIB | Wurzel | Bediente Objekte |
|---|---|---|
| SNMPv2-MIB system | 1.3.6.1.2.1.1 | sysDescr („Fluxpunkt Monitoring for STARFACE - STARFACE <Version>"), sysObjectID (zeigt auf fpStarface), sysUpTime, sysContact, sysName, sysLocation, sysServices (76) |
| HOST-RESOURCES-MIB | 1.3.6.1.2.1.25 | hrSystemUptime, hrSystemDate, hrSystemNumUsers, hrSystemProcesses, hrSystemMaxProcesses, hrMemorySize, hrStorageTable, hrProcessorTable |
| IF-MIB | 1.3.6.1.2.1.2 | ifNumber sowie je Interface eine ifTable-Zeile (Beschreibung, Typ, MTU, Geschwindigkeit, MAC, Status, Oktett-/Paket-/Fehlerzähler) |
Traps
Für kritische Ereignisse definiert die MIB unter fpStarfaceTraps (1.3.6.1.4.1.99999.1.100)
folgende SNMPv2c-Notifications. Trap-Empfänger (Host + UDP-Port, Standard 162) konfigurieren
Sie in den Moduleinstellungen; als Community wird der konfigurierte Community-String verwendet.
| Notification | OID | Ereignis |
|---|---|---|
fpsTrapSipProviderDown | .100.1 | Ein SIP-Provider ist nicht mehr registriert |
fpsTrapAllPhonesOffline | .100.2 | Alle bekannten SIP-Telefone sind offline |
fpsTrapRaidDegraded | .100.3 | RAID-Verbund läuft im DEGRADED-Modus |
fpsTrapDiskAlmostFull | .100.4 | Root-Partition über kritischer Grenze (Standard 90 %) |
fpsTrapBackupStale | .100.5 | Jüngstes Backup älter als 24 Stunden |
fpsTrapLicenseExpiring | .100.6 | STARFACE-Lizenz läuft in weniger als 30 Tagen ab |
Jeder Trap folgt der SNMPv2c-Konvention: erste Variable sysUpTime.0 (TimeTicks), zweite
snmpTrapOID.0 (OID des Trap-Typs), danach ereignisspezifische Variablen.
Abfragen
Beispiele mit Net-SNMP-Werkzeugen (pbx.example.de = STARFACE, Community public):
# Walk über den gesamten Modul-Teilbaum
snmpwalk -v2c -c public pbx.example.de 1.3.6.1.4.1.99999.1
# Einzelne Skalare
snmpget -v2c -c public pbx.example.de 1.3.6.1.4.1.99999.1.1.2.0 # STARFACE-Version
snmpget -v2c -c public pbx.example.de 1.3.6.1.4.1.99999.1.7.4.0 # RAM gesamt (Bytes)
snmpget -v2c -c public pbx.example.de 1.3.6.1.4.1.99999.1.2.2.0 # Benutzer gesamt
# GetBulk (nur v2c)
snmpbulkget -v2c -c public -Cn0 -Cr10 pbx.example.de 1.3.6.1.4.1.99999.1.2
# Mit importierter MIB (Objektnamen statt Zahlen-OIDs)
snmpwalk -v2c -c public -m +FP-STARFACE-MIB pbx.example.de fpStarface
Antwort (gekürzt):
FP-STARFACE-MIB::fpsSysApplianceType.0 = STRING: STARFACE Pro
FP-STARFACE-MIB::fpsSysStarfaceVersion.0 = STRING: 10.0.1.2
FP-STARFACE-MIB::fpsSysLicenseOwner.0 = STRING: Beispiel GmbH
FP-STARFACE-MIB::fpsAccTotal.0 = Gauge32: 35
FP-STARFACE-MIB::fpsSipLocalhostStatus.0 = STRING: OK
FP-STARFACE-MIB::fpsSipOnlinePhones.0 = Gauge32: 41
FP-STARFACE-MIB::fpsSipProviderRegistered.1 = INTEGER: registered(1)
FP-STARFACE-MIB::fpsChActive.0 = Gauge32: 3
FP-STARFACE-MIB::fpsRtpEstimatedMos.0 = STRING: 4.38
…
Ihr Rechenzentrum überwacht alle Systeme per SNMP mit LibreNMS. Sie tragen die IP des
LibreNMS-Servers als Monitoring-Host ein, importieren FP-STARFACE-MIB.txt und legen die
Anlage als SNMP-Device an. Leitungsregistrierung, Kanalauslastung und Sprachqualität erscheinen
im selben Baum wie Switches und Server — inklusive der Standard-Graphen aus HOST-RESOURCES- und
IF-MIB.
Fehlerbehandlung
| Situation | Verhalten |
|---|---|
| Absender-IP nicht in der Monitoring-Hosts-Liste | Paket wird verworfen — keine Antwort (zusätzlich blockt die Firewall). |
| Community-String falsch oder im Modul leer | Paket wird kommentarlos verworfen (SNMP-Standardverhalten) — der Client läuft in einen Timeout. |
| IPv6-Absender | Wird abgelehnt; der Agent bedient ausschließlich IPv4. |
| Unbekannte OID | SNMPv1: Fehlerstatus noSuchName; SNMPv2c: noSuchObject/noSuchInstance als Varbind-Wert. |
| Walk über das Baumende hinaus | SNMPv2c: endOfMibView; SNMPv1: noSuchName. |
| Wert aktuell nicht verfügbar (z. B. RTP ohne aktive Gespräche, DB-Abfrage fehlgeschlagen) | noSuchInstance — von Managern als „n/a" zu interpretieren, nicht als 0. |
SetRequest | Ablehnung mit Fehlerstatus noAccess — der Agent ist strikt lesend. |
GETBULK mit überhöhtem max-repetitions | Begrenzung auf 100 Wiederholungen je Anfrage. |
| Konfigurierter Port beim Start belegt | Automatischer Ausweichversuch auf den Folge-Port mit Warnung in der Moduloberfläche. |
| SNMP-Kachel aus, keine Monitoring Pro-Lizenz oder Modul unlizenziert | Agent läuft nicht — der Port ist geschlossen, Anfragen laufen in einen Timeout. |
Versionierung & Kompatibilität
Bestehende Objekte behalten OID, Syntax und Semantik; Erweiterungen erfolgen additiv als neue
Objekte bzw. Gruppen. Vorbehalt: der Wechsel der Platzhalter-Enterprise-Nummer 99999 auf die
endgültige IANA-PEN (siehe Warnung oben) ändert alle Enterprise-OIDs und wird in den
Release Notes angekündigt. Die Zeilenanzahl der
Tabellen (fpsSipProviderTable, hrStorageTable, ifTable) wird beim Start des Agenten
festgelegt — neue SIP-Provider, Laufwerke oder Netzwerk-Interfaces erscheinen nach einem
Neustart des Agenten (Kachel aus/ein oder Übernehmen der Einstellungen).