php实现数据流量监控 php实现数据流量监控功能

php流量统计功能的实现代码

流量统计功能

华容网站建设公司成都创新互联公司,华容网站设计制作,有大型网站制作公司丰富经验。已为华容数千家提供企业网站建设服务。企业网站搭建\外贸网站制作要多少钱,请找那个售后服务好的华容做网站的公司定做!

显示效果:

总访问量:399

今日流量:14

昨日流量:16

本代码仅供学习交流,其中必有不妥之处。请见谅!

--

--

表的结构

`mycounter`

--

复制代码

代码如下:

CREATE

TABLE

`mycounter`

(

`id`

int(11)

NOT

NULL

auto_increment,

`Counter`

int(11)

NOT

NULL,

`CounterLastDay`

int(10)

default

NULL,

`CounterToday`

int(10)

default

NULL,

`RecordDate`

date

NOT

NULL,

PRIMARY

KEY

(`id`)

)

ENGINE=InnoDB

DEFAULT

CHARSET=gbk

AUTO_INCREMENT=2

;

函数过程如下:

复制代码

代码如下:

?PHP

public

function

ShowMyCounter(){

//定义变量

$IsGone

=

FALSE;

//读取数据

$querysql

=

"SELECT

*

FROM

`mycounter`

WHERE

id

=

Ƈ'

";

$queryset

=

mysql_query($querysql);

$row

=

mysql_fetch_array($queryset);

//获得时间量

$DateNow

=

date('Y-m-d');

$RecordDate

=

$row['RecordDate'];

$DateNow_explode

=

explode("-",$DateNow);

$RecordDate_explode

=

explode("-",$RecordDate);

//判断是否已过去一天

if(

$DateNow_explode[0]

$RecordDate_explode[0])

$IsGone

=

TRUE;

else

if(

$DateNow_explode[0]

==

$RecordDate_explode[0]

){

if(

$DateNow_explode[1]

$RecordDate_explode[1]

)

$IsGone

=

TRUE;

else

if(

$DateNow_explode[1]

==

$RecordDate_explode[1]

){

if(

$DateNow_explode[2]

$RecordDate_explode[2]

)

$IsGone

=

TRUE;

}else

BREAK;

}else

BREAK;

//根据IsGone进行相应操作

IF($IsGone)

{

$RecordDate

=

$DateNow;

$CounterToday

=

0;

$CounterLastDay

=

$row['CounterToday'];

$upd_sql

=

"update

mycounter

set

RecordDate

=

'$RecordDate',CounterToday

=

'$CounterToday',CounterLastDay

=

'$CounterLastDay'

WHERE

id

=

Ƈ'

";

mysql_query($upd_sql);

}

//再次获取数据

$querysql

=

"SELECT

*

FROM

`mycounter`

WHERE

id

=

Ƈ'

";

$queryset

=

mysql_query($querysql);

$Counter

=

$row['Counter'];

$CounterToday

=

$row['CounterToday'];

$CounterLastDay

=

$row['CounterLastDay'];

if($row

=

mysql_fetch_array($queryset)

){

if(

$_COOKIE["user"]

!=

"oldGuest"

){

$Counter

=

++$row['Counter'];

$CounterToday

=

++$row['CounterToday'];

$upd_sql

=

"update

mycounter

set

counter

=

'$Counter',CounterToday

=

'$CounterToday'

WHERE

id

=

Ƈ'

";

$myquery

=

mysql_query($upd_sql);

}

echo

"总访问量:".$Counter;

echo

"

";

echo

"今日流量:".$CounterToday;

echo

"

";

echo

"昨日流量:".$CounterLastDay;

}else{//如果数据库为空时,相应的操作

}

}

?

当然,需要在文件第一行开始写出如下代码:

复制代码

代码如下:

?PHP

session_start();

if(

!isset($_COOKIE["user"])

){

setcookie("user","newGuest",time()+3600);

}else

{

setcookie("user","oldGuest");

}

?

有什么监控Linux服务器的工具吗?

