不论是数据库还是搜索引擎,对于问题的排查,开启慢查询日志是十分必要的,ES 开启慢查询的方式有多种,但是最常用的是调用模板 API 进行全局设置:

    1. PUT /_template/{TEMPLATE_NAME}
    2. {
    3. "template":"{INDEX_PATTERN}",
    4. "settings" : {
    5. "index.indexing.slowlog.level": "INFO",
    6. "index.indexing.slowlog.threshold.index.warn": "10s",
    7. "index.indexing.slowlog.threshold.index.info": "5s",
    8. "index.indexing.slowlog.threshold.index.debug": "2s",
    9. "index.indexing.slowlog.threshold.index.trace": "500ms",
    10. "index.indexing.slowlog.source": "1000",
    11. "index.search.slowlog.level": "INFO",
    12. "index.search.slowlog.threshold.query.warn": "10s",
    13. "index.search.slowlog.threshold.query.info": "5s",
    14. "index.search.slowlog.threshold.query.debug": "2s",
    15. "index.search.slowlog.threshold.query.trace": "500ms",
    16. "index.search.slowlog.threshold.fetch.warn": "1s",
    17. "index.search.slowlog.threshold.fetch.info": "800ms",
    18. "index.search.slowlog.threshold.fetch.debug": "500ms",
    19. "index.search.slowlog.threshold.fetch.trace": "200ms"
    20. },
    21. "version" : 1
    22. }
    23. PUT {INDEX_PAATERN}/_settings
    24. {
    25. "index.indexing.slowlog.level": "INFO",
    26. "index.indexing.slowlog.threshold.index.warn": "10s",
    27. "index.indexing.slowlog.threshold.index.info": "5s",
    28. "index.indexing.slowlog.threshold.index.debug": "2s",
    29. "index.indexing.slowlog.threshold.index.trace": "500ms",
    30. "index.indexing.slowlog.source": "1000",
    31. "index.search.slowlog.level": "INFO",
    32. "index.search.slowlog.threshold.query.warn": "10s",
    33. "index.search.slowlog.threshold.query.info": "5s",
    34. "index.search.slowlog.threshold.query.debug": "2s",
    35. "index.search.slowlog.threshold.query.trace": "500ms",
    36. "index.search.slowlog.threshold.fetch.warn": "1s",
    37. "index.search.slowlog.threshold.fetch.info": "800ms",
    38. "index.search.slowlog.threshold.fetch.debug": "500ms",
    39. "index.search.slowlog.threshold.fetch.trace": "200ms"
    40. }

    这样,在日志目录下的慢查询日志就会有输出记录必要的信息了。

    1. {CLUSTER_NAME}_index_indexing_slowlog.log
    2. {CLUSTER_NAME}_index_search_slowlog.log