网站全国IP访问大屏幕显示

简介:

wKioL1Ve6rbArH1LAAPhCQK3s3g838.jpg

   接触Python有一段时间了,经常用来做一些好玩的事,前几天跟领导聊天说到,要是能够实现全国各地访问流量的显示,那就最好了,刚好要申请一些大屏幕来,所以就想到了做这个。确实稍微大点的公司都有这类东西,确实很酷炫了,自己也搞一个这样的。下面说一下实现过程:


1、首先是数据:采集的话我选择的是读取nginx日志。可以提供的思路是,我们选择同一收集的方式,收集到大数据分析机器(同意收集的工具还是很多的,比如rsyslog),然后通过正则或者一类东西筛选出我们需要的IP(当然日志肯定是按天切割的):

2、收集到的数据,通过调用公网的IP查询接口进行筛选,筛选,找出对应的城市、入库

3、最后就是前端展示了,这里我选用的是百度的echarts,百度已经提供了比较完善的API和说明文档,自己去阅读就好。


给一下前端的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
<!DOCTYPE html>
<head>
     <meta charset = "utf-8" >
     <title>ECharts< / title>
< / head>
<body>
     <! - -  为ECharts准备一个具备大小(宽高)的Dom  - - >
     <div  id = "main"  style = "height:800px"  >< / div>
     <! - -  ECharts单文件引入  - - >
     <script src = "http://echarts.baidu.com/build/dist/echarts.js" >< / script>
     <script  type = "text/javascript" >
         / /  路径配置
         require.config({
             paths: {
                 echarts:  'http://echarts.baidu.com/build/dist'
             }
         });
         
         / /  使用
         require(
             [
                 'echarts' ,
                 'echarts/chart/map' 
             ],
             function (ec) {
                 / /  基于准备好的dom,初始化echarts图表
                 var myChart  =  ec.init(document.getElementById( 'main' )); 
                 
                 var option  =  {
     backgroundColor:  '#1b1b1b' ,
     color: [ 'gold' , 'aqua' , 'lime' ],
     title : {
         text:  '众划算' ,
         subtext: '全国各地访问数据' ,
         x: 'center' ,
         textStyle : {
             color:  '#fff'
         }
     },
     tooltip : {
         trigger:  'item' ,
         formatter:  '{b}'
     },
     legend: {
         orient:  'vertical' ,
         x: 'left' ,
         data:[ '北京 Top10' ],
         selectedMode:  'single' ,
         selected:{
             '上海 Top10'  : false,
             '广州 Top10'  : false
         },
         textStyle : {
             color:  '#fff'
         }
     },
     toolbox: {
         show : true,
         orient :  'vertical' ,
         x:  'right' ,
         y:  'center' ,
         feature : {
             mark : {show: true},
             dataView : {show: true, readOnly: false},
             restore : {show: true},
             saveAsImage : {show: true}
         }
     },
     dataRange: {
         min  0 ,
         max  100 ,
         calculable : true,
         color: [ '#ff3333' 'orange' 'yellow' , 'lime' , 'aqua' ],
         textStyle:{
             color: '#fff'
         }
     },
     series : [
         {
             name:  '全国' ,
             type 'map' ,
             roam: true,
             hoverable: false,
             mapType:  'china' ,
             itemStyle:{
                 normal:{
                     borderColor: 'rgba(100,149,237,1)' ,
                     borderWidth: 0.5 ,
                     areaStyle:{
                         color:  '#1b1b1b'
                     }
                 }
             },
             data:[],
             markLine : {
                 smooth:true,
                 symbol: [ 'none' 'circle' ],  
                 symbolSize :  1 ,
                 itemStyle : {
                     normal: {
                         color: '#fff' ,
                         borderWidth: 1 ,
                         borderColor: 'rgba(30,144,255,0.5)'
                     }
                 },
                 data : [
                     [{name: '北京' },{name: '内蒙古' }],
                     [{name: '北京' },{name: '北海' }],
                     [{name: '北京' },{name: '广东' }],
                     [{name: '北京' },{name: '河南' }],
                     [{name: '北京' },{name: '吉林' }],
                     [{name: '北京' },{name: '长治' }],
                     [{name: '北京' },{name: '重庆' }],
                     [{name: '北京' },{name: '湖南' }], 
                     [{name: '北京' },{name: '常州' }],
                     [{name: '北京' },{name: '丹东' }],
                     [{name: '北京' },{name: '辽宁' }],
                     [{name: '北京' },{name: '东营' }],
                     [{name: '北京' },{name: '延安' }],
                     [{name: '北京' },{name: '福建' }],
                     [{name: '北京' },{name: '海口' }],
                     [{name: '北京' },{name: '呼和浩特' }],
                     [{name: '北京' },{name: '安徽' }],
                     [{name: '北京' },{name: '杭州' }],
                     [{name: '北京' },{name: '黑龙江' }],
                     [{name: '北京' },{name: '舟山' }],
                     [{name: '北京' },{name: '银川' }],
                     [{name: '北京' },{name: '衢州' }],
                     [{name: '北京' },{name: '江西' }],
                     [{name: '北京' },{name: '云南' }],
                     [{name: '北京' },{name: '贵州' }],
                     [{name: '北京' },{name: '甘肃' }],
                     [{name: '北京' },{name: '广西' }],
                     [{name: '北京' },{name: '拉萨' }],
                     [{name: '北京' },{name: '连云港' }],
                     [{name: '北京' },{name: '临沂' }],
                     [{name: '北京' },{name: '柳州' }],
                     [{name: '北京' },{name: '宁波' }],
                     [{name: '北京' },{name: '南京' }],
                     [{name: '北京' },{name: '南宁' }],
                     [{name: '北京' },{name: '江苏' }],
                     [{name: '北京' },{name: '上海' }],
                     [{name: '北京' },{name: '沈阳' }],
                     [{name: '北京' },{name: '陕西' }],
                     [{name: '北京' },{name: '汕头' }],
                     [{name: '北京' },{name: '深圳' }],
                     [{name: '北京' },{name: '青岛' }],
                     [{name: '北京' },{name: '山东' }],
                     [{name: '北京' },{name: '山西' }],
                     [{name: '北京' },{name: '乌鲁木齐' }],
                     [{name: '北京' },{name: '潍坊' }],
                     [{name: '北京' },{name: '威海' }],
                     [{name: '北京' },{name: '浙江' }], 
                     [{name: '北京' },{name: '无锡' }],
                     [{name: '北京' },{name: '厦门' }],
                     [{name: '北京' },{name: '西宁' }],
                     [{name: '北京' },{name: '徐州' }],
                     [{name: '北京' },{name: '烟台' }],
                     [{name: '北京' },{name: '盐城' }],
                     [{name: '北京' },{name: '珠海' }],
                     [{name: '北京' },{name: '香港' }],
                     [{name: '北京' },{name: '湖北' }],
         
                 ],
             },
             geoCoord: {
                 '上海' : [ 121.4648 , 31.2891 ],
                 '东莞' : [ 113.8953 , 22.901 ],
                 '东营' : [ 118.7073 , 37.5513 ],
                 '中山' : [ 113.4229 , 22.478 ],
                 '临汾' : [ 111.4783 , 36.1615 ],
                 '临沂' : [ 118.3118 , 35.2936 ],
                 '丹东' : [ 124.541 , 40.4242 ],
                 '丽水' : [ 119.5642 , 28.1854 ],
                 '乌鲁木齐' : [ 87.9236 , 43.5883 ],
                 '佛山' : [ 112.8955 , 23.1097 ],
                 '河北' : [ 115.0488 , 39.0948 ],
                 '甘肃' : [ 103.5901 , 36.3043 ],
                 '内蒙古' : [ 110.3467 , 41.4899 ],
                 '北京' : [ 116.4551 , 40.2539 ],
                 '北海' : [ 109.314 , 21.6211 ],
                 '南京' : [ 118.8062 , 31.9208 ],
                 '南宁' : [ 108.479 , 23.1152 ],
                 '广西' : [ 108.479 , 23.1154 ],
                 '江西' : [ 116.0046 , 28.6633 ],
                 '江苏' : [ 121.1023 , 32.1625 ],
                 '厦门' : [ 118.1689 , 24.6478 ],
                 '台州' : [ 121.1353 , 28.6688 ],
                 '安徽' : [ 117.29 , 32.0581 ],
                 '呼和浩特' : [ 111.4124 , 40.4901 ],
                 '咸阳' : [ 108.4131 , 34.8706 ],
                 '黑龙江' : [ 127.9688 , 45.368 ],
                 '唐山' : [ 118.4766 , 39.6826 ],
                 '嘉兴' : [ 120.9155 , 30.6354 ],
                 '大同' : [ 113.7854 , 39.8035 ],
                 '辽宁' : [ 122.2229 , 39.4409 ],
                 '天津' : [ 117.4219 , 39.4189 ],
                 '山西' : [ 112.3352 , 37.9413 ],
                 '威海' : [ 121.9482 , 37.1393 ],
                 '宁波' : [ 121.5967 , 29.6466 ],
                 '宝鸡' : [ 107.1826 , 34.3433 ],
                 '宿迁' : [ 118.5535 , 33.7775 ],
                 '常州' : [ 119.4543 , 31.5582 ],
                 '广东' : [ 113.5107 , 23.2196 ],
                 '香港' : [ 113.5107 , 31.3569 ],
                 '廊坊' : [ 116.521 , 39.0509 ],
                 '延安' : [ 109.1052 , 36.4252 ],
                 '张家口' : [ 115.1477 , 40.8527 ],
                 '徐州' : [ 117.5208 , 34.3268 ],
                 '德州' : [ 116.6858 , 37.2107 ],
                 '惠州' : [ 114.6204 , 23.1647 ],
                 '四川' : [ 103.9526 , 30.7617 ],
                 '扬州' : [ 119.4653 , 32.8162 ],
                 '承德' : [ 117.5757 , 41.4075 ],
                 '拉萨' : [ 91.1865 , 30.1465 ],
                 '无锡' : [ 120.3442 , 31.5527 ],
                 '日照' : [ 119.2786 , 35.5023 ],
                 '云南' : [ 102.9199 , 25.4663 ],
                 '杭州' : [ 119.5313 , 29.8773 ],
                 '枣庄' : [ 117.323 , 34.8926 ],
                 '柳州' : [ 109.3799 , 24.9774 ],
                 '株洲' : [ 113.5327 , 27.0319 ],
                 '湖北' : [ 114.3896 , 30.6628 ],
                 '汕头' : [ 117.1692 , 23.3405 ],
                 '江门' : [ 112.6318 , 22.1484 ],
                 '沈阳' : [ 123.1238 , 42.1216 ],
                 '沧州' : [ 116.8286 , 38.2104 ],
                 '河源' : [ 114.917 , 23.9722 ],
                 '泉州' : [ 118.3228 , 25.1147 ],
                 '泰安' : [ 117.0264 , 36.0516 ],
                 '泰州' : [ 120.0586 , 32.5525 ],
                 '山东' : [ 117.1582 , 36.8701 ],
                 '济宁' : [ 116.8286 , 35.3375 ],
                 '海口' : [ 110.3893 , 19.8516 ],
                 '淄博' : [ 118.0371 , 36.6064 ],
                 '淮安' : [ 118.927 , 33.4039 ],
                 '深圳' : [ 114.5435 , 22.5439 ],
                 '清远' : [ 112.9175 , 24.3292 ],
                 '浙江' : [ 120.498 , 27.8119 ],
                 '渭南' : [ 109.7864 , 35.0299 ],
                 '湖州' : [ 119.8608 , 30.7782 ],
                 '湘潭' : [ 112.5439 , 27.7075 ],
                 '滨州' : [ 117.8174 , 37.4963 ],
                 '潍坊' : [ 119.0918 , 36.524 ],
                 '烟台' : [ 120.7397 , 37.5128 ],
                 '玉溪' : [ 101.9312 , 23.8898 ],
                 '珠海' : [ 113.7305 , 22.1155 ],
                 '盐城' : [ 120.2234 , 33.5577 ],
                 '盘锦' : [ 121.9482 , 41.0449 ],
                 '石家庄' : [ 114.4995 , 38.1006 ],
                 '福建' : [ 119.4543 , 25.9222 ],
                 '秦皇岛' : [ 119.2126 , 40.0232 ],
                 '绍兴' : [ 120.564 , 29.7565 ],
                 '聊城' : [ 115.9167 , 36.4032 ],
                 '肇庆' : [ 112.1265 , 23.5822 ],
                 '舟山' : [ 122.2559 , 30.2234 ],
                 '苏州' : [ 120.6519 , 31.3989 ],
                 '莱芜' : [ 117.6526 , 36.2714 ],
                 '菏泽' : [ 115.6201 , 35.2057 ],
                 '营口' : [ 122.4316 , 40.4297 ],
                 '葫芦岛' : [ 120.1575 , 40.578 ],
                 '衡水' : [ 115.8838 , 37.7161 ],
                 '衢州' : [ 118.6853 , 28.8666 ],
                 '西宁' : [ 101.4038 , 36.8207 ],
                 '陕西' : [ 109.1162 , 34.2004 ],
                 '贵州' : [ 106.6992 , 26.7682 ],
                 '连云港' : [ 119.1248 , 34.552 ],
                 '邢台' : [ 114.8071 , 37.2821 ],
                 '邯郸' : [ 114.4775 , 36.535 ],
                 '河南' : [ 113.4668 , 34.6234 ],
                 '鄂尔多斯' : [ 108.9734 , 39.2487 ],
                 '重庆' : [ 107.7539 , 30.1904 ],
                 '金华' : [ 120.0037 , 29.1028 ],
                 '铜川' : [ 109.0393 , 35.1947 ],
                 '银川' : [ 106.3586 , 38.1775 ],
                 '镇江' : [ 119.4763 , 31.9702 ],
                 '吉林' : [ 125.8154 , 44.2584 ],
                 '湖南' : [ 113.0823 , 28.2568 ],
                 '长治' : [ 112.8625 , 36.4746 ],
                 '阳泉' : [ 113.4778 , 38.0951 ],
                 '青岛' : [ 120.4651 , 36.3373 ],
                 '韶关' : [ 113.7964 , 24.7028 ]
             }
         },
         {
             name:  '北京 Top10' ,
             type 'map' ,
             mapType:  'china' ,
             data:[],
             markLine : {
                 smooth:true,
                 effect : {
                     show: true,
                     scaleSize:  1 ,
                     period:  30 ,
                     color:  '#fff' ,
                     shadowBlur:  10
                 },
                 itemStyle : {
                     normal: {
                         borderWidth: 1 ,
                         lineStyle: {
                             type 'solid' ,
                             shadowBlur:  10
                         }
                     }
                 },
                 data : [
                         { % for  in  all_data % }
                     [{name: '北京' }, {name: '`x`.`city`' ,value:`x`.`num`}],
                         { % endfor %
                 ]
             },
             markPoint : {
                 symbol: 'emptyCircle' ,
                 symbolSize : function (v){
                     return  10  +  v / 10
                 },
                 effect : {
                     show: true,
                     shadowBlur :  0
                 },
                 itemStyle:{
                     normal:{
                         label:{show:false}
                     },
                     emphasis: {
                         label:{position: 'top' }
                     }
                 },
                 data : 
                          [  
                          { % for  in  all_data % }
                         {name: '`i`.`city`' ,value:`i`.`num`},
                          { % endfor % }
                         ]  
             }
         },
        
     ]
};
      
         
                 / /  为echarts对象加载数据 
                 myChart.setOption(option); 
             }
         );
     < / script>
< / body>

  后端的操作,其实也可以是用saltstack远程分析nginx脚本,性能不影响web服务器的话,直接远程入库就好。










本文转自 小罗ge11 51CTO博客,原文链接:http://blog.51cto.com/xiaoluoge/1653942,如需转载请自行联系原作者
目录
相关文章
|
9月前
|
定位技术 API
高德地图web服务API接口开发:获取IP定位显示当前位置的天气预报解决方案
高德地图web服务API接口开发:获取IP定位显示当前位置的天气预报解决方案
278 0
|
4月前
如何修改Google首页左下角国家/地区?
如何修改Google首页左下角国家/地区?
|
SQL Web App开发 开发框架
服务器上的网站被劫持收录跳转到灰色行业
3月份所有的企业都开始恢复正常运营,公司网站的运营者发现网站被攻击篡改跳转,在百度的收录出现了大量的与网站本身内容不相干的快照,都是一些菠菜或违规的内容,而运营者用的是单独服务器WIN2008系统在服务器里找了好久都没有发现被篡改的问题,而且公司对这个网站的声誉非常严谨,需要尽快恢复正常访问,这个运营者束手无策后,找到了我们SINE安全寻求服务,我们接手后立马安排安全技术对客户网站的整体情况以及百度收录的情况进行了排查,发现网站在春节期间被入侵篡改收录了大量的违规快照内容,而且服务器里还有其他的网站也同样被篡改,接下来我把处理过程简单总结一下
454 0
服务器上的网站被劫持收录跳转到灰色行业
|
SQL 安全 JavaScript
单位网站老是被劫持跳转到博彩网站怎么办
这几天我们Sine安全接到一个单位服务器里的三个网站都被劫持跳转问题的客户反映在百度搜索关键词后点击进入网站直接被跳转到菠菜网站,直接在浏览器里输入网址是正常打开的,由于客户单位网站的领导比较重视这个被恶意劫持跳转的问题特别要求加班要抓紧处理解决掉这个网站安全问题,因为实在是对该单位网站的信誉以及客户的信任度损害的比较大.
140 0
单位网站老是被劫持跳转到博彩网站怎么办
|
安全
网站被黑导致被西部数码关闭 提示有害信息未处理的解决方案
前段时间有一客户的网站打不开了,打开网站被提示什么:抱歉,主机因存在有害信息逾期未处理被关闭 Sorry, the site now can not be accessed. 客户第一时间找到我们SINE安全寻求解决方案,我们根据客户的反馈,进行详细的记录,分析问题,找到了被系统自动阻断拦截的原因,客户网站用的是西部数码主机,再一个主要的原因是,客户网站被篡改并上传了一些有害,违法的内容信息,导致被西部数码的有害信息监测处置系统监控到,立即进行了拦截,阻断处理。
2152 0
|
安全
如何让你的网站地址在发送到QQ朋友的时候显示绿色安全图标呢?
今天教大家如何申请网址过QQ绿色安全打勾认证!网址获得了QQ安全认证过后就是把网址发给QQ好友或者QQ群的时候,我们的网址前面会有一个绿色的打勾标志! 首先介绍一下加V标示和不加V标示的区别: 加V绿标域名展示:官方认证,可放心访问。
2249 0

热门文章

最新文章