前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >FileBeat + Kafka Logstash+ ElasticSearch+Kibana 搭建日志管理平台

FileBeat + Kafka Logstash+ ElasticSearch+Kibana 搭建日志管理平台

作者头像
BUG弄潮儿
发布2022-03-08 10:54:11
6780
发布2022-03-08 10:54:11
举报
文章被收录于专栏:JAVA乐园

管理平台流程

环境准备

  • elasticsearch-6.0.0.tar.gz
  • filebeat-7.0.1-linux-x86_64.tar.gz
  • kibana-6.0.0-linux-x86_64.tar.gz
  • logstash-6.0.0.tar.gz
  • kafka_2.11-2.1.1.tgz

除了kafka以外,其它四个均可以在elastic官网中下载,具体的可以在下载地址选择软件和版本进行下载,本文档都是基于6.0.0的版本操作的 Kafka可以在Apache中下载

本文档均是基于CentOS Linux release 7.2.1511 (Core) 64位系统安装部署的,查看版本和位数可以使用如下命令

  • cat /etc/centos-release:查看版本号
  • getconf LONG_BIT:查看位数

安装及部署

因为是基于Java的,所以在部署之前,要先确保系统上安装了Jdk,本系统安装的Jdk版本为1.8 所有的文件都放在/usr/elk/下

Kibana部署
  1. 解压文件
代码语言:javascript
复制
[root@localhost elk]# tar -zxvf kibana-6.0.0-linux-x86_64.tar.gz
  1. 修改配置,修改/conf/kibana.yml文件
代码语言:javascript
复制
# 设置elasticsearch地址
elasticsearch.url: "http://localhost:9200"
server.host: 0.0.0.0
elasticsearch部署
  1. 解压文件
代码语言:javascript
复制
[root@localhost elk]# tar -zxvf elasticsearch-6.0.0.tar.gz
  1. 启动该项目的时候,不能使用root权限,所以要新建一个用户来启动
代码语言:javascript
复制
# 新建一个组
[root@localhost elk]# groupadd elkgroup
# 在该组下新增用户 useradd 用户名 -g 组名 -p 密码
[root@localhost elk]# useradd elkuser -g elkgroup -p 123456
# 赋权限 chown -R 用户名:组名 文件
[root@localhost elk]# chown -R elsearch:elsearch elasticsearch-6.0.0
# 切换用户并且启动elasticsearch
[root@localhost elk]# su elkuser
[elkuser@localhost elasticsearch-6.0.0]$ ./bin/elasticsearch
logstash部署
  1. 解压文件
代码语言:javascript
复制
[root@localhost elk]# tar -zxvf logstash-6.0.0.tar.gz
  1. 在conf目录下新建一个配置文件logstash.conf
代码语言:javascript
复制
input{
   file{
      type=>"log"
      path=>"/usr/logs/*.log"
      start_position=>"beginning"
   }
}

output{
   stdout{
       codec=>rubydebug{}
   }

elasticsearch{
       hosts=>"127.0.0.1"
      index=>"log-%{+YYYY.MM.dd}"
   }
}
  1. 根据配置文件启动
代码语言:javascript
复制
[root@localhost elk]# ./logstash -f ../config/logstash.conf
代码语言:javascript
复制
复制代码
Kafka部署
  1. 安装glibc
代码语言:javascript
复制
[root@localhost elk]# yum -y install glibc.i686
  1. 配置zookeeper
代码语言:javascript
复制
[root@localhost elk]# vi config/zookeeper.properties 
# 配置内容
dataDir=/data/programs/kafka_2.11-0.10.0.0/data
dataLogDir=/data/programs/kafka_2.11-0.10.0.0/logs
clientPort=2181
maxClientCnxns=100
tickTime=2000
initLimit=10
# 配置完成保存退出,然后根据配置启动zookeeper
[root@localhost kafka_2.11-2.1.1]# ./bin/zookeeper-server-start.sh config/zookeeper.properties
  1. 配置kafka文件
代码语言:javascript
复制
[root@localhost kafka_2.11-2.1.1]# vi config/server.properties
# 配置内容
broker.id=0
port=9092
host.name=127.0.0.1
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/data/logs/kafka
num.partitions=2
num.recovery.threads.per.data.dir=1
log.retention.check.interval.ms=300000
zookeeper.connect=localhost:2181
zookeeper.connection.timeout.ms=6000
# 配置完成保存退出,然后根据配置启动kafka
[root@localhost kafka_2.11-2.1.1]# ./bin/kafka-server-start.sh config/server.properties

在启动过程中,可能会提示内存不足,

代码语言:javascript
复制
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 1073741824, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 1073741824 bytes for committing reserved memory.
# An error report file with more information is saved as:

因为默认kafka配置的为1G,所以修改启动配置

代码语言:javascript
复制
将 /bin/kafka-server-start.sh的
export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
修改为
export KAFKA_HEAP_OPTS="-Xmx256M -Xms128M"

然后重新启动就可以了

fileBeat部署
  1. 修改filebeat.yml配置
代码语言:javascript
复制
[root@localhost filebeat-7.0.1-linux-x86_64]# vi filebeat.yml
# 新增输出到kafka配置,该配置是yml格式,所以配置的时候要符合yml规范
#--------------------------- kafka output ----------------------------------
output.kafka:
enabled: true
hosts: ["127.0.0.1:9092"]
topic: test
# 并且修改相关配置
enabled: true
# 获取日志的路径
paths:
    - /home/elk/log/access.log
# 日志标签,在kibana中查看数据可以找到该标签,并且可以根据该tag标签过滤查找数据
tags: ["nginx-accesslog"]
# 启动服务
[root@localhost filebeat-7.0.1-linux-x86_64]# ./filebeat -e
问题及注意点

在启动logstash的时候报了一个小问题,提示 Connection to node -1 could not be established. Broker may not be available. 该问题是由于开始我启动kafka的时候配置的host.name=10.12.1.52,这个地址是服务器的地址,但是在logstash中配置的kafka地址为127.0.0.1导致的 注意点:

  • logstash的配置
  • kafka的队列名要对应
代码语言:javascript
复制
清风许许
https://juejin.cn/post/6844903845970051080
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-16,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 管理平台流程
  • 环境准备
  • 安装及部署
    • Kibana部署
      • elasticsearch部署
        • logstash部署
          • Kafka部署
            • fileBeat部署
              • 问题及注意点
              相关产品与服务
              Elasticsearch Service
              腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档