elk和efk的搭建

elk和efk的搭建

每天多学一点点~
话不多说,这就开始吧…

1.前言

上篇说到了canal,年前最后一篇,elk和ekf的搭建
往期专题博客

2. 架构演变

为什么要elk?

1.日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询
2.应用太多,面临数十上百台应用时你该怎么办
3.随意登录服务器查询log对系统的稳定性及安全性肯定有影响
4.如果使用人员对Linux不太熟练那面对庞大的日志简直要命。
ELK因此就应运而生

ELK主要是三个核心组件:
E:ElasticSearch,索引库 存储日志
L:Logstash 收集日志(有很多种替代的方案)
K:Kibana 前台展示

1.elk基础架构
在这里插入图片描述
2. efk基础架构
ELK的变种:
因为其Logstash部署一般比较吃内存,在机器资源不够的情况一般可以采取以下方法:
放弃logstash 直接引入filebeat。变成 filebeat+es+kibana(EFK):此种架构非常适合中小型简单的日志收集系统。因为logstash里面提供了一些丰富的过滤功能,其实一般很多系统都用不上,所以就可以直接采用filebeat进行日志的收集。
在这里插入图片描述

3.filebeat+logstah架构
FELK:filebeat+logstash+es+kibana。此种设计适合需要丰富采集日志信息的系统,可部署一台Logstash用于接收filebeat收集到的日志进行集中的过滤后再传给es。当然你要是机器足够的话 Logstash也可以部署集群减轻压力。

在这里插入图片描述
4. filebeat+消息中间件架构
个性化框架:(采集到的日志需要进行加工或者多方需要的情况)引入kafka或者redis。一般也会采用Filebeat+(消息中间件)+logstash(也可以不要,直接通过消息中间件入es)+es+kibana。

在这里插入图片描述

一般来说其实第一种和第二种用的更多,博主公司就准备用第二种(logstash占内存太大),毕竟穷,服务器不行~

3. elk的部署

分布式微服务,每个服务器都要安装logstash,配置都一样

1.版本:我们选择的仍然是6.6.0 注意这三个组件的版本要完全一致,否则会出现意想不到的错误。
2.Es部署:之前说过
3.Kibana部署:之前说过
4.logstash部署:往下看

3.1 官方下载
官方下载地址
3.2 版本
elasticsearch 6.6.0,kibana6.6.0 ,logstash6.6.0三个版本(注意 JDK需要1.8)
4.3 安装logstash
(1)解压
(2)修改jvm配置
我这里因为虚拟机太小,改成512m,默认是1g
在这里插入图片描述
(3)新建 my-logstash.conf 文件 ,做好input ,filter,output三大块, 其中input是吸取logs文件下的所有log后缀的日志文件,filter是一个过滤函数,这里不用配置,output配置了导入到

#输入
input {
        file {
                type => "log"   #自定义 随便起
                path => ["/home/zjq/web/jars/logs/*.log"] # 你要检测的日志的路径
                start_position => "end"  # 从上一次末尾开始读
                ignore_older => 0 
                # 关键配置,合并日志   
                codec=> multiline {
                        #因为博主这里是springboot项目,所以日志都是以 2020-01-12 17:05:08.854开头的
                        # 如果出现异常不会有日期,所以将有日期开头的合并到一起,直到有下一个出现
                        pattern => "^\d{4}-\d{1,2}-\d{1,2}\s\d{1,2}:\d{1,2}:\d{1,2}"
                        negate => true
                        # 每5s刷新一次
                        auto_flush_interval => 5 
                        what => "previous"
                }
        }
        beats {
            port => 5044
        }
}
# 输出
output {
        if [type] == "log" {
                elasticsearch {
                        hosts => ["http://127.0.0.1:19200"]  # 本地的es,集群也只需要配置一个
                        index => "logstash-%{+YYYY.MM}" # es的集合,以logstash开头,每一月建一个索引
                        #user => es   如果之前用nginx配置账号密码,就加上
                        #password => zjq
                }
        }
}

(4)bin目录下启动logstash了,配置文件设置为my-logstash.conf
启动命令

./bin/logstash -f my-logstash.conf  # 指定配置文件启动
nohup ./bin/logstash -f my-logstash.conf & # 指定配置文件启动 后台启动

在这里插入图片描述
启动成功

3.4 测试logstash
去kibana控制台看下
在这里插入图片描述
现在是啥都没有,没显示日志

启动一个springboot项目
博主这里用logbacj配置了日志,所以就不需要nohup.out文件了

nohup java -jar myesstudy.jar>/dev/null 2>&1&

在这里插入图片描述
日志已经在报错了

再去刷新下kibana控制台
在这里插入图片描述
出现了 logstash-2020.01 日志 索引
在这里插入图片描述
再去这里做个配置

在这里插入图片描述
在这里插入图片描述
创建logstash-* 索引,以时间戳为filed

这样索引创建好了之后,就可以去Discover搜索了,也可以直接去DEV TOOLS去查
注意:日志是不分词的,日志要啥分词,肯定不分的,为了更准确的查找

这样elk就配置好了,但是logstash还是太重了,下面介绍轻量级方案,efk

4. efk的部署

2.1 官方下载
官方下载地址
2.2 版本
elasticsearch 6.6.0,kibana6.6.0 ,filebeat-6.6.0-linux-x86_64三个版本(注意 JDK需要1.8)
2.3 安装filebeat
(1)解压
(2)修改配置文件 filebeat.yml

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /home/zjq/web/jars/logs/*.log
  multiline:
    pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
    negate: true
    match: after
    max_lines: 1000
    timeout: 3s
output.elasticsearch:        # 直接配置到es
  hosts: ["127.0.0.1:19200"]  # es地址
  index: "log-%{+yyyy.MM}"   # 索引名
setup.template.name: "filebeat"    # 如果加了index,这两个一定要配置,否则报错
setup.template.pattern: "filebeat-*"

(3)启动

./filebeat -e -d filebeat.yml  # 指定配置文件启动
nohup ./filebeat -e -d filebeat.yml & # 指定配置文件启动,后台启动

在这里插入图片描述
启动成功,按照elk的搭建方法,去kibana创建索引log-*

在这里插入图片描述
去discover检索一下

在这里插入图片描述
在这里插入图片描述

efk搭建完成,微服务架构也是一样的,在多台服务器上安装filebeat就好

5.结语

世上无难事,只怕有心人,每天积累一点点,fighting!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值