前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Elasticsearch Logstash Kibana Filebeat 搭建

Elasticsearch Logstash Kibana Filebeat 搭建

作者头像
BUG弄潮儿
发布于 2020-06-15 08:51:06
发布于 2020-06-15 08:51:06
1.7K00
代码可运行
举报
文章被收录于专栏:JAVA乐园JAVA乐园
运行总次数:0
代码可运行

ELK+Filebeat的流程应该是这样的:Filebeat->Logstash->(Elasticsearch<->Kibana)由我们自己的程序产生出日志,由Filebeat进行处理,将日志数据输出到Logstash中,Logstash再将数据输出到Elasticsearch中,Elasticsearch再与Kibana相结合展示给用户。

  • Elasticsearch: 能对大容量的数据进行接近实时的存储,搜索和分析操作。
  • Logstash: 数据收集引擎,它支持动态的的从各种数据源获取数据,并对数据进行过滤,分析,丰富,统一格式等操作,然后存储到用户指定的位置。
  • Kibana: 数据分析与可视化平台,对Elasticsearch存储的数据进行可视化分析,通过表格的形式展现出来。
  • Filebeat: 轻量级的开源日志文件数据搜集器。通常在需要采集数据的客户端安装Filebeat,并指定目录与日志格式,Filebeat就能快速收集数据,并发送给logstash进行解析,或是直接发给Elasticsearch存储

0x01: ElasticSearch 搭建

首先 在local下面创建elk目录 然后下载elasticsearch,logstash,kibana

代码语言:javascript
代码运行次数:0
运行
复制
  cd usr/local


  mkdir elk






  wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.0.tar.gz


  wget https://artifacts.elastic.co/downloads/kibana/kibana-6.6.0-linux-x86_64.tar.gz


  wget https://artifacts.elastic.co/downloads/logstash/logstash-6.6.0.tar.gz
解压
  tar -xzvf  elasticsearch-6.6.0.tar.gz -C /usr/local/elk


  tar -xzvf  logstash-6.6.0.tar.gz -C /usr/local/elk


  tar -xzvf  kibana-6.6.0-linux-x86_64.tar.gz

root用户建议不直接启动es

代码语言:javascript
代码运行次数:0
运行
复制
   # 增加或更改以下内容


  [root@master-node ~]# vim /etc/elasticsearch/elasticsearch.yml 

查看后台命令是否启动成功

ps aux|grep elasticsearch

这是出于系统安全考虑设置的条件。由于ElasticSearch可以接收用户输入的脚本并且执行,为了系统安全考虑,建议创建一个单独的用户用来运行ElasticSearch。创建elsearch用户组及elsearch用户。

groupadd elsearch

组名 密码

useradd elsearch -g elsearch -p elk

更改elasticsearch文件夹及内部文件的所属用户及组为elsearch:elsearch。用root用户执行 : chown -R 用户名 文件夹名

chown -R elsearch:elsearch elasticsearch-6.6.0

其中elasticsearch-6.6.0为elasticsearch的目录名称,切换到elsearch用户再启动

su elsearch #切换账户

cd elasticsearch/bin #进入你的elasticsearch目录下的bin目录

./elasticsearch

elasticsearch.yml 文件用于配置集群节点等相关信息的

  • cluster.name: master-node # 集群中的名称
  • node.name: master # 该节点名称
  • node.master: true # 意思是该节点为主节点
  • node.data: false # 表示这不是数据节点
  • network.host: 0.0.0.0 # 监听全部ip,在实际环境中应设置为一个安全的ip
  • http.port: 9200 # es服务的端口号
  • discovery.zen.ping.unicast.hosts:["192.168.77.128","192.168.77.130", "192.168.77.134"] # 配置自动发现

ElasticSearch后台启动命令

[root@master-node ~]# ./elasticsearch [root@master-node ~]# curl http://127.0.0.1:9200/

[root@master-node ~]# nohup ./bin/elasticsearch&

异常:

