开始之前先了解一下什么是ELK
ELK:大型分布式日志分析系统ELK elasticsearch(存储日志)+logstash(收集日志)+kibana(展示数据)Elasticsearch:Elasticsearch (ES)是一个基于Lucene构建的开源、分布式、RESTful 接口全文搜索引擎 。Elasticsearch 还是一个分布式文档数据库,其中每个字段均是被索引的数据且可被搜索,它能够扩展至数以百计的服务器存储以及处理PB级的数据 。它可以在很短的时间内在储、搜索和分析大量的数据 。它通常作为具有复杂搜索场景情况下的核心发动机 。
横向可扩展性:只需要增加台服务器,做一点儿配置,启动一下Elasticsearch就可以并入集群 。
分片机制提供更好的分布性:同一个索引分成多个分片(sharding), 这点类似于HDFS的块机制;分而治之的方式可提升处理效率 。
高可用:提供复制( replica) 机制,一个分片可以设置多个复制,使得某台服务器在宕机的情况下,集群仍旧可以照常运行,并会把服务器宕机丢失的数据信息复制恢复到其他可用节点上 。
口使用简单:只需一条命令就可以下载文件,然后很快就能搭建一个站内搜索引擎 。
Elasticsearch应用场景大型电商商品搜索系统、网盘搜索引擎等 。logstash官网:
https://www.elastic.co/guide/en/logstash/current/index.html
logstash就是一根具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端;与此同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供里很多功能强大的滤网以满足你的各种应用场景 。
Logstash常用于日志关系系统中做日志采集设备;

文章插图
系统结构
Logstash的事件(logstash将数据流中等每一条数据称之为一个event)处理流水线有三个主要角色完成:inputs –> filters –> outputs:
inpust:必须,负责产生事件(Inputs generate events),常用:File、syslog、redis、beats(如:Filebeats)
filters:可选,负责数据处理与转换(filters modify them),常用:grok、mutate、drop、clone、geoip
outpus:必须,负责数据输出(outputs ship them elsewhere),常用:elasticsearch、file、graphite、statsd
其中inputs和outputs支持codecs(coder&decoder)在1.3.0 版之前,logstash 只支持纯文本形式输入,然后以过滤器处理它 。但现在,我们可以在输入 期处理不同类型的数据,所以完整的数据流程应该是:input | decode | filter | encode | output;codec 的引入,使得 logstash 可以更好更方便地与其他有自定义数据格式的运维产品共存,比如:graphite、fluent、netflow、collectd,以及使用 msgpack、json、edn 等通用数据格式的其他产品等. Kibana介绍Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的 。你可以用kibana搜索、查看存放在Elasticsearch中的数据 。Kibana与Elasticsearch的交互方式是各种不同的图表、表格、地图等,直观地展示数据,从而达到高级的数据分析与可视化的目的 。
实现Es集群+日志收集原理:

文章插图
我们这边三台本地虚拟机服务器:
192.168.85.187
192.168.85.188
192.168.85.180
安装一台其他克隆就可搞定:Elasticsearch linux 安装1、 安装JDK环境变量
export JAVA_HOME=/usr/local/jdk1.8.0_181export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarsource /etc/profile2、 下载elasticsearch安装包下载elasticsearch安装包
官方文档
https://www.elastic.co/downloads/elasticsearch
注意:linux安装内存建议1g内存以上
3、 上传elasticsearch安装包

文章插图
4、 解压elasticsearch
tar -zxvf elasticsearch-6.4.3.tar.gz5、 修改elasticsearch.ymlnetwork.host: 192.168.85.180
http.port: 9200

文章插图
6、 启动elasticsearch报错
cd /opt/elasticsearch-6.4.3/bin./elasticsearchcan not run elasticsearch as root解决方案:因为安全问题elasticsearch 不让用root用户直接运行,所以要创建新用户第一步:liunx创建新用户 adduser XXX 然后给创建的用户加密码 passwd XXX 输入两次密码 。第二步:切换刚才创建的用户 su XXX 然后执行elasticsearch 会显示Permission denied 权限不足 。第三步:给新建的XXX赋权限,chmod 777 * 这个不行,因为这个用户本身就没有权限,肯定自己不能给自己付权限 。所以要用root用户登录付权限 。第四步:root给XXX赋权限,chown -R XXX /你的elasticsearch安装目录 。然后执行成功 。 创建一个分组 groupadd esyanguseradd esyang -g esyang -p 123456chown -R esyang:esyang elasticsearch-6.4.3su esyang 切换用户 继续报错bootstrap checks failed max virtual memory areas vm.max_map_count [65530] is vi /etc/sysctl.confvm.max_map_count=655360sysctl p max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]vi /etc/security/limits.conf* soft nofile 65536* hard nofile 131072* soft nproc 2048* hard nproc 4096 重启服务器即可
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 一次解决mysql锁表问题的经历
- 怎么训练宝宝主动伸手
- 住房公积金个人什么情况下能提取?公积金余额一次性提取后用途有要求吗
- 如何快速排查发现redis的bigkey?4种方案一次性给到你
- 安卓|36个月不卡!ColorOS 13首曝:基于Android 13深度定制
- 初次逛漫展3大禁忌是什么?
- 基于Python获取股票分析,数据分析实战
- python 手把手教你基于搜索引擎实现文章查重
- 历史上火山最大的喷发 世界上最大的一次火山喷发
- 第一次去新疆旅游应该参观那些景点
