这次接到的需求是,可以根据用户的ip地址,实时展示在我们大中国的地图上。

被飞哥告知可以在EFK上实现,再经过一番调研,得出以下结论

  1. 目的效果图
  2. 在服务器上配置GEO插件。参考地址 github.com/y-ken/fluen…
# for RHEL/CentOS
$ sudo yum groupinstall "Development Tools"
$ sudo yum install geoip-devel --enablerepo=epel
# for td-agent2
$ sudo td-agent-gem install fluent-plugin-geoip
  1. 配置td-agent文件
<filter nginx.**>@type extract_query_paramskey            pathonly url_pathdiscard_key    trueadd_url_path   trueadd_field_prefix params.skip_adding_null_record true
</filter><filter nginx.**>
@type geoip     geoip_lookup_key remote     geoip_database /opt/td-agent/embedded/lib/ruby/gems/2.1.0/gems/fluent-plugin-geoip-1.2.0/data/GeoLiteCity.dat     geoip2_database /opt/td-agent/embedded/lib/ruby/gems/2.1.0/gems/fluent-plugin-geoip-1.2.0/data/GeoLite2-City.mmdb     <record>     city         ${city.names.zh-CN["remote"]}     country      ${country.iso_code["remote"]}     country_name ${country.names.zh-CN["remote"]}     location '[${location.longitude["remote"]},${location.latitude["remote"]}]'     </record>
</filter>

其中remote字段为解析出的ip地址。目前线上应该改为 http_x_forwarded_for字段。 注意,这里的filter必须分开写 最终输出location字段为解析出的经纬度。

  1. 配置elasticsearch 配置好以上需求后,直接打开Kibana的地图,会出现以下错误
No Compatible Fields: The "xxx" index pattern does not contain any of the following field types: geo_point

主要是因为,在Kibana中查看地图选项的数据源格式应该为geo-point。而现在生成的location数据为number类型,Kibana无法读取。

所以需要做以下配置。

  1. 首先,运行以下命令,查看mappings中的路径

可以看到mappings下的路径为fluentd。线上目前是_doc。 然后,执行以下代码,设置相应的模板,可以使后面生成的新的索引文件中,location的类型为geo-point。

PUT _template/logstash
{"template": "logstash-*","mappings": {"fluentd": {"properties" : {"location": { "type": "geo_point"}}}}
}

至此已经设置完所有配置。接下来主要说哪里有坑。 第一次配置td-agent的时候,需要把location的字段注销,保证没有在新的索引文件生成之前没有任何number类型的location写入,否则,location的geo-point类型不生效。 等到第二天,再把location的注销取消,然后刷新Kibana中的index pattern就可以看到正常数据了!

至此,打完收工

转载于:https://juejin.im/post/5bbf06796fb9a05cff323912