代码语言:javascript
代码运行次数:0
运行
复制
  max virtual memory areas vm.max_map_count [65530]is too low, increase to at least [262144


  vim etc/sysctl.conf


  vm.max_map_count=262144


  sysctl -p

命令:

sysctl -a|grep vm.max_map_count

显示:

vm.max_map_count = 262144

异常:

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536

#切换到root用户修改

vim /etc/security/limits.conf

# 在最后面追加下面内容

*** hard nofile 65536

*** soft nofile 65536

elasticsearch要进行外网访问,需要修改config目录下elasticsearch.yml文件,

network.publish_host: 外网ip地址

network.host: 0.0.0.0 全网ip

查询端口是否有进程守护用如下命令grep对应端口,如9200为端口号

例:netstat -nalp | grep 9200

注意顺序,network.host 放上面,但是外网是访问不了的。如果要配置成外网。需要把 network.publish_host : 配置成外网ip 即可。在阿里云上配置对外的开放的9200端口号

安装elasticsearch -head 插件

代码语言:javascript
代码运行次数:0
运行
复制
   wget  https://nodejs.org/dist/v10.15.1/node-v10.15.1-linux-x64.tar.xz






   tar xvf node-v10.15.1-linux-x64.tar.xz






   wget https://github.com/mobz/elasticsearch-head/archive/master.zip


   unzip master.zip






   export NODE_PATH=/usr/local/node/node-v10.15.1-linux-x64

  1. export PATH=PATH:JAVA_HOME/bin:

.配置head, 进入head文件中。执行

npm install -g grunt-cli

执行 npm install ,此过程会下载phantomjs (运行npm install时,可能PhantomJS not found on PATH ...可执行 npm install latest)

  • 修改 elasticsearch/config/elasticsearch.yml

http.cors.enabled: true

http.cors.allow-origin: "*"

  • 修改elasticsearch-head下的Gruntfile.js

#其中增加一个

  • cd /usr/local/es/elasticsearch-head/_site/

vim app.js

打开文件 在命令行模式输入 “/this.base_uri” 进行搜索,然后修改为

this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://you ip address:9200";

启动elasticsearch

/usr/local/es/node-1/bin/elasticsearch -d

启动elasticsearch-head服务

/usr/local/es/elasticsearch-head/node_modules/grunt/bin/grunt server

如果要后台启动

nohup /usr/local/es/elasticsearch-head/node_modules/grunt/bin/grunt server & exit

0x02:Logstash配置

Logstash其实就是一个收集器,使用时需要为它指定Input和Output(Input和Output可以为多个)。比如若把Java代码中Log4j的日志输出到ElasticSearch中,Input就是Log4j,而Output就是ElasticSearch。配置文件,这里配置输入filebeat.输出到ElasticSearch。

# bin/logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'

然后随意输入hello 回车,然后看看返回结果。

bin目录新建 logstash.conf。然后通过 bin/logstash -f logstash.conf 这样的形式来运行。此外,logstash 还提供一个方便我们规划和书写配置的小功能。可以直接用 bin/logstash -f /etc/logstash.d/ 来运行。logstash 会自动读取 /etc/logstash.d/ 目录下所有 *.conf 的文本文件,然后在自己内存里拼接成一个完整的大配置文件,再去执行。新建 logstash.conf

遇到的问题:

(/usr/local/elk/elasticsearch-6.6.0/logs/master-node.log) java.io.FileNotFoundException:

/usr/local/elk/elasticsearch-6.6.0/logs/master-node.log (Permission denied) java.io.FileNotFoundException: /usr/local/elk/elasticsearch-6.6.0/logs/master-node.log (Permission denied)

修改log日志文件的所属权【选操作,如果已经是要启动的用户,则无视】

修改logs/master-node.log

chown elsearch master-node.log

chgrp elsearch master-node.log

异常 IllegalStateException

Caused by: java.lang.IllegalStateException: failed to obtain node locks, tried [[/opt/elasticsearch-5.5.2/data/ymq]] with lock id [0]; maybe the

删除安装目录下/data

rm -rf nodes

0x03: Kibana

配置文件, 在kibana的config目录下kibana.yml

代码语言:javascript
代码运行次数:0
运行
复制
   #  Kibana is served by a back end server. This setting specifies the port to use.


   server.port: 5601


   # To allow connections from remote users, set this parameter to a non-loopback address.


  server.host: "localhost"


  # The URL of the Elasticsearch instance to use for all your queries.


  # 这里配置的Elasticsearch的链接地址


  elasticsearch.url: "http://192.168.2.12:9200"


  # Kibana uses an index in Elasticsearch to store saved searches, visualizations and


  # dashboards. Kibana creates a new index if the index doesn't already exist.


  kibana.index:  ".kibana"

0x04: filebeats 安装

代码语言:javascript
代码运行次数:0
运行
复制
 wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.6.0-linux-x86_64.tar.gz


 tar -zxvf filebeat-6.6.0-linux-x86_64.tar.gz

filebeat配置:

cd usr/local/elk/filebeat-6.6.0/

vim filebeat.yml

修改配置filebeat.yml:

- input_type: log

# Paths that should be crawled and fetched. Glob based paths.

paths:

- /var/log/*.log

- /opt/ywxt/log/*.log #修改扫描输入路径(可以配置多个路径)

屏蔽elasticsearch 配置

当filebeats配合logstash使用,需要手动load the index template in ElasticSearch,就是filberts直连ElasticSearch load 数据,命令如下:

./filebeat setup --template -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["172.19.208.138:9200"]

启动:

./filebeat -e -c filebeat.yml

默认的Elasticsearch需要的index template在安装Filebeat的时候已经提供,路径为/etc/filebeat/filebeat.template.json,可以使用如下命令装载该模板:

$ curl -XPUT 'http://localhost:9200/_template/filebeat?pretty' -d@/etc/filebeat/filebeat.template.json

当然,也不能忘了,每次修改完Filebeat的配置后,需要重启Filebeat才能让改动的配置生效。

修改filebeat配置

代码语言:javascript
代码运行次数:0
运行
复制
setup.template.name: "filebeat"


setup.template.fields: "fields.yml"


setup.template.overwrite: false


setup.template.settings:


   _source.enabled: false

Filebeat附带了示例Kibana仪表板,可视化和搜索,以便在Kibana中可视化Filebeat数据。在使用仪表板之前,需要创建索引模式filebeat-*,并将仪表板加载到Kibana中。为此,您可以运行setup命令(如此处所述)或在配置文件中配置仪表板加载filebeat.yml。(我这里暂时选用此种方式)

   filebeat setup --dashboards

../bin/logstash -f logstash.conf

这需要注意默认是开启es的,注释掉,配置logstsah

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 BUG弄潮儿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
Filebeat+Kafka+Logstash+Elasticsearch+Kibana 构建日志分析系统
随着时间的积累,日志数据会越来越多,当你需要查看并分析庞杂的日志数据时,可通过 Filebeat+Kafka+Logstash+Elasticsearch 采集日志数据到Elasticsearch(简称ES)中,并通过 Kibana 进行可视化展示与分析。
高楼Zee
2021/09/23
2.1K0
Filebeat+Kafka+Logstash+Elasticsearch+Kibana 构建日志分析系统
FileBeat + Kafka Logstash+ ElasticSearch+Kibana 搭建日志管理平台
除了kafka以外,其它四个均可以在elastic官网中下载,具体的可以在下载地址选择软件和版本进行下载,本文档都是基于6.0.0的版本操作的 Kafka可以在Apache中下载
BUG弄潮儿
2022/03/08
7420
FileBeat + Kafka Logstash+ ElasticSearch+Kibana 搭建日志管理平台
Spring Cloud + ELK 统一日志系统搭建
ELK 是 Elasticsearch、Logstash、Kibana 的简称,这三者是核心套件,但并非全部。
大数据真好玩
2021/01/26
3.4K0
容器部署日志分析平台ELK7.10.1(Elasisearch+Filebeat+Redis+Logstash+Kibana)
  ELK日志分析系统是Logstash、Elastcsearch、Kibana开源软件的集合,对外是作为一个日志管理系统的开源方案,它可以从任何来源、任何格式进行日志搜索、分析与可视化展示。
非著名运维
2022/06/22
1.3K0
容器部署日志分析平台ELK7.10.1(Elasisearch+Filebeat+Redis+Logstash+Kibana)
ELK+filebeat采集java日志
此文章是我在生产环境下搭建ELK日志系统的记录,该日志系统主要是采集Java日志,开发人员能通过kibanaWeb页面查找相关主机的指定日志;对于Java日志,filebeat已做多行合并、过滤行处理,更精准的获取需要的日志信息,关于ELK系统的介绍,这里不再赘述。
肓己
2021/08/12
1.8K0
ELK搭建,这才是看日志的正确姿势
ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。
一行Java
2022/04/07
7220
ELK搭建,这才是看日志的正确姿势
Elasticsearch + Logstash + Kibana 安装(全)
ELK架构为数据分布式存储、可视化查询和日志解析创建了一个功能强大的管理链。三者相互配合,取长补短,共同完成分布式大数据处理工作。
create17
2019/12/03
2K0
Elasticsearch + Logstash + Kibana 安装(全)
Docker 入门到实战教程(十二)ELK+Filebeat搭建日志分析系统
一般我们需要进行日志分析场景:直接在日志文件中 grep、awk 就可以获得自己想要的信息。但在规模较大的场景中,此方法效率低下,面临问题包括日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询。需要集中化的日志管理,所有服务器上的日志收集汇总。常见解决思路是建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问。
小东啊
2020/07/23
4.8K1
Docker 入门到实战教程(十二)ELK+Filebeat搭建日志分析系统
kubernetes Filebeat+ELK日志收集监控方案
接收来自filebeat的数据,根据其中的tags进行分类,再添加index进行分类,例如nginx-access-%{+YYYY.MM.dd},在kibana中会根据这个index获取日志。
kubernetes中文社区
2019/06/24
3.2K0
kubernetes  Filebeat+ELK日志收集监控方案
filebeat+logstash配置搭建 原
版本:filebeat-6.0.0、logstash-6.0.0、elasticsearch-6.0.0、kibana-6.0.0
用户1409099
2019/05/14
1.4K0
通过ELK快速搭建集中化日志平台
在项目初期的时候,大家都是赶着上线,一般来说对日志没有过多的考虑,当然日志量也不大,所以用log4net就够了,随着应用的越来越多,日志散落在各个服务器的logs文件夹下,确实有点不大方便,这个时候就想到了,在log4net中配置 mysql的数据源,不过这里面有一个坑,熟悉log4net的同学知道写入mysql有一个batch的阈值,比如说batchcache中有100条,才写入mysql,这样的话,就有一个延迟的效果,而且如果batchcache中不满100条的话,你在mysql中是看不到最新的100条日志。而且采用中心化的mysql,涉及到tcp传输,其中的性能大家也应该明白,而且mysql没有一个好的日志界面,只能自己去写UI,所以还还得继续寻找其他的解决方案,也就是本篇的ELK。
星哥玩云
2022/07/19
6782
通过ELK快速搭建集中化日志平台
Linux安装ELK日志平台(7.5.1)
一般我们需要进行日志分析场景:直接在日志文件中 grep、awk 就可以获得自己想要的信息。但在规模较大也就是日志量多而复杂的场景中,此方法效率低下,面临问题包括日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询。需要集中化的日志管理,所有服务器上的日志收集汇总。常见解决思路是建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问。
子润先生
2021/07/07
1.8K1
ELK学习笔记之CentOS 7下ELK(6.2.4)++LogStash+Filebeat+Log4j日志集成环境搭建
现在的公司由于绝大部分项目都采用分布式架构,很早就采用ELK了,只不过最近因为额外的工作需要,仔细的研究了分布式系统中,怎么样的日志规范和架构才是合理和能够有效提高问题排查效率的。
Jetpropelledsnake21
2018/12/05
2.1K0
ELK学习笔记之CentOS 7下ELK(6.2.4)++LogStash+Filebeat+Log4j日志集成环境搭建
Centos 7.3 简便搭建EFK日志分析
EFK 不是一个软件,而是一套解决方案。EFK 是三个开源软件的缩写,Elasticsearch,FileBeat,Kibana。其中 ELasticsearch 负责日志分析和存储,FileBeat 负责日志收集,Kibana 负责界面展示。它们之间互相配合使用,完美衔接,高效的满足了很多场合的应用,是目前主流的一种日志分析系统解决方案。 EFK 和 ELK 只有一个区别, 收集日志的组件由 Logstash 替换成了 FileBeat,因为 Filebeat 相对于 Logstash 来说有2个好处:
小手冰凉
2020/03/06
1.9K0
Centos 7.3 简便搭建EFK日志分析
EFK(Elasticsearch+Filebeat+Kibana)日志收集系统
Elasticsearch 是一个实时的、分布式的可扩展的搜索引擎,允许进行全文、结构化搜索,它通常用于索引和搜索大量日志数据,也可用于搜索许多不同类型的文档。
Java架构师必看
2021/06/10
19.8K2
EFK(Elasticsearch+Filebeat+Kibana)日志收集系统
安装 ELK 7.1.1
这是一篇搭建 ELK 集群的文章,主要涉及3大组件 elasticsearch、logstash 和 kibana 以及一个日志收集代理 filebeat的安装,通过部署 ELK 建立对其感性的认识。
懒人的小脑
2019/07/03
2.2K0
安装 ELK 7.1.1
ELK 环境搭建
ELK 其实是Elasticsearch、Logstash和Kibana三个产品的首字母缩写,这三款都是开源产品。
默存
2022/12/03
7170
使用 Filebeat 采集 Nginx 日志发送 ElasticSearch
可以使用 Filebeat 采集服务日志发送到 ElasticSearch 中进行搜索查看,这种方式体验好、效率高。
软件书桌
2024/05/07
8660
Docker安装elasticsearch、kibana和logstash,实现ELK[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/143946.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/26
2.3K2
Docker安装elasticsearch、kibana和logstash,实现ELK[通俗易懂]
搭建ELK日志分析平台(下)—— 搭建kibana和logstash服务器
笔记内容:搭建ELK日志分析平台——搭建kibana和logstash服务器 笔记日期:2018-03-03
端碗吹水
2020/09/23
3.5K0
搭建ELK日志分析平台(下)—— 搭建kibana和logstash服务器
推荐阅读
相关推荐
Filebeat+Kafka+Logstash+Elasticsearch+Kibana 构建日志分析系统
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档