• 幕客老师召集小伙伴
  • 运维高手36项修炼
  • python自动化运维项目实战
  • nginx从入门到实战
  • 阿里云与Centos7实战

rrdtool实现日志流量访问监控

一、生成rrd数据库文件

rrdtool create ./statics.rrd -s 300 DS:Normal_access:GAUGE:600:U:U DS:Exception_access:GAUGE:600:U:U RRA:AVERAGE:0.5:1:288

-s 300 300秒存储一次数据
DS:pv:GAUGE:600:U:U
DS:ip:GAUGE:600:U:U 指定两个数据源DS,字段分别为pv和ip
RRA:AVERAGE:0.5:1:288 指定RRA,相当于数据表,存储一天的数据。

二、更新rrd,并且画图

通过shell脚本,批量执行并且更新rrd文件。

#!/bin/bash

log_file='your log file'

graph_file='picture's path'

rrd_file='rrd file's path'

while true

do

    becur=$(date -d "5 minute ago" +%H%M%S)

    http_code=(`tac ${log_file}|awk -va="$becur"-F ['':] '{

                    t=$5$6$7;

                    if (t>=a)

                        {if($12<200)

                            {i++}

                        else if($12>=200&&$12<300)

                            {j++}

                        else if($12>=300&&$12<400)

                            {k++}

                        else if($12>=400&&$12<500)

                            {n++}

                        else if($12>=500)

                            {p++}

                        }

                     else

                        {exit;}

                    }END{

                        print i?i:0,j?j:0,k?k:0,n?n:0,p?p:0,i+j+k+n+p}'`)

    #异常的请求

    Exception_access=$((${http_code[3]} + ${http_code[4]}))

    #统计正常的请求

    Normal_access=$((${http_code[0]} + ${http_code[1]} + ${http_code[2]}))

    #更新rrd文件

    rrdtool update ${rrd_file} N:${Normal_access}:${Exception_access}

     

    rrdtool graph $graph_file \

    -t"${http_code[5]} People is Online"  \

    --start now-3600 \

    --watermark"`date`" \

    --no-gridfit \

    --slope-mode 

    DEF:Normal_access=$rrd_file:Normal_access:AVERAGE \

    DEF:Exception_access=$rrd_file:Exception_access:AVERAGE \

    AREA:Normal_access#9F35FF:"Normal_access"  \

    AREA:Exception_access#00DB00:"Exception_access"

done

rrdtool实现日志流量访问监控

Pingbacks已打开。

引用地址

暂无评论

发表评论