为什么需要日志收集系统
1.企业的架构图画图说明,为引入下面的痛点
2.没有日志分析工具之前,运维工作存在哪些痛点?
- 痛点1:生产出现故障后,运维需要不停的查看各种不同的日志进行分析?是不是毫无头绪?- 痛点2:项目上线出现错误,如何快速定位问题?如果后端节点过多、日志分散怎么办?- 痛点3:开发人员需要实时查看日志但又不想给服务器的登陆权限,怎么办?难道每天帮开发取日志?- 痛点4:如何在海量的日志中快速的提取我们想要的数据?比如:PV、UV、TOP10的URL?如果分析的日志数据量大,那么势必会导致查询速度慢、难度增大,最终则会导致我们无法快速的获取到想要的指标。- 痛点5:CDN公司需要不停的分析日志,那分析什么?主要分析命中率,为什么?因为我们给用户承诺的命中率是90%以上。如果没有达到90%,我们就要去分析数据为什么没有被命中、为什么没有被缓存下来。- 痛点6:近期某影视公司周五下午频繁出现被盗链的情况,导致异常流量突增2G有余,给公司带来了损失,那又该如何分析异常流量呢?
3.使用elastic stack日志分析系统之后?
如上所有的痛点都可以使用日志分析系统ELK解决,通过ELK,将运维所有的服务器日志,业务系统日志都收集到一个平台下,然后提取想要的内容,比如错误信息,警告信息等,当过滤到这种信息,就马上告警,告警后,运维人员就能马上定位是哪台机器、哪个业务系统出现了问题,出现了什么问题。
4. 什么是Elastic Stack
The Elastic Stack, 包括Elasticsearch、Kibana、Beats和Logstash(也称为 ELK Stack)。ElaticSearch:简称为ES, ES是一个开源的高扩展的分布式全文搜索引擎,是整个Elastic Stack技术栈的核心。它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。Kibana:是一个免费且开放的用户界面,能够让您对Elasticsearch数据进行可视化,并让您在Elastic Stack中进行导航。您可以进行各种操作,从跟踪查询负载,到理解请求如何流经您的整个应用,都能轻松完成。Beats:是一个免费且开放的平台,集合了多种单一用途数据采集器。它们从成百上千或成千上万台机器和系统向Logstash 或 Elasticsearch发送数据。Logstash:是免费且开放的服务器端数据处理管道,能够从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的“存储库”中。Elastic Stack的主要优点有如下几个:(1)处理方式灵活:elasticsearch是实时全文索引,具有强大的搜索功能。(2)配置相对简单:elasticsearch全部使用JSON 接口,logstash使用模块配置,kibana的配置文件部分更简单。(3)检索性能高效:基于优秀的设计,虽然每次查询都是实时,但是也可以达到百亿级数据的查询秒级响应。(4)集群线性扩展:elasticsearch和logstash都可以灵活线性扩展。(5)前端操作绚丽:kibana的前端设计比较绚丽,而且操作简单。推荐阅读:https://www.elastic.co/guide/index.htmlhttps://www.elastic.co/guide/cn/elasticsearch/guide/current/index.htmlhttps://www.elastic.co/guide/cn/kibana/current/index.html
5.使用elastic stack能收集那些日志
容器管理工具:docker负载均衡服务器:lvs,haproxy,nginxweb服务器:httpd,nginx,tomcat数据库:mysql,redis,MongoDB,Hbase,Kudu,ClickHouse,PgSQL存储:nfs,gluterfs,fastdfs,HDFS,Ceph系统:message,security业务:包括但不限于C,C++,Java,PHP,Go,Python,Shell等编程语言研发的App。
6.企业级ElasticStack技术应用
在生产环境中,当数据量比较大的时候,我们会引入消息队列来进行"数据消峰"。