监控带宽的服务器/网站负载

我一直在寻找一个监测网站“带宽”使用情况的工具,而且我不是在谈论有多lessMB /数据被加载,而是服务器的实际输出速度,以澄清我的意思是什么会用'例子,

我的服务器有100 / MB的Internet连接,我希望能够监视有多less100 / MB正在使用,并将其logging(作为后台进程)。

我已经尝试了不同types的工具,如Zabbix,Nagios和ntopng(ntop),所有有用的工具,但他们都没有看到logging实际服务器的速度/使用速度的电缆。 目前我仍然安装了Ntop(ng),但是我无法让它做我想要的。 (数据全天候logging至关重要)

原因是由于我托pipe的文件,人们可以下载我与低互联网连接有时打帽子,我希望能够监测何时/如何打我的帽子。

我的服务器是运行Apache 2.2的Ubuntu 12.04,我不知道是否需要,但在以下情况下:我的域用虚拟主机为每个域设置。

我感谢任何帮助和提示,我可以得到。

这听起来像是在试图通过测量Web服务器输出来logging完整的networking带宽 – 这是不够的,因为这不包括任何TCP / IP协议开销或其他stream量(任何SSH,FTP,数据库或其他stream量服务器可能参与的stream量)。

你需要看的是界面统计 。 任何服务器监视工具(如Zabbix和Nagios)都会有这样的function,例如使用collectd,您可以使用interfaces模块( https://collectd.org/wiki/index.php/Plugin:Interface )来监视所有stream量在给定的接口或iptables模块( https://collectd.org/wiki/index.php/Plugin:IPTables )上监视匹配某些过滤规则的stream量(这样您可以更详细地分析使用的带宽)。

我将使用一个脚本(我最喜欢的是与“重新”模块的Python)parsingApache访问日志

举个例子:

127.0.0.1 – 坦率[10 / Oct / 2000:13:55:36 -0700]“GET /apache_pb.gif HTTP / 1.0”200 2326

最后一个元素是传输到客户端的字节。 您需要不断添加此数字,并按常规频率进行打印或logging,以生成从上次运行到此刻为止传输到客户端的总字节数。

有关Apache访问日志的更多信息,请参阅: http : //httpd.apache.org/docs/2.2/logs.html

#!/bin/env python import time, sys, re regex = re.compile(r'\s+([0-9]+)$') def fetch_bytes(file, bytes): for line in file: match = regex.search(line) if match: bytes = int(match.group(1)) yield bytes def main(): Access_File = "apache_access_log" try: with open(Access_File) as file: gen = None while True: for i in range(1001): gen = fetch_bytes(file, bytes) #bytes += sum(gen) #prints how much KB has been transferred in the time duration print "%s\t%dKB" % (time.strftime("%H:%M:%S"), (sum(gen)/1024)) time.sleep(120) except IOError: print "Could not locate the apache log file" sys.exit(1) if __name__ == '__main__': main()