Intégration HOMER
Ce document couvre l'intégration optionnelle de HOMER pour corréler les journaux d'application avec les traces SIP.
Vue d'ensemble
OmniTAS peut transférer des journaux d'application à un serveur HOMER en utilisant le HEP3 (Homer Encapsulation Protocol) sur UDP. Les journaux sont corrélés avec les traces SIP en utilisant le SIP Call-ID, permettant une visibilité de bout en bout du traitement des appels aux côtés de la signalisation.
Comment ça fonctionne
- Métadonnées de journal : Pendant le traitement des appels, OmniTAS définit le SIP Call-ID dans les métadonnées du Logger.
- Capture de journal : Le module Homer s'abonne aux messages de journal via PubSub.
- Filtrage : Seuls les journaux contenant des métadonnées
call_idsont transférés. - Encodage HEP3 : Les journaux sont encodés en tant que paquets HEP3 avec le type de protocole 100 (journal).
- Corrélation : HOMER corrèle les journaux avec les traces SIP en utilisant le Call-ID.
Configuration
Ajoutez la configuration homer_server à votre config/runtime.exs :
config :tas,
homer_server: %{
host: "10.179.2.136",
port: 9060,
auth_key: nil,
capture_id: 2001
}
Paramètres
| Paramètre | Type | Requis | Par défaut | Description |
|---|---|---|---|---|
host | String | Oui | - | Adresse IP ou nom d'hôte du serveur HOMER |
port | Integer | Non | 9060 | Port UDP du récepteur HEP |
auth_key | String | Non | nil | Clé d'authentification HEP optionnelle. À définir pour correspondre à authkey dans la configuration du serveur heplify si activé |
capture_id | Integer | Non | 2001 | Identifiant de l'agent de capture. Apparaît dans l'interface HOMER pour identifier la source des journaux |
Désactivation de l'intégration HOMER
Pour désactiver l'intégration HOMER, soit :
- Supprimez complètement la configuration
homer_server, ou - Commentez le bloc de configuration
Lorsque désactivé, le module Homer n'est pas démarré et aucun journal n'est transféré.
Exigences du serveur HOMER
Le serveur HOMER doit exécuter heplify-server avec la réception HEP activée sur UDP.
Configuration de heplify-server
Vérifiez que votre heplify-server.toml inclut :
HEPAddr = "0.0.0.0:9060"
Types de protocole pris en charge
OmniTAS envoie des journaux avec le type de protocole HEP 100, que heplify-server achemine vers logs_capture. Assurez-vous que le schéma de votre base de données HOMER prend en charge le stockage des journaux.
Corrélation des journaux
Injection automatique du Call-ID
OmniTAS injecte automatiquement le Call-ID dans les métadonnées du Logger pendant :
- Traitement des appels MO : Lors du traitement des appels d'origine mobile
- Traitement des appels MT : Lors du traitement des appels terminés sur mobile
- Événements d'appel : Lors de la gestion des événements de réponse et de raccrochage
Format de journal
Les journaux envoyés à HOMER incluent :
| Champ | Description |
|---|---|
| ID de corrélation | SIP Call-ID pour la corrélation des traces |
| Horodatage | Horodatage avec une précision en microsecondes |
| Niveau | Niveau de journal (debug, info, warning, error) |
| Message | Contenu du message de journal |
| IP source | Adresse IP du serveur OmniTAS |
| ID de capture | Identifiant de l'agent de capture configuré |
Exemple de journal dans HOMER
Après qu'un appel a été traité, HOMER affiche les données corrélées :
[info] Traitement de l'appel MO de : 61400123456 à : 61400654321
[debug] Recherche sh pour l'appelant : 61400123456
[info] Autorisation OCS : ACCORDÉE (120 secondes)
[debug] Définition de la variable : hangup_case = none
Ces journaux apparaissent aux côtés des messages SIP INVITE, 200 OK et BYE dans la vue de détail des appels de HOMER.
Détails du protocole HEP3
OmniTAS implémente HEP3 tel que défini par le projet HOMER, compatible avec le module siptrace de Kamailio.
Types de chunks utilisés
| ID de chunk | Nom | Description |
|---|---|---|
| 0x0001 | Famille IP | Toujours 2 (IPv4) |
| 0x0002 | Protocole IP | Toujours 17 (UDP) |
| 0x0003 | Source IPv4 | Adresse du serveur OmniTAS |
| 0x0004 | Dest IPv4 | Adresse du serveur HOMER |
| 0x0007 | Port source | 0 (non applicable pour les journaux) |
| 0x0008 | Port de destination | Port HEP configuré |
| 0x0009 | Timestamp Sec | Secondes de timestamp Unix |
| 0x000A | Timestamp USec | Composant en microsecondes |
| 0x000B | Type de protocole | 100 (journal) |
| 0x000C | ID de capture | capture_id configuré |
| 0x0011 | ID de corrélation | SIP Call-ID |
| 0x000F | Charge utile | Message de journal |
| 0x000E | Clé d'authentification | Authentification optionnelle |
Dépannage
Journaux n'apparaissant pas dans HOMER
Symptômes : Les appels se terminent avec succès mais aucun journal n'apparaît dans HOMER.
Causes possibles :
- Serveur HOMER inaccessible sur le port configuré
- Pare-feu bloquant le trafic UDP vers le port 9060
- heplify-server non configuré pour recevoir HEP
- Journaux manquant de métadonnées call_id
Résolution :
- Vérifiez la connectivité réseau :
nc -zvu <homer_host> 9060 - Vérifiez que heplify-server écoute :
ss -ulnp | grep 9060 - Consultez les journaux de heplify-server pour les paquets entrants
- Vérifiez que call_id apparaît dans les journaux d'OmniTAS (recherchez
call_id=dans la sortie du journal)
Échecs d'authentification
Symptômes : Les journaux de heplify-server montrent des erreurs d'authentification.
Causes possibles :
- Clé d'authentification non correspondante entre OmniTAS et heplify-server
- Clé d'authentification configurée d'un côté mais pas de l'autre
Résolution :
- Si heplify-server n'a pas de clé d'authentification configurée, définissez
auth_key: nildans OmniTAS. - Si heplify-server nécessite une authentification, configurez une clé correspondante dans les deux systèmes.
Corrélation manquante
Symptômes : Les journaux apparaissent dans HOMER mais ne sont pas corrélés avec les traces SIP.
Causes possibles :
- Mismatch de format de Call-ID entre SIP et journaux
- Configuration de corrélation HOMER
Résolution :
- Vérifiez que le Call-ID dans les journaux correspond exactement à l'en-tête SIP Call-ID.
- Vérifiez les paramètres de corrélation de HOMER pour la table logs_capture.
Métriques
Lorsque l'intégration HOMER est activée, surveillez ces indicateurs :
Journaux OmniTAS
Surveillez les avertissements indiquant des échecs de transmission HEP :
[warning] Échec de l'envoi du paquet HEP à Homer : <reason>
Métriques de heplify-server
Si les métriques Prometheus sont activées sur heplify-server, surveillez :
heplify_packets_total{type="log"}- Total des paquets de journaux reçusheplify_packets_dropped_total- Paquets perdus (erreurs de tampon/analyse)
Référence d'architecture
Interaction des composants
Flux de données
Voir aussi
- Projet HOMER - Capture et surveillance VoIP/RTC open source
- Spécification du protocole HEP - Documentation du protocole HEP/EEP
- heplify-server - Serveur de capture HEP