优化logstash从redis中读取日志的配置(下)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 1.优化配置思路之前的logstash读取redis收集来的日志数据配置需要很多步骤,每次新加一个日志都特别繁琐没有优化前新增一个日志收集的配置步骤:

1.优化配置思路

之前的logstash读取redis收集来的日志数据配置需要很多步骤,每次新加一个日志都特别繁琐

没有优化前新增一个日志收集的配置步骤:

1.配置filebeat收集什么日志,增加标签

2.配置filebeat将日志存储到哪里

3.配置logstash从哪里读取数据

4.配置logstash将数据存放在哪里

可以思考一下,logstash其实从哪里读取数据都是一样的,关键在于存储到哪里,如果我们在filebeat配置的时候就把所有的日志都存储到redis的某一个key中,并将所有的日志都打上tag标签,logstash在收集的时候,只读取这一个key的数据,最后按照tag标签去分类存储,这样一来就减少了2步配置

优化后增加一个日志配置步骤:

1.在filebeat中配置收集什么日志

2.在logstash中配置tag存放在哪个es索引库

2.优化filebeat配置

每个日志都打上不同的tag标签,所有的日志都存储到nginx-all-key

[root@nginx /etc/filebeat]# vim filebeat.yml 
#定义收集什么日志
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/nginx/www_access.log
  json.keys_under_root: true
  json.overwrite_keys: true
  tags: ["nginx-www"]
- type: log
  enabled: true
  paths:
    - /var/log/nginx/bbs_access.log
  json.keys_under_root: true
  json.overwrite_keys: true
  tags: ["nginx-bbs"]
#定义redis集群地址以及定义索引名
output.redis:
  hosts: ["192.168.81.220:6379"]
  key: "nginx-all-key"
  db: 0
  timeout: 5
setup.template.name: "nginx"
setup.template.pattern: "nginx-*"
setup.template.enabled: false
setup.template.overwrite: true

3.优化logstash配置

只留一个key,从这个key中获取数据后在根据标签的不同,分别创建不同的索引库

#
input {
  redis {
    host => "192.168.81.220"
    port => "6379"
    db => "0"
    key => "nginx-all-key"
    data_type => "list"
  }
}
output {
  if "nginx-www" in [tags] {
    stdout{}
    elasticsearch {
      hosts => "http://192.168.81.210:9200"
      manage_template => false
      index => "nginx-www-access-%{+yyyy.MM.dd}"
    }
  }
  if "nginx-bbs" in [tags] {
    stdout{}
    elasticsearch {
      hosts => "http://192.168.81.210:9200"
      manage_template => false
      index => "nginx-bbs-access-%{+yyyy.MM.dd}"
    }
  }
}

4.新收集一个blog日志

4.1.配置filebeat指定blog日志路径

只需要指定路径即可,不需要其他配置

[root@nginx ~]# vim /etc/filebeat/filebeat.yml 
- type: log
  enabled: true
  paths:
    - /var/log/nginx/blog_access.log
  json.keys_under_root: true
  json.overwrite_keys: true
  tags: ["nginx-blog"]
[root@nginx ~]# systemctl restart filebeat

4.2.配置logstash自定义索引库

只需要增加创建什么索引库即可

[root@elasticsearch ~]# vim /etc/logstash/conf.d/redis.conf 
  if "nginx-blog" in [tags] {
    stdout{}
    elasticsearch {
      hosts => "http://192.168.81.210:9200"
      manage_template => false
      index => "nginx-blog-access-%{+yyyy.MM.dd}"
    }   
  }

4.3.启动logstash

[root@elasticsearch ~]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/redis.conf

4.4.产生日志并查看redis key

1.产生日志
ab -c 100 -n 1000 http://bbs.jiangxl.com/
ab -c 100 -n 1000 http://www.jiangxl.com/
ab -c 100 -n 1000 http://blog.jiangxl.com/
2.查看redis上的key
[root@node-2 ~]# redis-cli --raw
127.0.0.1:6379> KEYS *
filebeat
nginx-all-key
127.0.0.1:6379> LLEN nginx-all-key
3000
nginx-all-key中一共有3000条数据,正好就是我们用ab产生的3000个访问

4.5.查看es索引库是否生成

三个日志的索引库全部生成了

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
3月前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
927 31
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
28天前
|
缓存 NoSQL JavaScript
Vue.js应用结合Redis数据库:实践与优化
将Vue.js应用与Redis结合,可以实现高效的数据管理和快速响应的用户体验。通过合理的实践步骤和优化策略,可以充分发挥两者的优势,提高应用的性能和可靠性。希望本文能为您在实际开发中提供有价值的参考。
55 11
|
1月前
|
存储 监控 NoSQL
NoSQL与Redis配置与优化
通过合理配置和优化Redis,可以显著提高其性能和可靠性。选择合适的数据结构、优化内存使用、合理设置持久化策略、使用Pipeline批量执行命令、以及采用分布式集群方案,都是提升Redis性能的重要手段。同时,定期监控和维护Redis实例,及时调整配置,能够确保系统的稳定运行。希望本文对您在Redis的配置与优化方面有所帮助。
70 23
|
1月前
|
存储 运维 NoSQL
【赵渝强老师】Redis的慢查询日志
Redis慢查询日志用于记录执行时间超过预设阈值的命令,帮助开发和运维人员定位性能问题。每条慢查询日志包含标识ID、发生时间戳、命令耗时及详细信息。配置参数包括`slowlog-max-len`(默认128)和`slowlog-log-slower-than`(默认10000微秒)。实战中可通过`slowlog get`获取日志、`slowlog len`查看长度、`slowlog reset`重置日志。建议线上环境将`slowlog-max-len`设为1000以上,并根据并发量调整`slowlog-log-slower-than`。需要注意的是,慢查询只记录命令执行时间。
101 5
|
1月前
|
存储 监控 NoSQL
NoSQL与Redis配置与优化
通过合理配置和优化Redis,可以显著提高其性能和可靠性。选择合适的数据结构、优化内存使用、合理设置持久化策略、使用Pipeline批量执行命令、以及采用分布式集群方案,都是提升Redis性能的重要手段。
49 7
|
2月前
|
SQL
南大通用GBase 8a配置gcware日志等级,减少日志输出,节省磁盘IO
南大通用GBase 8a配置gcware日志等级,减少日志输出,节省磁盘IO
|
2月前
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
84 5
|
3月前
|
存储 监控 安全
|
3月前
|
存储 JSON 监控
开源日志分析Logstash
【10月更文挑战第22天】
81 1

热门文章

最新文章