ELK采集之nginx 之高德地图出城市IP分布图

合集下载

高德地图经纬度查询定位怎么查

高德地图经纬度查询定位怎么查

高德地图经纬度查询定位怎么查高德地图是一款广受欢迎的地图应用程序,提供了丰富的地图信息和定位服务。

如果您想查询特定位置的经纬度信息或查找一组经纬度对应的位置,高德地图提供了简便的方法来实现这些功能。

以下是使用高德地图进行经纬度查询和定位的步骤:1. 访问高德地图官方网站首先,在您的浏览器中打开高德地图官方网站。

您可以通过输入“高德地图官方网站”进行搜索,然后选择官方网站链接进行访问。

2. 进入地图界面一旦您进入高德地图官方网站,您将看到一个大的地图界面。

这是您开始进行经纬度查询和定位的起点。

3. 输入经纬度查询在地图界面的顶部工具栏上,您会看到一个搜索框。

在搜索框中,您可以输入经纬度信息来查询对应的位置。

输入的格式通常是“纬度, 经度”或“经度, 纬度”。

输入完毕后,按下“Enter”键或点击搜索按钮执行查询。

4. 查看查询结果高德地图将根据您的输入显示查询结果。

查询结果通常会在地图上以一个图标或标记的形式显示,并附带一些相关信息。

您可以点击标记或查看信息窗口来获取详细的位置信息。

5. 使用经纬度进行定位如果您已经拥有一组经纬度,您也可以使用它们在高德地图中进行定位。

只需将经纬度输入到搜索框中,并按下“Enter”键或点击搜索按钮,高德地图将定位到相应的位置。

6. 切换地图视图高德地图提供了多种地图视图,包括街道地图、卫星地图和混合地图。

您可以在地图界面的右上角找到一个按钮,用于切换地图视图。

点击该按钮,选择您想要查看的地图视图。

7. 获取更多位置信息除了经纬度之外,高德地图还提供了其他有用的位置信息。

您可以在查询结果或标记的信息窗口中找到这些信息。

它们可能包括地址、周边兴趣点、交通状况等。

通过查看这些信息,您可以更加全面地了解您所查询的位置。

8. 导航与路线规划如果您计划从当前位置到查询结果的位置,高德地图还提供导航和路线规划功能。

在信息窗口或查询结果的下方,您可能会看到一个导航或路线规划的按钮。

高精度差分在高德地图上的多点实时定位

高精度差分在高德地图上的多点实时定位

高精度差分在高德地图上的多点实时定位作者:李庭威王峰汪进夏佩邱文添龙保任李学易来源:《电脑知识与技术》2017年第23期摘要:为了将高精度差分位置信息显示在高德地图上,通过搭建基于Python的服务器读取rtklib传来的位置信息,提取出经纬度并传给浏览器。

通过编写基于JavaScfipt的HTML文件,调用高德地图API,利用AJAX技术,在地图上实时更新测量点的位置。

实验结果实现了多点高精度差分定位的可视化。

关键词:rtklib;Python服务器;高德地图;JavaScript;实时定位1背景GPS(Global Positioning svstem)全球定位系统现在已经广泛应用于各行各业,可以提供覆盖全球的导航以及定位服务。

高精度的GPS测量必须要采用载波相位观测值。

RTK定位技术基于载波相位观测值,能够实时地提供测量点的三维定位坐标,而且可以精确到厘米级。

本项目用到的RTKLIB是日本东京海洋大学(Tokyo University of Marine Science and Technology)开发的开源程序包,供标准的GNSS全球导航系统使用。

高德地图是高德软件开发的一款免费在线导航产品,被广泛应用于智能手机和电脑上。

由于RTKLIB一次只能输出一个信号,所以本项目通过打开多个RT—KLIB窗口并设置不同的输出端口,传给基于Python 开发的多线程后台。

