URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 87284
[ Назад ]

Исходное сообщение
"Как узнать количество записей в CONNTRACK?"

Отправлено Rom1 , 15-Ноя-09 21:37 
cat /proc/ip_conntrack или conntrack -L вешают систему намертво на минуту-три.

Есть простое решение узнать _количество_ записей в CONNTRACK?


Содержание

Сообщения в этом обсуждении
"Как узнать количество записей в CONNTRACK?"
Отправлено Rom1 , 15-Ноя-09 21:57 
>Есть простое решение узнать _количество_ записей в CONNTRACK?

Нашел, вот оно:
#sysctl net.ipv4.netfilter.ip_conntrack_count


"Как узнать количество записей в CONNTRACK?"
Отправлено Rom1 , 16-Ноя-09 08:34 
Журналировать так:

Скрипт conntrack_count.sh:

#!/bin/sh

LOG_FILE="/var/log/conntrack_count.log"

COUNT=`sysctl net.ipv4.netfilter.ip_conntrack_count | awk '{print $3}'`
MAXIMUM=`sysctl net.ipv4.netfilter.ip_conntrack_max | awk '{print $3}'`
AVERAGE=$[100*$COUNT/$MAXIMUM]
printf "%s =%% [" "`date +%F\" \"%T`" $AVERAGE >> $LOG_FILE
for (( index = 1 ; index <= 50; index++ ))
do
    if [ $index -le $[$AVERAGE/2] ]
    then SYMBOL="#"
    else SYMBOL="-"
    fi
    echo -n $SYMBOL >> $LOG_FILE;
    if [ $index -eq 25 ]
    then echo -n "|" >> $LOG_FILE
    fi
done
printf "] %9s/%9s\n" `echo $COUNT | sed -e :a -e 's/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/;ta'` `echo $MAXIMUM | sed -e :a -e 's/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/;ta'` >> $LOG_FILE

Вписать его в /etc/crontab:

*/1 *   * * *   root    /usr/bin/conntrack_count.sh

Не забыть сделать ротацию логов.