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

相关推荐
程序员泠零澪回家种桔子3 天前
微服务日志治理:ELK 栈实战指南
后端·elk·微服务·云原生·架构
虫小宝4 天前
淘宝返利软件的日志审计系统:Java Logback+ELK Stack实现操作日志的可追溯与可视化分析
java·elk·logback
一点事7 天前
windows:ELK搭建(单机)
windows·elk·jenkins
没有bug.的程序员9 天前
Spring Boot 日志管理:从 Logback 深度配置到 ELK 万亿级日志中枢实战
java·spring boot·elk·logback·日志·管理
橙露10 天前
日志分析与监控:ELK栈(Elasticsearch+Logstash+Kibana)搭建全流程指南
大数据·elk·elasticsearch
信创天地12 天前
国产化数据库深度运维:性能调优与故障排查实战指南
运维·数据库·安全·elk·自动化·rabbitmq
yangminlei15 天前
Elasticsearch 全面解析:从原理到实战的分布式搜索引擎指南
java·elk
我爱娃哈哈15 天前
SpringBoot + ELK + MDC:分布式系统日志追踪,快速定位跨服务调用链问题
spring boot·后端·elk
信创天地17 天前
信创环境下数据库与中间件监控实战:指标采集、工具应用与告警体系构建
java·运维·数据库·安全·elk·华为·中间件
信创天地18 天前
信创日志全流程管控:ELK国产化版本与华为日志服务实战应用
运维·安全·elk·华为·rabbitmq·dubbo