开发者社区> jiangxl~> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介: 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

image

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}"
    }   
  }

image

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索引库是否生成

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

image

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SSM(七)在JavaWeb应用中使用Redis(上)
由于最近换(mang)了(de)家(yi)公(bi)司接触了新的东西所以很久没有更新了。这次谈谈Redis,关于Redis应该很多朋友就算没有用过也听过,算是这几年最流行的NoSql之一了。Redis的应用场景非常多这里就不一一列举了,这次就以一个最简单的也最常用的 缓存数据 来举例。
23 0
SSM(七)在JavaWeb应用中使用Redis(中)
由于最近换(mang)了(de)家(yi)公(bi)司接触了新的东西所以很久没有更新了。这次谈谈Redis,关于Redis应该很多朋友就算没有用过也听过,算是这几年最流行的NoSql之一了。Redis的应用场景非常多这里就不一一列举了,这次就以一个最简单的也最常用的 缓存数据 来举例。
25 0
SSM(七)在JavaWeb应用中使用Redis(下)
由于最近换(mang)了(de)家(yi)公(bi)司接触了新的东西所以很久没有更新了。这次谈谈Redis,关于Redis应该很多朋友就算没有用过也听过,算是这几年最流行的NoSql之一了。Redis的应用场景非常多这里就不一一列举了,这次就以一个最简单的也最常用的 缓存数据 来举例。
14 0
认识ssm框架和Redis
一、spring框架 spring框架是Java应用最广的框架,也是最具有生命力的框架,几乎是所有Java开发程序员都必须要会的一个技能。它的成功在于它的理念,比如Ioc(控制反转)和AOP(面向切面编程)。
1554 0
nginx+redis 实现 jsp页面缓存,提升系统吞吐率
最近在开发的时候,发现之前APP客户端的一部分页面用的是webview交互,这些页面请求很多,打开一套试卷,将会产生100+的请求量,导致系统性能下降。于是考虑在最靠近客户端的Nginx服务器上做Redis缓存。
1226 0
Redis——java代码读写redis
一,简单Jedis读写       Jedis jedis=new Jedis("127.0.0.1",6379);//连接的是我本地的服务 System.out.println("成功连接到服务器=="); /*存取string类型*/ jedis.
887 0
+关注
jiangxl~
华为云享专家、51CTO专家博主、DevOps运维领域优质创作者、 2021年度博客之星运维与安全领域TOP1,某厂高级运维工程师擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、大规模互联网WEB集群架构、开源软件部署维护等领域。
213
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载