基于ELK一次集群实战

开始之前先了解一下什么是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常用于日志关系系统中做日志采集设备;
 

基于ELK一次集群实战

文章插图

系统结构
  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集群+日志收集原理:
基于ELK一次集群实战

文章插图
我们这边三台本地虚拟机服务器:
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安装包
 
基于ELK一次集群实战

文章插图

4、 解压elasticsearchtar -zxvf elasticsearch-6.4.3.tar.gz5、 修改elasticsearch.yml
network.host: 192.168.85.180
http.port: 9200
 
基于ELK一次集群实战

文章插图
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  重启服务器即可   


推荐阅读