流量統計功能
華容網站建設公司成都創(chuàng)新互聯公司,華容網站設計制作,有大型網站制作公司豐富經驗。已為華容數千家提供企業(yè)網站建設服務。企業(yè)網站搭建\外貿網站制作要多少錢,請找那個售后服務好的華容做網站的公司定做!
顯示效果:
總訪問量: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");
}
?
1、Ganglia
是一個集群監(jiān)控軟件,可以監(jiān)視和顯示集群中的節(jié)點的各種狀態(tài)信息,比如:CPU、mem、硬盤利用率、I/O負載、網絡流量情況等,同時可以將歷史數據以曲線方式通過php頁面呈現,此軟件主要是用來監(jiān)控系統性能的軟件,通過曲線可以很容易見到每個節(jié)點的工作狀態(tài),對合理調整、分配系統資源,提高系統整體性能起到重要作用。
它是分布式的監(jiān)控系統,有兩個Daemon,是一個Linux下圖形化監(jiān)控系統運行性能的軟件,界面美觀、豐富,功能強大。
RRDtool是系統存放和顯示time-series (即網絡帶寬、溫度、人數、服務器負載等) 。并且它提出有用的圖表由處理數據強制執(zhí)行有些數據密度。
2、Cacti
是一套基于PHP、MySQL、SNMP及RRDTool開發(fā)的網絡流量監(jiān)測圖形分析工具,通過snmpget來獲取數據,使用RRDTool繪畫圖形,提供了非常強大的數據和用戶管理功能,可以指定每一個用戶能查看樹狀結 構、host以及任何一張圖,還可以與LDAP結合進行用戶驗證,同時也能自己增加模板,功能非常強大完善。
cacti是用php語言實現的一個軟件,它的主要功能是用snmp服務獲取數據,然后用rrdtool儲存和更新數據,當用戶需要查看數據的時候用rrdtool生成圖表呈現給用戶。因此,snmp和rrdtool是cacti的關鍵。
3、Zenoss
是一款智能監(jiān)控軟件,允許IT管理員依靠單一的WEB控制臺來監(jiān)控網絡架構的狀態(tài)和健康度。Zenoss Core同時也是開源的網絡與系統管理軟件。
Zenoss提供功能豐富的產品,以監(jiān)測整個IT基礎設施:
網絡 -路由器,交換機,防火墻,接入點;
服務器 -微軟的Windows , Linux , Unix系統,惠普, NetApp,戴爾;
虛擬化 -完整虛擬機虛擬化基礎架構( VI3 )管理, XenSource監(jiān)測;
應用領域 -Process(程序),Port,網絡應用服務, Web服務,數據庫,中間件,商業(yè)企業(yè)應用方案 ;
4、Argus
是一個網絡連接監(jiān)控器,可以利用它來定制監(jiān)控網絡中符合某種條件的計算機,例如網絡空閑、斷開等。
5、Monit
是一款功能非常豐富的進程、文件、目錄和設備的監(jiān)測軟件,用于UNIX平臺,可以自動修復那些已經停止運行的程序,適合處理那些由于多種原因導致的軟件錯誤。
6、Nagios
是一個監(jiān)視系統運行狀態(tài)和網絡信息的監(jiān)視系統,能監(jiān)視所指定的本地或遠程主機以及服務,同時提供異常通知功能等Nagios可運行在Linux/Unix平臺之上,同時提供一個可選的基于瀏覽器的WEB界面以方便系統管理人員查看網絡狀態(tài),各種系統問題,以及日志等等。
Nagios的主要功能特點:
監(jiān)視網絡服務(SMTP、POP3、HTTP、NNTP、PING等);
監(jiān)視主機資源(進程、磁盤等);
簡單的插件設計可以輕松擴展Nagios的監(jiān)視功能;
服務等監(jiān)視的并發(fā)處理;
錯誤通知功能(通過email、pager或其他用戶自定義的方法)。
最好的辦法是,在應用程序生命周期內,對于數據庫設置有事件鉤子,用于監(jiān)聽程序對于數據庫的操作。這樣非常方便處理邏輯流程。
1 - 表的數據變化
表數據發(fā)生了變化,毫無疑問是寫操作,包括以下幾種情形:
新建條目 create
更新條目 update
刪除條目 delete
以上三種都是寫操作,會對表數據寫入。
2 - 事件鉤子
既然需要實時監(jiān)控,那么每個數據庫的操作,都需要考慮在內,這是全局的監(jiān)聽。
以laravel的Eloquent ORM 模型觸發(fā)事件,允許你掛接到模型生命周期的如下節(jié)點: retrieved、creating、created、updating、updated、saving、saved、deleting、deleted、restoring 和 restored。事件允許你每當特定模型保存或更新數據庫時執(zhí)行代碼。每個事件通過其構造器接受模型實例。
模型內添加事件監(jiān)聽鉤子
如果重用率很高,那么使用觀察者 Observer 方式進行監(jiān)聽更為高效。
Laravel Observer
結語
上面的方法要求讀者有l(wèi)aravel框架的使用基礎,對于構建中大型應用非常有利。
我覺得可能比較困難,不過也不是不能實現,這個應該是要用遠程
那你可以在插入數據庫那里設置監(jiān)聽呀,一有插入就往Android推送消息。
不然你只能通過每隔一段時間刷新一下讀取數據庫,看看有沒有更新,有就推送,沒有就繼續(xù)監(jiān)聽,這個你可以自己設置更新時間。