日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
【強悍】d3.js讓ssh暴破次數(shù)可視化

??本博文出自博客老徐_kevin博主,有任何問題請進入博主頁面互動討論!

博文地址:http://laoxu.blog./4120547/1618400


一臺做手機app應用的服務器在某云上,很好奇如果沒有修改ssh端口的情況下,每天會被暴力破解多少次呢?帶著這個疑問,查看一下/var/log/messages的日志,grep一下里面多少含有"Failed"的日志記錄。。。

由于messages日志會有l(wèi)ogrotate,所以:

 
 
 
 
  1. grep "^Mar  1"  /var/log/messages* | grep "Failed" | wc -l

分別得到從本月1號到7號的暴力破解次數(shù),分別是:

 
 
 
 
  1. 2015-03-07,4126 
  2. 2015-03-06,33499 
  3. 2015-03-05,80096 
  4. 2015-03-04,70208 
  5. 2015-03-03,79273 
  6. 2015-03-02,40995 
  7. 2015-03-01,11845

除了7號比較安靜點,平均每天5、6萬次,看來黑客每天都很忙碌。。。

雖然數(shù)據(jù)比較少,但是看起來比較枯燥,看不出趨勢,讓數(shù)據(jù)可視化,那就用d3.js吧,上代碼。。。

d3的庫文件直接從github上獲得即可。

index.html

 
 
 
 
  1.  
  2.  
  3.      
  4.          
  5.          
  6.         SSH爆破次數(shù) 
  7.      
  8.      
  9.         
 
  •          
  •          
  •      
  • style.css

     
     
     
     
    1. #container { 
    2. background:#eee;    //容器的背景色 
    3. width:600px; 
    4. height:270px; 
    5.   
    6. body { font: 12px Arial;} 
    7.   
    8. path { 
    9.     stroke: mediumturquoise;  //曲線的顏色,可以在chrome的控制臺里使用stroke TAB后調(diào)試 
    10.     stroke-width: 2; 
    11.     fill: none; 
    12.   
    13. .axis path, 
    14. .axis line { 
    15.     fill: none; 
    16.     stroke: gray; 
    17.     stroke-width: 1; 
    18.     shape-rendering: crispEdges; 
    19. }

    data.csv

     
     
     
     
    1. date,close 
    2. 2015-03-07,4126 
    3. 2015-03-06,33499 
    4. 2015-03-05,80096 
    5. 2015-03-04,70208 
    6. 2015-03-03,79273 
    7. 2015-03-02,40995 
    8. 2015-03-01,11845

    index.js

     
     
     
     
    1. var margin = {top: 30, right: 30, bottom: 50, left: 80}, 
    2.     width = 600 - margin.left - margin.right, 
    3.     height = 270 - margin.top - margin.bottom; 
    4.   
    5. var parseDate = d3.time.format("%Y-%m-%d").parse; 
    6.   
    7. var x = d3.time.scale().range([0, width]); 
    8.   
    9. var y = d3.scale.linear().range([height, 0]); 
    10.   
    11. var xAxis = d3.svg.axis().scale(x) 
    12.     .orient("bottom").ticks(7)          
    13.     .tickFormat(d3.time.format("%b/%d")); 
    14.   
    15. var yAxis = d3.svg.axis().scale(y) 
    16.     .orient("left").ticks(10); 
    17.   
    18. var valueline = d3.svg.line() 
    19.     .x(function(d) { return x(d.date); }) 
    20.     .y(function(d) { return y(d.close); }) 
    21.     .interpolate("basis"); 
    22.   
    23.   
    24. var svg = d3.select("#container") 
    25. .append("svg") 
    26. .attr("width", width + margin.left + margin.right) 
    27. .attr("height", height + margin.top + margin.bottom) 
    28. .append("g") 
    29. .attr("transform","translate(" + margin.left +"," + margin.top + ")"); 
    30.   
    31.   
    32. // Get the data 
    33. d3.csv("data/data.csv", function(error, data) { 
    34.      data.forEach(function(d) { 
    35.      d.date = parseDate(d.date); 
    36.      d.close = +d.close; 
    37.                         }); 
    38. // Scale the range of the data 
    39. x.domain(d3.extent(data, function(d) { return d.date; })); 
    40. y.domain([0, d3.max(data, function(d) { return d.close; })]); 
    41. svg.append("path")       // Add the valueline path. 
    42.    .attr("class", "line") 
    43.    .attr("d", valueline(data)); 
    44.   
    45. svg.append("g")          // Add the X Axis 
    46.    .attr("class", "x axis") 
    47.    .attr("transform", "translate(0," + height + ")") 
    48.    .call(xAxis); 
    49.   
    50. svg.append("text")                // text label for the x axis 
    51.    .attr("x", 265 ) 
    52.    .attr("y", 238 ) 
    53.    .style("text-anchor", "middle") 
    54.    .text("日期"); 
    55.   
    56. svg.append("g")          // Add the Y Axis 
    57.    .attr("class", "y axis") 
    58.    .call(yAxis); 
    59.   
    60. svg.append("text") 
    61.    .attr("transform", "rotate(-90)") 
    62.    .attr("y",0 - margin.left) 
    63.    .attr("x",0 - (height / 2)) 
    64.    .attr("dy", "1em") 
    65.    .style("text-anchor", "middle") 
    66.    .text("SSH爆破次數(shù)"); 
    67.                          });

    以上就是一個頁面的代碼。訪問頁面看看d3.js的數(shù)據(jù)可視化效果吧。。。

    效果如何?d3還是不錯的吧?還有很多更cool的效果。。。Keep trying。。


    文章標題:【強悍】d3.js讓ssh暴破次數(shù)可視化
    當前URL:http://www.5511xx.com/article/djipojo.html