浅谈elk日志分析平台

author author     2022-08-20     119

关键词:

作者:珂珂
链接:https://zhuanlan.zhihu.com/p/22104361
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

小编的话

“技术干货”系列文章意在分享技术牛人的知识干货,每期主题都不一样哟!期待各位读者在文后发表留言,来一场技术上的交流和思想上的碰撞!


2016年7月20日,本期品高云公开课由叶春草带来“可视化案发现场——浅谈ELK日志分析平台”的分享。



分享嘉宾

技术分享


叶春草现就职于品高云软件技术支持工程师。就职一年来,曾参与过广州地铁聆客、公司聆客、深圳公安局聆客的数据库迁移、升级及其他服务器的监控运维、日志分析系统搭建等,主要负责聆客相关运维。


分享正文

在谈ELK前,先来谈谈我们品高聆客和ELK之间的关系。


BingoLink(品高聆客)是一款集“应用开发、整合接入、应用管理、安全保障、社交平台”于一体的MEAP平台。用BingoLink构建企业的移动化平台,满足企业在移动互联网年代移动应用开发、现有业务系统的整合接入、应用管理及运营、企业内部沟通协作等需求的实现。


ELK在聆客中,发挥的作用和价值就在于
1、可提高用户响应速度。通过ELK筛选出数据库慢查询日志,开发再对语句进行优化,则可提高数据库响应时间,进而提高用户响应时间。


2、可提高聆客软件可用率。当有故障时,可用ELK快速查询所需要的日志,查看故障原因,缩短故障定位时间,进而提高可用率。


3、可总结聆客网页的正常状态百分比。通过ELK筛选nginx状态码结果,绘制状态码扇形图,可清晰知道网页访问有多少是正常的。


4、可定位聆客用户的地图分布。通过ELK抓取用户访问的公网IP,再绘制Tile map地图,则可在地图上清楚看来聆客在全国各地的分布,定位客户来源。


5、可优化聆客系统。通过开发、运维定期查看ELK上的图表、周报,可发现隐藏问题(例如某个nginx路径访问持续过长、数据库有暂未影响功能的error等),进行排除,从而减少潜在的隐患,及优化系统。


那么问题来了,ELK日志分析平台是什么?


首先来看一下传统的日志查找方式:当有客户报障时,需要:

1、登录服务器

ssh [email protected] ssh [email protected]

ssh [email protected]

2、找到位置

cd /apps/logs/nginx/; cd /apps/logs/mysql/;

cd /apps/logs/docker; cd /apps/logs/java/; …… ……

3、查看日志

head tail grep wc awk count cut …… ……

因此,传统的日志架构存在的以下若干缺点:

  1. 开发人员无权登录,经过运维周转费时费力

  2. 日志数据分散在多个系统,难以查找

  3. 日志数据量大,查询速度慢

  4. 一个调用会涉及多个系统,难以在这些系统的日志中快速定位数据

  5. 数据不够实时

  6. ……

一、日志架构的演变:

传统的日志架构,需要运维人员强大的正则功底,对日志运用shell命令,例如cat tail grep awk sed等,对日志进行处理,再筛选出自己想要的结果或寻找关键字。

有了ELK后,对运维和开发处理日志的要求降低,只需要在web界面上简单的操作,就可以找到自己想要的数据,并进行画图


技术分享


二、那么ELK名称怎么由来呢?

首字母为该管理系统三个主要软件:Elasticsearch、Logstash、Kibana。这三个并非该管理系统的全部组成,而且还可以添加Redis,kafka,filebeat等软件

它们各自的功能大概可以这样概述:

E

实时分析、实时检索、海量存储

建立索引,以便日后快速查看、搜索、分析

L

数据流传输、日志结构化

K

分析统计、酷炫图表

关于ELK的配置

E配置:

主要配置数据目录、日志目录、绑定IP和端口

path.data: /apps/data/

path.logs: /apps/logs/elasticsearch/

network.host: 172.17.96.9

http.port: 9200

L配置:

logstash的配置比较复杂,由三个部分组成:input,filter,output

技术分享

K配置:

主要配置elasticsearch的地址,K的数据目录、日志目录、绑定IP和端口

server.host: "172.17.96.8“

server.port: 5601

elasticsearch.url: ""

pid.file: /apps/run/kibana/kibana.pid

logging.dest: /apps/logs/kibana/kibana.log

三、ELK启动

service方式,当你的安装方式是rpm包或配置官方仓库时:

1、service方式(rpm包,yum安装时)

service $PROG start

nohup+&在后台启动(源码安装时)

2、nohup方式(源码包安装时)

nohup $COMMAND &

