第十二章 elk

ELK(Elasticsearch,Logstash,Kibana)架构用于集中式日志管理,解决分布式服务器日志查看难题。Filebeat轻量级采集日志,Logstash处理和转发,Elasticsearch存储并建立索引,Kibana提供可视化界面。在PHP+kafka+elk场景中,Kafka作为消息中间件保证日志传输的可靠性,避免直接写入日志文件的问题。

1、ELK可以帮助我们解决哪些问题

日志分布在多台不同的服务器上,业务一旦出现故障,需要一台台查看日志

单个日志文件巨大,无法使用常用的文本工具分析,检索困难;

2、架构设计分析

Filebeat和Logstash

ELK架构中使用Logstash收集、解析日志,但是Logstash对内存、cpu、io等资源消耗比较高。相比 Logstash,Beats所占系统的CPU和内存几乎可以忽略不计

架构图解读
第一层、数据采集层

        最左边的是业务服务器集群,上面安装了filebeat做日志采集,同时把采集的日志分别发送给两个logstash服务。

第二层、数据处理层,数据转发层

        logstash服务把接受到的日志经过格式处理,转存到ES DataNode。

第三层、数据持久化存储

        ES DataNode 会把收到的数据,写磁盘,建索引库。

第四层、数据检索,数据展示

        ES Master + Kibana 主要协调ES集群,处理数据检索请求,数据展示

3、elk实操

IP 角色 所属集群

192.168.232.100 业务服务器+filebeat 业务服务器集群

192.168.232.104 Logstash 数据转发

192.168.232.104 ES DataNode1 Elasticsearch 集群其中的一台机器1

192.168.232.104 ES DataNode2 Elasticsearch 集群其中的一台机器2

192.168.232.104 ES DataNode3 Elasticsearch 集群其中的一台机器3

192.168.232.104 kibana 可视化工具,装到任意一台服务器

4、 php+kafka+elk架构分析

业务场景:

多个线程,同时向同一个日志文件写日志,容易导致日志文件混乱

如果加锁,当日志文件过大时,写入性能是会受到一定的影响

而且生成大量的日志文件需要去维护

具体流程:

1、filebeat会监听收集日志(mysql,ngnix运维日志,服务器的监控日志),并且会推送到logstash。

2、logstash只负责数据格式化,美化数据

3、es负责数据的持久化,存储数据

4、kibana数据可视化

4.1、日志写到日志文件的痛点:

 4.2、为什么选择kafka,而不是其他同类的消息中间件呢?如下图总结了3点原因:

 4.3、实操

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值