2 votes

Comment optimiser munin fw_conntrack script

J'ai un serveur avec environ 65k connexions dans ip_conntrack. Comment puis-je optimiser le script de munin qui compte les différents types de connexions (par défaut fw_conntrack script) :

cat /proc/net/ip_conntrack | awk '
BEGIN {
    STATE["ESTABLISHED"]=STATE["FIN_WAIT"]=STATE["TIME_WAIT"]=0;
    TOTAL=ASSURED=NOREPLY=STATE["SYN_SENT"]=STATE["UDP"]=0; 
}
/^tcp/ { STATE[$4]++; }
/^udp/ { STATE["UDP"]++; }
/ASSURED/ { ASSURED++; }
{
  TOTAL++;
}
END {
    print "established.value " STATE["ESTABLISHED"];
    print "fin_wait.value " STATE["FIN_WAIT"];
    print "time_wait.value " STATE["TIME_WAIT"];
    print "syn_sent.value " STATE["SYN_SENT"];
    print "udp.value " STATE["UDP"];
    print "assured.value " ASSURED;
    print "total.value " TOTAL;
}'

Actuellement, il faut environ 30 secondes pour l'exécuter.

2voto

wolfg Points 51

Remplacer cat /proc/net/ip_conntrack avec conntrack -L . Il est plus efficace avec un grand nombre de connexions.

Exemple :

root@utemp:~# time conntrack -L | wc -l
conntrack v0.9.14 (conntrack-tools): 16855 flow entries have been shown.
16855

real    0m0.099s
user    0m0.068s
sys     0m0.036s

root@utemp:~# time cat /proc/net/ip_conntrack | wc -l
16634

real    0m0.270s
user    0m0.008s
sys     0m0.264s

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X