demontools(supervisord等启动进程的程序

3、supervisord (源码包安装时)

service supervisord start

四、日志匹配

1、过滤器:这里是选取几个过滤器进行讲解,更多的过滤器,可以在官网上继续学习

date时间处理

date时间格式

date {

match => [ "timestamp" , "dd/MMM/YYYY:HH:mm:ss Z" ]

}

2、grok正则捕获

grok正则捕获

grok{

pattern => ["%{TIMESTAMP_ISO8601:Time} - %{IP:serverIP} %{BASE10NUM:port} %{BASE10NUM:relay:int}"]

}

grok {

patterns_dir => ["/apps/conf/logstash/patterns"]

match => {

"message" => "%{MYSQLSLOW}"

}

3、mutate数据修改

mutate数据修改

mutate { convert => ["bytes","integer"] }

mutate { convert => [“time","float"] }

mutate { split => ["re_path", "/"] }

4、rubby灵活处理

ruby灵活处理

ruby {

init =>"@kname= [‘re_path‘,‘re_args‘]"

code =>"event.append(Hash[@kname.zip(event[‘request‘].split(‘?‘))])"

}

五、日志展示


技术分享

后续:
1、监控方面:
进程和端口存活(各个软件)
磁盘空间(Elasticsearch的数据目录,logstash的日志目录等
……
2、优化方面:
Elasticsearch 中,JVM使用OS的max-open-files设置、索引调整、文件刷新时间等
Logstash的日志部分无用段去除、filter worker数量等













































搭建elk日志分析平台的详细过程(代码片段)

搭建ELK日志分析平台的详细过程 日志分析系统-ELK平台由于日志文件都离散的存储在各个服务实例的文件系统之上,仅仅通过查看日志文件来分析我们的请求链路依然是一件相当麻烦的差事。ELK平台,它可以轻松的帮助我们... 查看详情

elk搭建实时日志分析平台(代码片段)

ELK搭建实时日志分析平台导言ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成,ELK平台可以同时实现日志收集、日志搜索和日志分析的功能。对于生产环境中海量日志信息的分析处理无疑不是一个好的解决方案。官方网站:https... 查看详情

elk——elasticstack日志分析平台(代码片段)

ElasticStack日志分析平台ELK日志采集与分析系统概述ELK架构Filebeat重读日志文件使用Processors(处理器)过滤和增强数据LogstashLogstash安装使用Grok过滤器插件解析Web日志使用Geoip过滤器插件增强数据编辑**配置接受Beats的输入ES... 查看详情

结合docker快速搭建elk日志收集分析平台

结合Docker快速搭建ELK日志收集分析平台2017-03-2709:39 阅读172 评论0作者:马哥Linux运维-EasonELKStackELK (Elasticsearch+Logstash+Kibana),是一个开源的日志收集平台,用于收集各种客户端日志文件在同一个平台上面做数据分析。Int... 查看详情

elk:日志收集分析平台(代码片段)

...ticsearch集群部署配置文件Kibana部署参考文档简介ELK是一个日志收集分析的平台,它能收集海量的日志,并将其根据字段切割。一来方便供开发查看日志,定位问题;二来可以根据日志进行统计分析,通过其强大的呈现能力,挖掘... 查看详情

elk日志分析平台搭建----elasticsearch

ELK日志分析平台搭建----ELASTICSEARCH介绍:ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成1、Elasticsearch是一个开源分布式的搜索引擎,特点是:分布式、零配置、自动发现、索引自动分片、索引副本机制、restful风格接口,多数据... 查看详情

日志分析elk平台搭建

 当服务器数量以及应用达到一定的数量后,操作系统日志以及应用软件日志数量庞大,遇到问题时日志是第一手资料。平时用的sed、grep、awk已经难以满足我们的需求。随着互联网技术的发展,好多大型互联网公司研发了不... 查看详情

elk+filebeat+kafka+zookeeper构建海量日志分析平台

ELK+Filebeat+Kafka+ZooKeeper构建海量日志分析平台参考:http://www.tuicool.com/articles/R77fieA我在做ELK日志平台开始之初选择为ELK+Redis直接构建,在采集nginx日志时一切正常,当我采集我司业务报文日志类后,logstash会报大量的redisconnecttimeout... 查看详情

elk服务搭建(开源实时日志分析elk平台部署)(低版本—简单部署)

开源实时日志分析ELK平台部署日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能... 查看详情

开源日志分析系统elk平台搭建部署

开源日志分析系统ELK平台搭建部署  一、前言日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了... 查看详情

elk日志分析平台部署实录

[[email protected]~]#rpm--importhttps://artifacts.elastic.co/GPG-KEY-elasticsearch[[email protected]~]#vim/etc/yum.repos.d/elasticsearch.repo[elasticsearch-5.x]name=Elasticsearchrepositoryfo 查看详情

[elk]快速搭建简单的日志分析平台

下载ELK(Elasticsearch,Logstash,Kibana) Elasticsearch:wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.4.4.tar.gzLogstash:wget https://download.elasticse 查看详情

elk实时日志分析平台部署(代码片段)

...们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、... 查看详情

[bigdata-elk]elk(elasticsearch,logstash,kibana)搭建实时日志分析平台

...段:以下内容来自: http://baidu.blog.51cto.com/71938/1676798日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可... 查看详情

企业运维之elk日志分析平台(elasticsearch)(代码片段)

ELK日志分析平台--Elasticsearch的介绍与安装1.ELK介绍2.Elasticsearch简介3.Elasticsearch的部署3.1单机模式3.2Elasticsearch集群3.3cerebro图形化3.4Elasticsearch-head图形化3.5索引、分片和副本3.6Elasticsearch节点优化1.ELK介绍ELK指的是⼀套完整的⽇志集... 查看详情

elk(elasticsearch,logstash,kibana)搭建实时日志分析平台

...一小段:以下内容来自:http://baidu.blog.51cto.com/71938/1676798日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可... 查看详情

开源实时日志分析elk平台部署

ELK架构图:1.JDK环境-------------------1.1下载最新JDK,解压到/usr/local/java目录。1.2设置环境变量打开/etc/profile,添加下面内容exportJAVA_HOME=/usr/local/javaexportJRE_HOME=$JAVA_HOME/jreexportPATH=$PATH:$JAVA_HOME/binexportCLASSPAT 查看详情

elk(elasticsearch,logstash,kibana)搭建实时日志分析平台

ELK(ElasticSearch,Logstash,Kibana)搭建实时日志分析平台 日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以... 查看详情