美文网首页
Filebeat搭建及配置(二)

Filebeat搭建及配置(二)

作者: 橡皮24 | 来源:发表于2018-11-09 15:18 被阅读79次

    配置文件只代表个人操作,以为之后还要修改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


    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搭建及配置(二)

          本文链接:https://www.haomeiwen.com/subject/yyroxqtx.html