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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ELK+Filebeat+Kafka+Zookeeper构建大数据日志分析平台三相关的知识,希望对你有一定的参考价值。


安装并配置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




配置项的含义介绍如下:




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


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



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


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 任意一个节点上,消费输出日志内容如下 :



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


注意上述内容在/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]#


目前到以下阶段



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



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 inputstdin outputstdoutcodec=>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作为转发节点


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



ELK+Filebeat+Kafka+Zookeeper构建大数据日志分析平台三_配置文件_05


如果成功,则会有数据输入到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 &



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


数据流程图:



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


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


以上是关于ELK+Filebeat+Kafka+Zookeeper构建大数据日志分析平台三的主要内容,如果未能解决你的问题,请参考以下文章

ELK + Kafka + Filebeat

Kafka架构及Filebeat+Kafka+ELK集群搭建

Kafka架构及Filebeat+Kafka+ELK集群搭建

ELK+kafka+filebeat搭建生产ELFK集群 --markdown 语法

EFLFK——ELK日志分析系统+kafka+filebeat架构

ELK+Filebeat+Kafka分布式日志管理平台搭建