效果圖
grafana 的安裝
這里主要講在Centos下的安裝扭仁,其實這個網(wǎng)上到處是蹬蚁,其他系統(tǒng)我就不多說了太防。
wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.2.0-1.x86_64.rpm
yum localinstall grafana-4.2.0-1.x86_64.rpm
#啟動 granafa
systemctl start grafana-server
然后你查看揭朝,就能看到在運行了
netstat -tpnl | grep 3000
訪問 http://ip:3000
帳號密碼都是 admin
接入mysql數(shù)據(jù)源
點擊 add data source 輸入Mysql的連接信息 這樣就添加好了
線圖展示
- 點擊 new dashboard
- 然后添加一個新的Dashboard Row
- 再在這個Row 里添加一個新的Panel 選擇 Graph
總訪問量(按項目)
從ngx_access表中根據(jù)不同project(也就是不同的nginx日志文件名)取出這個項目的總訪問量
SELECT UNIX_TIMESTAMP(date) as time_sec,sum(times) as value,project as metric
FROM ngx_access
WHERE $__timeFilter(date)
group by project,date
ORDER BY date ASC
總訪問量(按狀態(tài)碼)
從ngx_access表中根據(jù)不同code(也就是狀態(tài)碼)取出不同返回碼的次數(shù)
SELECT
UNIX_TIMESTAMP(date) as time_sec,
sum(times) as value,
code as metric
FROM edu_access
WHERE $__timeFilter(date)
group by code,date
ORDER BY date ASC
響應(yīng)時間排行
表格展示
- 點擊 new dashboard
- 然后添加一個新的Dashboard Row
- 再在這個Row 里添加一個新的Panel 選擇 Table
ip訪問次數(shù)統(tǒng)計
做這個出來主要是看看時段內(nèi)有沒有大量的惡意訪問
SELECT
ip as IP,
sum(times) as 次數(shù)
FROM ngx_ip
WHERE $__timeFilter(date)
GROUP BY ip ORDER BY 次數(shù) DESC limit 100;|
PV(每日頁面訪問量)
SELECT
date_format(date, '%Y-%m-%d') as 日期,
sum(times) as value
FROM ngx_access
WHERE $__timeFilter(date)
group by date_format(date, '%Y-%m-%d')
ORDER BY date_format(date, '%Y-%m-%d') asc
IP(每日獨立IP訪問量)
SELECT
date_format(date, '%Y-%m-%d') as 日期,
count(distinct ip) as value
FROM ngx_ip
WHERE $__timeFilter(date)
group by 日期
ORDER BY 日期 asc
URL(URL的訪問排行榜)
用于查看哪些功能(URL)被大量使用,這個感覺還比較有用卸伞,可以幫忙知道用戶到底在干些什么递宅。某些訪問多的是不是該加機(jī)器或者獨立之類的娘香。
select
project as project,
url as url,
sum(times) as times
from ngx_access
WHERE $__timeFilter(date)
group by project,url
order by times desc limit 100
URL(響應(yīng)時間排行)
根據(jù)每個project來展示每個URL 訪問時間區(qū)間
SELECT
url as Url,
sum(xiaoyu10) as 小于10ms,
sum(xiaoyu50) as 10ms_50ms,
sum(xiaoyu100) as 50ms_100ms,
sum(xiaoyu500) as 100ms_500ms,
sum(dayu500) as 大于500ms,
sum(xiaoyu10+xiaoyu100+xiaoyu50+xiaoyu500+dayu500) as tatol
FROM edu_res
WHERE $__timeFilter(date) and project = 'project'
GROUP BY url ORDER BY tatol DESC limit 50;