简介
Beats 是安装在服务器上的数据中转代理。
Beats 可以将数据直接传输到 Elasticsearch 或传输到 Logstash 。
Beats 有多种类型,可以根据实际应用需要选择合适的类型。
常用的类型有:
Packetbeat:网络数据包分析器,提供有关您的应用程序服务器之间交换的事务的信息。
Filebeat:从您的服务器发送日志文件。
Metricbeat:是一个服务器监视代理程序,它定期从服务器上运行的操作系统和服务收集指标。
Winlogbeat:提供Windows事件日志。
参考
更多 Beats 类型可以参考:community-beats
FileBeat 的作用
相比 Logstash,FileBeat 更加轻量化。
在任何环境下,应用程序都有停机的可能性。 Filebeat 读取并转发日志行,如果中断,则会记住所有事件恢复联机状态时所在位置。
Filebeat带有内部模块(auditd,Apache,Nginx,System和MySQL),可通过一个指定命令来简化通用日志格式的收集,解析和可视化。
FileBeat 不会让你的管道超负荷。FileBeat 如果是向 Logstash 传输数据,当 Logstash 忙于处理数据,会通知 FileBeat 放慢读取速度。一旦拥塞得到解决,FileBeat 将恢复到原来的速度并继续传播。
基于docker安装Filebeat
官网安装文档,请参考链接:
https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-installation.html
新建目录
mkdir /opt/filebeat
dockerfile
FROM ubuntu:16.04# 修改更新源为阿里云
ADD sources.list /etc/apt/sources.list
ADD filebeat-6.4.3-amd64.deb /ADD filebeat.yml /# 安装jdk
RUN apt-get update && apt-get install -y openjdk-8-jdk --allow-unauthenticated && apt-get clean all && \
dpkg -i filebeat-6.4.3-amd64.deb && rm -rf filebeat-6.4.3-amd64.deb && \
\cp filebeat.yml /etc/filebeat/filebeat.yml && rm -rf filebeat.yml
#EXPOSE 9092# 添加启动脚本
ADD run.sh .
RUN chmod 755 run.shENTRYPOINT [ "/run.sh"]
filebeat.yml
这个是默认的配置文件,已经去除了空行和注释部分
filebeat.inputs:- type: log
enabled: false
paths: - /var/log*.log
- /opt**/*/*.log
multiline.pattern: '^\d{4}\-\d{2}\-\d{2}'
multiline.negate: true
multiline.match: after
processors:
- drop_fields: # This is optional, doesn't make a difference
fields: ['@timestamp']
- rename:
fields:
- from: message
to: '@timestamp'
fail_on_error: true
#elasticsearch config
output.elasticsearch.hosts: ["192.168.0.24:9200"]
output.elasticsearch.index: "xxx-%{+yyyy.MM.dd}"
setup.template.name: "xxx"
setup.template.pattern: "xxx-*"
#setup.dashboards.index: "customname-*"
#filebeat
filebeat.registry_file: /var/log/filebeat/filebeat-reg
logging.to_files: true
logging.files:
path: /var/log/filebeat/logs
如果需要屏幕和文件日志同时写入,使用命令
filebeat -c filebeat.yml -e -d "*"
本文参考链接:
https://www.cnblogs.com/jingmoxukong/p/8185321.html