为了能在智能手机和电脑上都能实时显示定位点的位置,本项目开发了适用于多平台多终端的前端页面,并利用AJAX(Asynchronous Javascript And XML,异步的Javascript与XML技术),使得不用刷新页面也能在浏览器页面的高德地图中实时更新位置。

2高德地图多点实时定位的实现2.1搭建基于Python的服务器Python是一种面向对象、直译式的电脑程序语言。

它包含了一组功能完备的标准库,能够轻松完成很多常见的任务。

使用高德地图,利用搜索功能,获取地址详情、经纬度等信息

使用高德地图,利用搜索功能,获取地址详情、经纬度等信息

使⽤⾼德地图,利⽤搜索功能,获取地址详情、经纬度等信息效果展⽰需求:1、实现⾼德地图输⼊地址⾃动提⽰功能 ,根据筛选结果,默认显⽰第⼀个结果2、实现单击获取某个地点的经纬度和地址信息3、实现筛选地址标注点4、实现地图回显,再次打开地图定位到之前选中的地址展⽰详情5、封装地图组件可在项⽬中任意地⽅使⽤注意点:⾸先项⽬中需要引⽤⾼德地图,并且我同步引⽤了⾼德的PlaceSearch、AdvancedInfoWindow、Autocomplete这⼏个插件,⾼德提供同步引⽤和异步引⽤,异步引⽤的话,需要你⾃⼰去⾼德的⽂档看看<script src="https:///maps?v=1.4.15&key=换成你⾃⼰的key&plugin=AMap.PlaceSearch,AMap.AdvancedInfoWindow,AMap.Autocomplete"></script>⾸先发⼀份可直接打开看的vue⽂件<template><basic-container><el-button @click="openMap">打开地图选择</el-button><el-dialogtitle="地图选择":visible.sync="mapDialog"width="80%":close-on-click-modal="false":before-close="cancelMap"top="10vh"><div class="over-hide"><div id="myPageTop"><table><tr><td></td></tr><tr><td><el-inputplaceholder="请输⼊关键字进⾏查询"v-model="inputAddress"id="tipinput"@clear="inputHandle"@input="clickCancle"clearable></el-input></td></tr></table></div><div id="container" class="map"></div><br /><br /></div><span slot="footer" class="dialog-footer"><div class="t-a-l"><el-row class="infoAddressIpt"><el-col :span="2"><span>详细地址</span></el-col><el-col :span="22"><el-input v-model="saveAddress"></el-input></el-col></el-row><span class="spb">重要提醒:地址标准格式**市**区**路**号。

如何通过来访者IP定位google地图

如何通过来访者IP定位google地图

如何通过来访者IP定位google地图随着国内各大品牌门户网站纷纷推出地图服务,如搜狗地图,百度地图、网易地图等,地图的应用变得越来越广泛,同时,很多网站管理员都将地图服务加入到自己的网站中,增添不少特色,当然,也给使用的人提供了很多方便。

最近本人一时兴起,利用google map api实现了通过来访者的IP定位google地图,同时提供对IP、域名归属地查询服务。

国内也有比较多提供地图服务的API,例如:51ditu,mapbar等,选择google map api的原因是其应用的广泛性,而且其最新版本提供了更多更好的功能,不过还处于测试阶段。

有兴趣的朋友可以上网搜索一下其相关资料。

下面我将如何实现IP定位功能和大家交流一下。

要想使用google map api,首先得获取Google地图API的密钥,获取网址为:/intl/zh-CN/apis/maps/signup.html,这一过程中,如果没有google帐户的话,还得注册用户。

获取到密钥之后接着下来利用它实现最简单的hello world网页,google提供了很多示例,大家可以访问这个网址:/intl/zh-CN/apis/maps/documentation/examples/in dex.html查看其示例,想看怎么实现,只要查看相应页面的源代码就可以了。

经过简单的一些复制,粘贴操作,马上就可以在你的网页上增加地图了,呵呵,是不是很简单呢!拥有自己的地图后我们马上实现通过IP定位google地图。

