如何收集一个应用的日志(1)

FileBeat介绍

Filebeat是一个日志文件托运工具,在你的服务器上安装客户端后,filebeat会监控日志目录或者指定的日志文件,追踪读取这些文件(追踪文件的变化,不停的读),并且转发这些信息到elasticsearch或者logstarsh中存放。

FileBeat优势

FileBeat出现之前,使用Logstash来收集日志的。那为什么要使用filebeat呢?因为logstash是jvm跑的,资源消耗比较大,启动一个logstash就需要消耗500M左右的内存,而filebeat只需要10来M内存资源。

安装部署

1.下载filebeat
访问https://www.elastic.co/downloads/beats/filebeat
选择适合自己需求的版本
这里以filebeat-6.1.1-x86_64.rpm为例

2.安装

sudo rpm -vi filebeat-6.1.1-x86_64.rpm

3.编辑配置文件

cp /etc/filebeat/filebeat.yml /opt/app/app-filebeat.yml
vi /opt/app/app-filebeat.yml

4.定义日志文件的路径

- type: log
  enabled: true
  paths:
    - /opt/app/oa/log/*.log
  ignore_older: 5m

监控/opt/app/oa/log/目录下的日志文件。
这里需要注意ignore_older这个配置项。
ignore_older:表示忽略多少时间之前的日志
如果设置10h,表示忽略10个小时之前的日志。这样会让filebeat加载过多日志而占用内存太大,造成启动失败。

5.设置日志来源

  fields:
    log_source: oa

这样设置的话,filebeat会为每条日志增加一个log_source字段,字段的值是oa。
通过这样的方式,可以区分不同应用的日志。

6.设置日志输出目的地(logstash)

output.logstash:
  # The Logstash hosts
  hosts: ["192.168.1.215:5044"]
  # Optional SSL. By default is off.
  # List of root certificates for HTTPS server verifications
  ssl.certificate_authorities: ["/opt/logstash-6.2.2/ssl_ca/logstash.crt"]
  # Certificate for SSL client authentication
  ssl.certificate: "/opt/logstash-6.2.2/ssl_ca/filebeat.crt"
  # Client Certificate Key
  ssl.key: "/opt/logstash-6.2.2/ssl_ca/filebeat.key"

ssl.certificate_authorities:设置logstash的证书
ssl.certificate:设置filebeat自己的证书
ssl.key:设置filebeat的私匙

设置证书为了加密

7.启动filebeat

filebeat -c /opt/sumscope/app/app-filebeat.yml

至此,收集过来的日志,会发送到一个logstash(logstash-filebeat-receiver)

此条目发表在IT分类目录,贴了, , , , 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。

*