使用redis,kafka做为缓存来收集日志

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用redis,kafka做为缓存来收集日志相关的知识,希望对你有一定的参考价值。

参考技术A 1.前提条件

2.安装配置redis

3.安装配置nginx
配置官方源

放在nginx.conf最后一行的后面,不要放在conf.d里面

4.安装配置keepalived

db02的配置:

5.测试访问能否代理到redis

6.配置filebeat

7.测试访问filebeat能否传输到redis
curl 10.0.0.51/haha
redis-cli -h 10.0.0.51 #应该有数据
redis-cli -h 10.0.0.52 #应该没数据
redis-cli -h 10.0.0.100 -p 6380 #应该有数据

8.配置logstash

9.启动测试

10.关闭前台运行,使用后台运行

11.最终测试
ab -n 10000 -c 100 10.0.0.100/
检查es-head上索引条目是否为10000条
关闭db01的redis,在访问,测试logstash正不正常
恢复db01的redis,再测试

1.新增加一个日志路径需要修改4个地方:

2.优化之后需要修改的地方2个地方

3.filebeat配置文件

4.优化后的logstash

1.配置hosts

2.安装配置zookeeper

3.启动zookeeper
所有节点都启动

4.每个节点都检查

5.测试zookeeper

6.安装部署kafka
kafka51操作:

kafka52操作:

kafka53操作:

7.前台启动测试

8.验证进程

9.测试创建topic

10.测试获取toppid

11.测试删除topic

12.kafka测试命令发送消息

13.测试成功之后,可以放在后台启动

14.修改filebeat配置文件

15.修改logstash配置文件

16.启动logstash并测试
1.前台启动

2.后台启动

17.集群考可用测试
结果:任意一台或两台服务器坏了zookpeer或者kafka或者全坏了或者随机坏了,只要剩一个zookper和kafka都不影正常收集日志。
18.总结kafka实验
1.前提条件

2.安装zook注意

3.安装kafka注意

4.测试zook和kafka

5.配置filebeat

6.配置logstash

ELK 收集网络设备日志-----引入 redis进行缓存

准备两个linux宿主机-

linux-node1:  Elasticsearch + Logstash + Kibana

linux-node2:   Logstash + redis
linux-node1 安装 ELK 配置logstash将redis数据送给ES
[root@linux-node1 conf.d]# cat redis-to-es.conf 
input {
  redis {
    host => "192.168.200.4"   #指向linux-node2的redis的ip地址
    port => "6379"
    password => "123456"
    db => "0"
    data_type => "list"
    key => "logstash"
  }
}

output {
  elasticsearch {
  hosts => ["192.168.200.99:9200"]  
  index => "logstash_syslog-%{+YYYY.MM.dd}"
  }
}

利用supervisor自启 redis-to-es.conf

linux-node1 安装logstash和redis,并且配置logstash将数通网络设备syslog日志导入到redis里去
[root@linux-node2 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@linux-node2 ~]# yum install -y redis
[root@linux-node2 ~]# vim /etc/redis.conf 
bind 0.0.0.0
requirepass 123456

[root@linux-node2 ~]# systemctl start redis && systemctl enable redis

安装logstash步骤省略
[root@cobbler-200 ~]# cat /etc/logstash/conf.d/syslog-to-redis.conf 
input {
  udp {
    port => "514"
    type => "syslog"
  }
}
output {
  redis {
    host => ["192.168.200.4:6379"]     #linux-node2的redis的ip地址
    password => "123456"
    db => "0"
    data_type => "list"
    key => "logstash"
  }
}
利用supervisor自启 syslog-to-redis.conf

华为网络设备侧配置如下
clock timezone UTC add 08:00:00
ntp-service unicast-server 120.25.115.20
info-center source default channel 2 trap state off
info-center loghost source Vlanif100
info-center loghost 192.168.200.4    # ip 写redis的ip地址
info-center timestamp log format-date

以上是关于使用redis,kafka做为缓存来收集日志的主要内容,如果未能解决你的问题,请参考以下文章

ELK+kafka构建日志收集系统

ELK+Kafka 企业日志收集平台

日志收集原理===》ELKEFKzookeeper+kafka

ELK 收集网络设备日志-----引入 redis进行缓存

efk 日志集群架构了解

6.3.1版本elk+redis+filebeat收集docker+swarm日志分析