![]() ![]() |
crusader |
Subversion Repositories: |
Compare with Previous - Blame - Download
#!/bin/bashPATH=/opt/rrdtool/bin:$PATH:/sbinstat_dir="/var/statistiky/system"mkdir -p $stat_dircd $stat_dirfunction create_db(){if [ ! -f mpstat.rrd ] ; thenecho "Creating mpstat db"# sbirame jednou za minutu# poslednich 6 hodin chci mit vsechno => 60*6 = 360 PDP# za posledni tyden chci desetiminutove agregace => 10 dni * 24 hodin * 6 = 1440 rows# za posledni mesic chci hodinove agregace => 40 dni * 24 hodin = 960 rows# za posledni rok chci ctyrhodinove agregace => 365 * 6 = 2190 rowsrrdtool create mpstat.rrd --step 60 --start `date +%s` \DS:user:GAUGE:120:0:100 \DS:nice:GAUGE:120:0:100 \DS:system:GAUGE:120:0:100 \DS:iowait:GAUGE:120:0:100 \DS:irq:GAUGE:120:0:100 \DS:softirq:GAUGE:120:0:100 \DS:idle:GAUGE:120:0:100 \DS:intrs:GAUGE:120:0:U \RRA:AVERAGE:0.7:1:360 \RRA:MAX:0.7:10:1440 \RRA:MIN:0.7:10:1440 \RRA:AVERAGE:0.7:10:1440 \RRA:MAX:0.7:60:960 \RRA:MIN:0.7:60:960 \RRA:AVERAGE:0.7:60:960 \RRA:MAX:0.7:240:2190 \RRA:MIN:0.7:240:2190 \RRA:AVERAGE:0.7:240:2190fiif [ ! -f conntrack.rrd ] ; thenecho "Creating conntrack db"rrdtool create conntrack.rrd --step 60 --start `date +%s` \DS:tcp_syn_sent:GAUGE:120:0:65535 \DS:tcp_syn_recv:GAUGE:120:0:65535 \DS:tcp_established:GAUGE:120:0:65535 \DS:tcp_close:GAUGE:120:0:65535 \DS:tcp_close_wait:GAUGE:120:0:65535 \DS:tcp_fin_wait:GAUGE:120:0:65535 \DS:tcp_time_wait:GAUGE:120:0:65535 \DS:udp:GAUGE:120:0:65535 \DS:ip_conntrack_max:GAUGE:120:0:65535 \RRA:AVERAGE:0.7:1:360 \RRA:MAX:0.7:10:1440 \RRA:MIN:0.7:10:1440 \RRA:AVERAGE:0.7:10:1440 \RRA:MAX:0.7:60:960 \RRA:MIN:0.7:60:960 \RRA:AVERAGE:0.7:60:960 \RRA:MAX:0.7:240:2190 \RRA:MIN:0.7:240:2190 \RRA:AVERAGE:0.7:240:2190fi}function wait_to()# $1 date for waiting to{local time_now=`date +%s`;while [ $time_now -lt $1 ]dotime_now=`date +%s`sleep 1;done}start_time=`date +%s`# zaokrouhlime interval na deset sekundinterval=$(( $start_time / 10 * 10 + 10 ))conntrack_file=/tmp/conntrack_filewhile [ true ] ; docreate_dbwait_to $intervallogfile="$stat_dir/mpstat"timenow=`date +%s`cpuline=`mpstat -P 0 1 3 | tail -2 | head -1`# echo $cpulineuser_time=`echo $cpuline | awk '{print $4;}'`nice_time=`echo $cpuline | awk '{print $5;}'`system_time=`echo $cpuline | awk '{print $6;}'`iowait_time=`echo $cpuline | awk '{print $7;}'`irq_time=`echo $cpuline | awk '{print $8;}'`softirq_time=`echo $cpuline | awk '{print $9;}'`idle_time=`echo $cpuline | awk '{print $10;}'`intrs=`echo $cpuline | awk '{print $11;}'`echo $interval $user_time $nice_time $system_time $iowait_time $irq_time $softirq_time $idle_time $intrs >>/var/log/statistiky/system.logrrdtool update mpstat.rrd -t user:nice:system:iowait:irq:softirq:idle:intrs $interval:$user_time:$nice_time:$system_time:$iowait_time:$irq_time:$softirq_time:$idle_time:$intrscp /proc/net/ip_conntrack $conntrack_filetcp_syn_sent=`grep ^tcp.*SYN_SENT.* <$conntrack_file | wc -l`tcp_syn_recv=`grep ^tcp.*SYN_RECV.* <$conntrack_file | wc -l`tcp_established=`grep ^tcp.*ESTABLISHED.* <$conntrack_file | wc -l`tcp_close=`grep ^tcp.*CLOSE.* <$conntrack_file | wc -l`tcp_close_wait=`grep ^tcp.*CLOSE_WAIT.* <$conntrack_file | wc -l`tcp_fin_wait=`grep ^tcp.*FIN_WAIT.* <$conntrack_file | wc -l`tcp_time_wait=`grep ^tcp.*TIME_WAIT.* <$conntrack_file | wc -l`udp=`grep ^udp.* <$conntrack_file | wc -l`rm -f $conntrack_fileip_conntrack_max=`cat /proc/sys/net/ipv4/netfilter/ip_conntrack_max`echo $interval $tcp_syn_sent $tcp_syn_recv $tcp_established $tcp_close $tcp_close_wait $tcp_fin_wait $tcp_time_wait $udp >>/var/log/statistiky/conntrack.logrrdtool update conntrack.rrd -t tcp_syn_sent:tcp_syn_recv:tcp_established:tcp_close:tcp_close_wait:tcp_fin_wait:tcp_time_wait:udp:ip_conntrack_max \$interval:$tcp_syn_sent:$tcp_syn_recv:$tcp_established:$tcp_close:$tcp_close_wait:$tcp_fin_wait:$tcp_time_wait:$udp:$ip_conntrack_max 2>>/var/log/statistiky/conntrack.errecho "rrdtool update conntrack.rrd -t tcp_syn_sent:tcp_syn_recv:tcp_established:tcp_close:tcp_close_wait:tcp_fin_wait:tcp_time_wait:udp:ip_conntrack_max $interval:$tcp_syn_sent:$tcp_syn_recv:$tcp_established:$tcp_close:$tcp_close_wait:$tcp_fin_wait:$tcp_time_wait:$udp:$ip_conntrack_max" >>/var/log/statistiky/conntrack.historyinterval=$(( $interval + 60 ))done