当前位置:   article > 正文

ELK搭建指南_es安装如何使用ip访问

es安装如何使用ip访问

ELK介绍

首先,从整体来看,ELK是一套完整的日志采集、分析、展示的解决方案。

  • E:Elasticsearch 简称ES,用于数据的存储,检索,以及分析
  • L:Logstash 可用于日志的过滤和采集
  • K:Kibana 提供数据的可视化管理界面

在下图中,除了以上三个产品,我们还可以看到Beats模块,其中Filebeat通常也被用于日志的采集,与Logstash相比,Filebeat更为轻量级。
在这里插入图片描述

架构设计

在这里插入图片描述
按照数据流向依次说明:

  • filebeat 部署在各个日志服务器,通过监听日志文件、端口等方式实现日志采集,并将日志推送到队列,供后续分析过滤。
  • redis/kafka 作为缓冲队列,实现filebeat与logstash解耦,并且适当错峰,避免filebeat直接推送到logstash时导致的不可靠性。
  • logstash 从队列中读取日志数据,并支持根据不同日志类型进行不同的解析处理,并将接过推送至es
  • es集群 提供数据的存储和检索
  • kibana 提供数据的可视化展示与分析

环境搭建

搭建ELK时需要注意的是,所有软件尽量选用相同版本,避免出现兼容性问题。本教程以6.8.10版本为例。所需安装包如下:(官网地址

  • filebeat-6.8.10-linux-x86_64.tar.gz
  • logstash-6.8.10.tar.gz
  • kibana-6.8.10-linux-x86_64.tar.gz
  • elasticsearch-6.8.10.tar.gz

ES

0.ES 6.8.10版本需要java版本1.8或以上,因此安装ES前需要先安装好java环境。
1.解压安装包

tar -zxvf elasticsearch-6.8.10.tar.gz
  • 1

2.进入config目录,修改elasticsearch.yml配置文件
Network栏配置host,使es可以通过ip访问
如存在跨域问题可通过以下两行配置
http.cors.enabled: true
http.cors.allow-origin: "*
在这里插入图片描述
3.创建es用户和用户组

groupadd elsearch
adduser elsearch -g elsearch
passwd elsearch
chown -R elsearch:elsearch elasticsearch-6.8.10/
  • 1
  • 2
  • 3
  • 4

4.切换到elsearch用户,进入bin目录,通过-d参数后台启动es

./elasticsearch -d 
  • 1

5.启动成功后,通过浏览器访问ES所在服务器IP:9200,成功返回json即可。
在这里插入图片描述
6.在没安装kibana之前,ES中的数据只能通过REST接口访问,十分不方便,因此建议安装ES head插件,提供简易的图形化界面对ES中的数据进行操作和查看。

head插件为独立的前端web应用,需要安装nodejs和npm

yum -y install nodejs npm
yum -y install git
//下载head插件源码
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head/
//安装依赖
npm install
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

7.修改head目录下的Gruntfile.js文件,添加hostname: '*'
在这里插入图片描述
8.修改_site/app.js文件,配置ES地址
在这里插入图片描述
9.启动head插件
在这里插入图片描述
启动成功后,通过IP:9100访问web,即可通过web页面对数据进行简单的操作
在这里插入图片描述

Filebeat

1.解压安装包

tar -zxvf filebeat-6.8.10-linux-x86_64.tar.gz
  • 1

2.进入安装目录,修改配置文件filebeat.yml
配置文件中需要修改的主要有两部分,分别是input和output,即日志的数据源和要推送的目的地
input配置如下,type属性可支持的选项有:log,udp,tcp,syslog等(参考官网文档
在这里插入图片描述
output配置如下,根据架构设计,此处数据需要推送到redis,所以在配置中,仅配置了redis的output,并注释掉其他output。可根据实际架构情况调整output方式
在这里插入图片描述
3.保存修改后,通过-c参数指定配置文件,启动filebeat

nohup ./filebeat -c to_redis.yml >/dev/null &
  • 1

4.启动成功后,登录redis客户端,根据配置文件中设置的key查看数据
在这里插入图片描述
至此,filebeat的任务已完成

Logstash

1.解压安装包

tar -zxvf logstash-6.8.10.tar.gz
  • 1

2.进入安装bin目录,创建配置文件redis_es.conf
分别配置input和output,filter用于日志过滤,后面会提到,暂时略过,此处仅配置input和output即可
在这里插入图片描述
3.保存后,通过-f参数指定配置文件,启动logstash

./logstash -f redis_es.conf
  • 1

4.logstash与filebeat相比,体量要重一些,因此启动会比较慢
在这里插入图片描述

5.启动成功后,登录redis查看数据,刚刚通过filebeat存入redis的数据已被logstash消费
在这里插入图片描述
6.通过ES head插件访问ES,查看数据是否已录入。

Kibana

1.解压安装包

tar -zxvf kibana-6.8.10-linux-x86_64.tar.gz
  • 1

2.修改config/kibana.yml配置文件
在这里插入图片描述

3.进入bin目录,启动kibana

./kibana &
  • 1

3.访问IP:5601即可访问kibana
创建kibana的索引视图
在这里插入图片描述
下一步,选择@timestamp,然后创建
在这里插入图片描述
创建成功后,再次点击左侧Discover菜单
在这里插入图片描述
可以看到刚才创建的索引名称,右上角默认展示的是近15分钟的数据,所以可能会看不到数据,不要慌,选择合适的时间即可。
在这里插入图片描述

常见问题

  1. filebeat采集过一次日志以后,再次启动后,就不再执行采集?
    在filebeat的data/目录中,registry文件记录了filebeat的采集历史,包括日志文件,采集记录位置,时间等。已经采集过的内容,不会再次采集。如果需要重新采集,可以删除data/目录后重新启动filebeat
    在这里插入图片描述
  2. java.lang.RuntimeException: can not run elasticsearch as root
    使用root以外用户启动ES
  3. 启动ES时,报权限错误
    修改ES目录及数据目录的归属信息,修改为ES用户及用户组
  4. max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
    max number of threads [1024] for user [lishang] likely too low, increase to at least [2048]

    修改/etc/security/limits.conf文件
    * soft nofile 65536
    * hard nofile 131072
    * soft nproc 2048
    * hard nproc 4096
    
    • 1
    • 2
    • 3
    • 4
  5. max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
    修改/etc/sysctl.conf文件,添加vm.max_map_count=655360,保存后执行sysctl -p,再重新启动ES即可

进阶操作

更多操作后续会陆续更新

  1. 多数据源采集
  2. 数据解析和过滤
  3. 多行数据整合(异常日志)
  4. IK中文分词插件
  5. ES集群部署
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/678849
推荐阅读
相关标签
  

闽ICP备14008679号