ELK+Filebeat+Kafka+Zookeeper构建大数据日志分析平台三

126 阅读5分钟

​本文已参与「新人创作礼」活动,一起开启掘金创作之路。

安装并配置Filebeat

Filebeat与filebeat比较

Logstash缺点:

依赖java、在数据量大的时候,Logstash进程会消耗过多的系统资源,

严重影响业务系统的性能

filebeat优点:

基于Go语言,没有任何依赖

配置文件简单,格式明了

filebeat比logstash更加轻量级

所以占用系统资源极少,非常适合安装在生产机器上。

1、解压安装Filebeat到指定目录

[root@filebeatserver ~]# tar -zxvf filebeat-6.3.2-linux-x86_64.tar.gz -C /usr/local
[root@filebeatserver ~]# mv /usr/local/filebeat-6.3.2-linux-x86_64  /usr/local/filebeat

2、修改 /usr/local/filebeat/filebeat.yml配置文件

#为了整洁,先注释掉原来的,添加下列内容

filebeat.inputs:
- type: log
  enabled: true
  paths:
   - /var/log/messages
   - /var/log/secure
  fields:
    log_topic: osmessages
name: "192.168.126.130" #可以输入本机IP
output.kafka:
  enabled: true
  hosts: ["192.168.126.129"]    #卡夫卡集群IP
  version: "0.10"
  topic: '%{[fields][log_topic]}'
  partition.round_robin:
    reachable_only: true
  worker: 2
  required_acks: 1
  compression: gzip
  max_message_bytes: 10000000
logging.level: debug

配置项的含义介绍如下:

​编辑

3、在后台启动并将结果输出到文件中

​编辑

4、验证 filebeat输出信息格式解读

这里以操作系统中/var/log/secure文件的日志格式为例,选取一个SSH登录系统失败的日志,内容如下:

Jan 31 17:41:56 localhost sshd[13053]: Failed password for root from 172.16.213.37 port 49560 ssh2

filebeat接收到/var/log/secure日志后,会将上面日志发送到kafka集群,在kafka任意一个节点上,消费输出日志内容如下:

​编辑

注意上述内容在/usr/local/filebeat/nohup.out文件中查看

删除不需要的字段,在filebeat配置文件中添加如下配置,

processors:

- drop_fields:

fields: ["beat", "input", "source", "offset"]

#注意

这个设置表示删除"beat"、"input"、"source"、"offset" 四个字段,其中, @timestamp 和@metadata字段是不能删除的。做完这个设置后,再次查看kafka中的输出日志,已经不再输出这四个字段信息了。

查找 filebeat进程ID和停止filebeat

[root@localhost filebeat]# pgrep -f filebeat

17447

#批量停止

[root@localhost filebeat]#  kill -9 `pgrep -f filebeat`
[root@localhost filebeat]#

目前到以下阶段

​编辑

1、安装部署Logstash

功能主要分为接收数据、解析过滤并转换数据、输出数据三个部分

对应的插件依次是input插件、filter插件、output插件,其中,filter插件是可选的,其它两个是必须插件。也就是说在一个完整的Logstash配置文件中,必须有input插件和output插件。

1.1解压并重命名(记得像那样先安装java环境)

[root@logstashserver ~]# tar -zxvf logstash-6.3.2.tar.gz -C /usr/local
[root@logstashserver ~]# mv /usr/local/logstash-6.3.2  /usr/local/logstash

kafka的配置文件目录为/usr/local/logstash/config/,其中,jvm.options是设置JVM内存资源的配置文件,logstash.yml是logstash全局属性配置文件,另外还需要自己创建一个logstash事件配置文件

2、启动 logstash

cd /usr/local/logstash
[root@localhost logstash]# bin/logstash -e 'input{stdin{}} output{stdout{codec=>rubydebug}}'
......
在终端输入信息。这里我们输入"Hello",按回车,会有返回结果,内容如下:
{
    "@timestamp" => 2022-04-18T08:43:48.656Z,
          "host" => "localhost.localdomain",
      "@version" => "1",
       "message" => "hello"
}

3、第二种启动方式

创建 logstash-1.conf文件添加以下内容

input { stdin { }
}
output {
   stdout { codec => rubydebug }
}

启动

bin/logstash -f logstash-1.conf

另一个文件配置实例

input {
        file {
        path => "/var/log/messages"
    }
}


output {
   stdout { codec => rubydebug }
}

注意:

如果需要监控多个文件,可以通过逗号分隔即可,例如:

path => ["/var/log/*.log","/var/log/message","/var/log/secure"]

  接着把logstash_in_stdout.conf文件稍加修改,变成另外一个事件配置文件logstash_in_kafka.conf,内容如下:
input {
        file {
        path => "/var/log/messages"
    }
}
output {
    kafka {
    bootstrap_servers => "192.168.126.129:9092"    #可以配置多个集群
        topic_id => "osmessages"
        }
}

4、配置logstash作为转发节点

4.1新建 kafka_os_into_es.conf

input {
        kafka {
        bootstrap_servers => "192.168.126.129:9092"    #可以配置多台服务器节点,用逗号隔开
        topics => ["osmessages"]
        }
}
output {
        elasticsearch {
        hosts => ["192.168.126.128:9200"]     #可以配置多台服务器节点,用逗号隔开
        index => " osmessageslog-%{+YYYY-MM-dd}"
        }
}

5、再次启动

[root@localhost logstash]# pwd
/usr/local/logstash

[root@localhost logstash]# nohup bin/logstash -f config/kafka_os_into_es.conf &
[1] 18332

​编辑

如果成功,则会有数据输入到ES

6.9、安装并配置kibana展示日志数据

1、解压安装

[root@localhost ~]# tar -zxvf kibana-6.3.2-linux-x86_64.tar.gz -C /usr/local
[root@localhost ~]# mv /usr/local/kibana-6.3.2-linux-x86_64  /usr/local

2、修改配置文件

vim  /usr/local/kibana/kibana.yml,Kibana
server.port: 5601
server.host: "192.168.126.128"    #ES-server-2的ip
elasticsearch.url: "http://192.168.126.128:9200"    #ES-server-3的ip

3、启动:

[root@localhost kibana]# pwd
/usr/local/kibana
[root@localhost kibana]# nohup bin/kibana &

​编辑

数据流程图:

​编辑

到现在是搭建完了,后续将会进行展示。