redis日志_Logstash深入-Logstash与Redis那点事

Logstash将日志写入Redis

为什么要使用Redis

在企业中,日志规模的量级远远超出我们的想象,这就是为什么会有一家公司日志易专门做日志收集,给大型金融公司收集日志,比如银行,因为你有可能看到,1秒钟好几千万的日志量,往服务器写入,那么企业中的集群,架构都不是单台的,而是多台的,一台如果是1千万,那么5台的量级,10台的量级,我们要对他们进行收集,进行分析,难免会在网络传输过程中,丢数据。

日志是什么?

日志对于企业来说,有什么作用?

用户使用我们的产品,体验如何?

用户的客诉,我们能拿出什么样的数据来说话?

...

一系列的问题,都和日志相关,如果至关重要的那个数据丢失了,那么公司的损失可不仅仅是一条日志那么简单。如果我们不知道,用户对我们产品最感兴趣的地方在哪,那么产品的寿命也就越来越短。如果被攻击了,恶意攻击的IP源我们都找不到,那么或许就不是产品的寿命越来越短,而是这个企业存在的寿命,越来越短。

8bbad603674bca41544b9a60c3355c7d.png

好吧,一顿排比句,说的那么浮夸,说白了,我就是想要告诉你们,一个大规模日志量级的企业想要做到数据的安全性,数据的一致性,我们需要消息队列:Redis , Kafka,在ELK5版本中,建议使用Redis来做消息队列,Kafka能不能用?也能,只不过会有一些不必要的坑,需要我们去爬。在ELK6版本中,开始使用Kafka来做消息队列。

话不多说,我们接下来就开始将Logstash收集到的日志,输出到Redis中。


Redis部署

#下载[root@db04 ~]# wget http://download.redis.io/releases/redis-3.2.12.tar.gz#解压[root@db04 ~]# tar xf redis-3.2.12.tar.gz#移动到指定目录[root@db04 ~]# mv redis-3.2.12 /application/#做软链接[root@db04 ~]# ln -s /application/redis-3.2.12 /application/redis#进入redis目录[root@db04 ~]# cd /application/redis#编译[root@db04 redis]# make#添加环境变量[root@db04 redis]# vim /etc/profile.d/redis.shexport PATH="/application/redis/src:$PATH"#创建配置文件存放目录[root@db04 ~]# mkdir -p /data/6379#编辑redis配置文件[root@db04 ~]# vim /data/6379/redis.confport 6379daemonize yespidfile /data/6379/redis.pidlogfile "/data/6379/redis.log"dbfilename dump.rdbdir /data/6379protected-mode norequirepass zls#启动redis[root@db04 ~]# redis-server /data/6379/redis.conf

Logstash收集日志输出至Redis

#进入Logstash配置文件目录[root@elkstack03 ~]# cd /etc/logstash/conf.d/#编辑Logstash配置文件[root@elkstack03 conf.d]# vim log_to_redis.confinput { file { path => "/usr/local/tomcat/logs/tomcat_access_log.*.log" start_position => "end" type => "tc" } file { path => "/usr/local/nginx/logs/access_json.log" start_position => "end" type => "ngx" codec => json }}output { if [type] == "tc" { redis { data_type => "list" key => "tomcat_log" host => "10.0.0.54" port => "6379" db => "0" password => "zls" }} if [type] == "ngx" { redis { data_type => "list" key => "nginx_log" host => "10.0.0.54" port => "6379" db => "1" password => "zls" } }}#启动Logstash[root@elkstack03 conf.d]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/log_to_redis.conf &

验证Redis数据

#连接redis[root@elkstack04 ~]# redis-cli -a zls#在0库中查看所有key127.0.0.1:6379> KEYS *1) "tomcat_log"#查看tomcat_log的长度(日志的条数)127.0.0.1:6379> LLEN tomcat_log(integer) 8#切换1库127.0.0.1:6379> SELECT 1OK#在1库中查看所有key127.0.0.1:6379[1]> KEYS *1) "nginx_log"#查看nginx_log的长度(日志的条数)127.0.0.1:6379[1]> LLEN nginx_log(integer) 6#演示Logstash如何取走一条tomcat日志127.0.0.1:6379> LPOP tomcat_log"{"path":"/usr/local/tomcat/logs/tomcat_access_log.2019-04-08.log
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值