共计 2974 个字符,预计需要花费 8 分钟才能阅读完成。
简介:
Filebeat 是一款轻量级的日志传输工具,它有输入和输出两端,通常是从日志文件中读取数据,输出到 Logstash 或 Elasticsearch。其作用是收集业务服务器的日志,输出到一个日志系统便于集中管理。
官网:https://www.elastic.co/cn/products/beats/filebeat
安装
系统环境:CentOS 6.x
软件版本:filebeat-6.4.0-x86_64.rpm
直接从官网下载 RPM 包,使用 rpm -ivh filebeat-6.4.0-x86_64.rpm 安装即可。
配置
•主配置文件 /etc/filebeat/filebeat.yml
###################### Filebeat Configuration Example #########################
#=========================== Filebeat inputs =============================
filebeat.inputs:
# Each – is an input. Most options can be set at the input level, so
# you can use different inputs for various configurations.
# Below are the input specific configurations.
# 这里每一个 type 表示定义了一个日志读取源,这个源是收集 Nginx 的访问日志
– type: log
enabled: true
paths:
– /usr/log/nginx/access/access.log
fields_under_root: true
fields:
alilogtype: nginxacclog
# 收集某一个服务的错误日志
– type: log
enabled: true
paths:
– /var/www/service/storage/logs/error.log
fields_under_root: true
fields:
alilogtype: service_error
serverip: ${serverip}
# 收集某一个服务的错误日志,并且使用了多行合并
– type: log
enabled: true
paths:
– /var/www/user_center/storage/logs/SERVER*.log
fields_under_root: true
fields:
alilogtype: usercenter_serverlog
serverip: ${serverip}
multiline.pattern: ‘^\[‘
multiline.negate: true
multiline.match: after
#============================= Filebeat modules ===============================
filebeat.config.modules:
# Glob pattern for configuration loading
path: ${path.config}/modules.d/*.yml
# Set to true to enable config reloading
reload.enabled: false
# Period on which files under path should be checked for changes
#reload.period: 10s
#================================ Outputs =====================================
#————————– Elasticsearch output ——————————
# 这部分是用于配置日志输出到 Elasticsearch 的部分
#—————————– Logstash output ——————————–
# 将日志发送到 logstash 主机的 5044 端口,对应的这台 logstash 主机需要配置一个 input 监听于 5044(配置过程,参考 Logstash 文档)
output.logstash:
hosts: [“10.26.10.15:5044”]
参数解释:
## 默认值 log,表示一个日志读取源
type : log
## 该配置是否生效,如果设置为 false 将不会收集该配置的日志
enabled: true
## 要抓取的日志路径,写绝对路径
paths: /to/file.log
## fields 表示自定义字段,在下面缩进两格处写要自己添加的字段。如:alilogtype: usercenter_serverlog 表示在输出的每条日志中加入该字段,key:alilogtype,value:usercenter_serverlog 用于标识该日志源的类别,在传输到下一层 logstash 时可以根据该字段分类处理。
fields:
alilogtype: usercenter_serverlog
## 意思相同,增加一个自定义字段,key:serverip,value: ${serverip} 这个值是读取的系统环境变量,如果系统中没有定义这个环境变量,那么启动 filebeat 的时候会报错,找到这个值.
serverip: ${serverip}
## 设置系统环境变量,创建文件 /etc/profile.d/serverip.sh 加入内容:
export serverip=`ifconfig eth0 | grep ‘inet addr’ | awk ‘{print $2}’ | cut -d’:’ -f2`
## 这里拿的是本机 IP
## 多行合并参数,正则表达式
multiline.pattern: ‘^\[‘
## true 或 false;默认是 false,匹配 pattern 的行合并到上一行;true,不匹配 pattern 的行合并到上一行
multiline.negate: true
## after 或 before,合并到上一行的末尾或开头
multiline.match: after
## [‘ERROR’,’WARN’] 该属性可以配置只收集 error 级别和 warn 级别的日志, 如果有配置多行收集, 一定要将这个配置放在多行的后面
include_lines:
## [‘DEBUG’] 该属性配置不收集 DEBUG 级别的日志, 如果配置多行 这个配置也要放在多行的后面
exclude_lines:
## Logstash 所在的主机
hosts:
## 如果设置为 TRUE 和配置了多台 logstash 主机,输出插件将负载均衡的发布事件到所有 logstash 主机。如果设置为 false,输出插件发送所有事件到随机的一台主机上,如果选择的不可达将切换到另一台主机。默认是 false。
loadbalance
## 每个配置的主机发布事件到 Logstash 的工作者数量。这最适用于启用负载平衡模式。示例:如果您有 2 个主机和 3 个工作人员,则共有 6 个工作人员启动(每个主机 3 个)。
worker
: