ELK之路第四步——整合!打通任督二脉

ELK之路第四步------整合!打通任督二脉

前言

在开始本篇之前,你需要用到如下知识和技术点:
ELK之路第一步------Elasticsearch集群的搭建以及踩坑记录
ELK之路第二步------可视化界面Kibana
ELK之路第三步------日志收集筛选logstash和filebeat

还是由于时间问题,本篇内容后面会作补充,例子都是引用的官方示例。

1.架构

在说架构之前,我们先回忆一下我们现在有什么

  1. 三台es集群,一主两从
  2. 主服务器上部署了Kibana
  3. 主服务器上部署了logstash
  4. 主服务器上部署了filebeat

这里简单说一下,为什么有了logstash的时候,还要引入filebeat,引入filebeat为何还要保留logstash:

logstash是运行在jvm上的,它非常庞大和笨重,而filebeat是作者用go开发的轻量级的替代品,删除了部分功能。所以我们引入filebeat来代替logstash的收集读取功能,但是logstash有非常强大的日志筛选功能,我们需要用到它。

综上所述,我们的架构图如下:

通过filebeat读取各种文件的类容,传输到logstash,logstash作了解析和筛选之后再发送到ES上面,然后通过Kibana可视化管理ES的数据。

2.下载资源

要引用官方的示例,我们需要两个资源:第一个是模拟日志数据weblog-sample.log,第二个是数据模版apache_template.json

第一个官网下载地址:https://github.com/liu-xiao-guo/beats-getstarted

第二个官网下载地址:https://github.com/elastic/examples/blob/master/Common Data Formats/apache_logs/logstash/apache_template.json

当然,不想搭梯子的也可以去我的资源中,免费下载,我已经上传。

3.整合开始

1.分别启动三个es

cd到es的解压目录

bash 复制代码
bin/elasticsearch -d

2.启动kibana

cd到kibana的解压目录

bash 复制代码
nohup ./bin/kibana &

3.新建filebeat_logstash.yml配置文件

里面的path,填上我们实际的weblog-sample.log文件所在的path,注意这里要用绝对路径,不要用相对路径

bash 复制代码
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /usr/local/logstash/logstash-7.3.0/weblog-sample.log
 
output.logstash:
  hosts: ["localhost:9900"]

4.修改logstash的启动配置文件

相较于前面文章,修改的点如下:

  • 修改logstash的input为beats
  • 修改useragent 里面的source为user_agent
  • 修改output,新增index,并且指定模板为前面下载的apache_template.json
bash 复制代码
input {
   beats {
    port => "9900"
  }
}

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }

  mutate {
    convert => {
      "bytes" => "integer"
    }
  }

  geoip {
    source => "clientip"
  }

  useragent {
    source => "user_agent"
    target => "useragent"
  }

  date {
    match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"]
  }

}

output {
  stdout {
    codec => dots {}
  }

  elasticsearch {
    hosts => ["localhost:9200"]
    user => "elastic"
    password => "elastic"

    index => "apache_elastic_example"
    template => "/usr/local/filebeat/filebeat-7.3.0-linux-x86_64/apache_template.json"
    template_name => "apache_elastic_example"
    template_overwrite => true
  }
}

5.启动logstash

bash 复制代码
bin/logstash -f logstash.conf

6.启动filebeat

bash 复制代码
bin/filebeat -e -c filebeat_logstash.yml

启动filebeat后,就可以看到控制台打印,已经开始读取数据了

7.Kibana查看

输入如下命令,查看索引

bash 复制代码
GET _cat/indices

可以看到,es中已经收集了weblog-sample.log中模拟的30万条数据。

4.结语

elk这系列的文章是比较潦草和急的,因为时间有限被中断了,我只能介绍出大致的用法,但是没有详细深入,后面有时间一定会把内容补上。

相关推荐
昱宸星光6 天前
ELK日志收集平台搭建
elk
认真的薛薛8 天前
2-监控:elk采集各种日志并出图
前端·chrome·elk
认真的薛薛9 天前
1-监控:elk部署与概念
elk
Sleep`12 天前
基于Suricata与ELK的网络流量检测
elk·数据可视化·suricata·流量
张小凡vip13 天前
从ELK到EFK日志管理架构的演进与实战部署
elk·架构·efk
叱咤少帅(少帅)18 天前
基于ELK 收集K8S的日志
elk·容器·kubernetes
一叶飘零_sweeeet22 天前
ELK 搭建实战:从 0 到 1 打通日志收集、分析与可视化
elk·kibana·es·logstash
黑棠会长22 天前
ELK 安全可观测系列开篇:把日志做成“防弹衣”的一部分
安全·elk·架构
程序员泠零澪回家种桔子1 个月前
微服务日志治理:ELK 栈实战指南
后端·elk·微服务·云原生·架构
虫小宝1 个月前
淘宝返利软件的日志审计系统:Java Logback+ELK Stack实现操作日志的可追溯与可视化分析
java·elk·logback