实现这个功能之前,我们得先准备些IP数据,假如你没有这些数据怎么办?没关系,我们可以享受免费大餐,国外著名的maxmind公司提供免费的IP地址库和相应的JAVA实现接口程序,大家可以通过链接/app/java进行下载,其免费数据准确率大概是70-80%,如果你想要更准确的数据,可以购买其收费数据,可以准确到90%以上,此外,我们还可以下载到国内著名的IP纯真数据库,准确率比maxmind的数据高多了,而且还是不断更新的,不过只限于国内的IP而言。

使用高德地图JS获取当前位置和经纬度

使用高德地图JS获取当前位置和经纬度

使⽤⾼德地图JS获取当前位置和经纬度先看效果,我做的是这样的,可以按地图位置来返回当前你点的位置(图⼀,⼆),也可以根据输⼊框的⾃动搜索(图三,四)HTML的代码:<div><input type="text" id="keyword" name="keyword" value="" onkeydown='keydown(event)'/><div id="result1" name="result1"></div><div>X:<input type="text" id="lngX" name="lngX" value=""/><br>Y:<input type="text" id="latY" name="latY" value=""/></div></div><div><a id='open'>地图定位</a></div>JS代码:<script type="text/javascript" src="/maps?v=1.3&key=您的Key值"></script><script>var windowsArr = [];document.getElementById('open').onclick = function() {if (document.getElementById('mapContainer').style.display == 'none') {document.getElementById('mapContainer').style.display = 'block';} else {document.getElementById('mapContainer').style.display = 'none';}}var mapObj = new AMap.Map("mapContainer", {resizeEnable: true,view: new AMap.View2D({resizeEnable: true,zoom:13//地图显⽰的缩放级别}),keyboardEnable:false});var marker = new AMap.Marker({map:mapObj,bubble:true})var clickEventListener=AMap.event.addListener(mapObj,'click',function(e){document.getElementById("lngX").value=e.lnglat.getLng();document.getElementById("latY").value=e.lnglat.getLat();AMap.plugin('AMap.Geocoder',function() {var geocoder = new AMap.Geocoder({city: "010"//城市,默认:“全国”});geocoder.getAddress(e.lnglat,function(status,result){if(status=='complete'){// marker.setPosition(e.lnglat);document.getElementById("keyword").value = result.regeocode.formattedAddressdocument.getElementById("result1").innerHTML = ''}else{document.getElementById("result1").innerHTML = '⽆法获取地址'}})})});document.getElementById("keyword").onkeyup = keydown;//输⼊提⽰function autoSearch() {var keywords = document.getElementById("keyword").value;var auto;//加载输⼊提⽰插件AMap.service(["AMap.Autocomplete"], function() {var autoOptions = {city: "" //城市,默认全国};auto = new AMap.Autocomplete(autoOptions);//查询成功时返回查询结果if ( keywords.length > 0) {auto.search(keywords, function(status, result){autocomplete_CallBack(result);});}else {document.getElementById("result1").style.display = "none";}});}//输出输⼊提⽰结果的回调函数function autocomplete_CallBack(data) {var resultStr = "";var tipArr = data.tips;if (tipArr&&tipArr.length>0) {for (var i = 0; i < tipArr.length; i++) {resultStr += "<div id='divid" + (i + 1) + "' onmouseover='openMarkerTipById(" + (i + 1)+ ",this)' onclick='selectResult(" + i + ")' onmouseout='onmouseout_MarkerStyle(" + (i + 1)+ ",this)' style=\"font-size: 13px;cursor:pointer;padding:5px 5px 5px 5px;\"" + "data=" + tipArr[i].adcode + ">" + tipArr[i].name + "<span style='color:#C1C1C1;'>"+ tipArr[i].district + "</span></div>"; }}else {resultStr = " π__π亲,⼈家找不到结果!<br />要不试试:<br />1.请确保所有字词拼写正确<br />2.尝试不同的关键字<br />3.尝试更宽泛的关键字";}document.getElementById("result1").curSelect = -1;document.getElementById("result1").tipArr = tipArr;document.getElementById("result1").innerHTML = resultStr;document.getElementById("result1").style.display = "block";}//输⼊提⽰框⿏标滑过时的样式function openMarkerTipById(pointid, thiss) { //根据id打开搜索结果点tipthiss.style.background = '#CAE1FF';}//输⼊提⽰框⿏标移出时的样式function onmouseout_MarkerStyle(pointid, thiss) { //⿏标移开后点样式恢复thiss.style.background = "";}//从输⼊提⽰框中选择关键字并查询function selectResult(index) {if(index<0){}if (erAgent.indexOf("MSIE") > 0) {document.getElementById("keyword").onpropertychange = null;document.getElementById("keyword").onfocus = focus_callback;}//截取输⼊提⽰的关键字部分var text = document.getElementById("divid" + (index + 1)).innerHTML.replace(/<[^>].*?>.*<\/[^>].*?>/g,"");var cityCode = document.getElementById("divid" + (index + 1)).getAttribute('data');document.getElementById("keyword").value = text;document.getElementById("result1").style.display = "none";//根据选择的输⼊提⽰关键字查询mapObj.plugin(["AMap.PlaceSearch"], function() {var msearch = new AMap.PlaceSearch(); //构造地点查询类AMap.event.addListener(msearch, "complete", placeSearch_CallBack); //查询成功时的回调函数msearch.setCity(cityCode);msearch.search(text); //关键字查询查询});}//定位选择输⼊提⽰关键字function focus_callback() {if (erAgent.indexOf("MSIE") > 0) {document.getElementById("keyword").onpropertychange = autoSearch;}}//输出关键字查询结果的回调函数function placeSearch_CallBack(data) {//清空地图上的InfoWindow和MarkerwindowsArr = [];marker = [];mapObj.clearMap();var resultStr1 = "";var poiArr = data.poiList.pois;var resultCount = poiArr.length;for (var i = 0; i < resultCount; i++) {resultStr1 += "<div id='divid" + (i + 1) + "' onmouseover='openMarkerTipById1(" + i + ",this)' onmouseout='onmouseout_MarkerStyle(" + (i + 1) + ",this)' style=\"font-size: 12px;cursor:pointer;padding:0px 0 4px 2px; border-bottom:1px s resultStr1 += TipContents(poiArr[i].type, poiArr[i].address, poiArr[i].tel) + "</td></tr></table></div>";addmarker(i, poiArr[i]);}mapObj.setFitView();}//⿏标滑过查询结果改变背景样式,根据id打开信息窗体function openMarkerTipById1(pointid, thiss) {thiss.style.background = '#CAE1FF';windowsArr[pointid].open(mapObj, marker[pointid]);}//添加查询结果的marker&infowindowfunction addmarker(i, d) {var lngX = d.location.getLng();var latY = d.location.getLat();var markerOption = {map:mapObj,icon:"/images/" + (i + 1) + ".png",position:new AMap.LngLat(lngX, latY)};var mar = new AMap.Marker(markerOption);marker.push(new AMap.LngLat(lngX, latY));var infoWindow = new Window({content:"<h3><font color=\"#00a6ac\"> " + (i + 1) + ". " + + "</font></h3>" + TipContents(d.type, d.address, d.tel),size:new AMap.Size(300, 0),autoMove:true,offset:new AMap.Pixel(0,-30)});windowsArr.push(infoWindow);var aa = function (e) {var nowPosition = mar.getPosition(),lng_str = nowPosition.lng,lat_str = t;infoWindow.open(mapObj, nowPosition);document.getElementById("lngX").value = lng_str;document.getElementById("latY").value = lat_str;};AMap.event.addListener(mar, "mouseover", aa);}//infowindow显⽰内容function TipContents(type, address, tel) { //窗体内容if (type == "" || type == "undefined" || type == null || type == " undefined" || typeof type == "undefined") {type = "暂⽆";}if (address == "" || address == "undefined" || address == null || address == " undefined" || typeof address == "undefined") {address = "暂⽆";}if (tel == "" || tel == "undefined" || tel == null || tel == " undefined" || typeof address == "tel") {tel = "暂⽆";}var str = " 地址:" + address + "<br /> 电话:" + tel + " <br /> 类型:" + type;return str;}function keydown(event){var key = (event||window.event).keyCode;var result = document.getElementById("result1")var cur = result.curSelect;if(key===40){if(cur + 1 < result.childNodes.length){if(result.childNodes[cur]){result.childNodes[cur].style.background='';}result.curSelect=cur+1;result.childNodes[cur+1].style.background='#CAE1FF';document.getElementById("keyword").value = result.tipArr[cur+1].name;}}else if(key===38){if(cur-1>=0){if(result.childNodes[cur]){result.childNodes[cur].style.background='';}result.curSelect=cur-1;result.childNodes[cur-1].style.background='#CAE1FF';document.getElementById("keyword").value = result.tipArr[cur-1].name;}}else if(key === 13){var res = document.getElementById("result1");if(res && res['curSelect'] !== -1){selectResult(document.getElementById("result1").curSelect);}}else{autoSearch();}}基本就是这样了。

ELK接收paloalto防火墙威胁日志并定位城市展示

ELK接收paloalto防火墙威胁日志并定位城市展示

ELK接收paloalto防⽕墙威胁⽇志并定位城市展⽰ELK接收paloalto防⽕墙威胁⽇志并定位城市展⽰⼀、准备环境:搭建好的ELK环境palo alto防⽕墙(企业⽤的)⼆、安装logstash并做好过滤将palo alto⽇志打到⼀台centos的rsyslog上并⽤logstash监听514端⼝这⾥⽤到了logstash的两个模块grok(分词)还有http(请求第三⽅api)百度地图的api⾃⾏到官⽹申请https:///apiconsole/key#/home配置如下:input{syslog{type => "syslog"port => 514}}filter {grok {match => ["message", "%{DATA:Domain}\,%{DATA:Receive-Time}\,%{DATA:Serial}\,%{DATA:Type}\,%{DATA:Threat-Type}\,%{DATA:Conf ig-Version}\,%{DATA:Generate-Time}\,%{IP:Source-address}\,%{IP:Destination-address}\,%{DATA:NAT-Source-IP}\,%{DATA:NAT-Destination -IP}\,%{DATA:Rule}\,%{DATA:Source-User}\,%{DATA:Destination-User}\,%{DATA:Application}\,%{DATA:Virtual-System}\,%{DATA:Source-Zone }\,%{DATA:Destination-Zone}\,%{DATA:Inbound-Interface}\,%{DATA:Outbound-Interface}\,%{DATA:Log-Action}\,%{DATA:Time-Logged}\,%{DAT A:Session-ID}\,%{DATA:Repeat-Count}\,%{DATA:Source-Port}\,%{DATA:Destination-Port}\,%{DATA:NAT-Source-Port}\,%{DATA:NAT-Destinatio n-Port}\,%{DATA:Flags}\,%{DATA:IP-Protocol}\,%{DATA:Action}\,%{DATA:URL}\,%{DATA:Threat-Content-Name}\,%{DATA:Category}\,%{DATA:Se verity}\,%{DATA:Direction}\,%{DATA:Sequence-Number}\,%{DATA:Action-Flags}\,%{DATA:Source-Country}\,%{DATA:Destination-Country}\,%{ DATA:cpadding}\,%{DATA:contenttype}\,%{DATA:pcap_id}\,%{DATA:filedigest}\,%{DATA:cloud}\,%{DATA:url_idx}\,%{DATA:user_agent}\,%{DA TA:filetype}\,%{DATA:xff}\,%{DATA:referer}\,%{DATA:sender}\,%{DATA:subject}\,%{DATA:recipient}\,%{DATA:reportid}\,%{DATA:dg_hier_l evel_1}\,%{DATA:dg_hier_level_2}\,%{DATA:dg_hier_level_3}\,%{DATA:dg_hier_level_4}\,%{DATA:Virtual-System-Name}\,%{DATA:Device-Nam e}\,%{DATA:file_url}"] }http {body_format => "json"follow_redirects => falseurl => "/location/ip?ak=我的AK&ip=%{Source-address}&coor=bd09ll"verb => "GET"headers => [ "Content-Type", "application/json" ]target_body => "address"}}output {elasticsearch {hosts => "xxxx:9200"user => "elastic"password => "passwd"index => "pa-threat-%{+yyyy.MM.dd}"}}三、运⾏这⾥建议⾃⼰选择合适的守护进程使⽤systemctl start logstash可能会有问题,推荐supervisor守护进程这边是我测试的使⽤nohup运⾏的,运⾏时⼀定要-f带上指定配置⽂件nohup /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/pa.conf >> /root/logstash-logs/logs 2>&1 &四、结果⽇志⾥就有请求的地址信息了,后⾯就可以⾃⼰做图表了五、注意点更改logstash配置后fields会出现未知fields 根据下⾯步骤更新fields即可!。

高德地图api之location定位

高德地图api之location定位

⾼德地图api之location定位关于定位,分为GPS定位和⽹络定位。

本⽂将详细描述的浏览器定位,属于⽹络定位。

这是⼀种通过使⽤⾼德JS-API来实现位置定位、城市定位的⽅法,包含了IP定位,检索等多种⽹络定位⽅式。

如果您的⼿机⽀持GPS功能,能够⾃动获取GPS信息,定位将更加准确。

浏览器定位浏览器定位插件,封装了标准的HTML5定位,并含纠正模块,同时该定位⽅式仅适⽤于⽀持HTML5的浏览器上,如Internet Explorer 9、Firefox、Chrome、Safari 以及 Opera等。

代码如下:/*** Created by ly-wangweiq on 2015/7/29.* * support mobile*///⽤户位置定位使⽤geolocation定位var mMap=function(){function rad(d){return d*Math.PI/180.0;}this.map={},this.geolocation={},this.k=0,//加载地图,调⽤浏览器定位服务this.initMap=function(mapContainer,completFunc){if(typeof(AMap)=="object"){this.map = new AMap.Map(mapContainer, {resizeEnable: true});this.map.plugin('AMap.Geolocation', function () {this.geolocation = new AMap.Geolocation({enableHighAccuracy: true,//是否使⽤⾼精度定位,默认:truetimeout: 10000, //超过10秒后停⽌定位,默认:⽆穷⼤maximumAge: 0, //定位结果缓存0毫秒,默认:0convert: true, //⾃动偏移坐标,偏移后的坐标为⾼德坐标,默认:trueshowButton: true, //显⽰定位按钮,默认:truebuttonPosition: 'LB', //定位按钮停靠位置,默认:'LB',左下⾓buttonOffset: new AMap.Pixel(10, 20),//定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20)showMarker: true, //定位成功后在定位到的位置显⽰点标记,默认:trueshowCircle: true, //定位成功后⽤圆圈表⽰定位精度范围,默认:truepanToLocation: true, //定位成功后将定位到的位置作为地图中⼼点,默认:truezoomToAccuracy:true //定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false});this.map.addControl(this.geolocation);AMap.event.addListener(this.geolocation, 'complete', onComplete);//返回定位信息AMap.event.addListener(this.geolocation, 'error', onError); //返回定位出错信息});function onComplete(data){console.log(completFunc)console.log(data)if(completFunc){completFunc(data);}}function onError(){var str = '定位失败,';str += '错误信息:'switch() {case 'PERMISSION_DENIED':str += '浏览器阻⽌了定位操作';break;case 'POSITION_UNAVAILBLE':str += '⽆法获得当前位置';break;case 'TIMEOUT':str += '定位超时';break;default:str += '未知错误';break;}alert(str)}}},this.getCurrentPosition=function(callback){if(typeof(this.geolocation.getCurrentPosition)!='undefined'){this.geolocation.getCurrentPosition();}else{setTimeout(function(){//将获得的经纬度信息,放⼊sessionStorgethis.getSessionLocation(callback)},200)}},this.distance = function(obj1,obj2){//return:mvar lng=new AMap.LngLat(obj1.lng, t);var lag=new AMap.LngLat(obj2.lng, t);var ss=lng.distance(lag);return ss;},this.getSessionLocation=function(callback){if(sessionStorage.getItem('location')){callback();}else{this.initMap('',function(data){sessionStorage.setItem("location",JSON.stringify(data))callback();});this.getCurrentPosition(callback);}},/**两点之间的距离*(t1)地址⼀的经纬度*(t2)地址⼀的经纬度*单位⽶*/this.serverDistance = function(obj1,obj2){//return:mvar radLat1 = rad(t);var radLat2 = rad(t);var a = radLat1 - radLat2;var b = rad(obj1.lng)- rad(obj2.lng);var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) + Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2)));s = s *6378137;s = Math.round(s * 10000)/10000 ;return s;}return this;}();这⾥将定位获取的信息存⼊sessionStorge中,这样只需要⾸次访问时,需要定位,之后都可以从sessionStorge中得到,⼤⼤提⾼了速度。

高德地图数据采集方法

高德地图数据采集方法

高德地图数据采集方法本文介绍使用八爪鱼采集高德地图数据(以美食地址为例)的方法。

采集网站:/采集的内容包括:店铺名,分类,地址,联系号码使用功能点:●创建循环翻页●分页列表信息采集●Ajax设置步骤1:创建高德地图数据采集任务1)进入主界面,选择“自定义采集2)将要采集的网站URL复制粘贴到输入框中,点击“保存网址”步骤2:文本输入1)鼠标移动到地址选择框,在右面的提示框中选择“点击该元素”然后鼠标选中输入框,在提示框中选择“输入文字”3)在弹出的输入框中输入要采集的城市,这里以新乡为例,然后点击确定。

