为了解决分布式下的日志难于查询问题,需要一个将日志自动汇总的通用解决方案。业内标准是使用ELK方式,经典模式是app=>files=>filebeat=>logstash=>ES,但是我们机器比较多,为了简化部署问题,决定使用REDIS作为消息队列,同时框架中把这个功能集成,业务无需感知和配置,直接使用就可以了。
配置如下:
PUT /_template/app_log_a
{
"order": 7,
"index_patterns": [
"app_log_a"
],
"settings": {
"index": {
"number_of_shards": "3",
"number_of_replicas": "1"
}
},
"mappings": {
"doc": {
"dynamic": "false",
"properties": {
"app_id": {
"type": "long"
},
"action": {
"type": "keyword"
},
"stat_time": {
"type": "long"
},
"key1": {