oracle7 Posté(e) le 19 octobre 2020 Partager Posté(e) le 19 octobre 2020 (modifié) @.Shad. Bonjour, Bon, j'avance à petits pas mais j'avance. J'ai réussi à faire prendre en compte mon fichier MIB HIKvision (HIK-DEVICE-MIB.txt). IL suffisait simplement de : le placer dans le répertoire standard "/usr/share/snmp/mibs" (en espérant qu'il ne sera pas effacé lors d'une mise à jour de DSM !), et de créer un fichier "snmp.conf" dans "/etc/snmp" et contenant une ligne du type "mibs +HIK-DEVICE-MIB" Au moins avec cela, je n'ai plus de messages d'erreur au lancement du conteneur "telegraf". C'est déjà cela ! Maintenant le problème est que dans grafana, au moment de bâtir une requête, je ne vois pas la table spécifique à HIKvision ni les champs associés. Tout semble se passer un peu comme si l'ajout de ces champs dans le fichier "telegraf.conf" n'était lui pas pris en compte. Citation #---------------------------------------------------------- ## HIKVISION IP Camera #---------------------------------------------------------- # Uses the HIK-DEVICE-MIB [[inputs.snmp]] agents = [ "192.168.2.21", "192.168.2.22", "192.168.2.23", "192.168.2.24" ] interval = "60s" timeout = "10s" retries = 3 version = 2 community = "xxxxxxxxxxxxx" max_repetitions = 30 name = "snmp.HIK" # HIK Manufacturer [[inputs.snmp.field]] name = "manufacturer" oid = "HIK-DEVICE-MIB::manufacturer.0" # HIK Device Model [[inputs.snmp.field]] name = "deviceModel" oid = "HIK-DEVICE-MIB::deviceType.0" # HIK Version Software [[inputs.snmp.field]] name = "softwVersion" oid = "HIK-DEVICE-MIB::softwVersion.0" # HIK Cpu Precent [[inputs.snmp.field]] name="cpuPercent" oid = "HIK-DEVICE-MIB::cpuPercent.0" # HIK Mem Used [[inputs.snmp.field]] name="memUsed" oid = "HIK-DEVICE-MIB::memUsed.0" # HIK Static Ip [[inputs.snmp.field]] name="staticIp" oid = "HIK-DEVICE-MIB::staticIpAddr.0" # HIK MAC Address [[inputs.snmp.field]] name="macAddr" oid = "HIK-DEVICE-MIB::macAddr.0" # HIK Video Encode [[inputs.snmp.field]] name="vidEncode" oid = "HIK-DEVICE-MIB::videoEncode.0" [[processors.regex]] order = 1 namepass = ["snmp"] [[processors.regex.fields]] key = "cpuPercent" pattern = "^(\\d+).*" replacement = "${1}" [[processors.regex.fields]] key = "memUsed" pattern = "^(\\d+).*" replacement = "${1}" [[processors.converter]] order = 2 [processors.converter.fields] integer = ["cpuPercent","memUsed"] Stucturellement parlant, je ne vois pas de différences notoires avec les autres champs liés à Synology. Du coup je sèche et ne comprends pas ce qui et où cela pourrait bloquer. Une nouvelle idée de génie de ta part serait la bienvenue ...😀 Cordialement oracle7😉 Modifié le 19 octobre 2020 par oracle7 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
.Shad. Posté(e) le 19 octobre 2020 Auteur Partager Posté(e) le 19 octobre 2020 Si tu t'es basé sur : https://community.influxdata.com/t/changing-snmp-input-with-regex-using-telegraf-pulls-before-influxdb/16021/15 Il y a un souci d'indentation entre processors.regex et processors.converter par rapport à l'exemple du gars. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
oracle7 Posté(e) le 19 octobre 2020 Partager Posté(e) le 19 octobre 2020 @.Shad. Bonjour, Oui, j'avais remarqué et je l'ai corrigé de moi même. Donc ce que j'ai fait ne serais pas bon selon toi ?. Je le reprends ci-dessous en exagérant l'indentation : Citation [[inputs.snmp]] ...... [[processors.regex]] order = 1 namepass = ["snmp"] [[processors.regex.fields]] key = "cpuPercent" pattern = "^(\\d+).*" replacement = "${1}" [[processors.regex.fields]] key = "memUsed" pattern = "^(\\d+).*" replacement = "${1}" [[processors.converter]] order = 2 [processors.converter.fields] integer = ["cpuPercent","memUsed"] C'est bon ou pas ? En plus je m’aperçois qu'il manquerait une paire de [ ] à l'avant dernière ligne . Cordialement oracle7😉 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
.Shad. Posté(e) le 19 octobre 2020 Auteur Partager Posté(e) le 19 octobre 2020 (modifié) Ca ne correspond pas à ce que je vois sur le lien que je t'ai donné, ou alors je suis bigleux. ^^ Modifié le 19 octobre 2020 par .Shad. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
oracle7 Posté(e) le 19 octobre 2020 Partager Posté(e) le 19 octobre 2020 @.Shad. Non tu n'est pas "bigleux", c'est moi qui ce soir n'ai pas les yeux en face des trous ... 🤪 J'ai donc corrigé comme dans ton lien même si l'indentation donnée ne me paraît pas logique. Cela dit j'avais cru aussi bien faire en reprenant cet exemple ici qui me semblait lui tout à fait cohérent du point de vue indentation. Ton avis ? En tous cas, le fichier telegraf.conf se charge bien, pas d'erreurs dans le log telegraf mais toujours pas de table et de champs correspondants pour bâtir une requête dans grafana. Il doit donc y avoir autre chose à régler mais quoi ? Cordialement oracle7😉 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Djantalu Posté(e) le 19 octobre 2020 Partager Posté(e) le 19 octobre 2020 (modifié) super tuto merci bcp :d tout marche à la perfection tu crois que cela est possible d'avoir lors de connections ftp la bande passante utilisée par chaque utilisateur ? Modifié le 19 octobre 2020 par Djantalu 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
oracle7 Posté(e) le 20 octobre 2020 Partager Posté(e) le 20 octobre 2020 @.Shad. Bonjour, Je m'arrache les cheveux (déjà qu'il n'y en a plus beaucoup ...🤪) avec les processors.regex et processors.convert. Je n'arrive pas à traduire et convertir correctement la chaine "XX PERCENT" pour en extraire le "XX" et convertir ce dernier en Integer. Pour info, j'ai un champ "memUsed" qui comporte comme valeurs des "XX PERCENT" au lieu de valeurs numérique "XX" exprimées en "%". Le code suivant ne fonctionne pas et génère des "panic" dans telegraf dès que l'on active la partie [[proccessors.converter]]. Citation [[processors.regex]] order = 1 namepass = ["snmp"] [[processors.regex.fields]] key = "cpuPercent" pattern = "^(\\d+).*" replacement = "${1}" [[processors.regex.fields]] key = "memUsed" pattern = "^(\\d+).*" replacement = "${1}" [[processors.converter]] order = 2 [processors.converter.fields] integer = ["cpuPercent","memUsed"] Sans cette partie [[proccessors.converter]] il n'y a pas d'erreur dans le log de telegraf. J'en conclue donc que la valeur extraite par [[proccessors.regex]] n'est pas une chaine qui peut être ensuite convertie en Integer. Du coup, je met en doute le "pattern" utilisé : "^(\\d+).*" pour ce faire. Faut-il finalement un autre "pattern" pour arriver à extraire la bonne valeur ? J'ai essayé tout à tour : "^(\\d\\d)", "^(\\d{1,2})", "^(\\d{1,2})?", "^(\\d+)?" mais toujours le message le même message : Citation panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x30 pc=0x1f94624] github.com/influxdata/telegraf/plugins/processors/converter.(*Converter).Apply(0xc00056bfb0, 0xc0001937e0, 0x1, 0x1, 0xc00021fd40, 0x1, 0xc000206900) /go/src/github.com/influxdata/telegraf/plugins/processors/converter/converter.go:86 +0x9c Je ne sais plus par quel bout prendre les choses. Une idée pour me débloquer ? Cordialement oracle7😉 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
.Shad. Posté(e) le 21 octobre 2020 Auteur Partager Posté(e) le 21 octobre 2020 @oracle7 \d+ ne suffirait pas ? @Djantalu Je ne pense pas que tu puisses isoler la bande passante utilisée par chacun. Au mieux tu pourras voir la bande passante totale et le nombre d'utilisateurs connectés en FTP. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
oracle7 Posté(e) le 21 octobre 2020 Partager Posté(e) le 21 octobre 2020 (modifié) @.Shad. Bonjour, En fait je ne m'emm... plus avec le processor.regex. Je passe par ceci : Citation [[processors.strings]] order = 1 namepass = "snmp" [[processors.strings.left]] field = "cpuPercent" width = 2 [[processors.strings.trim]] field = "cpuPercent" [[processors.strings.left]] field = "memUsed" width = 2 [[processors.strings.trim]] field = "memUsed" [[processors.converter]] order = 2 [processors.converter.fields] integer = ["cpuPercent","memUsed"] Quand je test le fichier telegraf.conf la conversion se fait bien : Citation > snmp.HIK,agent_host=192.168.2.21,host=telegraf cpuPercent=68i,deviceID="1",deviceModel="DS-2CD2045FWD-I",dynIpAddr="192.168.2.21",macAddr="xx-xx-xx-xx-xx-xx",manufacturer="Hikvision",memUsed=57i,restartDev=0i,softwVersion="V5.6.5 build 200316",staticIpAddr="0.0.0.0",vidEncode="H.264" 1603309406000000000 On voit bien que les deux champs retournent bien chacun une valeur numérique entière et non plus une string "68 PERCENT" ou "57 PERCENT" comme initialement. Maintenant le problème est que la BdD a été créée avec pour ces champs un type "string" et du coup cela génère ce type d'erreur : Citation 2020-10-21T20:03:04Z E! [outputs.influxdb] When writing to [http://172.20.0.2:8086]: received error partial write: field type conflict: input field "cpuPercent" on measurement "snmp.HIK" is type integer, already exists as type string dropped=4; discarding points 2020-10-21T20:04:04Z E! [outputs.influxdb] When writing to [http://172.20.0.2:8086]: received error partial write: field type conflict: input field "memUsed" on measurement "snmp.HIK" is type integer, already exists as type string dropped=4; discarding points Donc je me dis que si je supprime la BdD et que je la recrée en même temps que je recrée les conteneurs influxdb, telegraf et grafana, je ne sais pas alors sur quoi influxdb se base pour créer les tables et champs de cette base. Est-ce que ce sont les fichiers MIB ou autre chose mais alors quoi ? Je voudrais être sûr que pour les deux champs en question, ils soient créés avec le type Integer et non pas String. Si c'est le sur le fichier MIB alors c'est facile à corriger mais j'ai bien peur que la solution ne soit pas aussi simple que cela. Ton avis STP ? Par un heureux hasard, tu n'aurais pas encore une idée géniale en magasin ? EDIT : EN fait, j'ai trouvé tout seul comme un grand !🤪 enfin presque ... J'ai tout simplement fait, après avoir arrêté telegraf, un "DROP MEASUREMENT" sur la table qui contient les données de mes caméras. Ensuite j'ai relancé telegraf et là BINGO !!! j'ai bien maintenant mes deux champs numériques. Cordialement oracle7😉 Modifié le 21 octobre 2020 par oracle7 1 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Djantalu Posté(e) le 22 octobre 2020 Partager Posté(e) le 22 octobre 2020 ok @shad merci pour ta reponse 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
JrTt Posté(e) le 29 novembre 2020 Partager Posté(e) le 29 novembre 2020 Salut .SHAD, Merci pour ce super tuto, ca fonctionne tres bien. Petite question, à la communauté, quelqu'un a déjà monitorer un routeur Synology RT2600 ? Je ne trouve des mib que pour les nas. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
.Shad. Posté(e) le 29 novembre 2020 Auteur Partager Posté(e) le 29 novembre 2020 Hello, pas à ma connaissance. Je crois que @oracle7 avait fait des recherches à ce sujet, mais aux dernières nouvelles ça n'avait rien donné. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
oracle7 Posté(e) le 1 décembre 2020 Partager Posté(e) le 1 décembre 2020 (modifié) @JrTt, @.Shad. Bonjour, On utilise les mêmes MIB que celles du NAS. Pas de soucis ... Cordialement oracle7😉 Modifié le 5 juillet 2021 par oracle7 2 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
JrTt Posté(e) le 1 décembre 2020 Partager Posté(e) le 1 décembre 2020 Salut oracle7, Oui effectivement cela fonctionne aussi chez moi , par contre arrive tu a monitorer les débits sur le Wan ? merci 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
oracle7 Posté(e) le 1 décembre 2020 Partager Posté(e) le 1 décembre 2020 @JrTt Bonjour, il y a 10 minutes, JrTt a dit : par contre arrive tu a monitorer les débits sur le Wan Non pas encore. De toutes façons les MIB mises à disposition par Synology ne comportent pas à ma connaissances les champs liès aux données sur le WAN. Donc oublies de ce coté là. Je crois (sous réserves) que @bruno78 monitore directement les interfaces LAN de sa FreeBox. Il pourrait te confirmer ce qu'il arrive à faire pour l'interface WAN de celle-ci. Pour ma part, je suis en recherche d'infos pour essayer de faire pareil que lui mais cette fois avec une LiveBox4 d'Orange. Et là c'est dur dur de trouver de l'info qui soit compréhensible pour ma petite tête. Orange n'est pas non plus très prolixe sur le sujet. Désolé de ne pouvoir t'en dire plus. PS Astuce : Pour avertir un membre de ta réponse, tu tapes dans ton message "@" + les premiers caractères de son pseudo. Dans le popup qui apparaît tu cliques alors sur le pseudo recherché et il s'affiche sur fond bleu dans ton texte. Ainsi ton interlocuteur est informé/notifié de ta réponse sinon il ne voit rien sauf à rebalayer en arrière tous les messages (ce que peu de monde fait). Cordialement oracle7😉 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
MilesTEG1 Posté(e) le 1 décembre 2020 Partager Posté(e) le 1 décembre 2020 @oracle7 si tu arrives à faire qqch avec la Livebox 4 je suis preneur 😇 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
smosse Posté(e) le 2 décembre 2020 Partager Posté(e) le 2 décembre 2020 Bravo pour ce tuto et surtout les explications qui l'accompagnent. Pour ma part j'ai eu un souci sur le docker grafana ou j'ai dû ajouter des droits sur le rep qui pointe sur /var/lib/grafna avec le fameux user 472:472 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
smosse Posté(e) le 2 décembre 2020 Partager Posté(e) le 2 décembre 2020 Il y a 15 heures, MilesTEG1 a dit : @oracle7 si tu arrives à faire qqch avec la Livebox 4 je suis preneur 😇 Pas de MIB dispo sur les livebox 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
MilesTEG1 Posté(e) le 2 décembre 2020 Partager Posté(e) le 2 décembre 2020 il y a 18 minutes, smosse a dit : Pas de MIB dispo sur les livebox Mince... mais je m'en doutais 😅 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
.Shad. Posté(e) le 2 décembre 2020 Auteur Partager Posté(e) le 2 décembre 2020 Les MIB ne sont pas forcément nécessaires, ils permettent d'organiser les OID. Si la Livebox est "pollable" via SNMP, les informations sont tout aussi accessibles, mais c'est bien plus fastidieux d'identifier chaque valeur. 😉 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
MilesTEG1 Posté(e) le 2 décembre 2020 Partager Posté(e) le 2 décembre 2020 à l’instant, .Shad. a dit : Les MIB ne sont pas forcément nécessaires, ils permettent d'organiser les OID. Si la Livebox est "pollable" via SNMP, les informations sont tout aussi accessibles, mais c'est bien plus fastidieux d'identifier chaque valeur. 😉 Haaa, mais là ça va dépasser mes compétences 🤪 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
smosse Posté(e) le 2 décembre 2020 Partager Posté(e) le 2 décembre 2020 il y a 21 minutes, .Shad. a dit : Les MIB ne sont pas forcément nécessaires, ils permettent d'organiser les OID. Si la Livebox est "pollable" via SNMP, les informations sont tout aussi accessibles, mais c'est bien plus fastidieux d'identifier chaque valeur. 😉 Hélas pas de SNMP sur livebox à ma connaissance pour le moment ... 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
oracle7 Posté(e) le 2 décembre 2020 Partager Posté(e) le 2 décembre 2020 @smosse @MilesTEG1 Bonjour, Il semblerait (sous toutes réserves) que l'on puisse accéder à la Livebox via telnet et ainsi récupérer des informations SNMP de celle-ci (voir ici) mais je n'ai pas essayé car pas très explicite pour moi ... Je souhaite comprendre avant de taper quoique ce soit en ligne de commandes ! J'ai bien trouvé sur la toile cela mais là aussi ce n'est pas clair pour moi, je ne vois pas bien comment mettre en œuvre ce script et où l'installer. Si vous avez des idées elles seront les bienvenues . Je continue à fouiller, en espérant trouver quelque chose de plus concret du moins plus explicatif pour mes petites compétences que ces premières sources. Cordialement oracle7 😉 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
MilesTEG1 Posté(e) le 2 décembre 2020 Partager Posté(e) le 2 décembre 2020 il y a 13 minutes, oracle7 a dit : @smosse @MilesTEG1 Bonjour, Il semblerait (sous toutes réserves) que l'on puisse accéder à la Livebox via telnet et ainsi récupérer des informations SNMP de celle-ci (voir ici) mais je n'ai pas essayé car pas très explicite pour moi ... Je souhaite comprendre avant de taper quoique ce soit en ligne de commandes ! J'ai bien trouvé sur la toile cela mais là aussi ce n'est pas clair pour moi, je ne vois pas bien comment mettre en œuvre ce script et où l'installer. Si vous avez des idées elles seront les bienvenues . Je continue à fouiller, en espérant trouver quelque chose de plus concret du moins plus explicatif pour mes petites compétences que ces premières sources. Cordialement oracle7 😉 Bon bah le premier tuto ne fonctionnera pas : il semble fait pour une vieille version de LB... Je regarderais la deuxième méthode plus tard ^^ 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
smosse Posté(e) le 2 décembre 2020 Partager Posté(e) le 2 décembre 2020 le telnet est ouvert uniquement sur les box de dev.. et meme en y ayant acces il n'y as pas de snmp de ce que je sais sur les modeles actuels. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.