Aller au contenu

hpsmartyz2

Membres
  • Compteur de contenus

    20
  • Inscription

  • Dernière visite

À propos de hpsmartyz2

Visiteurs récents du profil

Le bloc de visiteurs récents est désactivé et il n’est pas visible pour les autres utilisateurs.

hpsmartyz2's Achievements

Apprentice

Apprentice (3/14)

  • One Month Later
  • Dedicated Rare
  • Collaborator Rare
  • Week One Done
  • First Post Rare

Recent Badges

0

Réputation sur la communauté

  1. c'est bon c'est remonté. Voilà un plot de la qualité du signal d'un homepod connecté à mon répéteur. les données manquantes à la fin c'est simplement car j'ai réalisé que le lien box-switch était à 100Mb plutôt que les 1000Mb attendus et j'ai fait qques manips avec le switch, en vain. Pour la force du signal c'est juste la couleur qui compte (car elle est exprimée en dbm <0 normalement et je fais donc '+ 100' pour la ploter, mais donc c'est le delta à 100 qui s'affiche), le snr quant à lui reflète la valeur extraite. Si cela intéresse certains je peux partager les templates cacti qui servent à tout ça.
  2. je pense que c'est plutôt 500Mo et 1Go respectivement, mais au delà de ça, je trouve des articles qui semblent confirmer 1Go pour la 4 mais ne trouve rien pour la 5.
  3. Bonjour, bonne question. j'extraie l'info d'ici: OBJECT NAME: 'sysbus.DeviceInfo.MemoryStatus' (name: MemoryStatus) parameter: Total : uint32 = '490944' parameter: Free : uint32 = '184368' et je plote Free (en ayant pris l'hypothèse qu'il fallait multiplier par 1024. D'où viennent vos chiffres ? Merci.
  4. La mémoire disponible de la box diminue, c'est peut-être pas bon signe 🤨
  5. Bon, vu que je suis pas super doué en ash ça m'a pris un peu de temps, ainsi que farfouiller dans les recoins de la Livebox 5. Pour ceux que cela intéresse voilà mon script. Il extrait les stats de trafic des interfaces wifi, lan, wan de la box les stats de trafic des interfaces wifi du répéteur la puissance du signal et le rapport signal sur bruit de chacun des terminaux connectés (à la box ou au répéteur) la mémoire vive disponible sur la box je ne récupère que les port 1 (eth0) et 4 (eth3) du lan, mais ça se généralise aux deux autres très simplement. Je compléterai ce script au fur et à mesure avec d'autres paramètres. Pour l'instant je n'ai pas encore trouvé comment extraire les stats des terminaux filaires. Plus précisément j'ai trouvé un moyen (récupérer les flow stats) mais qui n'est pas le plus évident qui soit et donc il faut que j'y travaille encore. Le script inscrit les paramètres dans un fichier texte selon un format donné mais ce n'est pas la partie intéressante. Ce qui est susceptible de vous intéresser c'est l'ensemble des fonctions appelées. #!/bin/sh # credits to https://blog.tetsumaki.net/ for LB connection/authentication method lbDataDir=/var/services/web/cacti/scripts/livebox if [ -f $lbDataDir/lock ]; then echo "lock file should not exist" else touch $lbDataDir/lock myLivebox="ip-de-la-box" myExtender="ip-du-repeteur" passwd="mot-de-passe-de-la-box/du-repeteur" lbOutput=$lbDataDir/lbOutput.txt lbCookies=$lbDataDir/lbCookies.txt extOutput=$lbDataDir/extOutput.txt extCookies=$lbDataDir/extCookies.txt rm $lbDataDir/livebox-infos.txt touch $lbDataDir/livebox-infos.txt #***********************************# # LIVEBOX # #***********************************# #connect to livebox curl -s -o "$lbOutput" -X POST -c "$lbCookies" -H 'Content-Type: application/x-sah-ws-4-call+json' -H 'Authorization: X-Sah-Login' -d "{\"service\":\"sah.Device.Information\",\"method\":\"createContext\",\"parameters\":{\"applicationName\":\"so_sdkut\",\"username\":\"admin\",\"password\":\"$passwd\"}}" http://$myLivebox/ws > /dev/null lbContextID=$(tail -n1 "$lbOutput" | sed 's/{"status":0,"data":{"contextID":"//1'| sed 's/",//1' | sed 's/"groups":"http,admin//1' | sed 's/"}}//1') #Get traffic stats of interfaces intfList="veip0 eth0 eth3 wl0 eth4" prefix="NeMo.Intf." for intf in $intfList; do srv="${prefix}${intf}" output=$(curl -s -b "$lbCookies" -X POST -H 'Content-Type: application/x-sah-ws-4-call+json' -H "X-Context: $lbContextID" -d "{\"service\":\"$srv\",\"method\":\"getNetDevStats\",\"parameters\":{}}" http://$myLivebox/ws) verif=$(echo "$output" | cut -d":" -f2 | cut -d"," -f1) if [ "$verif" = "null" ]; then echo "interface ${intf} does not exist or could not be retreived" else rx=$(echo "$output" | awk -F'RxBytes' '{print $2}' | awk -F\: '{print $2}' | awk -F\, '{print $1}') tx=$(echo "$output" | awk -F'TxBytes' '{print $2}' | awk -F\: '{print $2}' | awk -F\, '{print $1}') echo "lb_$intf>rx:$rx,tx:$tx" >> $lbDataDir/livebox-infos.txt fi done #Get traffic and signal stats of wireless terminals. Only Active Associated Devices are considered. prefix="NeMo.Intf." intfList="wl0 eth4" for intf in $intfList; do srv="${prefix}${intf}" output=$(curl -s -b "$lbCookies" -X POST -H 'Content-Type: application/x-sah-ws-4-call+json' -H "X-Context: $lbContextID" -d "{\"service\":\"$srv\",\"method\":\"getStationStats\",\"parameters\":{}}" http://$myLivebox/ws) verif=$(echo "$output" | cut -d":" -f2 | cut -d"," -f1) if [ "$verif" = "null" ]; then echo "error retreiving ${srv}:getStationStats" else n=1 nAD=$(echo "$output" | awk -F'MACAddress' '{print NF-1}') while [ $n -le $nAD ]; do isActive=$(echo "$output" | awk -F'Active' "{print \$$((n+1))}" | awk -F\: '{print $2}' | awk -F\, '{print $1}') mac=$(echo "$output" | awk -F'"MACAddress":' "{print \$$((n+1))}" | awk -F\, '{print $1}' | awk -F\" '{print $2}') if [ "$isActive" = "true" ]; then rx=$(echo "$output" | awk -F'RxBytes' "{print \$$((n+1))}" | awk -F\: '{print $2}' | awk -F\, '{print $1}') tx=$(echo "$output" | awk -F'TxBytes' "{print \$$((n+1))}" | awk -F\: '{print $2}' | awk -F\, '{print $1}') sst=$(echo "$output" | awk -F'"SignalStrength":' "{print \$$((n+1))}" | awk -F\, '{print $1}') snr=$(echo "$output" | awk -F'SignalNoiseRatio' "{print \$$((n+1))}" | awk -F\: '{print $2}' | awk -F\, '{print $1}') sst=$((sst + 100)) if [ $sst -gt 70 ]; then sig="r1:10,r2:10,r3:10,r4:3,r5:7,r6:10,r7:20,r8:$((sst - 70)),snr:$snr" elif [ $sst -gt 50 ]; then sig="r1:10,r2:10,r3:10,r4:3,r5:7,r6:10,r7:$((sst - 50)),r8:0,snr:$snr" elif [ $sst -gt 40 ]; then sig="r1:10,r2:10,r3:10,r4:3,r5:7,r6:$((sst - 40)),r7:0,r8:0,snr:$snr" elif [ $sst -gt 33 ]; then sig="r1:10,r2:10,r3:10,r4:3,r5:$((sst - 33)),r6:0,r7:0,r8:0,snr:$snr" elif [ $sst -gt 30 ]; then sig="r1:10,r2:10,r3:10,r4:$((sst - 30)),r5:0,r6:0,r7:0,r8:0,snr:$snr" elif [ $sst -gt 20 ]; then sig="r1:10,r2:10,r3:$((sst - 20)),r4:0,r5:0,r6:0,r7:0,r8:0,snr:$snr" elif [ $sst -gt 10 ]; then sig="r1:10,r2:$((sst - 10)),r3:0,r4:0,r5:0,r6:0,r7:0,r8:0,snr:$snr" elif [ $sst -gt 0 ]; then sig="r1:$sst,r2:0,r3:0,r4:0,r5:0,r6:0,r7:0,r8:0,snr:$snr" fi echo "lb_$mac>rx:$rx,tx:$tx,$sig" >> $lbDataDir/livebox-infos.txt else echo "device ${mac} is Associated but inactive. It might be connected to an extender or could become out of range soon" fi n=$((n + 1)) done fi done output=$(curl -s -b "$lbCookies" -X POST -H 'Content-Type: application/x-sah-ws-4-call+json' -H "X-Context: $lbContextID" -d "{\"service\":\"DeviceInfo.MemoryStatus\",\"method\":\"get\",\"parameters\":{}}" http://$myLivebox/ws) verif=$(echo "$output" | cut -d"{" -f2 | cut -d":" -f2) if [ "$verif" = "null" ]; then echo "error retreiving DeviceInfo.MemoryStatus" else mf=$(echo "$output" | awk -F'Free' '{print $2}'| awk -F\: '{print $2}' | awk -F\, '{print $1}' | awk -F\} '{print $1}') echo "$myLivebox>MemFree:$mf" >> $lbDataDir/livebox-infos.txt fi #disconnect from livebox curl -s -b "$lbCookies" -X POST http://$myLivebox/logout rm "$lbCookies" "$lbOutput" #***********************************# # REPETEUR # #***********************************# #connect to extender curl -s -o "$extOutput" -X POST -c "$extCookies" -H 'Content-Type: application/x-sah-ws-4-call+json' -H 'Authorization: X-Sah-Login' -d "{\"service\":\"sah.Device.Information\",\"method\":\"createContext\",\"parameters\":{\"applicationName\":\"so_sdkut\",\"username\":\"admin\",\"password\":\"$passwd\"}}" http://$myExtender/ws > /dev/null extContextID=$(tail -n1 "$extOutput" | sed 's/{"status":0,"data":{"contextID":"//1'| sed 's/",//1' | sed 's/"groups":"http,admin//1' | sed 's/"}}//1') #Get traffic stats of interfaces intfList="wl0 vap5g0priv" prefix="NeMo.Intf." for intf in $intfList; do srv="${prefix}${intf}" output=$(curl -s -b "$extCookies" -X POST -H 'Content-Type: application/x-sah-ws-4-call+json' -H "X-Context: $extContextID" -d "{\"service\":\"$srv\",\"method\":\"getNetDevStats\",\"parameters\":{}}" http://$myExtender/ws) verif=$(echo "$output" | cut -d":" -f2 | cut -d"," -f1) if [ "$verif" = "null" ]; then echo "interface ${intf} does not exist or could not be retreived" else rx=$(echo "$output" | awk -F'RxBytes' '{print $2}' | awk -F\: '{print $2}' | awk -F\, '{print $1}') tx=$(echo "$output" | awk -F'TxBytes' '{print $2}' | awk -F\: '{print $2}' | awk -F\, '{print $1}') #adding prefix to differenciate intf name between box and extender (only usefull for wl0) echo "ext_$intf>rx:$rx,tx:$tx" >> $lbDataDir/livebox-infos.txt fi done prefix="NeMo.Intf." intfList="wl0 vap5g0priv" for intf in $intfList; do srv="${prefix}${intf}" output=$(curl -s -b "$extCookies" -X POST -H 'Content-Type: application/x-sah-ws-4-call+json' -H "X-Context: $extContextID" -d "{\"service\":\"$srv\",\"method\":\"getStationStats\",\"parameters\":{}}" http://$myExtender/ws) verif=$(echo "$output" | cut -d":" -f2 | cut -d"," -f1) if [ "$verif" = "null" ]; then echo "error retreiving ${srv}:getStationStats" else n=1 nAD=$(echo "$output" | awk -F'MACAddress' '{print NF-1}') while [ $n -le $nAD ]; do isActive=$(echo "$output" | awk -F'Active' "{print \$$((n+1))}" | awk -F\: '{print $2}' | awk -F\, '{print $1}') mac=$(echo "$output" | awk -F'"MACAddress":' "{print \$$((n+1))}" | awk -F\, '{print $1}' | awk -F\" '{print $2}') if [ "$isActive" = "true" ]; then rx=$(echo "$output" | awk -F'RxBytes' "{print \$$((n+1))}" | awk -F\: '{print $2}' | awk -F\, '{print $1}') tx=$(echo "$output" | awk -F'TxBytes' "{print \$$((n+1))}" | awk -F\: '{print $2}' | awk -F\, '{print $1}') sst=$(echo "$output" | awk -F'"SignalStrength":' "{print \$$((n+1))}" | awk -F\, '{print $1}') snr=$(echo "$output" | awk -F'SignalNoiseRatio' "{print \$$((n+1))}" | awk -F\: '{print $2}' | awk -F\, '{print $1}') sst=$((sst + 100)) if [ $sst -gt 70 ]; then sig="r1:10,r2:10,r3:10,r4:3,r5:7,r6:10,r7:20,r8:$((sst - 70)),snr:$snr" elif [ $sst -gt 50 ]; then sig="r1:10,r2:10,r3:10,r4:3,r5:7,r6:10,r7:$((sst - 50)),r8:0,snr:$snr" elif [ $sst -gt 40 ]; then sig="r1:10,r2:10,r3:10,r4:3,r5:7,r6:$((sst - 40)),r7:0,r8:0,snr:$snr" elif [ $sst -gt 33 ]; then sig="r1:10,r2:10,r3:10,r4:3,r5:$((sst - 33)),r6:0,r7:0,r8:0,snr:$snr" elif [ $sst -gt 30 ]; then sig="r1:10,r2:10,r3:10,r4:$((sst - 30)),r5:0,r6:0,r7:0,r8:0,snr:$snr" elif [ $sst -gt 20 ]; then sig="r1:10,r2:10,r3:$((sst - 20)),r4:0,r5:0,r6:0,r7:0,r8:0,snr:$snr" elif [ $sst -gt 10 ]; then sig="r1:10,r2:$((sst - 10)),r3:0,r4:0,r5:0,r6:0,r7:0,r8:0,snr:$snr" elif [ $sst -gt 0 ]; then sig="r1:$sst,r2:0,r3:0,r4:0,r5:0,r6:0,r7:0,r8:0,snr:$snr" fi #adding prefix to differenciate terminal mac between box and extender #traffic and signal data are specific to connection point echo "ext_$mac>rx:$rx,tx:$tx,$sig" >> $lbDataDir/livebox-infos.txt else echo "device ${mac} is Associated but inactive. It might be connected to an extender or could become out of range soon" fi n=$((n + 1)) done fi done #disconnect from extender curl -s -b "$extCookies" -X POST http://$myExtender/logout rm "$extCookies" "$extOutput" rm $lbDataDir/lock fi
  6. Bonjour, puisque ce tuto remonte il fait revenir à mon esprit une question à laquelle je ne trouve pas de réponse, mais je peux avoir mal cherché. Quel est le comportement quand aucune des cases NA/RO/RW est cochée ? merci
  7. le problème n'est pas tant le numéro de l'instance ni leur nombre mais plutôt de remarquer que sur la box4 l'interface Wifi 5GHz s'appelle eth6 alors qu'elle s'appelle eth4 sur la LB5. Néanmoins, dans les deux cas l'objet Interface reste le même donc le modèle générique est identique, au moins à ce sujet. ca ne sert pas à grand chose de récupérer les stats trop fréquemment. Sur des routeurs de coeur de réseau qui traitent des tera en transit le minimum théorique est de l'ordre de 10s et le cas le plus fréquent pratique c'est 1 à 5 min pour des stats de débit. ca dépend bien sûr de l'utilisation mais la surveillance du traffic n'est pas faite pour détecter des évènements nécessitant une réponse rapide, inutile donc d'avoir l'info très fréquemment et la LB n'est pas un routeur de coeur. avec mon script actuel et sa liaison à cacti je fais je lance le script autant de fois que j'ai de graphs et chaque appel au script génère une authentification et extrait le/les paramètre(s) necessaire(s) pour le graph ayant généré la requête. chaque graph est mis à jour toutes les 5 minutes. donc si je me retrouve avec +70 graphs ca va faire un burst de 70 requêtes auth+extraction toutes les 5 min pour optimiser un peu je vais faire 1 requête d'authentification + extraction des 70 paramètres toutes les 5min, tout stocker dans une base et faire cacti interroger cette base, indépendamment.
  8. Bonjour ah! je n'avais pas compris que tu étais sous LB4. l'instance du modèle doit être différente, mais pas le modèle en soit. Les commandes pour accès aux stats que j'ai postées hier soir je les ai trouvées dans le data model, tu dois pouvoir faire de même avec celui de ta lb. Je serais étonné qu'Orange ait des modèles par box. c'est ingérable. donc le modèle doit être unique et s'instancie de différentes manières dépendant de la box. Dans le cas des interfaces plus haut, ce sont des instances de l'objet générique interface et c'est donc normal que je n'aie rien relatif à l'A/V-DSL. je crois néanmoins que le nom de certaines interfaces pourrait avoir changé entre LB4 et LB5 Ultimement tu passes des commandes curl avec les noms de fonctions récupérées dans le dm ou via chrome et tu vois ce que ça rend. je suis en train de retravailler complètement le script car j'ai pas mal de devices. Tu m'as fait un peu peur et je ne voudrais pas qu'un burst d'une cinquantaine de requêtes simultanées pour récupérer la qualité du signal, les stats des devices et le traffic des interfaces plus qques autres trucs ne pourrissent ma box donc je vais tout faire en un appel et ferai Cacti traiter le résultat de manière indépendante.
  9. @oracle7 j'ai trouvé beaucoup mieux pour récupérer le traffic des interfaces: curl -s -o "$myBashDir/hl.txt" -b "$myCookies" -X POST -H 'Content-Type: application/x-sah-ws-4-call+json' -H "X-Context: $myContextID" -d "{\"service\":\"HomeLan.Interface.wl0.Stats\",\"method\":\"get\",\"parameters\":{}}" http://$myLivebox/ws et changer le service par les noms suivants, selon l'interface voulue: instance 1: 'sysbus.HomeLan.Interface.wl0' (name: 1) parameter: FriendlyName : string = '2.4GHz-Private_SSID' parameter: Name : string = 'wl0' parameter: Alias : string = 'WiFi' parameter: NumberOfStoredMeasures : uint32 = '2968' instance 2: 'sysbus.HomeLan.Interface.eth4' (name: 2) parameter: FriendlyName : string = '5GHz-Private_SSID' parameter: Name : string = 'eth4' parameter: Alias : string = 'WiFi' parameter: NumberOfStoredMeasures : uint32 = '2968' instance 3: 'sysbus.HomeLan.Interface.eth0' (name: 3) parameter: FriendlyName : string = 'eth1' parameter: Name : string = 'eth0' parameter: Alias : string = 'Eth' parameter: NumberOfStoredMeasures : uint32 = '2967' instance 4: 'sysbus.HomeLan.Interface.eth1' (name: 4) parameter: FriendlyName : string = 'eth2' parameter: Name : string = 'eth1' parameter: Alias : string = 'Eth' parameter: NumberOfStoredMeasures : uint32 = '0' instance 5: 'sysbus.HomeLan.Interface.eth2' (name: 5) parameter: FriendlyName : string = 'eth3' parameter: Name : string = 'eth2' parameter: Alias : string = 'Eth' parameter: NumberOfStoredMeasures : uint32 = '0' instance 6: 'sysbus.HomeLan.Interface.eth3' (name: 6) parameter: FriendlyName : string = 'eth4' parameter: Name : string = 'eth3' parameter: Alias : string = 'Eth' parameter: NumberOfStoredMeasures : uint32 = '2968' instance 7: 'sysbus.HomeLan.Interface.eth3_wan' (name: 7) parameter: FriendlyName : string = 'WAN_Ethernet' parameter: Name : string = 'eth3' parameter: Alias : string = 'WAN_Virtual' parameter: NumberOfStoredMeasures : uint32 = '2968' instance 8: 'sysbus.HomeLan.Interface.vlan_data' (name: 8) parameter: FriendlyName : string = 'WAN_Ethernet-Internet' parameter: Name : string = 'vlan_data' parameter: Alias : string = 'WAN_Virtual' parameter: NumberOfStoredMeasures : uint32 = '0' instance 9: 'sysbus.HomeLan.Interface.vlan_multi' (name: 9) parameter: FriendlyName : string = 'WAN_Ethernet-MultiServices' parameter: Name : string = 'vlan_multi' parameter: Alias : string = 'WAN_Virtual' parameter: NumberOfStoredMeasures : uint32 = '0' instance 10: 'sysbus.HomeLan.Interface.vlan_voip' (name: 10) parameter: FriendlyName : string = 'WAN_Ethernet-VoIP' parameter: Name : string = 'vlan_voip' parameter: Alias : string = 'WAN_Virtual' parameter: NumberOfStoredMeasures : uint32 = '0' instance 11: 'sysbus.HomeLan.Interface.vlan_iptv1' (name: 11) parameter: FriendlyName : string = 'WAN_Ethernet-IPTV_VOD' parameter: Name : string = 'vlan_iptv1' parameter: Alias : string = 'WAN_Virtual' parameter: NumberOfStoredMeasures : uint32 = '0' instance 12: 'sysbus.HomeLan.Interface.vlan_iptv2' (name: 12) parameter: FriendlyName : string = 'WAN_Ethernet-IPTV_Live' parameter: Name : string = 'vlan_iptv2' parameter: Alias : string = 'WAN_Virtual' parameter: NumberOfStoredMeasures : uint32 = '0' instance 13: 'sysbus.HomeLan.Interface.veip0' (name: 13) parameter: FriendlyName : string = 'WAN_GPON' parameter: Name : string = 'veip0' parameter: Alias : string = 'WAN_Virtual' parameter: NumberOfStoredMeasures : uint32 = '2968' instance 14: 'sysbus.HomeLan.Interface.gvlan_data' (name: 14) parameter: FriendlyName : string = 'WAN_GPON-Internet' parameter: Name : string = 'gvlan_data' parameter: Alias : string = 'WAN_Virtual' parameter: NumberOfStoredMeasures : uint32 = '0' instance 15: 'sysbus.HomeLan.Interface.gvlan_multi' (name: 15) parameter: FriendlyName : string = 'WAN_GPON-MultiServices' parameter: Name : string = 'gvlan_multi' parameter: Alias : string = 'WAN_Virtual' parameter: NumberOfStoredMeasures : uint32 = '2966' instance 16: 'sysbus.HomeLan.Interface.gvlan_voip' (name: 16) parameter: FriendlyName : string = 'WAN_GPON-VoIP' parameter: Name : string = 'gvlan_voip' parameter: Alias : string = 'WAN_Virtual' parameter: NumberOfStoredMeasures : uint32 = '0' instance 17: 'sysbus.HomeLan.Interface.gvlan_iptv1' (name: 17) parameter: FriendlyName : string = 'WAN_GPON-IPTV_VOD' parameter: Name : string = 'gvlan_iptv1' parameter: Alias : string = 'WAN_Virtual' parameter: NumberOfStoredMeasures : uint32 = '0' instance 18: 'sysbus.HomeLan.Interface.gvlan_iptv2' (name: 18) parameter: FriendlyName : string = 'WAN_GPON-IPTV_Live' parameter: Name : string = 'gvlan_iptv2' parameter: Alias : string = 'WAN_Virtual' parameter: NumberOfStoredMeasures : uint32 = '2959' instance 19: 'sysbus.HomeLan.Interface.wlguest2' (name: 19) parameter: FriendlyName : string = '2.4GHz-Guest_SSID' parameter: Name : string = 'wlguest2' parameter: Alias : string = 'WiFi' parameter: NumberOfStoredMeasures : uint32 = '0' instance 20: 'sysbus.HomeLan.Interface.wlguest5' (name: 20) parameter: FriendlyName : string = '5GHz-Guest_SSID' parameter: Name : string = 'wlguest5' parameter: Alias : string = 'WiFi' parameter: NumberOfStoredMeasures : uint32 = '0' pour récupérer les stats du wan: curl -s -o "$myBashDir/hl.txt" -b "$myCookies" -X POST -H 'Content-Type: application/x-sah-ws-4-call+json' -H "X-Context: $myContextID" -d "{\"service\":\"HomeLan\",\"method\":\"getWANCounters\",\"parameters\":{}}" http://$myLivebox/ws
  10. une commande pour récupérer l'état de la mémoire de la box: curl -s -o "$myBashDir/device.txt" -b "$myCookies" -X POST -H 'Content-Type: application/x-sah-ws-4-call+json' -H "X-Context: $myContextID" -d "{\"service\":\"DeviceInfo.MemoryStatus\",\"method\":\"get\",\"parameters\":{}}" http://$myLivebox/ws
  11. je poste des requêtes que j'avais collectées au cas où certains y trouvent leur bonheur: Je n'ai cependant pas réussi à déterminer comment passer les paramètres dans les commandes curl ... {service: "DeviceInfo", method: "get", parameters: {}} {service: "NMC", method: "get", parameters: {}} {service: "UserInterface", method: "getLanguage", parameters: {}} {service: "UserInterface", method: "getState", parameters: {}} {service: "UserManagement", method: "getUser", parameters: {name: "admin"}} {service: "HTTPService", method: "getCurrentUser", parameters: {}} {service: "Manifests", method: "retrieve", parameters: {user: "admin", option: "wm_settings"}} {service: "IoTService", method: "getStatus", parameters: {}} {service: "NMC", method: "getWANStatus", parameters: {}} {service: "NMC.OrangeTV", method: "getIPTVStatus", parameters: {}} {service: "VoiceService.VoiceApplication", method: "listTrunks", parameters: {}} {service: "NMC", method: "getVoIPConfig", parameters: {}} {service: "NMC.Wifi", method: "get", parameters: {}} {service: "VoiceService.VoiceApplication", method: "getCallList", parameters: [{line: "1"}]} {service: "VoiceService.VoiceApplication", method: "listGroups", parameters: {}} {service: "NMC", method: "get", parameters: {}} {service: "NMC.OrangeTV", method: "getIPTVConfig", parameters: {}} {service: "Scheduler", method: "getCompleteSchedules", parameters: {type: "WLAN"}} {service: "Time", method: "getTime", parameters: {type: "WLAN"}} {service: "Devices", method: "get", parameters: {expression: "voice handset physical"}} {service: "NeMo.Intf.guest", method: "getMIBs", parameters: {mibs: "wlanvap"}} {service: "NeMo.Intf.lan", method: "getMIBs", parameters: {mibs: "base wlanradio"}} {service: "NeMo.Intf.data", method: "getMIBs", parameters: {mibs: "dhcp"}} {service: "NMC", method: "getLANIP", parameters: {}} {service: "DHCPv4.Server", method: "getDHCPServerPool", parameters: {id: "default"}} {service: "Scheduler", method: "getCompleteSchedules", parameters: {type: "ToD"}} {service: "DHCPv4.Server.Pool.default", method: "getStaticLeases", parameters: "default"} {service: "Devices", method: "get", parameters: {expression: ".Active==true"}} {service: "DHCPv4.Server.Pool.default", method: "getStaticLeases", parameters: "default"} {service: "TopologyDiagnostics", method: "buildTopology", parameters: {SendXmlFile: false}} ah bah si, je viens de trouver 😀 pour passer {service: "NeMo.Intf.wl0", method: "getMIBs", parameters: {mibs: "wlanvap"}} il faut écrire: {\"service\":\"NeMo.Intf.wl0\",\"method\":\"getMIBs\",\"parameters\":{\"mibs\": \"wlanvap\"}} dans la commande curl
  12. oui, ce sont des graphs Cacti, après tout on est dans le thread à ce sujet. les requêtes sont faites toutes les 5min. le code que je t'ai donné place les valeurs dans des variables, c'est indépendant de Cacti. A toi de voir comment tu utilises ces variables pour finalement injecter la valeur dans ton infrastructure de monitoring. pour ce qui est de sysbus, j'ai lu la doc, pas d'inquiétude 😉 En fait je ne tirerai pas plus de l'uml ou de la topo que du modèle en texte que j'ai déjà. le problème est que le modèle ne donne pas les nom des fonctions intéressantes à appeler. J'esperais que tu puisses les avoir. La meilleure méthode, à ma connaissance, reste donc d'observer les requêtes dans un navigateur, même si c'est assez limité. Dans le jours prochains je tenterai de sortir les stats de traffic par device. je te posterai la requête attention, pour la requête de la qualité du wifi il faut créer une variable 'dev' qui contient: Devices.Devices.12:34:56:78:90:AB où '12:34:56:78:90:AB' est l'adresse MAC du Device en question dernière note il est possible de récupérer dans la même mib les stats de traffic et de qualité de signal: NeMo.Intf.eth4 / getMIBs NeMo.Intf.wl0 / getMIBs
  13. soit dit en passant, sauf erreur, le data model peut s'extraire dans sa globalité. ce que je cherchais c'était la version uml qui me semble plus exploitable, ainsi que le graph des interfaces.
  14. je fais ici. la base vient des scripts que l'on trouve sur le web (notamment ici) et les commandes spécifiques sont dérivées d'une analyse des requêtes faites lors de la navigation sur l'interface web et inspectées via les outils "développeur" intégrés dans chrome. myLivebox=#ip-de-la-box myPassword=#mdp-de-la-box myBashDir=#un-chemin-sur-le-syno myOutput=$myBashDir/myOutput.txt myCookies=$myBashDir/myCookies.txt curl -s -o "$myOutput" -X POST -c "$myCookies" -H 'Content-Type: application/x-sah-ws-4-call+json' -H 'Authorization: X-Sah-Login' -d "{\"service\":\"sah.Device.Information\",\"method\":\"createContext\",\"parameters\":{\"applicationName\":\"so_sdkut\",\"username\":\"admin\",\"password\":\"$myPassword\"}}" http://$myLivebox/ws > /dev/null myContextID=$(tail -n1 "$myOutput" | sed 's/{"status":0,"data":{"contextID":"//1'| sed 's/",//1' | sed 's/"groups":"http,admin//1' | sed 's/"}}//1') #traffic wifi #2.4GHz + 5GHz WifiStats=`curl -s -b "$myCookies" -X POST -H 'Content-Type: application/x-sah-ws-4-call+json' -H "X-Context: $myContextID" -d "{\"service\":\"NMC.Wifi\",\"method\":\"getStats\",\"parameters\":{}}" http://$myLivebox/ws` WifiStatsRxBytes=`echo $WifiStats | cut -d"{" -f3 | cut -d"," -f1 | cut -d":" -f2` WifiStatsTxBytes=`echo $WifiStats | cut -d":" -f5 | cut -d"}" -f1` #2.4GHz wl0Stats=`curl -s -b "$myCookies" -X POST -H 'Content-Type: application/x-sah-ws-4-call+json' -H "X-Context: $myContextID" -d "{\"service\":\"NeMo.Intf.wl0\",\"method\":\"getNetDevStats\",\"parameters\":{}}" http://$myLivebox/ws` Wifi2StatsRxBytes=`echo $wl0Stats | cut -d"{" -f3 | cut -d"," -f3 | cut -d":" -f2` Wifi2StatsTxBytes=`echo $wl0Stats | cut -d"{" -f3 | cut -d"," -f4 | cut -d":" -f2` #5GHz eth4Stats=`curl -s -b "$myCookies" -X POST -H 'Content-Type: application/x-sah-ws-4-call+json' -H "X-Context: $myContextID" -d "{\"service\":\"NeMo.Intf.eth4\",\"method\":\"getNetDevStats\",\"parameters\":{}}" http://$myLivebox/ws` Wifi5StatsRxBytes=`echo $eth4Stats | cut -d"{" -f3 | cut -d"," -f3 | cut -d":" -f2` Wifi5StatsTxBytes=`echo $eth4Stats | cut -d"{" -f3 | cut -d"," -f4 | cut -d":" -f2` #port eth 1 eth0Stats=`curl -s -b "$myCookies" -X POST -H 'Content-Type: application/x-sah-ws-4-call+json' -H "X-Context: $myContextID" -d "{\"service\":\"NeMo.Intf.eth0\",\"method\":\"getNetDevStats\",\"parameters\":{}}" http://$myLivebox/ws` Lan0StatsRxBytes=`echo $eth0Stats | cut -d"{" -f3 | cut -d"," -f3 | cut -d":" -f2` Lan0StatsTxBytes=`echo $eth0Stats | cut -d"{" -f3 | cut -d"," -f4 | cut -d":" -f2` #port eth 2 eth1Stats=`curl -s -b "$myCookies" -X POST -H 'Content-Type: application/x-sah-ws-4-call+json' -H "X-Context: $myContextID" -d "{\"service\":\"NeMo.Intf.eth1\",\"method\":\"getNetDevStats\",\"parameters\":{}}" http://$myLivebox/ws` Lan1StatsRxBytes=`echo $eth1Stats | cut -d"{" -f3 | cut -d"," -f3 | cut -d":" -f2` Lan1StatsTxBytes=`echo $eth1Stats | cut -d"{" -f3 | cut -d"," -f4 | cut -d":" -f2` #port eth 3 eth2Stats=`curl -s -b "$myCookies" -X POST -H 'Content-Type: application/x-sah-ws-4-call+json' -H "X-Context: $myContextID" -d "{\"service\":\"NeMo.Intf.eth2\",\"method\":\"getNetDevStats\",\"parameters\":{}}" http://$myLivebox/ws` Lan2StatsRxBytes=`echo $eth2Stats | cut -d"{" -f3 | cut -d"," -f3 | cut -d":" -f2` Lan2StatsTxBytes=`echo $eth2Stats | cut -d"{" -f3 | cut -d"," -f4 | cut -d":" -f2` #port eth 4 eth3Stats=`curl -s -b "$myCookies" -X POST -H 'Content-Type: application/x-sah-ws-4-call+json' -H "X-Context: $myContextID" -d "{\"service\":\"NeMo.Intf.eth3\",\"method\":\"getNetDevStats\",\"parameters\":{}}" http://$myLivebox/ws` Lan3StatsRxBytes=`echo $eth3Stats | cut -d"{" -f3 | cut -d"," -f3 | cut -d":" -f2` Lan3StatsTxBytes=`echo $eth3Stats | cut -d"{" -f3 | cut -d"," -f4 | cut -d":" -f2` #Wan veip0Stats=`curl -s -b "$myCookies" -X POST -H 'Content-Type: application/x-sah-ws-4-call+json' -H "X-Context: $myContextID" -d "{\"service\":\"NeMo.Intf.veip0\",\"method\":\"getNetDevStats\",\"parameters\":{}}" http://$myLivebox/ws` WanStatsRxBytes=`echo $veip0Stats | cut -d"{" -f3 | cut -d"," -f3 | cut -d":" -f2` WanStatsTxBytes=`echo $veip0Stats | cut -d"{" -f3 | cut -d"," -f4 | cut -d":" -f2` #Signal Strength per Device #dev de la forme: "Devices.Device.mac-adddress" devInfo=`curl -s -b "$myCookies" -X POST -H 'Content-Type: application/x-sah-ws-4-call+json' -H "X-Context: $myContextID" -d "{\"service\":\"$dev\",\"method\":\"get\",\"parameters\":{}}" http://$myLivebox/ws` searchstring="SignalStrength" rest=${devInfo#*$searchstring} pos=$(( ${#devInfo} - ${#rest} - ${#searchstring} )) sub=${devInfo:$pos:44} signalStrength=`echo $sub | cut -d"," -f1 | cut -d":" -f2` snr=`echo $sub | cut -d"," -f2 | cut -d":" -f2` on peut aussi récupérer les stats de traffic par device via la "MIB" lan mais elle est assez lourde donc je cherche un autre moyen. Manifestement il y a un event listener qui se trimbale dans le code et qui push les stats de traffic de chacun des devices mais je n'ai pas réussit à me brancher dessus. si quelqu'un sait, je suis preneur
  15. @oracle7 oui mais sysbus je ne l'ai que sous cygwin sur pc et je n'ai pas tous les autres librairies pour extraire le dm. pas envie non plus d'instaler sysbus sur le nas. tant pis. par contre tu m'as pas dit, les commandes tu veux ici ou tu préfères qu'elles alimentent ton thread?
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.