Analyse reseau
De DocUnix.
Acquisition de trace réseau
Pour obtenir des traces réseaux exploitables, il faut impérativement loggués ces traces dans un fichier pour les analyser après coup et pouvoir filtrer le trafic en cause. Pour prendre des trames réseaux complètes en direct, utilisez la commande suivante et terminer par ^C:
tcpdump -s 2048 -i <interface> -w <fichier>
Ensuite pour analyser, il suffit de passer la commande :
Sans le contenu des trames : tcpdump -r <fichier> Avec le contenu de trames : tcpdump -X -r <fichier>
Pour utiliser toutes les options possibles, le man est très complet.
Compter les paquets réseaux pour un pour Oracle par client
Le script ci-dessous est modifiable a souhait pour compter sur d'autres ports ou tout les ports du serveur. Merci Jérôme pour l'astuce.
tcpdump -N -q port 1521 |
awk '{ h=substr($1,1,5)
if (h!=hold) {
# changement de minute : on affiche
print "=======================",hold
for(s in nbp) if (nbp[s]!=0) { printf("%5d %7.1f ko IN/OUT %5d %7.1f ko : %s\n",nbpi[s],volpi[s]/1024,nbpo[s],volpo[s]/1024,s);
# raz des compteurs
nbp[s]=0; volp[s]=0
nbpi[s]=0; volpi[s]=0
nbpo[s]=0; volpo[s]=0
}
hold=h
}
s1=$3 ; sub("\.[0-9]*$","",s1) # machine source
s2=$5 ; sub("\.[0-9]*:$","",s2) # machine destination
size=$7
if (s1=="<hostname>") { s=s2 ; nbpo[s]++; volpo[s]+=size } # out : sort de hostname
else { s=s1 ; nbpi[s]++; volpi[s]+=size } # in : entre dans hostname
nbp[s]++
volp[s]+=size
}'
Compter les paquets réseaux sur un noeud de cluster HP/McServiceGuard
lan0 est l'interface réseau écoutée.
hostname est le nom résolu du noeud.
hostname-pkg1 est le nom résolu du package porté par le noeud.
Merci encore Jérome.
/usr/local/sbin/tcpdump -N -i lan0 -q ip |
awk '{ h=substr($1,1,5)
if (h!=hold) {
# changement de minute : on affiche
print "=======================",hold
for(s in nbp) if (nbp[s]!=0) { printf("%5d %7.1f ko IN/OUT %5d %7.1f ko : %s\n",nbpi[s],volpi[s]/1024,nbpo[s],volpo[s]/1024,s);
# raz des compteurs
nbp[s]=0; volp[s]=0
nbpi[s]=0; volpi[s]=0
nbpo[s]=0; volpo[s]=0
}
hold=h
}
s1=$3 ; sub("\.[0-9]*$","",s1) # machine source
s2=$5 ; sub("\.[0-9]*:$","",s2) # machine destination
size=$7
if (s1=="<hostname>" || s1=="<hostname-pkg1>") { s=s2 ; nbpo[s]++; volpo[s]+=size } # out : sort de atpdsX
else if (s2=="<hostname>" || s2=="<hostname-pkg1>") { s=s1 ; nbpi[s]++; volpi[s]+=size } # in : entre dans atpdsX
else { s=s1"->"s2 ; nbpi[s]++; volpi[s]+=size } # in : entre dans <hostname>
nbp[s]++
volp[s]+=size
}'

