Skip to content

Filebeat部署

1.filebeat部署

说明:需要采集日志的应用所在的主机都需要安装filebeat。

1.1.上传安装包至安装路径下

1.2.解压安装包

unzip filebeat-7.6.2-linux-x86_64.zip

1.3.修改配置文件filebeat.yml

该配置文件在filebeat的安装目录下,所需要修改的内容见下图:

其中document_type默认配置为galaxy-online,不建议修改。

升级版本后的改变

1.4.日志配置(可选)

filebeat可以对自身运行日志的输出进行相关配置,filebeat提供了如下日志相关的配置:

yaml
logging.level: info # 日志输出的最小级别
logging.selectors: [ ] # 过滤器,用户可在logp.NewLogger时指定
logging.to_stderr: false # 将日志输出到stderr
logging.to_syslog: false # 将日志输出到syslog (主要用于unix)
logging.to_eventlog: false # 将日志输出到windows的event log
logging.to_files: true # 将日志输出到文件中
logging.files:
  path: ${filebeat_bin_path}/logs/ # 日志目录
  name: filebeat  # 文件名 filebeat filebeat.1 filebeat.2
  rotateonstartup: true # 在filebeat启动时进行日志轮替
  rotateeverybytes: 10485760 # = 10MB 日志轮替的默认值
  keepfiles: 7 # 日志保留个数
  permissions: 0600 # 日志权限
  interval: 0 # 日志轮替
logging.metrics.enabled: true
logging.metrics.period: 30s
logging.json: false

filebeat会进行日志轮替,一般情况下,常见的日志轮替规则有按大小和按时间,filebeat两种规则均支持。

其中:

  1. rotateeverybytes决定了日志文件的最大值,如果日志文件超过了该值,将发生日志轮替,默认值为10MB。
  2. rotateonstartup是说明是否在每次启动时都进行一次日志轮替,这样的话,每次启动的日志都会从一个新文件开始。默认为true

​ 按文件大小进行轮filebeat也支持按时间进行轮替,可以配置logging.files下的interval属性,支持按照秒、分钟、小时、周、月、年进行轮替,对应值为1s,1m, 1h, 24h, 724h, 3024h, 和365*24h。当然,最小值是1s。

​ 按照时间进行轮替时,时间将会以连字符进行分割, 例如:按照1小时进行轮替的话,文件格式为:filebeat-2019-11-28-15。filebeat目前还不支持日期格式的自定义。

同时,我们也可以指定日志的保留策略,目前只能通过设置keepfiles来决定保留日志的个数。

​ 在日志里面还有logging.metrics相关配置,filebeat会定时输出一些当前的运行指标,例如输出下当前ack成功的数目、当前的内存占用情况等:

  • logging.metrics.enabled决定是否开启指标搜集

  • logging.metrics.period决定指标输出的间隔替后,日志文件名将会变成filebeat、filebeat.1、filebeat.2这种格式,后缀越大文件越旧。

修改配置

进入filbeat安装目录下,打开filbeta.yml文件,添加如下配置:

yaml
logging.to_files: true
logging.files:
path: /app/dcits/software/filebeat-7.6.2-linux-x86_64/logs
name: fileabeat
keepfiles: 7
permissions: 0644
rotateeverybytes: 10485760 # = 10MB 日志轮替的默认值

注意:如果修改了filebeat日志输出到指定路径下,在启动时使用如下启动命令:

shell
nohup ./filebeat -c ./filebeat.yml > filebeat.log &
#启动过程中不要使用-e参数,-e是强制输出到syslog

1.5.授权

进入filebeat-5.5.0-linux-x86_64目录下,依次执行命令,授权:

shell
chmod 755 -R filebeat
shell
chmod 755 -R *.yml

1.6.启动应用,命令如下:

shell
./filebeat -e -c ./filebeat.yml >filebeat.log 2>&1 &

或者

shell
nohup ./filebeat -e -c ./filebeat.yml > filebeat.log &

高版本的filebeat在使用中发现,无论用上述哪一种方式启动,都会出现当当前linux连接会话终端关闭后,系统会发送SIGHUP信号给filebeat的控制进程,从而导致filebeat自动关闭的现象;只有将命令包装在linux的shell脚本中才不会出现此种诡异现象。因此启动方式变为执行filebeat目录下的start.sh脚本,并且也强烈建议用这种方式启动!

1.7.校验服务

执行命令如下:

ps -aux | grep filebeat