zoukankan      html  css  js  c++  java
  • elk 配置

    docker 启动

    参考:https://www.elastic.co/guide/en/elasticsearch/reference/5.1/docker.html#docker-cli-run-prod-mode

    查询语句:https://n3xtchen.github.io/n3xtchen/elasticsearch/2017/07/05/elasticsearch-23-useful-query-example

    mac系统配置参数:

    screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
    # or screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty
    # find ~/Library/Containers/com.docker.docker/Data/ -name 'tty'
    
    sysctl -w vm.max_map_count=262144
    

    Exit by Control-A Control-

    删除部分container

    增加一个行yam文件

    docker-compose -f docker-compose-production.yml down -v  # 同时删除volum
    

    批量操作

    一般建议是1000-5000个文档,如果你的文档很大,可以适当减少队列,大小建议是5-15MB,默认不能超过100M

    logstash

    input file error path.data
    删除 data/.lock 文件
    doe logstash ./bin/logstash -f custom_file/event_app.conf --path.data=path_data
    doe logstash ./bin/logstash --debug -f custom_file/event_app.conf --path.data=path_data
    不停止logstash,更新配置文件 kill -HUP pid (pid 用 top 查看)

    同步 mysql 到elasticsearch
    把jdbc docker cp 到 /usr/share/logstash/logstash-core/lib/jars

    同步mongo monstache

    doe monstache monstache -f ./custome_files/mongo_es.toml -verbose

    # 前提条件,mongo开启副本集,用户可以访问local数据库,
    
    mongo-url = "mongodb://192.168.10.47:27017,192.168.10.47:27018/?replicaSet=my-mongo-rs"
    
    elasticsearch-urls = ["http://192.168.10.47:9200"]
    elasticsearch-user = ""
    elasticsearch-password = ""
    
    # 存储monstache元信息的数据库名称
    config-database-name = "mongoache"
    # monstache集群名称
    cluster-name = "mongo-es"
    
    # 删除策略  0: 删除  1: 弃用  2: 忽略删除动作
    #delete-strategy = 0
    #delete-index-pattern = "mydb"
    
    # 如果需要全量同步多个集合, 该参数控制是否同时同步, 如果是1会一个一个同步
    direct-read-concur = 1
    
    # 需同步的集合
    namespace-regex = '^jieloan.api_order_data'
    # 需全量同步的集合, 第一次运行时必须打开, 以后运行时必须关闭, 否则每次都做全量同步
    direct-read-namespaces = ["jieloan.api_order_data"]
    # 需增量同步的集合, change-stream只有在3.6后才能使用
    # change-stream-namespaces = ["jieloan.api_order_data"]
    # mongo3.6之前的版本需开启, 3.6版本后添加了change-stream的功能
    enable-oplog = true
    # 全量同步时, 设置no cursor timeout
    direct-read-no-timeout = true
    # 全量同步时,把集合分成n个range, 由n个go routines去处理, 增加该参数会增加连接数和monstache的内存, 会提高吞吐量, -1则是使用一个cursor去迭代所有数据
    direct-read-split-max = 8
    
    # 如果设为true, 那么只做全量同步, 不同步更新
    disable-change-events = false
    # 是否同步数据库或集合删除事件
    dropped-databases = true
    dropped-collections = true
    
    # 发送到es的请求失败了, 是否重试
    elasticsearch-retry = false
    # 连接es的连接池, 控制bulk的并发数量
    elasticsearch-max-conns = 8
    
    # 当文档数达到多少时, 发送一次bulk请求, 该参数一般不推荐使用
    elasticsearch-max-docs = -1
    # 当connection buffer达到多少字节时, 发送一次bulk, 默认8M, 该参数能有效提高性能, 增加该参数意味着消耗更多内存
    #elasticsearch-max-bytes =
    
    # 是否使用easy-json处理序列化
    enable-easy-json = false
    # 全量同步完后立刻退出, 该参数一般用于定时任务
    exit-after-direct-reads = false
    # 当收到失败的事件时, 是否立刻退出程序
    fail-fast = false
    gzip = true
    
    # 开启该参数才能与mysql的数据一起index
    index-as-update = true
    index-oplog-time = false
    # 是否在es中创建index来保存统计信息
    index-stats = true
    
    mongo-oplog-database-name = "local"
    mongo-oplog-collection-name = "oplog.rs"
    prune-invalid-json = true
    
    # deprecated
    replay = false
    # 如果开启该参数, monstache会把已经处理的事件的事件写入mongodb, 如果monstache意外中断,那么下次启动时,会从该时间点同步, 如果设置cluster-name,该参数字段开启
    resume = true
    #resume-from-timestamp = 0
    
    # use a custom resume strategy (tokens) instead of the default strategy (timestamps)
    # tokens work with MongoDB API 3.6+ while timestamps work only with MongoDB API 4.0+
    #resume-strategy = 0
    
    enable-http-server = true
    http-server-addr = "0.0.0.0:8080"
    
    [[mapping]]
    namespace = "jieloan.api_order_data"
    index = "loan_apiorder"
    

    搜索引擎 衡量 infomation retrieval

    1. precision (查准率) - 尽可能返回较少的无关文档
      2.recall (查全率) - 尽量返回较多的相关文档
      3.ranking - 能否按照相关度进行排序

    kibana 高亮highlight有[1000000]限制,且会减慢查询速度

    关闭高亮显示 doc_table:highlight

    • 在es同步大量数据时可以通过对索引增加分片来提升写的能力,之后到了稳定的增量阶段可以通过合并分片来提升查询性能。

    • 可以考虑关闭动态索引

    put _cluster/settings
    {
    	"persistent": {
    		"action.auto_create_index": false
    	}
    }
    

    通过模版设置白名单

    put _cluster/settings
    {
    	"persistent": {
    		"action.auto_create_index": "logstash-*, .kibana*"
    	}
    }
    

    查询日志入ES

    经纬度查询

    GET loan_apiorder/_search
    {
      "query": {
        "bool": {
          "must": [
            {
              "geo_distance":{
                "distance": "500m",
                "location":{
                  "lat":31,
                  "lon":121
                }
              }
            }
          ]
        }
      }
    }
    

    watcher

    {
      "_index" : ".watches",
      "_type" : "_doc",
      "_id" : "test3",
      "_version" : 2954,
      "_seq_no" : 1452147,
      "_primary_term" : 10,
      "found" : true,
      "_source" : {
        "trigger" : {
          "schedule" : {
            "interval" : "1m"
          }
        },
        "input" : {
          "search" : {
            "request" : {
              "search_type" : "query_then_fetch",
              "indices" : [
                "email_sent*"
              ],
              "rest_total_hits_as_int" : true,
              "body" : {
                "size" : 0,
                "query" : {
                  "bool" : {
                    "must" : [
                      {
                        "range" : {
                          "datetime" : {
                            "gt" : "now-10m",
                            "lt" : "now"
                          }
                        }
                      },
                      {
                        "match" : {
                          "subject" : "micros"
                        }
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "condition" : {
          "compare" : {
            "ctx.payload.hits.total" : {
              "gte" : 100
            }
          }
        },
        "actions" : {
          "my_webhook" : {
            "throttle_period_in_millis" : 600000,
            "webhook" : {
              "scheme" : "http",
              "host" : "i1.celtgame.com",
              "port" : 80,
              "method" : "post",
              "path" : "/es_alert",
              "params" : { },
              "headers" : { },
              "body" : """
    {
            "msgtype": "text",
            "text": {
                "content": "过去10分钟, 微服务报错: {{ctx.payload.hits.total}}条"
            }
       }
    """
            }
          },
          "index_payload" : {
            "transform" : {
              "script" : {
                "source" : "return [ 'scheduled_time' : ctx.trigger.scheduled_time , 'watch_id': ctx.watch_id , 'ts': System.currentTimeMillis()/1000 ]",
                "lang" : "painless"
              }
            },
            "index" : {
              "index" : "watch_alert"
            }
          }
        },
        "status" : {
          "state" : {
            "active" : true,
            "timestamp" : "2020-04-23T03:27:43.143Z"
          },
          "actions" : {
            "index_payload" : {
              "ack" : {
                "timestamp" : "2020-04-24T00:42:43.206Z",
                "state" : "awaits_successful_execution"
              },
              "last_execution" : {
                "timestamp" : "2020-04-24T00:41:43.159Z",
                "successful" : true
              },
              "last_successful_execution" : {
                "timestamp" : "2020-04-24T00:41:43.159Z",
                "successful" : true
              }
            },
            "my_webhook" : {
              "ack" : {
                "timestamp" : "2020-04-24T00:42:43.206Z",
                "state" : "awaits_successful_execution"
              },
              "last_execution" : {
                "timestamp" : "2020-04-24T00:40:43.516Z",
                "successful" : true
              },
              "last_successful_execution" : {
                "timestamp" : "2020-04-24T00:40:43.516Z",
                "successful" : true
              },
              "last_throttle" : {
                "reason" : "throttling interval is set to [10m] but time elapsed since last execution is [59.6s]",
                "timestamp" : "2020-04-24T00:41:43.159Z"
              }
            }
          },
          "headers" : {
            "_xpack_security_authentication" : "49itAwALemh1LnhpYW9sZWkGCndyaXRlcl9kZXYNa2liYW5hX3N5c3RlbQ9tb25pdG9yaW5nX3VzZXIWbWFjaGluZV9sZWFybmluZ19hZG1pbg13YXRjaGVyX2FkbWluDmNsdXN0ZXJfbWFuYWdlCgABCnpodXhpYW9sZWkBAAEAJWVzLWNuLXYwaDFlMmx2MDAwMnJjZ2VoLTI4M2JjN2U2LTAwMDIHbmF0aXZlMQZuYXRpdmUAAAoA"
          },
          "version" : -1,
          "last_checked" : "2020-04-24T00:57:43.283Z",
          "execution_state" : "execution_not_needed",
          "last_met_condition" : "2020-04-24T00:41:43.159Z"
        }
      }
    }
    
    
    • 常见返回错误

    • 修正数据

    POST event_user/_update_by_query?pipeline=cid_20181
    {
      "query": {
        "bool": {
          "must": [
            {
              "range": {
                "datatime": {
                  "gte": "2020-08-18",
                  "time_zone": "+08:00",
                  "format": "yyyy-MM-dd"
                }
              }
            },
            {
              "terms": {
                "token.number": [
                  "198513907208"
                ]
              }
            },
            {
              "term": {
                "token.pd_created": {
                  "value": true
                }
              }
            },
            {
              "term": {
                "action": {
                  "value": "user_login"
                }
              }
            }
          ]
        }
      }
    }
    
    
    PUT _ingest/pipeline/cid_20181
    {
      "processors": [
        {
          "script": {
            "source": """
            ctx.token.cid=20181;
            ctx.token.channel_title="fq-duanxinlahuo01_cpc_sj_20181";
            ctx.token.channel_abbr="乐享借短信拉活";
            
            """
          }
        }
      ]
    }
    
  • 相关阅读:
    观察者模式
    vim7.4+python3配置
    GAN_李弘毅讲解
    关于Anaconda的环境和包管理
    inception v1-v3 & Xception
    python使用PDB进行调试
    python中“*”、"*args"、"kwargs"三种用法
    解决样本类别不平衡以及困难样本问题的方法总结
    Focal Loss
    RefineDet网络简介(转载)
  • 原文地址:https://www.cnblogs.com/dzhs/p/11236314.html
Copyright © 2011-2022 走看看