使用es作为日志存储,上手使用方便,但资源消耗大
冷热节点
定期将旧日志热节点移动到冷节点中存储,热节点配置高速度快,冷节点存储成本低,且支持低频率查询
使用node.attr.box_type: hot/cold
标识冷热节点
存储:热节点使用ssd,冷节点使用高效云盘
配置参考
计算资源
: 2 核 8GB 的节点可以支持 5000 qps 的写入,随节点数量和节点规格提升,写入能力基本呈线性增长
索引和分片数量
: 一个 shard 的数据量在 30-50 GB为宜,1GB 堆内存支持 20-30 个分片为宜,集群总体的分片数量一般不要超过 3w
索引
shard数量
: 一天单服务的日志最大在1g,链路追踪的日志最大为3g,shard设置为即可,后期考虑将服务日志做合并到一个索引,用appname区分
索引模板
创建索引模板
|
|
ILM策略
索引生命周期策略
warm阶段
: 因为日志是按天生成,设置24小时后过渡到warm阶段,索引已不再写入,合并segment为1,其余不变,保障搜索性能
cold阶段
: 系统要求90天内日志可查,所以设置90天后过渡到cold,并将节点设置为cold,同时副本数(index.number_of_replicas)改为0,并冻结索引(把索引常驻内存的一些数据从内存中清理掉(比如 FST , 元数据等),默认情况下无法查询已经冻结的索引,需要显式增加 “ignore_throttled=false” 参数)
旧索引不会自动加入ILM,需要手动修改(建议分批修改,否则master可能会oom)
|
|
并且修改策略只对之后新创建的索引生效
快照
存储库:使用oss挂载到节点上作为共享存储
自动快照的索引选择不支持时间表达式,只能自己写脚本生成每月快照
|
|
待快照完成后再删除索引
|
|
其他命令
集群配置
transient 临时
:这些设置在集群重启之前一直会生效。一旦整个集群重启,这些设置就被清除
persistent 永久
:这些设置永久保存,除非再次被手动修改。是将修改持久化到文件中,重启之后也不影响。
节点进行数据传输的每秒最大字节数,-1是指无限制,默认为40MB
|
|
调整集群恢复时的单机并发度,默认是2
|
|