当前位置: 首页 > news >正文

国外设计作品网站磁力蜘蛛搜索引擎

国外设计作品网站,磁力蜘蛛搜索引擎,福田蒙派克,龙华网站建设的基本步骤ELK常见部署架构以及出现的问题及解决方案 ELK 已经成为目前最流行的集中式日志解决方案#xff0c;它主要是由Beats 、Logstash 、Elasticsearch 、 Kibana 等组件组成#xff0c;来共同完成实时日志的收集#xff0c;存储#xff0c;展示等一站式的解决方案。本文将会介…ELK常见部署架构以及出现的问题及解决方案 ELK 已经成为目前最流行的集中式日志解决方案它主要是由Beats 、Logstash 、Elasticsearch 、 Kibana 等组件组成来共同完成实时日志的收集存储展示等一站式的解决方案。本文将会介绍ELK常见的架 构以及相关问题解决。 Filebeat Filebeat是一款轻量级占用服务资源非常少的数据收集引擎它是ELK家族的新成员可以代替 Logstash作为在应用服务器端的日志收集引擎支持将收集到的数据输出到KafkaRedis等队列。 Logstash 数据收集引擎相较于Filebeat比较重量级但它集成了大量的插件支持丰富的数据源收集 对收集的数据可以过滤分析格式化日志格式。 Elasticsearch 分布式数据搜索引擎基于Apache Lucene实现可集群提供数据的集中式存储分析 以及强大的数据搜索和聚合功能。 Kibana 数据的可视化平台通过该web平台可以实时的查看 Elasticsearch 中的相关数据并提供了丰富 的图表统计功能。 1、ELK常见部署架构 1.1 Logstash作为日志收集器 这种架构是比较原始的部署架构在各应用服务器端分别部署一个Logstash组件作为日志收集器然后将 Logstash收集到的数据过滤、分析、格式化处理后发送至Elasticsearch存储最后使用Kibana进行可视化展示。 这种架构不足的是Logstash比较耗服务器资源所以会增加应用服务器端的负载压力。 1.2 Filebeat作为日志收集器 该架构与第一种架构唯一不同的是应用端日志收集器换成了FilebeatFilebeat轻量占用服务器资源少所以 使用Filebeat作为应用服务器端的日志收集器一般Filebeat会配合Logstash一起使用这种部署方式也是目前最 常用的架构。 1.3 引入缓存队列的部署架构 该架构在第二种架构的基础上引入了Kafka消息队列还可以是其他消息队列将Filebeat收集到的数据发送至 Kafka然后在通过Logstasth读取Kafka中的数据这种架构主要是解决大数据量下的日志收集方案使用缓存队 列主要是解决数据安全与均衡Logstash与Elasticsearch负载压力。 1.4 以上三种架构的总结 第一种部署架构由于资源占用问题现已很少使用目前使用最多的是第二种部署架构至于第三种部署架构个人 觉得没有必要引入消息队列除非有其他需求因为在数据量较大的情况下Filebeat 使用压力敏感协议向 Logstash 或 Elasticsearch 发送数据。 如果 Logstash 正在繁忙地处理数据它会告知 Filebeat 减慢读取速度。拥塞解决后Filebeat 将恢复初始速度并 继续发送数据。 2、问题及解决方案 2.1 如何实现日志的多行合并功能? 系统应用中的日志一般都是以特定格式进行打印的属于同一条日志的数据可能分多行进行打印那么在使用ELK 收集日志的时候就需要将属于同一条日志的多行数据进行合并。 解决方案使用Filebeat或Logstash中的multiline多行合并插件来实现 在使用multiline多行合并插件的时候需要注意不同的ELK部署架构可能multiline的使用方式也不同如果是本 文的第一种部署架构那么multiline需要在Logstash中配置使用如果是第二种部署架构那么multiline需要 在Filebeat中配置使用无需再在Logstash中配置multiline。 1、multiline在Filebeat中的配置方式 filebeat.prospectors:-paths:- /home/project/elk/logs/test.loginput_type: logmultiline:pattern: ^\[negate: truematch: after output:logstash:hosts: [localhost:5044]pattern正则表达式negate默认为false表示匹配pattern的行合并到上一行true表示不匹配pattern的行合并到上一行matchafter表示合并到上一行的末尾before表示合并到上一行的行首 如 pattern: \[ negate: true match: after该配置表示将不匹配pattern模式的行合并到上一行的末尾。 2、multiline在Logstash中的配置方式 input {beats {port 5044 } }filter {multiline {pattern %{LOGLEVEL}\s*\]negate truewhat previous} }output {elasticsearch {hosts localhost:9200} }1Logstash中配置的what属性值为previous相当于Filebeat中的afterLogstash中配置的what属性值为 next相当于Filebeat中的before。 2pattern %{LOGLEVEL}\s*\] 中的LOGLEVEL 是Logstash预制的正则匹配模式预制的还有好多常 用的正则匹配模式详细请看 https://github.com/logstash-plugins/logstash-patterns-core/tree/master/patterns 2.2 如何将Kibana中显示日志的时间字段替换为日志信息中的时间? 默认情况下我们在Kibana中查看的时间字段与日志信息中的时间不一致因为默认的时间字段值是日志收集时 的当前时间所以需要将该字段的时间替换为日志信息中的时间。 解决方案使用grok分词插件与date时间格式化插件来实现 在Logstash的配置文件的过滤器中配置grok分词插件与date时间格式化插件如 input {beats {port 5044} }filter {multiline {pattern %{LOGLEVEL}\s*\]\[%{YEAR}%{MONTHNUM}%{MONTHDAY}\s%{TIME}\]negate truewhat previous }# 时间格式配置 grok {match [ message , (?customer_time%{YEAR}%{MONTHNUM}%{MONTHDAY}\s%{TIME}) ] }# 时间格式配置 date {# 格式化时间match [customer_time, yyyyMMdd HH:mm:ss,SSS]# 替换默认的时间字段target timestamp} }output {elasticsearch {hosts localhost:9200} }如要匹配的日志格式为 [DEBUG][20170811 10:07:31,359][DefaultBeanDefinitionDocumentReader:106] Loading bean definitions解析出该日志的时间字段的方式有 ①、通过引入写好的表达式文件如表达式文件为./customer-patterms/mypatterns内容为 CUSTOMER_TIME %{YEAR}%{MONTHNUM}%{MONTHDAY}\s%{TIME} 注 内容格式为[自定义表达式名称] [正则表达式] 然后logstash中就可以这样引用 filter {grok {# 引用表达式文件路径patterns_dir [./customer-patterms/mypatterns]# 使用自定义的grok表达式match [ message , %{CUSTOMER_TIME:customer_time} ]} }②、以配置项的方式规则为(?自定义表达式名称正则匹配规则)如 filter {grok {match [ message , (?customer_time%{YEAR}%{MONTHNUM}%{MONTHDAY}\s%{TIME}) ]} }2.3 如何在Kibana中通过选择不同的系统日志模块来查看数据? 一般在Kibana中显示的日志数据混合了来自不同系统模块的数据那么如何来选择或者过滤只查看指定的系统模 块的日志数据 解决方案新增标识不同系统模块的字段或根据不同系统模块建ES索引 1、新增标识不同系统模块的字段然后在Kibana中可以根据该字段来过滤查询不同模块的数据这里以第二种部 署架构讲解在Filebeat中的配置内容为 filebeat.prospectors:-paths:- /home/project/elk/logs/account.loginput_type: logmultiline:pattern: ^\[negate: truematch: afterfields: log_from: account-paths:- /home/project/elk/logs/customer.loginput_type: logmultiline:pattern: ^\[negate: truematch: afterfields:log_from: customeroutput:logstash:hosts: [localhost:5044]通过新增log_from字段来标识不同的系统模块日志 2、根据不同的系统模块配置对应的ES索引然后在Kibana中创建对应的索引模式匹配即可在页面通过索引模式 下拉框选择不同的系统模块数据。 filebeat.prospectors:-paths:- /home/project/elk/logs/account.loginput_type: logmultiline:pattern: ^\[negate: truematch: afterfields: log_from: account-paths:- /home/project/elk/logs/customer.loginput_type: logmultiline:pattern: ^\[negate: truematch: afterfields:log_from: customer output:logstash:hosts: [localhost:5044]通过新增log_from字段来标识不同的系统模块日志 这里以第二种部署架构讲解分为两步 ①、在Filebeat中的配置内容为 filebeat.prospectors:-paths:- /home/project/elk/logs/account.loginput_type: logmultiline:pattern: ^\[negate: truematch: afterdocument_type: account-paths:- /home/project/elk/logs/customer.loginput_type: logmultiline:pattern: ^\[negate: truematch: afterdocument_type: customer output:logstash:hosts: [localhost:5044]通过document_type来标识不同系统模块 ②、修改Logstash中output的配置内容为 output {elasticsearch {hosts localhost:9200index %{type}} }在output中增加index属性%{type}表示按不同的document_type值建ES索引 3、总结 本文主要介绍了ELK实时日志分析的三种部署架构以及不同架构所能解决的问题这三种架构中第二种部署方式 是时下最流行也是最常用的部署方式。 最后介绍了ELK作在日志分析中的一些问题与解决方案说在最后ELK不仅仅可以用来作为分布式日志数据集中 式查询和管理还可以用来作为项目应用以及服务器资源监控等场景更多内容请看官网。
http://www.hkea.cn/news/14587561/