鼠标点击新乡,并在输入框中选择“点击该元素”步骤3:创建翻页循环1)移动鼠标,在右面拖入一个循环框,如下图所示鼠标点击输入框,在右面提示框中选择“输入文字”,然后选择确定把输入文字的步骤拖入规则流程,在高级选项中选择执行前等待“2秒”,选择文本列表,并在列表中输入需要采集的品类,这里以菜系为例,如下图可输入“火锅”等。

鼠标选中输入文本步骤,高级选项中勾选使用当前循环里的文本来填充输入框2)鼠标点中搜索框,接着选择“循环点击每个元素”。

3)进入火锅店列表页后,鼠标移动到最后并选中翻页按钮,在右面的提示框中选择”循环点击的单个元素“3)之后选中火锅店的第一条链接,系统自动识别出其他的元素后,在右面的提示框中选择“选中全部”,以创建循环翻页。

再选择“循环点击单个元素”步骤4:高德地图数据提取详细信息1)进入列表详情页以后,选中店名,然后在右面的提示框中选择“采集该元素文本”,同样操作,可以把地址、分类等信息采集下来。

2)然后鼠标点中字段旁边的编辑标识,可以对提取字段的自定义命名,点中旁边的删除标识可以删除不需要的字段。

鼠标选中返回,然后选择“点击该元素”步骤5:Ajax设置由于此网页涉及Ajax技术,我们需要进行一些高级选项的设置。

