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

相关推荐
Karoku06615 小时前
【企业级分布式系统】ELK-企业级日志分析系统
运维·数据库·redis·mysql·elk·缓存
一名技术极客1 天前
徒手从零搭建一套ELK日志平台
elk
jun7788953 天前
SpringBoot整合ELK使用详解
spring boot·后端·elk
yueqingll3 天前
023、ELK 从入门到实践
elk
abandondyy3 天前
ELK Elasticsearch 集群部署
大数据·elk·elasticsearch
小李叭叭叭3 天前
ELK8.15.4搭建开启安全认证
运维·elk·elasticsearch·kibana
光仔December11 天前
【Elasticsearch入门到落地】1、初识Elasticsearch
大数据·elk·elasticsearch·搜索引擎·lucene
太空眼睛12 天前
【EFK】Linux集群部署Elasticsearch最新版本8.x
linux·elk·elasticsearch·efk·master·8.15.3·node.roles
Shenqi Lotus15 天前
ELK-ELK基本概念_ElasticSearch的配置
elk·elasticsearch