1、Ganglia

是一个集群监控软件,可以监视和显示集群中的节点的各种状态信息,比如:CPU、mem、硬盘利用率、I/O负载、网络流量情况等,同时可以将历史数据以曲线方式通过php页面呈现,此软件主要是用来监控系统性能的软件,通过曲线可以很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。

它是分布式的监控系统,有两个Daemon,是一个Linux下图形化监控系统运行性能的软件,界面美观、丰富,功能强大。

RRDtool是系统存放和显示time-series (即网络带宽、温度、人数、服务器负载等) 。并且它提出有用的图表由处理数据强制执行有些数据密度。

2、Cacti

是一套基于PHP、MySQL、SNMP及RRDTool开发的网络流量监测图形分析工具,通过snmpget来获取数据,使用RRDTool绘画图形,提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结 构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善。

cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。

3、Zenoss

是一款智能监控软件,允许IT管理员依靠单一的WEB控制台来监控网络架构的状态和健康度。Zenoss Core同时也是开源的网络与系统管理软件。

Zenoss提供功能丰富的产品,以监测整个IT基础设施:

网络 -路由器,交换机,防火墙,接入点;

服务器 -微软的Windows , Linux , Unix系统,惠普, NetApp,戴尔;

虚拟化 -完整虚拟机虚拟化基础架构( VI3 )管理, XenSource监测;

应用领域 -Process(程序),Port,网络应用服务, Web服务,数据库,中间件,商业企业应用方案 ;

4、Argus

是一个网络连接监控器,可以利用它来定制监控网络中符合某种条件的计算机,例如网络空闲、断开等。

5、Monit

是一款功能非常丰富的进程、文件、目录和设备的监测软件,用于UNIX平台,可以自动修复那些已经停止运行的程序,适合处理那些由于多种原因导致的软件错误。

6、Nagios

是一个监视系统运行状态和网络信息的监视系统,能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等Nagios可运行在Linux/Unix平台之上,同时提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等。

Nagios的主要功能特点:

监视网络服务(SMTP、POP3、HTTP、NNTP、PING等);

监视主机资源(进程、磁盘等);

简单的插件设计可以轻松扩展Nagios的监视功能;

服务等监视的并发处理;

错误通知功能(通过email、pager或其他用户自定义的方法)。

php中有没有什么方法可以实现实时监听数据库中的某张表的变化

最好的办法是,在应用程序生命周期内,对于数据库设置有事件钩子,用于监听程序对于数据库的操作。这样非常方便处理逻辑流程。

1 - 表的数据变化

表数据发生了变化,毫无疑问是写操作,包括以下几种情形:

新建条目 create

更新条目 update

删除条目 delete

以上三种都是写操作,会对表数据写入。

2 - 事件钩子

既然需要实时监控,那么每个数据库的操作,都需要考虑在内,这是全局的监听。

以laravel的Eloquent ORM 模型触发事件,允许你挂接到模型生命周期的如下节点: retrieved、creating、created、updating、updated、saving、saved、deleting、deleted、restoring 和 restored。事件允许你每当特定模型保存或更新数据库时执行代码。每个事件通过其构造器接受模型实例。

模型内添加事件监听钩子

如果重用率很高,那么使用观察者 Observer 方式进行监听更为高效。

Laravel Observer

结语

上面的方法要求读者有laravel框架的使用基础,对于构建中大型应用非常有利。

php能不能控制路由器,并进行配置和管理

我觉得可能比较困难,不过也不是不能实现,这个应该是要用远程

PHP如何实施监控数据库的更新,一旦有更新,就把更新的数据推送给Android?

那你可以在插入数据库那里设置监听呀,一有插入就往Android推送消息。

不然你只能通过每隔一段时间刷新一下读取数据库,看看有没有更新,有就推送,没有就继续监听,这个你可以自己设置更新时间。


本文标题:php实现数据流量监控 php实现数据流量监控功能
链接地址:http://azwzsj.com/article/hhgegj.html