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
配置项的含义介绍如下:
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 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
如果成功,则会有数据输入到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构建大数据日志分析平台三的主要内容,如果未能解决你的问题,请参考以下文章
Kafka架构及Filebeat+Kafka+ELK集群搭建
Kafka架构及Filebeat+Kafka+ELK集群搭建
ELK+kafka+filebeat搭建生产ELFK集群 --markdown 语法