利用脚本分析日志并利用snmp自定义OID,再通过cacti画图
         日志是很重要的东西,我们可以分析日志得出很多规律和结论。而cacti又是很强大的画图工具,可以通...
扫描右侧二维码阅读全文
18
2010/06

利用脚本分析日志并利用snmp自定义OID,再通过cacti画图

         日志是很重要的东西,我们可以分析日志得出很多规律和结论。而cacti又是很强大的画图工具,可以通过它把数据以图表的方式表现出来。

 
        下面我要做的事情,就是用脚本对日志做实时分析,把结果输出到文本中,然后自定义OID,获取其中的值,而cacti通过自定义图表,用snmp取值,用rrdtool画图。
 
        关键在于对日志做实时分析,这个说出来其实很简单,使用一个tail -f 读日志文件,通过管道,调用自己写的脚本来分析。
 
        将24小时分成5分钟一段,每条日志的三个数据(结束时间,耗时,字节数)读出来,根据结束时间(注意日志里的时间是结束时间,不是开始时间)计算出开始时间,然后看这个时间落在哪几个5分钟的段里面,将它的字节大小乘以1.07, 按秒平均后放进去。这样就可以算出之前的流量。
 
        乘以1.07是国外通行的做法,因为网络开销比这个日志里的字节数要大(包头啊等等)。
 
        由于在实时计算的时候,可能某些请求还没有结束(一个请求完成后才会写进日志),因此在20分钟内,可能算出来的流量图会变化,基本上20分钟后出来的流量数据就准确了。
  
        然后自定义OID,cacti利用snmp取值,用rrdtool画图,就可以得到图了
Last modification:November 26th, 2018 at 04:16 pm
If you think my article is useful to you, please feel free to appreciate

4 comments

  1. 蚁族

    @codytan
    是不是请的托啊~~
    不同的需要~难道它能监视你得CPU和并发数和mysql连接数,负载平衡... 这些数据都是挺重要的~难道你说的那个能拿到这些数据?笑话~

  2. codytan

    其实你可以不必自己用rrdtool来画图cacti来取数据,可以使用监控宝www.jiankongbao.com的自定义监控就能省去很多工作。只是需要一个状态页而已。

  3. iakuf

    大公司的都是自定义 OID,如果只是要流量的话,就使用 snmp 本身的流量数据就好了,如果要日志中其它的信息,可以考虑每 5 争钟给日志送回来。不过也可以写个日志分析,用 xml 来发布出来,在远程服务器做端口就行了

    1. Serwei Xu
      @iakuf

      不只是可以统计流量,比喻统计块大小,还有连接数,流量的话如果一个服务器跑了多个端口,比喻80和8080,流量统计的话日志分析才能区别开,或者我一个端口跑的应用是通用型的,如果要做流量统计和其他的数据分析的话 也还是可以用这样的方法的

Leave a Comment