一、elk架构简介
- 首先
logstash
具有日志采集、过滤、筛选等功能,功能完善但同时体量也会比较大,消耗系统资源自然也多。filebeat
作为一个轻量级日志采集工具,虽然没有过滤筛选功能,但是仅仅部署在应用服务器作为我们采集日志的工具可以是说最好的选择。但我们有些时候可能又需要logstash的过滤筛选功能,所以我们在采集日志时用filebeat,然后交给logstash过滤筛选。 - 其次,logstash的吞吐量是有限的,一旦短时间内filebeat传过来的日志过多会产生堆积和堵塞,对日志的采集也会受到影响,所以在filebeat与logstash中间又加了一层
kafka
消息队列来缓存或者说解耦,当然redis也是可以的。这样当众多filebeat节点采集大量日志直接放到kafka中,logstash慢慢的进行消费,两边互不干扰。 - 至于
zookeeper
,分布式服务管理神器,监控管理kafka的节点注册,topic
管理等,同时弥补了kafka集群节点对外界无法感知的问题,kafka实际已经自带了zookeeper,这里将会使用独立的zookeeper进行管理,方便后期zookeeper集群的扩展。
二、环境
- 阿里云ECS:5台部署ES节点,3台分别部署logstash、kafka、zookeeper和kibana等服务。
- 阿里云ECS配置:5台 4核16G 2TB SSD磁盘。3台 4核16G 200G SSD磁盘。都是 Centos7.8系统
- 安装 docker 和 docker-compose
- ELK版本7.10.1;zookeeper版本3.6.2;kafka版本2.13-2.6.0;
IP地址 | 主机名称 | 用途 |
---|---|---|
172.20.166.25 | es-master1 | es master 和 es 数据节点 |
172.20.166.24 | es-master2 | es master 和 es 数据节点 |
172.20.166.22 | es-master3 | es master 和 es 数据节点 |
172.20.166.23 | es-data1 | es数据节点 |
172.20.166.26 | es-data2 | es数据节点 |
172.20.166.27 | logstash1 | logstash、kafka、zookeeper |
172.20.166.28 | logstash2 | logstash、kafka、zookeeper |
172.20.166.29 | logstash3 | logstash、kafka、kafa-manager、zookeeper、kibana、curator |
三、系统参数优化
1 | # 最大用户打开进程数 |
四、部署 docker 和 docker-compose
部署 docker
1 | # 安装必要的一些系统工具 |
部署 docker-compose
1 | # 安装 docker-compose |
五、部署 ES
es-master1 操作
1 | # 创建 es 目录 |
es-master2 操作
1 | $ cd /data/ELKStack/elasticsearch |
es-master3 操作
1 | $ cd /data/ELKStack/elasticsearch |
es-data1 操作
1 | $ cd /data/ELKStack/elasticsearch |
es-data2 操作
1 | $ cd /data/ELKStack/elasticsearch |
设置 es 访问账号
1 | # es-master1 操作 |
六、部署 Kibana
logstash3 操作
1 | $ mkdir -p /data/ELKStack/kibana |
七、部署 Zookeeper
logstash1 操作
1 | # 创建 zookeeper 目录 |
logstash2 操作
1 | $ cd /data/ELKStack/zookeeper |
logstash3 操作
1 | $ cd /data/ELKStack/zookeeper |
八、部署 Kafka
logstash1 操作
1 | # 创建 kafka 目录 |
logstash2 操作
1 | $ cd /data/ELKStack/kafka |
logstash3 操作
1 | $ cd /data/ELKStack/kafka |
九、部署 logstash
logstash1 操作
1 | $ mkdir /data/ELKStack/logstash |
logstash2 操作
1 | $ cd /data/ELKStack/logstash |
logstash3 操作
1 | $ cd /data/ELKStack/logstash |
十、部署 filebeat
1 | # 配置 filebeat yum源,这里以 centos7 为例 |
十一、部署 curator,定时清理es索引
logstash3 机器操作
1 | # 参考链接:https://www.elastic.co/guide/en/elasticsearch/client/curator/current/yum-repository.html |
十二、参考链接
- es证书配置:https://cloud.tencent.com/developer/article/1549834
- es忘记密码找回:https://www.cnblogs.com/woshimrf/p/docker-es7.html
- es设置密码:https://blog.csdn.net/extraordinarylife/article/details/107917764?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-2&spm=1001.2101.3001.4242
- elk-kafka部署 1:https://www.codenong.com/cs106056710/
- elk-kafka部署 2:https://www.cnblogs.com/lz0925/p/12061293.html
- elk优化:https://www.clxz.top/2020/06/19/elk-kafka-optimization/
- es7索引分片:https://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules.html
- filebeat优化:https://www.jianshu.com/p/389702465461
- kafka数据与日志清理:https://blog.csdn.net/VIP099/article/details/106257561
---本文结束感谢您的阅读。微信扫描二维码,关注我的公众号---
本文作者:
Peng Yang
本文链接: https://www.yp14.cn/2021/01/07/容器部署ELK7-10-适用于生产/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
本文链接: https://www.yp14.cn/2021/01/07/容器部署ELK7-10-适用于生产/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!