Bonjour,
Dans le cadre d'une surveillance de serveur, je relève le trafic réseau sur des protocoles donnés (paquets marqués avec
iptables).
La surveillance étant faite avec
Ganglia (contrainte projet), je dois lire régulièrement mes compteurs absolus dans
iptables pour alimenter ma métrique :
/sbin/iptables -t mangle -L OUTPUT -v -n -x | sed 1,2d | grep 'MARK set 0x1'
Jusque là, pas de soucis :
1 2
| 8088039 5194390582 MARK tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:1352 MARK set 0x1
5020292 1613634853 MARK tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:1352 MARK set 0x1 |
Là où ça se corse, c'est qu'il me faut faire la somme de la deuxième colonne.
Naturellement, j'ai pipé tout ça avec
awk '{ sum+=$2;} END {printf "%d\n",sum}'
Tout roule quand je suis sur mon environnement de test (avec 3 octets et demi par secondes

) mais en prod, mes métriques sautent car passé un certain step
awk me propose une sortie en notation scientifique (
6.80808e+09) que
Ganglia interprète comme une string et donc pas comme un
uint...
Ma question donc : peut-on inhiber ce comportement ? Avez-vous une autre idée pour faire cette addition qu'un programme C spécifique ?
Merci d'avance.
@+
Partager