当前位置: 首页 > news >正文

ELK集群部署---LogStash,Filebeat的部署

1.  环境规划:

主机名IP地址角色
node1192.168.56.111

ElasticSearch(master)

Zookeeper

Kafka

node2192.168.56.112

ElasticSearch(slave)

Kibana

Zookeeper

Kafka

node3192.168.56.113

ElasticSearch(slave)

Zookeeper

Kafka

node4192.168.56.114

Logstash

Filebeat

2.  node4节点已经安装jdk:

[root@node4 ~]# java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)

3.  安装LogStash和Filebeat:

[root@node4 ~]# yum localinstall -y logstash-7.2.0.rpm

[root@node4 ~]# yum localinstall -y filebeat-7.2.0-x86_64.rpm

4.  配置Filebeat:

[root@node4 ~]# cd /etc/filebeat/

[root@node4 filebeat]# cp filebeat.yml{,.bak}

##配置filebeat,从日志文件输入,输出到kafka
[root@node4 filebeat]# vim filebeat.yml

filebeat.inputs:
  - type: log
    enabled: true
    paths:
      - /var/log/httpd/access_log
    fields:
      type: httpd-access
    multiline.pattern: ^\[
    multiline.negate: true
    multiline.match: after

  - type: log
    enabled: true
    paths:
      - /var/log/httpd/error_log
    fields:
      type: httpd-error
    multiline.pattern: ^\[
    multiline.negate: true
    multiline.match: after

  - type: log
    enabled: true
    paths:
      - /var/log/mariadb/mariadb.log
    fields:
      type: mariadb
    multiline.pattern: ^\[
    multiline.negate: true
    multiline.match: after

output.kafka:
  hosts: ["192.168.56.111:9092","192.168.56.112:9092","192.168.56.113:9092"]  ##kafka集群节点
  topic: "%{[fields][type]}"  ##kafka的标题

multiline参数解析:1.  " multiline.type ":默认值是pattern。

                                2. " multiline.pattern ":匹配日志的正则,一般情况下会配置为从行首开始匹配。

                                3. " multiline.match,multiline.negate ":multiline.match追加的位置, multiline.negate是否为否定模式。

multiline.match为after,multiline.negate为true的意思就是从匹配的位置开始,只要是不满足匹配条件的,全部追加到匹配的那一行,直到再次遇到匹配条件的位置。

5.  配置logstash:

[root@node4 ~]# cd /etc/logstash/conf.d

##配置logstash:输入为kafka,输出为elasticsearch。
[root@node4 conf.d]# vim all.conf

input{
  kafka {
    bootstrap_servers => "192.168.56.111:9092,192.168.56.112:9092,192.168.56.113:9092"
    codec => json
    topics => "httpd-access"  ##匹配kafka中的主题
    consumer_threads => 1
    decorate_events => true
    type => "httpd-access"  ##用于输出时条件判断
  }

  kafka {
    bootstrap_servers => "192.168.56.111:9092,192.168.56.112:9092,192.168.56.113:9092"
    codec => json
    topics => "httpd-error"  ##匹配kafka中的主题
    consumer_threads => 1
    decorate_events => true
    type => "httpd-error"  ##用于输出时条件判断
  }

  kafka {
    bootstrap_servers => "192.168.56.111:9092,192.168.56.112:9092,192.168.56.113:9092"
    codec => json
    topics => "mariadb"  ##匹配kafka中的主题
    consumer_threads => 1
    decorate_events => true
    type => "mariadb"  ##用于输出时条件判断
  }

}

##输出时如果满足type的判断条件,就按照指定索引输出到elasticsearch上。
output {
  if [type] == "httpd-access" {
    elasticsearch {
      hosts => ["192.168.56.111:9200","192.168.56.112:9200","192.168.56.113:9200"]
      index => "httpd-accesslog-%{+yyyy.MM.dd}"
    }
  }

  if [type] == "httpd-error" {
    elasticsearch {
      hosts => ["192.168.56.111:9200","192.168.56.112:9200","192.168.56.113:9200"]
      index => "httpd-errorlog-%{+yyyy.MM.dd}"
    }
  }

  if [type] == "mariadb" {
    elasticsearch {
      hosts => ["192.168.56.111:9200","192.168.56.112:9200","192.168.56.113:9200"]
      index => "mariadblog-%{+yyyy.MM.dd}"
    }
  }
}

6.  测试Filebeat和LogStash是否可以成功采集到日志。

[root@node4 ~]# cd /etc/filebeat

[root@node4 filebeat]# filebeat -e -c filebeat.yml

另起一个终端启动logstash:
[root@node4 ~]# cd /etc/logstash/conf.d

[root@node4 conf.d]# logstash -f all.conf

访问apache http和登录mariadb,查看elasticsearch上是否采集到指定索引的日志。

如果想以服务方式启动filebeat和logstash,filebeat配置文件名就要是filebeat.yml;logstash配置文件必须要在/etc/filebeat/conf.d目录下,并且后缀为".conf"。 

[root@node4 ~]# systemctl start filebeat.service

[root@node4 ~]# systemctl start logstash.service

相关文章:

  • 人工智能和大模型的简介
  • CS61C 2020计算机组成原理Lecture01-数字表示,溢出
  • 人工智能和机器学习:探讨人工智能和机器学习的最新发展、应用、挑战和未来趋势
  • react 基础语法
  • CANopen协议的理解
  • SAP B1 单据页面自定义 - 用户界面编辑字段
  • C语言printf()大全
  • DOM 通过className修改样式
  • OpenHarmony Docker移植实践
  • 云端技术驾驭DAY13——Pod污点、容忍策略、Pod优先级与抢占、容器安全
  • 【GB28181】wvp-GB28181-pro部署安装教程(Ubuntu平台)
  • 计算机体系架构初步入门
  • 不同类型单板布线策略6大类
  • docker简单使用笔记
  • Scala 基础函数
  • 105.(leaflet之家)leaflet态势标绘-聚集地修改
  • Python游戏开发之Dungeon Crawler 游戏源码大全
  • js实现匹配到文字设置为红色
  • 如何修改图片的分辨率和大小?在线图片编辑器的使用攻略
  • 【TypeScript】TS类型声明(二)
  • 自学Python学习经验分享
  • 写出更现代化的Python代码:聊聊 Type Hint
  • 21. 【gRPC系列学习】压缩算法Compressor
  • 三.keepalived介绍及工作原理
  • 关于IDEA中properties文件属性选择的问题
  • maven私服
  • 4.triton c++使用
  • IDEA反编译Jar包
  • 五步法搞定BI业务需求梳理
  • 二、LVS的安装部署
  • MindSpore 实现unflod和flod
  • 一文看懂Linux内核页缓存(Page Cache)