目录
redis集群端口号16379;26379哨兵端口号;redis6379
ELK 的工作原理
- 在所有需要收集日志的服务器上部署 Logstash;或者先将日志进行集中化管理在日志服务器上,在日志服务器上部署 Logstash。
- Logstash 收集日志,将日志格式化并输出到 Elasticsearch 群集中。
- Elasticsearch 对格式化后的数据进行索引和存储。
- Kibana 从 ES 群集中查询数据生成图表,并进行前端数据的展示。
ELK优化
logstash优化:
- 加大服务器内存和JVM堆内存
- 用多实例做负载均衡
- 使用filebeat替代logstash采集日志数据
elasticsearch优化:
- 对索引进行优化:优化fsync,适当加大刷盘间隔时间
- 优化write线程池配置,减少拒绝任务的情况
- 锁定内存,不让ES使用swap
- 适当的减少索引的分片数、副本数
ELK组件
Logstash
- 负责采集日志数据,通过插件模块对日志数据进行过滤、格式化处理,再输出给ElasticSearch
- 支持多实例部署,由input、filter、output插件模块组成
ElasticSearch
- 负责对日志数据进行分片、存储,并创建索引,方便全文检索
- 集群化部署,节点分三种类型:master/data/client;通过设置相同的集群名称cluster.name,并使用Zen Discovery发现模块实现单播列表中的节点发现
Kibana
- 用于接入ElasticSearch的数据源,将日志数据进行图形化展示,方便用户通过浏览器查看、搜索、分析日志
Filebeat
- 用于替代Logstash采集日志数据,优点:比Logstash更轻量,资源消耗更少
Fluentd
- 也是Logstash的一种替代方案,可用于替代Logstash采集日志数据和过滤转换等功能,常用于收集K8S环境中的容器日志
Kafka/Redis
- 作为消息队列MQ,实现流量销峰、缓冲、应用解耦等功能
Zabbix工作原理
- zabbix agent 等代理端会定期采集被监控主机的指标数据并发送给 zabbix server,zabbix server 接收数据后会存储带 zabbix database 中,管理员可基于 zabbix web 在浏览器页面查看监控数据的图像
redis主从复制流程
- 首次同步:当从节点要进行主从复制时,它会发送一个SYNC命令给主节点。主节点收到SYNC命令后,会执行BGSAVE命令来生成RDB快照文件,并在生成期间使用缓冲区记录所有写操作。
- 快照传输:当主节点完成BGSAVE命令并且快照文件准备好后,将快照文件传输给从节点。主节点将快照文件发送给从节点,并且在发送过程中,主节点会继续将新的写操作缓冲到内存中。
- 追赶复制:当从节点收到快照文件后,会加载快照文件并应用到自己的数据集中。一旦快照文件被加载,从节点会向主节点发送一个PSYNC命令,以便获取缓冲区中未发送的写操作。
- 增量复制:主节点收到PSYNC命令后,会将缓冲区中未发送的写操作发送给从节点,从节点会执行这些写操作,保证与主节点的数据一致性。此时,从节点已经追赶上了主节点的状态。
- 同步:从节点会继续监听主节点的命令,并及时执行主节点的写操作,以保持与主节点的数据同步。主节点会定期将自己的操作发送给从节点,以便从节点保持最新的数据状态.
集群模式的原理
- 集群有多组节点,每组节点负责一部分哈希,
- 读写数据时,先针对key根据crc16的算法得出一个结果,然后把结果对 16384 取余。通过这个值去找到对应的哈希槽的节点,进行数据读写。
- 集群每组节点内做主从复制,当主节点宕机的时候,就会启用从节点。主节点负责读写请求和集群信息的维护:从节点负责主节点数据和状态信息的复制
集群怎么工作的
- 先用crc16算法对键进行计算。得到一个数字,然后对这个数字除以16384取余数,得到键的hash槽,自动跳转到hash槽所在的节点进行数据的操作
redis主从复制、哨兵模式、集群模式的区别
- 主从复制可以实现数据的备份,读的负载均衡,但是无法自动故障恢复,哨兵可以实现主节点故障的自动恢复;哨兵无法解决写的负载均衡,而集群模式可以解决(集群是多个组,可以相互跳转进行负载均衡的写入);为什么能解决单机存储的问题,集群通过数据分片的方式,将数据分散存储在各个节点充分利用每个节点的空间