监控API

  • Node Stats:_nodes/stats
  • Cluster Stats:_cluster/stats
  • Index Stats:index_name/_stats

    阈值设定

  • 支持将分片上Search和Fetch阶段的慢查询写入文件、定义阈值

  • Slog log文件通过log4j2.properties配置

    1. put my_index/
    2. {
    3. "settings":{
    4. "index.search.slowlog.threshold:{
    5. "query.warn":"10s",
    6. "query.info":"3s",
    7. "query.debug":"2s",
    8. "query.trace":"0s",
    9. "fetch.warn":"1s"
    10. }
    11. }
    12. }

    集群诊断

  • 阿里云EYOU智能运维工具

    提升写入性能

  • 牺牲可靠性:将副本分片设置为0,写入完毕后再调整回去

  • 牺牲搜索实时性
    • 增加Refresh Internal时间
    • 增大静态配置参数:indices.memary.index_buffer_size
      • 默认是JVM内存的10%
  • 牺牲可靠性:修改translog配置
    • es6.0开始,默认每次写入请求的translog都会落盘
    • 降低写磁盘频率,但是会降低容灾能力
      • Index.translog.durability:默认是request,每个请求都落盘。设置async,异步写入
      • index.translog.sync_interval:设置60s,,每分钟落盘
      • index.translog.flush_threshod_size:默认512MB,可适当调大
        1. put my_index
        2. {
        3. "settings":{
        4. "index":{
        5. "refresh_interval":"30s", -- 30秒一次refresh
        6. "number_of_shards":"2",
        7. },
        8. "routing":{
        9. "allocation":{
        10. "total_shards_per_node":"3" -- 每个索引在每个节点上可分配的主分片数,控制分片数,避免数据热点
        11. }
        12. },
        13. "translog":{
        14. "sys_interval":"30s", -- 降低translog落盘频率
        15. "durability":"async" -- 异步落盘
        16. },
        17. "number_of_replicas":0
        18. },
        19. "mappins":{
        20. "dynamic": false, -- 避免不必要的字段索引。必要时可以通过update_by_query索引必要字段
        21. "properties":{
        22. }
        23. }
        24. }