安装并配置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: "172.23.148.63"
output.kafka:
enabled: true
hosts: ["172.23.148.60:9092", "172.23.148.61:9092", "172.23.148.62:9092"]
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
常用插件
logstash的配置文件目录为/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-2.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 => "172.23.148.60:9092,172.23.148.61:9092,172.23.148.62:9092" #输入kafka集群节点IP
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
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 &
数据流程图:
到现在是搭建完了,后续将会进行展示。