选中“点击元素”步骤,打开“高级选项”,勾选“Ajax加载数据”,设置时间为“2秒”。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2、 为了方便咱们定义一个 nginx 的的 patten 文件,放在默认目录下: [root@controller logstash-5.0.0]# cd vendor/bundle/jruby/1.9/gems/logstash-patt erns-core-4.0.2/patterns
NGUSERNAME [a-zA-Z\.\@\-\+_%]+ NGUSER %{NGUSERNAME} NGINXACCESS %{IPORHOST:clientip} - %{NGUSER:remote_user} \[%{HTTPDATE:timestam p}\] \"(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})?|%{DA TA:rawrequest})\" %{NUMBER:response} (?:%{NUMBER:bytes}|-) %{QS:referrer} %{QS: agent} %{NOTSPACE:http_x_forwarded_for}
"bytes" => "571", "clientip" => "123.67.69.249", "@version" => "1",
"host" => "controller", "http_x_forwarded_for" => "\"-\"",
"httpversion" => "1.1",
"timestamp" => "04/Jan/2017:14:21:54 +0800" }
"timezone" => "Asia/Shanghai", "ip" => "123.67.69.249",
"latitude" => 39.9289, "coordinates" => [ [0] 116.3883, [1] 39.9289 ], "continent_code" => "AS",
Indexer 配置: [root@mail etc]# cat logstash_nginx.conf input {
redis { host => "192.168.10.100" port => 6379 data_type => "list" key => "nginx"
} }
filter { grok { match => {"message" => "%{IPORHOST:clientip} \[%{HTTPDATE:timestam
} } output { if [type] == "nginx_access"{
redis { host => ["192.168.10.100:6379"] data_type =>"list" key => "nginx" }
} } ##说明:这里的 agent 只是做日志发送,对性能影响不大,读取 access.log 日志文件,并且 发送到远端 redis。
Agent 配置home/luohui/logstash-5.0.0/etc/logstashnginx.conf input {
file { path => ["/home/data/logs/access.log"] type => "nginx_access"
[0] 116.3883, [1] 39.9289 ], "postal_code" => nil,
"longitude" => 116.3883, "region_code" => "11" },
"verb" => "GET", "message" => "123.67.69.249 - - [04/Jan/2017:14:21:54 +0800] \ "GET /favicon.ico HTTP/1.1\" 404 571 \"-\" \"Mozilla/5.0 (Windows NT 6.1; WOW6 4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36\" \"-\"", "remote_user" => "-", "referrer" => "\"-\"", "@timestamp" => 2017-01-04T06:21:54.000Z, "response" => "404",
说明:由于可能我线上环境跟大家的日志生成格式不一样,这里主要列举大概配置,后续添 加统一配置:
log_format backend '$http_x_forwarded_for [$time_local] ' '"$host" "$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"'
####测试返回的结果: {
"request" => "/favicon.ico", "agent" => "\"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKi
t/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36\"", "geoip" => {
4、 假如说我 nginx 日志在加上一个 nginx 响应时间呢?修改格式加上”request_time”: 4.1:修改日志结构生成数据:
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for" $request_time
} } date { match => [ "timestamp" , "dd/MMM/YYYY:HH:mm:ss Z" ] } geoip { source => "clientip" target => "geoip" database => "/test/logstash-5.0.0/GeoLite2-City.mmdb" add_field => [ "[geoip][coordinates]", "%{[geoip][longitude]}" ] add_field => [ "[geoip][coordinates]", "%{[geoip][latitude]}" ] } mutate {
3、 先用 input 和 output 插件测试: [root@controller etc]# cat nginx.conf input{
stdin{} }
filter { grok { match => { "message" => "%{NGINXACCESS}" } } date { match => [ "timestamp" , "dd/MMM/YYYY:HH:mm:ss Z" ] } geoip { source => "clientip" target => "geoip" database => "/test/logstash-5.0.0/GeoLite2-City.mmdb" add_field => [ "[geoip][coordinates]", "%{[geoip][longitude]}" ] add_field => [ "[geoip][coordinates]", "%{[geoip][latitude]}" ] } mutate { convert => [ "[geoip][coordinates]", "float"] }
convert => [ "[geoip][coordinates]", "float"] }
} output {
elasticsearch { action => "index" hosts =>"192.168.10.100:9200" index => "logstash-nginx-%{+yyyy.MM.dd}" } }
相关文档
最新文档