elk+logback+redis 搭建日志平台 - Go语言中文社区

elk+logback+redis 搭建日志平台


日志平台背景:

日志的分析和监控在系统开发中占非常重要的地位,系统越复杂,日志的分析和监控就越重要,常见的需求有:

  • 根据关键字查询日志详情
  • 监控系统的运行状况
  • 统计分析,比如接口的调用次数、执行时间、成功率等
  • 异常数据自动触发消息通知
  • 基于日志的数据挖掘

很多团队在日志方面可能遇到的一些问题有:

  • 开发人员不能登录线上服务器查看详细日志,经过运维周转费时费力
  • 日志数据分散在多个系统,难以查找
  • 日志数据量大,查询速度慢
  • 一个调用会涉及多个系统,难以在这些系统的日志中快速定位数据
  • 数据不够实时
 
ELK+Redis版本:
 elasticsearch-2.1.0
 kibana-4.3.1-linux-x64
 logstash-2.1.1
 redis-2.8.3
elk安装参考地址: 
https://www.cnblogs.com/davidgu/p/6639307.html
 
elasticsearch配置:
 
Kibana配置:
 
 
 
Logstash配置:
 
input {
input {
  redis {
              codec => json
              host => "127.0.0.1"
              port => 8098
              key => "logstash"
              data_type => "list"
              threads => 10
  }
}
filter {
     json {
            source => "message"
     }
     if ([message] =~  "^(?!.*?xx_data_logs_type).*$") {
             drop {}
     }
}
output {
        if [message] =~ "xx_data_logs_type" and [message] =~ "xx_error" {
            elasticsearch {
                hosts => ["localhost:9200"]
                index => "xx_app_error_%{+YYYY.MM.dd}"
            }
        }
        if [message] =~ "xx_data_logs_type" and [message] =~ "xx_request_info" {
            elasticsearch {
                hosts => ["localhost:9200"]
                index => "xx_app_request_info_%{+YYYY.MM.dd}"


            }
        }
        if [message] =~ "xx_data_logs_type" and [message] =~ "xx_sql_info" {
            elasticsearch {
                hosts => ["localhost:9200"]
                index => "xx_app_sql_info_%{+YYYY.MM.dd}"


            }
        }
        if [message] =~ "xx_data_logs_type" and [message] =~ "xx_info" {
            elasticsearch {
                hosts => ["localhost:9200"]
                index => "xx_app_info_%{+YYYY.MM.dd}"
            }
        }
  stdout {
     codec => dots
  }
}

 
 
logback+redis配置:
 
 
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="LOGSTASH" class="com.cwbase.logback.RedisAppender">
            <host>127.0.0.1</host>
            <port>8098</port>
            <key>logstash</key>
    </appender>
    <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender"> 
        <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
        <discardingThreshold>0</discardingThreshold>
        <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
        <queueSize>5120</queueSize>
        <appender-ref ref="LOGSTASH" />
    </appender>
<logger  name="com.xx"  level="info">
     <appender-ref ref="ASYNC"/>
</logger>
</configuration>



 
 
 
 
 
 
 
 
 
 
 
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/u013045746/article/details/79247361
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-06-27 20:25:27
  • 阅读 ( 900 )
  • 分类:Redis

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