【强悍】d3.js让ssh暴破次数可视化

本博文出自博客老徐_kevin博主,有任何问题请进入博主页面互动讨论!

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


一台做手机app应用的服务器在某云上,很好奇如果没有修改ssh端口的情况下,每天会被暴力破解多少次呢?带着这个疑问,查看一下/var/log/messages的日志,grep一下里面多少含有"Failed"的日志记录。。。

由于messages日志会有logrotate,所以:

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

分别得到从本月1号到7号的暴力破解次数,分别是:

 
 
 
 
  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万次,看来黑客每天都很忙碌。。。

虽然数据比较少,但是看起来比较枯燥,看不出趋势,让数据可视化,那就用d3.js吧,上代码。。。

d3的库文件直接从github上获得即可。

index.html

 
 
 
 
  1.  
  2.  
  3.      
  4.          
  5.          
  6.         SSH爆破次数 
  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后调试 
    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爆破次数"); 
    67.                          });

    以上就是一个页面的代码。访问页面看看d3.js的数据可视化效果吧。。。

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

    新闻标题:【强悍】d3.js让ssh暴破次数可视化
    转载来于:http://www.hantingmc.com/qtweb/news48/434148.html

    网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

    广告

    声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

    猜你还喜欢下面的内容

    网站排名知识

    分类信息网站