EFK 配置geo-ip落地实践相关推荐

  1. LXD教程入门实践 配置独立ip 挂载gpu显卡驱动 制作镜像

    机器环境 以Ubuntu 16.04.6 LTS系统为例 安装lxd3.0 方式一.apt安装方式lxd sudo apt install lxd ubuntu16系统使用apt方式安装的lxd是2. ...

  2. DEVOPS架构师 -- 02Kubernetes落地实践之旅

    文章目录 第二天 Kubernetes落地实践之旅 纯容器模式的问题 容器调度管理平台 架构图 核心组件 工作流程 架构设计的几点思考 实践--集群安装 k8s集群主流安装方式对比分析 核心组件 理解 ...

  3. Kubernetes 在宜信落地实践

    容器云的背景 伴随着微服务的架构的普及,结合开源的Dubbo和Spring Cloud等微服务框架,宜信内部很多业务线逐渐了从原来的单体架构逐渐转移到微服务架构.应用从有状态到无状态,具体来说将业务状 ...

  4. Dubbo Mesh 在闲鱼生产环境中的落地实践

    本文作者至简曾在 2018 QCon 上海站以<Service Mesh 的本质.价值和应用探索>为题做了一次分享,其中谈到了 Dubbo Mesh 的整体发展思路是"借力开源. ...

  5. 蚂蚁Service Mesh大规模落地实践与展望

    宋顺 读完需要 10 分钟 速读仅需 5 分钟 云原生的理念正如火如荼,然而真正大规模落地的公司依然屈指可数,蚂蚁作为国内比较早进行尝试的公司,经过了 2 年多的探索,沉淀出了一套切实可行的方案并最终 ...

  6. 服务网格在百度核心业务大规模落地实践

    [百度云原生导读]服务网格(Service Mesh)的概念自2017年初提出之后,受到了业界的广泛关注,作为微服务的下一代发展架构在社区迅速发酵,并且孵化出了诸如Istio等广受业界关注的面向于云原 ...

  7. 企业级云管理平台的架构实现与落地实践、趋势分析

    4月23日天云软件技术开放日已圆满落幕,接下来几天将陆续放出沙龙期间技术大牛们的干货分享现场实录及相关文件,敬请关注.此文为第一篇,由天云软件产品总监马俊带来的IaaS专题:企业级云管理平台的架构实现 ...

  8. Kubernetes在宜信落地实践

    一.容器云的背景 伴随着微服务的架构的普及,结合开源的Dubbo和Spring Cloud等微服务框架,宜信内部很多业务线逐渐了从原来的单体架构逐渐转移到微服务架构.应用从有状态到无状态,具体来说将业 ...

  9. vivo 云原生容器探索和落地实践

    作者:vivo 互联网容器团队- Pan Liangbiao 本文根据潘良彪老师在"2022 vivo开发者大会"现场演讲内容整理而成.公众号回复[2022 VDC]获取互联网技术 ...

最新文章

  1. Logistic Regression(逻辑回归) +python3.6(pycharm)实现
  2. 海淀温泉镇迎来大爆发!5G基站、产业转移示范基地、自动驾驶核心测试区.........
  3. 现代密码学3.3--伪随机生成器/PRG
  4. 1126 Eulerian Path (25 分)【难度: 一般 / 欧拉图的判定】
  5. 8个排序算法的稳定性总结
  6. php system 返回值127,php system 返回值 1
  7. 数据vs.算法,究竟谁更重要
  8. php图片中不显示文字内容,水印效果 只有图片,文字不显示
  9. Android系统(127)---Android6.0存储中加入总内存和系统内存项和在西语下把,换成.
  10. 一、JDK下载安装、eclipse下载安装(带资源)
  11. php 替换数字和字母,php preg_替换非字母数字字符并选择连词,然后拆分
  12. UniApp开发社交社区
  13. 用MATLAB求序列反折
  14. SAP UI5 应用开发教程之一百 - 如何修改 SAP UI5 框架的源代码实现,以及使用本地部署的 SAP UI5 SDK 试读版
  15. 开箱 | 小度智能音箱初体验
  16. The Sultan's Successors (八皇后)
  17. 【时序异常检测翻译】1.DeepAnT: A Deep Learning Approach for Unsupervised Anomaly Detection in Time Series
  18. vcpkg安装Building package brotli:x64-windows failed with: BUILD_FAILED问题缺失applocal.ps1
  19. flink-cdc 基础教程 附报错解决 2万字 (一)
  20. 服务器2016安装系统教材,Windows Server 2016系统配置指南 完整pdf扫描版[155MB]

热门文章

  1. 《11.02-构建之法:现代软件工程-阅读笔记》
  2. Reactjs不能忽略的key
  3. is present but cannot be translated into a null value due to being declared as a primitive type
  4. Hadoop HBase
  5. poj2586 Y2K Accounting Bug(贪心)
  6. WebService的应用之winform身份验证
  7. 谁在指使这家印度 IT 公司攻击全球政治家、投资者和记者?
  8. 云安全之虚拟机安全监控
  9. loadrunner两个报错Error -27492、Error -27778 互斥的问题
  10. 大型网站架构之系列(4)——分布式中的异步通信