ELK工作流程
- 多个独立的Agent(Shipper)负责收集不同来源的数据,一个中心Agent(Indexer)负责汇总和分析数据,在中心Agent前的Broker(使用Redis实现)作为缓冲区,中心Agent后的ElasticSearch用于存储和搜索数据,前端的Kibana提供丰富的图表展示。
- Shipper表示日志收集,使用LogStash收集各种来源的日志数据,可以是系统日志、文件、Redis、mq等等;
- Broker作为远程Agent与中心Agent之间的缓冲区,使用Redis实现,一是可以提高系统的性能,二是可以提高系统的可靠性,当中心Agent提取数据失败时,数据保存在Redis中,而不至于丢失;
- 中心Agent(Indexer)也是LogStash,从Broker中提取数据,可以执行相关的分析和处理(Filter);
- ElasticSearch用于存储最终的数据,并提供搜索功能;
- Kibana提供一个简单、丰富的Web界面,数据来自于ElasticSearch,支持各种查询、统计和展示
机器部署
Logstash
(Logstash部署在IP为192.168.123.2的机器上。)
数据流
input|decode|filter|encode|output
安装和配置
1.安装Java环境
2.下载并安装GPG key
[root@localhost ~]# rpm --import
3.yum源配置
3.安装Logstash
[root@localhost ~]# yum install logstash
4.安装目录
5.编辑一个简单的配置文件
将日志存储到ES中的配置:
7.遇到的问题:
ElasticSearch
数据流
安装和配置
如果是在不同机器上安装,则需要像Logstash的步骤1一样配置好Java环境。
(本文在不同机器上部署,以下配置在IP为192.168.123.3的机器上进行。)
1.下载并安装GPG key
[root@localhost ~]# rpm --import
2.yum源配置
3.安装ElasticSearch
[root@localhost ~]# yum install elasticsearch
4.安装目录
5.修改 limits.conf
6.创建目录并授权
[root@localhost ~]# mkdir -p /data/es-data [root@localhost ~]# chown -R elasticsearch.elasticsearch /data/es-data/
7.配置elasticsearch.yml
8.启动ElasticSearch
8.检查启动
9.访问测试
windows下访问:
11.安装Elasticsearch插件
- Head
- 插件作用:主要是做ES集群管理。
在此我向大家推荐一个架构学习交流群。交流学习群号:575745314 里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多
Kibana
安装和配置
1.下载并安装GPG Key:
rpm --import
2.yum源配置
3.安装Logstash
4.安装目录
5.修改配置文件
6.启动Kibana
7.检查端口
8.访问
访问地址::5601