다음 스크립트는 ss -s
RRDtool의 출력 잘못된 번호
rrdtool=$(which rrdtool);
db=/opt/rrd/estabconns.rrd
img=/usr/share/nginx/html/awp
export IFS=" ,"
arr=($(ss -s | grep TCP:))
total=${arr[3]}
if [ ! -e $db ]
then
$rrdtool create $db \
-s 5 \
DS:conns:GAUGE:600:0:50000000000 \
RRA:AVERAGE:0.5:1:576 \
RRA:AVERAGE:0.5:6:672 \
RRA:AVERAGE:0.5:24:732 \
RRA:AVERAGE:0.5:144:1460
fi
$rrdtool updatev $db -t conns N:$total
for period in hour day week month year
do
$rrdtool graph $img/connections-$period.png -s -1$period \
-t "ams1 connections - $period" -z \
-c "BACK#FFFFFF" -c "SHADEA#FFFFFF" -c "SHADEB#FFFFFF" \
-c "MGRID#AAAAAA" -c "GRID#CCCCCC" -c "ARROW#333333" \
-c "FONT#333333" -c "AXIS#333333" -c "FRAME#333333" \
-h 134 -w 543 -l 0 -a PNG -v "concurrent connections" \
DEF:conns=$db:conns:AVERAGE \
VDEF:min=conns,MINIMUM \
VDEF:max=conns,MAXIMUM \
VDEF:avg=conns,AVERAGE \
VDEF:lst=conns,LAST \
"COMMENT: \l" \
"COMMENT: " \
"COMMENT:Minimum " \
"COMMENT:Maximum " \
"COMMENT:Average " \
"COMMENT:Current \l" \
"COMMENT: " \
"LINE1:conns#0AC43C:Conns " \
"GPRINT:min:%6.0lf " \
"GPRINT:max:%6.0lf " \
"GPRINT:avg:%6.0lf " \
"GPRINT:lst:%6.0lf \l" > /dev/null
done
내 cronjob에 대한 기존 TCP 연결을 모니터링합니다
*/5 * * * * /bin/bash /root/rrd.sh
문제는 잘못 번호를 보여주고 있다는 점이다. ss -s
의 TCP 연결은 항상 150-300이지만 출력 그림에는 0과 3 사이의 값이 표시되며 때로는 높을 수도 있지만 일반적으로 잘못되었습니다.
감사합니다. 덕분에 도움이되었습니다. 값을 파일에 기록했는데'ss' 명령이 cron에 의해 인식되지 않았다는 것을 알아 냈습니다. envvar는'ss'가있는'/ usr/sbin'을 포함하지 않았습니다. – SuperUser