zoukankan      html  css  js  c++  java
  • 监控elasticsearch集群方案

    1、监控组件

    X-Pack是一个Elastic Stack的扩展,包括安全,警报,监控,报告和图形等功能。

    es5.x以后可以安装X-Pack,5.x以前需要安装多个组件(Shield,Watcher,Marvel,Graph,Reporting)(这些组件现已集成到X-Pack中),sense也已集成到kibana中。

    6.x以后的版本无需单独安装X-Pack,es已集成。

    其中5.x-6.8的免费版基本没有安全功能,需要破解或升至黄金版,白金版。6.8以及以后安全功能免费。

    2、es API

    elasticsearch API

    3、监控es集群方法

    生产中建议使用一个单独的集群作为监控集群,存储生产集群的监控信息。

    分为低版本和高版本:

    3.1、低版本:5.x以前

    使用es API获取监控数据并存至监控集群

    3.2、高版本:5.x以后

    3.2.1、X-Pack监控集群,收集数据并导出(collectors and exporters)

    数据默认存在本地集群,可以设置X-Pack的导出方式为http-exporter,将监控数据导出到一个专门的监控集群

    索引格式样例:

     

    此方法没有每个节点系统级别的信息,比如系统cpu利用率

    可以导出的监控指标包括:

    Collector(收集器) 数据类型 描述
    Cluster Stats cluster_stats

    只在被选举的master节点上收集。产生一个cluster_stats类型的document。

    5.5x以前由三个单独的collector收集三种类型的信息(cluster_statscluster_state, and cluster_info),5.5x以后这三种类型的信息结合进cluster_stats(其中包括部分集群实际状态GET /_cluster/state和集群统计信息GET /_cluster/stats)。

    Node Stats node_stats 在每个节点上进行收集,每个节点产生一个node_stats类型的document。
    Index Stats indices_stats, index_stats 在被选举的master节点上进行,产生一个indices_stats类型的document,每个索引产生一个index_stats类型的document。
    Shards shards  
    Jobs job_stats  
    Index Recovery index_recovery  

    解决5.5之前X-Pack导出的数据格式与5.5之后的数据格式不一样:

                                                                     

    3.2.2、使用metricbeat收集并导出(6.5及以后可用)

    索引格式样例:

    此方法还可以导出系统信息,比如cpu,memory,network相关信息,并在kibana上进行可视化

    metric目录下:

    es集群中有2个host:

    点击view metrics:

    metricbeat安装包下运行:

     

    kibana dashboard目录下:

     

     

    4、配置高版本集群收集监控数据(主要包括2种方式)

    官网文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/monitor-elasticsearch-cluster.html

    4.1、使用collectors and exporters收集数据,导出数据

    1、

      a、es配置文件中 xpack.monitoring.enabled 设为 true

      b、es配置文件中 xpack.monitoring.elasticsearch.collection.enabled 设为 true

      c、es配置文件中xpack.monitoring.collection.enabled 设为 true

      d、Optional: Specify which indices you want to monitor.

      默认情况下,监视代理程序从所有Elasticsearch索引收集数据。要从特定索引收集数据,

      请配置xpack.monitoring.collection.indices设置。您可以将多个索引指定为以逗号分

      隔的列表,也可以使用索引模式来匹配多个索引。

      比如:

    xpack.monitoring.collection.indices: logstash-*, index1, test2

      e、Optional: Specify how often to collect monitoring data.

    2、指明将数据存在哪里
      默认使用local exporter存在本地集群,也可以使用http exporter将数据存到专门的监控集群

      note:The Elasticsearch monitoring features use ingest pipelines, therefore the

      cluster that stores the monitoring data must have at least one ingest node.
      ingest node:在索引之前预处理文档
      ingest node:拦截批量和索引请求,应用转换,然后将文档传递回索引或批量API。
    3、选择是否使用http exporter并设置相关安全选项。

    4、配置您的集群以将监视数据从Kibana,Beats和Logstash等来源路由到监视集群。

    5、如果您在生产集群上的elasticsearch.yml文件中更新了设置,请重新启动Elasticsearch。

    6、可选:配置用于存储监视数据的索引。

    7、在Kibana中查看监视数据。

    4.2、使用Metricbeat收集Elasticsearch监视数据并导出

    在6.5及更高版本中,您可以使用Metricbeat收集有关Elasticsearch的数据并将其发送到监视集群,而不是按照4.1中所述通过导出器进行路由。

    1、Enable the collection of monitoring data

    GET _cluster/settings
    
    PUT _cluster/settings
    {
    "persistent": {
    "xpack.monitoring.collection.enabled": true
    }
    }

    2、在生产集群中的每个Elasticsearch节点上安装Metricbeat。
    3、在每个Elasticsearch节点上的Metricbeat中启用Elasticsearch X-Pack模块。
    4. 在每个Elasticsearch节点上的Metricbeat中配置Elasticsearch X-Pack模块。
    5、可选:在Metricbeat中禁用系统模块。
    6、确定将监视数据发送到哪里。
    7、在每个节点上启动Metricbeat。
    8、禁用Elasticsearch监控指标的默认集合。

    PUT _cluster/settings
    {
    "persistent": {
    "xpack.monitoring.elasticsearch.collection.enabled": false
    }
    }

    9、在Kibana中查看监视数据。

    5、Stack监控

    kibana监控功能包括2个:
    1、可视化来自Elastic Stack的监视数据。您可以实时查看Elasticsearch,Logstash和Beats的运行状况和性能数据,以及分析过去的性能。
    2、监视Kibana本身并将该数据路由到监视集群。

    如果启用跨Elastic Stack的监视,则基于其持久性UUID,每个Elasticsearch节点,Logstash节点,Kibana实例和Beat都被认为是唯一的,该UUID在节点或实例启动时被写入path.data目录。

    note:必须启用观察程序才能查看群集警报。
    如果您具有基本许可证,则不会显示“热门群集警报”。

    6、监控生产集群


    监控7.x的Elasticsearch生产集群, 监控集群必循在7.x以后。

    监视集群中必须至少有一个ingest node摄取节点(预处理节点);它不必是专用的摄取节点。

    1、设置要用作监视集群的Elasticsearch集群。
      例如,您可以使用节点es-mon-1和es-mon-2设置两个主机群集。

    • 如果计划使用Metricbeat收集有关Elasticsearch或Kibana的数据,请创建一个具有

        remote_monitoring_collector内置角色的用户和一个具有remote_monitoring_agent

        内置角色的用户。或者,使用remote_monitoring_user内置用户。

    • 如果计划使用HTTP导出程序通过生产集群路由数据,请创建一个具有

        remote_monitoring_agent内置角色的用户。

        例如:

    POST /_security/user/remote_monitor
    {
    "password" : "changeme",
    "roles" : [ "remote_monitoring_agent"],
    "full_name" : "Internal Agent For Remote Monitoring"
    }

    2、配置生产集群以收集数据并将其发送到监视集群。
      Use Metricbeat.
      Use HTTP exporters.

    3、(可选)将Logstash配置为收集数据并将其发送到监视群集。
    4、(可选)将Beats配置为收集数据并将其发送到监视群集。

    5、(可选)配置Kibana以收集数据并将其发送到监视集群:

    6、(可选)创建用于监视的专用Kibana实例,而不是使用单个Kibana实例来访问生产集群和监视集群。
      (可选)在此Kibana实例中禁用监视数据收集。
       将kibana.yml文件中的xpack.monitoring.kibana.collection.enabled设置设置为false。

    7、配置Kibana以检索和显示监视数据。

    每种数据类型仅来自一个收集器。换句话说,对于创建的任何监视文档,它都来自单个收集器,而不是来自多个收集器。当前,Elasticsearch的X-Pack监视有几个收集器,因为目标是最大程度地减少它们之间的重叠以实现最佳性能。


    对于监视在所有节点上禁用了node.ingest的群集,可以禁用使用摄取管道功能。但是,这样做会阻止其目的,即随着我们的映射随着时间的推移而改进,它会升级较旧的监视数据。

    从6.0开始,摄取群集功能是监视集群的一项要求;您必须至少在一个节点上启用node.ingest。

  • 相关阅读:
    学习minix 3(未完成)
    排序
    分析nat穿越(未完成)
    固定增量感知器
    分析7zip(未完成)
    分析easyVM 未完成)
    分析wrk,crk
    分析vczh的东东(未完成)
    标 题: 三维游戏里面的自动寻路的算法可能是什么样的?
    几个googlecode
  • 原文地址:https://www.cnblogs.com/1zhangwenjing/p/12312142.html
Copyright © 2011-2022 走看看