相关文章:

  • 一张图片切块做网站背景网站开发薪酬
  • 网站排名工具wordpress 主题和插件下载
  • 成品网站w灬源码999交友企业招聘
  • 龙岗网站建设_公司推广哈尔滨最新通告
  • 莱芜高端网站建设价格大朗网站建设公司
  • 满城建设局官方网站烟台网站建设工资
  • 网站建设采用thinkphp框架的优势东莞标志设计公司
  • 光谷做网站推广公司制作相册视频
  • wordpress修改网站菜单位置wordpress页脚计时
  • 沙田网站仿做荷城网站设计
  • 网站icp备案是什么晋江论坛怎么发图
  • 如何做优秀的视频网站建设一个网站的方法
  • 青岛市网站建设培训学校程序员给别人做的网站违法了
  • 购物网站有哪些平台做网站的是干嘛的
  • 郑州网站建设公司qq西安工商注册平台官网
  • vps做网站教程网站制作关键技术
  • 上海正规网站建设西宁哪家网络公司做网站
  • 连云港建网站洛可可公司设计的产品
  • wordpress分类归档页网站建设优化文档
  • 如何做自己的播报网站东莞有哪些好企业
  • 哪个网站做外贸网页版微信可以发朋友圈吗
  • 云服务器安装win系统做网站大连零基础网站建设培训中心
  • 免费游戏网站建设游戏后台柳市做网站的公司
  • 百度竞价设不同网站网页无法访问公司内网
  • 自己 做网站学什么 平面设计免费开发软件制作平台
  • 网站开发实训课程的总结saas平台是什么意思
  • 移动app与网站建设的区别网站设计 收费
  • 地方门户网站模版wordpress 解析漏洞利用
  • 网站建设的7种流程wordpress 小视频主题
  • 临汾市住房城乡建设局网站自己做网站要会什么软件下载