Filebeat搭建及配置(二)

配置文件只代表个人操作,以为之后还要修改logstash的fileter。所以自己定义好了配置文件的格式。

1 修改服务器日志说明

  由于logstash的grok要通过filebeat传输的日志文件进行过滤,在kibana的展示界面才能展示出不同的字段,比如level、message的字段的内容。所以需要统一日志的输出的格式,如果不统一日志格式,在logstash过滤的时候会发生错误,导致在kibana上无法展示相应字段内容。是日志系统失去了价值。
  线上服务器修改日志输出格式需要重启服务,请谨慎操作。以下会介绍日志如何格式化输出。

2 Tomcat的log4j配置

2.1 创建log4j.properties文件

首先创建一个log4j.properties文件,并将其放置在tomcat的lib目录$CATALINA_BASE/lib下。内容如下:

log4j.rootLogger=INFO,stdout,R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%-d{yyyy-MM-dd HH\:mm\:ss,SSS}] [%c] [%p] [%m]%n
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
#c3po config
log4j.logger.com.opensymphony=warn
log4j.logger.com.mchange=warn
#spring config
log4j.logger.org.springframework=warn
#mybatis config
log4j.logger.org.apache.ibatis.logging=warn
log4j.logger.org.apache.ibatis.datasource.pooled=warn
log4j.logger.org.apache.ibatis.transaction.jdbc=warn
log4j.logger.org.mybatis.spring=warn
log4j.logger.cn.com.widgetdo.mybatis.scanner=warn
#调试时看sql语句 将 warn变为 debug就可以了
log4j.logger.cn.com.widgetdo.mapper=debug
#axis config
log4j.logger.org.apache.axis=warn
log4j.logger.org.apache.axis.utils.JavaUtils=error
#quartz config
log4j.logger.org.quartz=warn
# beanutil config
log4j.logger.org.apache.commons.beanutils=warn
#struts2 config
log4j.logger.org.apache.struts2=ERROR
log4j.logger.freemarker=warn
log4j.appender.R.File=${catalina.home}/logs/tomcat.out
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=[%d{yyyy-MM-dd HH\:mm\:ss,SSS}] [%c] [%p] [%m]%n
#log4j.logger.com.opensymphony.xwork2=ERROR

2.2 下载log4j的jar包

需要1.2以上版本

下载地址: http://archive.apache.org/dist/logging/log4j/1.2.17/log4j-1.2.17.jar

2.3 下载tomcat-juli.jar、tomcat-juli-adapters.jar

作为tomcat的外部组件。注意,此处的tomcat-juli.jar和默认的不同,它包含了Apache Commons Logging的全部实现

① 载地址:

http://www.apache.org/dist/tomcat/tomcat-7/v7.0.90/bin/extras/

或者

② 载地址:tomcat官网—>tomcat7


Filebeat搭建及配置(二)_第1张图片

1.1 替换tomcat-juli.jar

将$CATALINA_HOME/bin/tomcat-juli.jar替换为下载的tomcat-juli.jar,并修改成755权限

[root@cxm bin]# chmod 755 tomcat-juli.jar

删除$CATALINA_BASE/conf/logging.properties文件

重启tomcat

2 修改tomcat的access_log

修改tomcat的server.xml配置文件。把

pattern="%h %l %u %t "%r" %s %b%{Referer}i %{User-Agent}i"

修改成:

pattern="%h %l %u [%{yyyy-MM-dd HH:mm:ss,SSS}t] [%r] %s [%{Referer}i] [%{User-Agent}i] %b %T"

3 Nginx日志配置

3.1 主配置文件修改

在nginx主配置文件nginx.conf里添加json的匹配字段。

log_format json '{"@timestamp":"$time_iso8601",'
 '"@version":"1",'
 '"domain":"$server_addr",'
 '"remoteaddr":"$remote_addr",'
 '"bodybytessent":"$body_bytes_sent",'
 '"requesttime":"$request_time",'
 '"uri":"$request_uri",'
 '"status":"$status",'
 '"httpreferer":"$http_referer",'
 '"httpuseragent":"$http_user_agent",'
 '"httpxforwardedfor":"$http_x_forwarded_for",'
  '"upstreamaddr":"$upstream_addr",'
 '"upstreamresponse_time":"$upstream_response_time"}';

3.2 虚拟配置文件修改

在虚拟配置文件的日志文件配置json解析。例如:

access_log /data/nginx_log/asm.access.log json;

4 安装filebeat

直接使用filebeat的rpm包安装即可。去官网下载rpm包,之后上传到服务器,并且直接执行rpm –ivh 包名即可

4.1 下载地址:

官方下载地址

https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.6.11-x86_64.rpm

4.2 安装程序

[root@localhost software]# rpm -ivh filebeat-5.6.11-x86_64.rpm

5 相关命令及其配置

5.1 相关目录说明

·/etc/filebeat:filebeat主目录,所有filebeat配置文件会放在这。
·/etc/filebeat/filebeat.yml:filebeat配置文件filebeat 配置文件具体配置
·创建/data/filebeat_log目录,为了更好的检测filebeat是否正常抓取日志

5.2 相关命令

启动:systemctl start filebeat.service
停止:systemctl stop filebeat.service
重启:systemctl restart filebeat.service
查看状态:systemctl status filebeat.service
开机自启动:systemctl enable filebeat.service

5.3 配置文件说明

filebeat.modules:

filebeat.prospectors:

- input_type: log              

 paths: #日志文件路径列表

 - /opt/tomcat7/logs/asm.log #日志绝对路径

 multiline.pattern: ^\[

#多行匹配模式,后接正则表达式,默认无. 控制Filebeat如何处理跨越多行的日志消息  的选项。其中消息的第一行以方括号([)开头(针对java日志的多行匹配问题)

 multiline.negate: true

#多行匹配模式后配置的模式是否取反,默认false

# false匹配pattern的行合并到上一行;true不匹配pattern的行合并到上一行

 multiline.match: after

#定义多行内容被添加到模式匹配行之后还是之前,默认无,可以被设置为after或者before

 fields:

#添加附件字段,可以使values,arrays,dictionaries或者任何嵌套数据

indexdiy: epg

#输出到es的index

project_tag: asm

#输出到es的项目标签

 fields_under_root: true

# 如果该选项设置为true,则新增fields成为顶级目录,而不是将其放在fields目录下。自定义的field会覆盖filebeat默认的field(我们每个都是自定义的所以不使用默认的。)

output.kafka: #elasticsearch输出模块

 enabled: true #启用模块

 hosts: ["10.10.4.11:9092","10.10.4.12:9092","10.10.4.13:9092"] #ES地址

 topic: '%{[indexdiy]}'

output:

 file:

 path: "/data/filebeat_log"

 filename: mix_log

 rotate_every_kb: 1000

 number_of_files: 3

 logging.to_files: true

 logging.files:

你可能感兴趣的:(Filebeat搭建及配置(二))