柴少鹏的官方网站 技术在分享中进步,水平在学习中升华

安装X-Pack(十)

#官网链接:https://www.elastic.co/guide/en/x-pack/current/index.html       #只是用官网文档做文字方面的介绍。

      X-Pack是一个Elastic Stack扩展,它将安全性,警报,监视,报告和图形功能捆绑到一个易于安装的软件包中。 虽然X-Pack组件旨在无缝地一起工作,但可以轻松启用或禁用要使用的功能。

      在Elasticsearch 5.0.0之前,必须安装独立的Shield,Watcher和Marvel插件才能获得捆绑在X-Pack中的功能。 使用X-Pack,不再需要担心每个插件的版本是否正确,只需安装正在运行的Elasticsearch版本的X-Pack,就可以了!

#也就是说在新版里面下面那些以前旧版经常用到的插件,X-Pack全给包了:

Marvel插件:在簇中从每个节点汇集数据。这个插件必须每个节点都得安装。 Marvel是Elasticsearch的管理和监控工具,在开发环境下免费使用。它包含了Sense。
Sense:交互式控制台,使用户方便的通过浏览器直接与Elasticsearch进行交互。
Hand:在学习Elasticsearch的过程中,必不可少需要通过一些工具查看es的运行状态以及数据。如果都是通过rest请求,未免太过麻烦,而且也不够人性化。此时,Head插件可以实现基本信息的查看,rest请求的模拟,数据的检索等等。

一、介绍X-Pack

1.1 X-Pack大概设置

      在安装X-Pack之前,您必须安装Elasticsearch和Kibana。 如果您计划在Logstash中使用X-Pack功能,则在安装X-Pack之前还必须安装Logstash。必须安装与每个产品的版本相匹配的X-Pack版本。

     下图概述了在每个产品上设置X-Pack所需的步骤:

blob.png

#X-Pack安装脚本需要直接访问互联网才能下载和安装X-Pack。 如果您的服务器无法访问Internet,则可以手动下载X-Pack zip文件并将其传输到脱机机器上的临时目录中。 Elasticsearch,Kibana和Logstash的插件都包含在一个zip文件中。

启用和禁用X-Pack功能:

默认情况下,所有X-Pack功能都已启用。 可以在elasticsearch.yml,kibana.yml和logstash.yml配置文件中启用或禁用特定的X-Pack功能。

#设置                  #描述
xpack.graph.enabled    #设置为false以禁用X-Pack图形功能。
xpack.ml.enabled       #设置为false以禁用X-Pack机器学习功能。
xpack.monitoring.enabled  #设置为false以禁用X-Pack监视功能。
xpack.reporting.enabled   #设置为false以禁用X-Pack报告功能。
xpack.security.enabled    #设置为false以禁用X-Pack安全功能。
xpack.watcher.enabled    #设置为false以禁用Watcher。

 有关每个配置文件中存在哪些设置的更多信息, #https://www.elastic.co/guide/en/x-pack/6.0/xpack-settings.html

升级X-Pack

官网文档:https://www.elastic.co/guide/en/x-pack/current/xpack-upgrading.html

卸载X-Pack

第一步:停止Elasticsearch。

第二步:从Elasticsearch 删除X-Pack:   bin/elasticsearch-plugin remove x-pack

第三步:重新启动Elasticsearch。

第四步:从Kibana中删除X-Pack:  bin/kibana-plugin remove x-pack

第五步:重新启动Kibana。

第六步:从Logstash中删除X-Pack:bin/logstash-plugin remove x-pack

第七步:重新启动Logstash。

1.2 许可证管理

       当最初安装X-Pack时,将安装30天的试用许可证,以允许访问所有功能。 在试用期结束时,可以购买订阅以继续使用X-Pack组件的全部功能(https://www.elastic.co/subscriptions)。

      当许可证到期时,X-Pack将以降级模式运行。

许可证到期

       X-Pack许可证是基于时间的,将在未来的日期到期。 如果正在使用X-Pack监控,并且许可证将在30天内过期,则会显着显示许可证到期警告。 警告也会在启动时显示,并从到期日期起30天内写入Elasticsearch日志。 这些错误消息会告诉许可证何时到期,如果无法更新许可证,将会禁用哪些功能。

Watcher:

PUT/GET watch APIs将被禁用,DELETE watch API将继续工作
Watches将执行并写入历史记录
watches的actions将不会执行

Monitoring:

agent将停止收集集群和索引指标
agent将自动停止清理比xpack.monitoring.history.duration更早的索引

Graph:

Graph explore APIs 将被禁用

Reporting:

Kibana将不再提供报告
报告生成网址将停止工作
现有的报告将不再可访问

Security:

集群运行状况,集群统计信息和索引统计操作将被阻止
所有数据操作(读取和写入)将继续工作

许可证过期后,对群集运行状况,群集统计信息和索引统计信息API的调用将失败,并显示一个security_exception并返回403个HTTP状态码。

{
  "error": {
    "root_cause": [
      {
        "type": "security_exception",
        "reason": "current license is non-compliant for [security]",
        "license.expired.feature": "security"
      }
    ],
    "type": "security_exception",
    "reason": "current license is non-compliant for [security]",
    "license.expired.feature": "security"
  },
  "status": 403
}

#该消息使自动监视系统能够很容地检测到许可失败,而不会立即对其他用户产生影响。

Machine learning:

创建作业,打开作业,发送数据到作业,创建数据传送和启动数据传送的API将被禁用
所有已启动的数据传输将被停止。 所有未完成的工作将被关闭
现有的工作结果将继续使用Kibana或API

Logstash Pipeline Management:

将无法创建新的管道,并从UI编辑或删除现有的管道
将能够从UI中列出和查看现有的管道
将能够运行注册的Logstash实例来侦听现有的管道

#官网的话就是:应该尽快更新许可证。 以过期的许可证运行时,基本就瞎了。访问群集运行状况和统计信息API对于监视和管理Elasticsearch群集至关重要。

#版本变化就不关心了:https://www.elastic.co/guide/en/x-pack/current/xpack-change-list.html

1.3 限制

安全限制

Plugins:

       Elasticsearch的插件基础架构在可扩展性方面非常灵活。 虽然它将Elasticsearch打开到各种各样的(通常是定制的)附加功能,但是在安全性方面,这种高扩展性是有代价的。 无法控制第三方插件的代码(开源或不开源),因此无法保证它们符合X-Pack的安全性。 因此,启用了X-Pack安全性的群集不支持第三方插件。 

Changes in Indx Wildcard Behavior:

        启用了X-Pack安全性的Elasticsearch群集将/ _all通配符和所有其他通配符应用于当前用户有权访问的索引,而不是集群上所有索引的集合。 在为别名提供通配符表达式的情况下创建或检索别名时,如果没有与通配符表达式匹配的现有授权别名,则返回

Multi Document APIs:

      当尝试访问用户未被授权的非现有索引时,多重获取和多项矢量API会抛出IndexNotFoundException。 通过这样做,他们泄漏有关索引不存在的信息,而用户无权了解这些索引的任何内容。

Filtered Index Aliases:

       由于索引和字段名称在使用别名时可能会泄漏,因此包含过滤器的别名不是限制访问单个文档的安全方式。 X-Pack安全性通过文档级安全功能(https://www.elastic.co/guide/en/x-pack/current/field-and-document-access-control.html)提供了一种安全的方式来限制对文档的访问。

Field and Document Level Security Limitations:

当用户的角色为索引启用文档或字段级安全性时:

用户不能执行写操作:更新API不受支持。包含在批量请求中的更新请求不受支持。
请求缓存针对搜索请求被禁用。

当用户的角色启用索引的文档级安全性时:

文档级安全性不适用于不是基于文档的API。 一个示例是字段统计信息API。
文档级安全性不会影响相关性评分使用的全局索引统计信息。 所以这意味着计算得分时不考虑角色查询。 请注意,不匹配角色查询的文档将不会被返回。
在角色定义中不支持has_child和has_parent查询作为查询。 has_child和has_parent查询可以在启用了文档级安全性的搜索API中使用。
任何查询都不支持通过远程调用来获取要查询的数据。 以下查询不受支持:terms query与terms lookup不支持。不支持带索引形状的geo_shape查询。percolate查询不受支持。
如果指定了suggesters并启用了文档级安全性,则指定的suggesters将被忽略。
如果启用文档级安全性,则不能对搜索请求进行配置

Index and Field Names Can Be Leaked When Using Aliases(索引和字段名称在使用别名时可能会泄漏):

      在别名上调用某些Elasticsearch API可能会泄漏用户无权访问的索引信息。 例如,当使用_mapping API获取别名的映射时,响应将包括该别名所应用于的每个索引的索引名称和映射。

      在解决此限制之前,请避免包含机密或敏感信息的索引和字段名称。

LDAP Realm:

      LDAP领域目前不支持发现嵌套的LDAP组。 例如,如果一个用户是一个成员group_1 and group_1是group_2的成员,只有group_1会被发现。但是,Active Directory域(https://www.elastic.co/guide/en/x-pack/current/active-directory-realm.html)支持传递组成员身份。

Watcher限制

基于文件的脚本更改时,watches不会更新:

       引用watch中的文件脚本时,如果更改文件系统上的脚本,watch本身不会更新。目前,在watch中重新加载文件脚本的唯一方法是删除watch并重新创建watch。

Watcher UI:

        当创建新watch或编辑现有watch时,如果离开页面而不保存更改,它们将会丢失而不会发出警告。 确保在离开页面之前保存所做的更改。

blob.png

机器学习的局限性

官网链接:https://www.elastic.co/guide/en/x-pack/current/ml-limitations.html

二、X-Pack的安装

博文来自:www.51niux.com

#首先要安装好Elasticsearch集群,然后kibana所在的那台机器也应该先安装kibana。

2.1 在Elasticsearch中安装X-Pack

文字介绍:    

      安装Elasticsearch之后,可以选择获取并安装X-Pack。 更多信息:https://www.elastic.co/products/x-pack

     必须运行与正在运行的Elasticsearch版本相匹配的X-Pack版本。

#注如果您是在现有群集上首次安装X-Pack,则必须执行完整群集重新启动。 安装X-Pack后,必须在群集中的所有节点上启用安全性和安全性才能使群集正常运行。 升级时通常可以执行滚动升级。

    下面概述了在Elasticsearch上设置X-Pack所需的步骤:

blob.png

在Elasticsearch中安装X-Pack:

#/home/elk/elasticsearch/bin/elasticsearch-plugin  install x-pack    #我这里也用特权用户安装了防止有什么问题

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@     WARNING: plugin requires additional permissions     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.lang.RuntimePermission accessClassInPackage.com.sun.activation.registries
* java.lang.RuntimePermission getClassLoader
* java.lang.RuntimePermission setContextClassLoader
* java.lang.RuntimePermission setFactory
* java.security.SecurityPermission createPolicy.JavaPolicy
* java.security.SecurityPermission getPolicy
* java.security.SecurityPermission putProviderProperty.BC
* java.security.SecurityPermission setPolicy
* java.util.PropertyPermission * read,write
* java.util.PropertyPermission sun.nio.ch.bugLevel write
* javax.net.ssl.SSLPermission setHostnameVerifier
See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.

Continue with installation? [y/N]y   #在这里选择y。X-Pack需要这些权限才能在安装期间设置威胁上下文加载器,以便Watcher可以发送电子邮件通知。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@        WARNING: plugin forks a native controller        @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
This plugin launches a native controller that is not subject to
the Java security manager nor to system call filters.

Continue with installation? [y/N]y   #也是按y.X-Pack需要权限才能使Elasticsearch启动机器学习分析引擎。 本地控制器确保启动的进程是有效的机器学习组件。 一旦启动,机器学习进程和Elasticsearch之间的通信就会限制在Elasticsearch所运行的操作系统用户身上。

#或者执行下面的命令,跳过两次Y的授权直接自动的执行下去:

# /home/elk/elasticsearch/bin/elasticsearch-plugin  install x-pack --batch

#如果正在使用Elasticsearch的DEB/RPM安装的分布式集群,请以超级用户权限运行安装。

#如果没有网络的话,可以下载x-pack的安装包,然后执行下面的命令:

#/home/elk/elasticsearch/bin/elasticsearch-plugin  install file:///home/elk/x-pack-6.0.0.zip

=========================================解决一个报错===================================================

Exception in thread "main" java.lang.IllegalStateException: Could not load plugin descriptor for existing plugin [.installing-8599984752906868844]. Was the plugin built before 2.0?
    at org.elasticsearch.plugins.PluginsService.getPluginBundles(PluginsService.java:339)
    at org.elasticsearch.plugins.InstallPluginCommand.jarHellCheck(InstallPluginCommand.java:576)
    at org.elasticsearch.plugins.InstallPluginCommand.verify(InstallPluginCommand.java:558)
    at org.elasticsearch.plugins.InstallPluginCommand.install(InstallPluginCommand.java:601)
    at org.elasticsearch.plugins.InstallPluginCommand.execute(InstallPluginCommand.java:215)
    at org.elasticsearch.plugins.InstallPluginCommand.execute(InstallPluginCommand.java:204)
    at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:69)
    at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:134)
    at org.elasticsearch.cli.MultiCommand.execute(MultiCommand.java:69)
    at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:134)
    at org.elasticsearch.cli.Command.main(Command.java:90)
    at org.elasticsearch.plugins.PluginCli.main(PluginCli.java:47)
Caused by: java.nio.file.NoSuchFileException: /home/elk/elasticsearch/plugins/.installing-8599984752906868844/plugin-descriptor.properties
    at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
    at sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214)
    at java.nio.file.Files.newByteChannel(Files.java:361)
    at java.nio.file.Files.newByteChannel(Files.java:407)
    at java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:384)
    at java.nio.file.Files.newInputStream(Files.java:152)
    at org.elasticsearch.plugins.PluginInfo.readFromProperties(PluginInfo.java:123)
    at org.elasticsearch.plugins.PluginsService.getPluginBundles(PluginsService.java:336)
    ... 11 more

#出现上面的问题看提示也可以看出来,因为plugins里面有目录残留,这可能是安装过程的时候突然中断了,将/home/elk/elasticsearch/plugins/.installing-8599984752906868844删掉就可以了。

========================================================================================================================

配置介绍(了解部分):

       X-Pack将尝试在Elasticsearch中自动创建一些索引。 默认情况下,Elasticsearch被配置为允许自动创建索引,不需要额外的步骤。但是,如果在Elasticsearch中禁用自动索引创建,则必须进行配置在elasticsearch.yml中的action.auto_create_index允许X-Pack创建以下索引:

action.auto_create_index: .security,.monitoring*,.watches,.triggered_watches,.watcher-history*,.ml*
#如果正在使用Logstash或者Beats,那么很可能会在你的action.auto_create_index设置中需要额外的索引名称,确切的值将取决于你的本地配置。 如果不确定环境的正确值,则可以考虑将值设置为*,以便自动创建所有索引。

配置密码和SSL/TLS:

       如果有非试用版许可证,并且想要使用X-Pack安全性,则必须配置SSL / TLS以进行节点间通信。此要求适用于具有多个节点的群集,并与具有在外部接口上侦听的单个节点群集。 使用回送接口的单节点群集不具备此要求。

       生成节点证书。 例如,可以使用certgen命令行工具来生成证书颁发机构并为你的节点签名证书。(#bin/x-pack/certgen)此命令会为指定的每个节点生成一个包含CA证书,私钥以及PEM格式的签名证书和密钥的zip文件。 如果要使用商业或组织特定的CA,则可以使用-csr参数为集群中的节点生成证书签名请求(CSR)。 为了更简单的设置,运行此工具时使用节点名称作为实例名称。

       有关更多信息,请参阅certgen(https://www.elastic.co/guide/en/elasticsearch/reference/6.0/certgen.html)。

       将证书数据复制到Elasticsearch配置目录中的一个目录中。 例如,/home/es/config/certs。

       将以下信息添加到所有节点上的elasticsearch.yml中:

xpack.ssl.key:certs/${node.name}/${node.name}.key
#如果此路径不存在于每个节点上,或者文件名与node.name配置设置不匹配,则必须指定节点密钥文件的完整路径。
xpack.ssl.certificate:certs/${node.name}/${node.name}.crt
#或者,指定节点证书的完整路径。
xpack.ssl.certificate_authorities:certs/ca/ca.crt
#或者,指定CA证书的完整路径。
xpack.security.transport.ssl.enabled:true

配置(操作部分):

#chown -R elk:elk /home/elk

#su - elk

$/home/elk/elasticsearch/bin/elasticsearch  #先用前台启动,有问题也能看出来,得先启动服务下面改密码的操作才能执行。

$ /home/elk/elasticsearch/bin/x-pack/setup-passwords interactive    #交互式的为elastic,kibana和logstash_system用户更改密码。

#设置所有内置用户的密码。 setup-passwords命令是第一次设置内置用户密码的最简单的方法。
#这是只在第一次的时候有效,将密码改成固定的密码,改完之后再执行就没用了,可以在Kibana界面Management > Users UI 更新密码或使用安全用户API。"interactive"(交互)模式下,运行此命令,该模式会提示为elastic,kibana和logstash_system用户输入新密码。

#有关内置用户密码的信息:https://www.elastic.co/guide/en/x-pack/6.0/setting-up-authentication.html#set-built-in-user-passwords

#setup-passwords的相关命令可以参考:https://www.elastic.co/guide/en/elasticsearch/reference/6.0/setup-passwords.html

#Elasticsearch中的机器学习设置 :https://www.elastic.co/guide/en/elasticsearch/reference/6.0/ml-settings.html

#Monitoring在Elasticsearch中的设置: https://www.elastic.co/guide/en/elasticsearch/reference/6.0/security-settings.html

#Elasticsearch中的安全设置:https://www.elastic.co/guide/en/elasticsearch/reference/6.0/security-settings.html

#Elasticsearch中的观察器设置:https://www.elastic.co/guide/en/elasticsearch/reference/6.0/notification-settings.html

博文来自:www.51niux.com

2.2 在Kibana中安装X-Pack

文字介绍:

      下图概述了在Kibana上设置X-Pack所需的步骤:

图片.png

       在Kibana中安装X-Pack:

第一步:在Elasticsearch上安装X-Pack

第二步:Kibana安装目录下运行bin/kibana-plugin安装: bin/kibana-plugin install x-pack   #当然也可以像上面Elasticsearch一样安装本地的压缩包。

第三步:在kibana.yml配置文件中配置elasticsearch.password设置。

第四步:开启Kibana: bin/kibana。

第五步:要验证X-Pack安装,请将浏览器指向http://localhost:5601 /以打开Kibana. 提示登录。可以使用任何具有kibana_user角色的Elasticsearch用户。但是,内置的kibana用户只能在Kibana服务器的内部使用。

在Kibana中安装X-Pack:

$ wget https://artifacts.elastic.co/downloads/kibana-plugins/x-pack/x-pack-6.0.0.zip

$ /home/elk/kibana/bin/kibana-plugin  install file:///home/elk/x-pack-6.0.0.zip   #这里用下本地安装方式

不做任何配置启动测试:

$ /home/elk/kibana/bin/kibana

  log   [02:31:22.325] [info][status][plugin:kibana@6.0.0] Status changed from uninitialized to green - Ready
  log   [02:31:22.387] [info][status][plugin:elasticsearch@6.0.0] Status changed from uninitialized to yellow - Waiting for Elasticsearch
  log   [02:31:22.406] [info][status][plugin:xpack_main@6.0.0] Status changed from uninitialized to yellow - Waiting for Elasticsearch
  log   [02:31:22.427] [error][status][plugin:xpack_main@6.0.0] Status changed from yellow to red - Authentication Exception
  log   [02:31:22.428] [error][status][plugin:elasticsearch@6.0.0] Status changed from yellow to red - Authentication Exception
  log   [02:31:22.636] [error][status][plugin:graph@6.0.0] Status changed from uninitialized to red - Authentication Exception
  log   [02:31:22.643] [info][status][plugin:monitoring@6.0.0] Status changed from uninitialized to green - Ready
  log   [02:31:24.202] [warning][reporting] Generating a random key for xpack.reporting.encryptionKey. To prevent pending reports from failing on restart, please set xpack.reporting.encryptionKey in kibana.yml
  log   [02:31:24.208] [error][status][plugin:reporting@6.0.0] Status changed from uninitialized to red - Authentication Exception   #身份验证有问题
  log   [02:31:24.245] [error][status][plugin:security@6.0.0] Status changed from uninitialized to red - Authentication Exception
  log   [02:31:24.248] [warning][security] Generating a random key for xpack.security.encryptionKey. To prevent sessions from being invalidated on restart, please set xpack.security.encryptionKey in kibana.yml
  log   [02:31:24.254] [warning][security] Session cookies will be transmitted over insecure connections. This is not recommended.
  log   [02:31:24.295] [error][status][plugin:searchprofiler@6.0.0] Status changed from uninitialized to red - Authentication Exception
  log   [02:31:24.301] [error][status][plugin:ml@6.0.0] Status changed from uninitialized to red - Authentication Exception
  log   [02:31:24.356] [info][status][plugin:ml@6.0.0] Status changed from red to yellow - Waiting for Elasticsearch
  log   [02:31:24.365] [error][status][plugin:tilemap@6.0.0] Status changed from uninitialized to red - Authentication Exception
  log   [02:31:24.367] [error][status][plugin:ml@6.0.0] Status changed from yellow to red - Authentication Exception
  log   [02:31:24.383] [error][status][plugin:watcher@6.0.0] Status changed from uninitialized to red - Authentication Exception
  log   [02:31:24.408] [info][status][plugin:grokdebugger@6.0.0] Status changed from uninitialized to green - Ready
  log   [02:31:24.416] [info][status][plugin:dashboard_mode@6.0.0] Status changed from uninitialized to green - Ready
  log   [02:31:24.420] [error][status][plugin:logstash@6.0.0] Status changed from uninitialized to red - Authentication Exception
  log   [02:31:24.452] [info][status][plugin:console@6.0.0] Status changed from uninitialized to green - Ready
  log   [02:31:24.470] [info][status][plugin:metrics@6.0.0] Status changed from uninitialized to green - Ready
  log   [02:31:24.664] [info][status][plugin:timelion@6.0.0] Status changed from uninitialized to green - Ready
  log   [02:31:24.669] [info][listening] Server running at http://192.168.14.66:5601
  log   [02:31:24.670] [error][status][ui settings] Status changed from uninitialized to red - Elasticsearch plugin is red

图片.png

#网页的问题错误:Login is currently disabled. Administrators should consult the Kibana logs for more details.

然后配置上用户名密码授权:

$ vim /home/elk/kibana/config/kibana.yml

elasticsearch.url: "http://192.168.14.66:9200"   #这里是不变的啊,还是连接的本地。 
#elasticsearch.username: "user"
#elasticsearch.password: "pass"
elasticsearch.username: "elastic"   #这是内置的特权用户
elasticsearch.password: "51niux.com"   #这是我们用bin/x-pack/setup-passwords interactive更改后的密码

$ /home/elk/kibana/bin/kibana  #再启动试试

  log   [02:05:36.794] [error][status][plugin:monitoring@6.0.0] Status changed from yellow to red - Elasticsearch is still initializing the Monitoring indices

#如果启动的时候有下面的错误,可以做下面的配置:

$ vim /home/elk/elasticsearch/config/elasticsearch.yml    #在尾部加上下面一句话,然后重启elasticsearch

action.auto_create_index: .security,.security-6,.monitoring*,.watches,.triggered_watches,.watcher-history*,.ml*

#然后再次启动kibana

$ /home/elk/kibana/bin/kibana    #下面有几个warning先不管。

  log   [02:45:10.041] [warning][reporting] Generating a random key for xpack.reporting.encryptionKey. To prevent pending reports from failing on restart, please set xpack.reporting.encryptionKey in kibana.yml
  log   [02:45:10.047] [info][status][plugin:reporting@6.0.0] Status changed from uninitialized to yellow - Waiting for Elasticsearch
  log   [02:45:10.097] [info][status][plugin:security@6.0.0] Status changed from uninitialized to yellow - Waiting for Elasticsearch
  log   [02:45:10.098] [warning][security] Generating a random key for xpack.security.encryptionKey. To prevent sessions from being invalidated on restart, please set xpack.security.encryptionKey in kibana.yml
  log   [02:45:10.104] [warning][security] Session cookies will be transmitted over insecure connections. This is not recommended.

#然后再次访问Kibana测试一下:

图片.png

#正常的话,就进入了哈,这里模式你下错误登录也就是把密码故意输错,下面是输错截图:

图片.png

#然后查看elasticsearch的输出也会有一条信息:

[2017-12-14T10:47:12,160][INFO ][o.e.x.s.a.AuthenticationService] [192.168.14.66] Authentication of [elastic] was terminated by realm [reserved] - failed to authenticate user [elastic]

#好了下面输入正常的用户名和密码登录进去看一眼:

图片.png

三、保护Elasticsearch和Kibana(跟着官网了解)

3.1 介绍      

      X-Pack安全性使您可以轻松保护群集。 通过安全性,您可以对数据进行密码保护,并实施更高级的安全措施,例如加密通信,基于角色的访问控制,IP过滤和审计。 本指南介绍如何配置所需的安全功能,以及如何与受保护的群集进行交互。

     安全性通过以下方式保护Elasticsearch集群:

通过密码保护,基于角色的访问控制和IP过滤防止未经授权的访问。
通过消息认证和SSL/TLS加密来保持数据的完整性。
维护一个审计trail,以便知道谁在对群集做什么以及它所存储的数据。

图片.png

防止未经授权的访问

       为了防止未经授权访问您的Elasticsearch集群,必须有一种方法来验证用户身份。 这只是意味着需要一种方法来验证用户是他们自称的用户。例如,必须确保只有名为Kelsey Andorra的人才能以用户kandorra身份登录。X-Pack Security提供了独立的身份验证机制,使你能够快速密码保护的群集。如果已经在使用LDAP,Active Directory或PKI来管理组织中的用户,则X-Pack安全性能够与这些系统集成以执行用户身份验证。

       在许多情况下,简单地认证用户是不够的。 还需要一种方法来控制用户可以访问的数据以及他们可以执行的任务。 X-Pack安全性使可以通过为角色分配访问权限并将这些角色分配给用户来授权用户。例如,这种基于角色的访问控制机制(又名RBAC)使可以指定用户kandorra只能对事件索引执行读取操作,而对其他索引不能执行任何操作。

       X-Pack安全性还支持基于IP的授权。可以将特定IP地址或子网列入白名单并将其列入黑名单,以控制对服务器的网络级访问。

保持数据完整性

       安全的关键部分是保密机密数据。 Elasticsearch内置了防止意外数据丢失和corruption的保护措施。 但是,没有什么可以阻止有意的篡改或数据拦截。X-Pack安全性通过加密与节点的通信来保持数据的完整性。 为了获得更好的保护,您可以增加加密强度,并将客户端流量与节点间通信隔离开来。

维护审计Trail

       保持系统安全需要警惕。 通过使用X-Pack安全性来维护审计trail,您可以轻松地看到谁在访问您的群集以及他们在做什么。 通过分析访问模式和尝试访问群集失败,您可以深入了解企图攻击和数据泄露。 保持群集中活动的可审计日志也可以帮助诊断操作问题。

3.2 使用安全

        要保护群集,必须在群集中的每个节点上安装X-Pack。 基本身份验证是默认启用的 - 要与集群进行通信,必须指定用户名和密码。 除非启用匿名访问,否则将拒绝所有不包含用户名和密码的请求。

        X-Pack安全提供了一个内置的elastic超级用户,您可以使用它开始设置。 这个elastic用户可以完全访问集群,包括所有索引和数据,所以elastic用户没有默认设置的密码。

       设置内置elastic,kibana和logstash_system用户的密码。 在大多数情况下,只需在集群中的一个节点上运行bin/x-pack/setup-passwords工具即可。 使用运行Elasticsearch进程的相同用户运行该命令。 在“auto”模式下,该工具将随机生成密码并将其打印到控制台。

      设置角色和用户来控制对Elasticsearch和Kibana的访问。 例如,要授予John Doe对与模式events*匹配的所有索引的完全访问权限,并允许他为Kibana中的这些索引创建可视化和仪表板,则可以创建events_admin角色,并将该角色分配给新的johndoe用户。

设置events_admin角色:

$ curl -XPOST -u elastic '192.168.14.66:9200/_xpack/security/role/events_admin' -H "Content-Type: application/json" -d '{
  "indices" : [
    {
      "names" : [ "events*" ],
      "privileges" : [ "all" ]
    },
    {
      "names" : [ ".kibana*" ],
      "privileges" : [ "manage", "read", "index" ]
    }
  ]
}'

Enter host password for user 'elastic':    #然后让输入elastic账号的密码,下面是验证成功后的输出。

{"role":{"created":true}}[elk@localhost ~]$

创建用户与角色匹配:

$ curl -XPOST -u elastic '192.168.14.66:9200/_xpack/security/user/johndoe' -H "Content-Type: application/json" -d '{
  "password" : "userpassword",
  "full_name" : "John Doe",
  "email" : "john.doe@anony.mous",
  "roles" : [ "events_admin" ]
}'

Enter host password for user 'elastic':    #然后输入elastic账户的密码,下面是成功的输出

{"user":{"created":true}}[elk@localhost ~]$   #可以看到一个跟roles是events_admin相关联的用户johndoe创建成功了,密码是userpassword

启用审计以跟踪与Elasticsearch集群的尝试和成功的交互:

将  xpack.security.audit.enabled: true   追加到elasticsearch.yml尾部然后重启elasticsearch

#默认情况下,事件记录到ES_HOME/logs中的专用elasticsearch-access.log文件。 还可以将事件存储在Elasticsearch索引中,以便于分析和控制记录的事件(
https://www.elastic.co/guide/en/x-pack/6.1/auditing.html)。

#注:一旦获得了这些基本的安全措施,官方强烈建议通过将群集配置为使用SSL/TLS加密来确保与节点之间的通信安全。未启用加密的节点以纯文本格式发送密码,并且将无法安装允许使用X-Pack安全性的非试用许可证。

根据安全要求,可能还需要:
与LDAP或Active Directory集成,或要求证书进行身份验证。
使用IP过滤来允许或拒绝来自特定IP地址或地址范围的请求(https://www.elastic.co/guide/en/x-pack/6.1/ip-filtering.html)。

3.3 安全是如何开始工作的

      Elasticsearch集群通常由许多分散部分组成。 有构成集群的Elasticsearch节点,经常是Logstash实例,Kibana实例,Beats代理和客户端,所有这些都与它进行通信。 确保这种集群有许多方面和层面,这不应该是一个惊喜。
      X-Pack安全性提供了在几个级别上保护Elastic集群的方法:

用户认证
授权和基于角色的访问控制(又名RBAC)
节点/客户端身份验证和通道加密
审计

用户认证:

       用户身份验证是识别碰到集群的请求背后的用户并验证确实是他们自称是谁的过程。 身份验证过程由一个或多个称为领域的身份验证服务处理。 X-Pack安全性提供了以下内置领域:

native    #用户存储在专用Elasticsearch索引中的内部领域。 有了这个领域,用户通过用户名和密码进行身份验证。 用户通过用户管理API进行管理。
ldap     #使用外部LDAP服务器对用户进行身份验证的领域。 有了这个领域,用户通过用户名和密码进行身份验证。
active_directory   #使用外部Active Directory服务器对用户进行身份验证的领域。 有了这个领域,用户通过用户名和密码进行身份验证。
pki   #使用公钥基础结构(PKI)验证用户身份的领域。 此域与SSL/TLS一起使用,并通过客户端的X.509证书的专有名称(DN)来识别用户。
file   #Elasticsearch集群中每个节点上存储的文件中定义用户的内部领域。 有了这个领域,用户通过用户名和密码进行身份验证。 用户通过安装时由X-Pack提供的专用工具进行管理。

如果没有任何内置的领域满足您的需求,也可以建立自己的自定义领域,并将其插入X-Pack。启用X-Pack安全性时,根据配置的领域,将需要将用户凭据附加到发送给Elasticsearch的请求。 例如,使用支持用户名和密码的领域时,可以简单地将基本身份验证标头附加到请求。

授权:

一旦请求被认证并且请求后面的用户被识别,授权过程就发生。 授权是确定传入请求后面的用户是否被允许执行的过程。 自然地,这个过程在认证成功之后发生 - 当用户身份已知时。授权过程围绕以下5个结构进行:

Secured Resource   #访问被限制的资源。 索引/别名,文档,字段,用户和Elasticsearch集群本身都是安全对象的示例。
Privilege   #表示用户可以针对安全资源执行的一个或多个操作的命名组。 每个受保护的资源都有自己的一组可用权限。 例如,read是一个索引特权,表示所有可以读取索引/存储数据的操作。
Permissions  #针对安全资源的一组或多组权限。 权限可以很容易地用文字来描述,下面是几个例子:read(产品索引的特权)、manage(集群上的特权)、run_as(某个用户权限)、read(与查询X匹配的文档的特权)、read(credit_card字段的特权)
Role  #一组命名的权限
User  #经过身份验证的用户。

#一个安全的Elasticsearch集群通过角色管理用户的权限。 角色具有唯一的名称,并标识一组转换为资源特权的权限。 用户可以与任意数量的角色关联。 因此,用户拥有的全部权限集合是由所有角色权限的联合来定义的。角色可以通过多种方式分配给用户,具体取决于用户通过身份验证的领域。

节点/客户端身份验证和通道加密:

X-Pack安全性支持配置SSL/TLS,以确保集群内部和外部的通信通道的安全。 这种支持占了:

通过线路传输的数据的加密
基于证书的节点验证 - 防止未经授权的节点/客户端与集群建立连接。

X-Pack安全性还使您能够配置IP过滤器,这可以看作是节点/客户端身份验证的一种轻松机制。 通过IP过滤,可以根据IP地址限制可连接到群集的节点和客户端。 IP过滤配置提供了IP,子网和DNS域的白名单和黑名单。

审计:

在处理任何安全系统时,设置审计追踪机制至关重要。 审计跟踪记录系统中发生的各种活动/事件,使能够在出现问题(例如安全漏洞)时分析和追溯过去的事件。X-Pack安全性为群集中的所有节点提供了这种审计跟踪功能。 可以配置考虑记录的事件类型的审计级别。 这些事件包括失败的认证尝试,拒绝用户访问,节点连接被拒绝等等。

3.4 设置用户身份验证

      身份验证标识一个人。 要访问受限制的资源,用户必须通过密码,凭证或其他方式(通常称为认证令牌)来证明自己的身份。可以使用本地支持来管理和认证用户,或与外部用户管理系统(如LDAP和Active Directory)集成。 有关管理本机用户的信息,请参阅管理本机用户(https://www.elastic.co/guide/en/x-pack/6.1/native-realm.html#managing-native-users)。

身份验证是如何工作的:

内置用户:

      X-Pack安全性提供了内置的用户凭据来帮助您启动和运行。 这些用户拥有一组固定的权限,只有在设置了密码之后才能进行认证。 弹性用户可以用来设置所有的内置用户密码。

elastic   #内置的超级用户。
kibana   #用户Kibana用来连接Elasticsearch并与之通信。
logstash_system  #用户Logstash在Elasticsearch中存储监控信息时使用。

内置用户如何工作:

       这些内置用户存储在由X-Pack安全管理的特殊.security索引中。 这意味着,如果密码被更改,或者用户被禁用,则该更改会自动反映到群集中的每个节点上。 这也意味着,如果您的.security索引被删除,或从快照中恢复,则您所应用的任何更改都将丢失。

       尽管它们共享相同的API,但内置用户与本地领域管理的用户是分开的,不同的。 禁用本地领域不会对内置用户产生任何影响。 内置用户可以使用用户管理API单独禁用。

Elastic Bootstrap Password:

      在安装X-Pack时,如果elastic用户还没有密码,则使用默认引导程序密码。 引导程序密码是一个临时密码,使你可以运行设置所有内置用户密码的工具。默认情况下,引导密码是从随机的keystore.seed设置派生的,安装X-Pack时添加到密钥库。 不需要知道或更改此引导程序密码。 如果已在密钥库中定义了bootstrap.password设置,则会使用该值。

       为内置用户设置密码后,特别是对于elastic用户,bootstrap  password不再使用。

设置内置的用户密码:

      就是用setup-passwords这个命令,这里就不再说了。

      如果不设置内置用户的密码。在启动Elasticsearch之前,必须在密钥库中明确设置bootstrap.password设置。 例如,以下命令提示您输入新的引导密码:

bin/elasticsearch-keystore add "bootstrap.password"

       可以启动Elasticsearch和Kibana,并使用弹性用户和引导程序密码登录到Kibana并更改密码。 或者,可以为每个内置用户提交更改密码API请求。 这些方法更适合在初始设置完成后更改密码,因为此时不再需要引导密码。

将内置的用户密码添加到Kibana和Logstash:

      在设置kibana用户密码后,需要通过在kibana.yml配置文件中设置elasticsearch.password来使用新密码更新Kibana服务器:

elasticsearch.password: kibanapassword

      在为Logstash启用监视时,Logstash_system用户在Logstash内部使用。要在Logstash中启用此功能,需要通过在logstash.yml配置文件中设置xpack.monitoring.elasticsearch.password来使用新密码更新Logstash配置:

xpack.monitoring.elasticsearch.password: logstashpassword

       如果已从较旧版本的elasticsearch/x-pack升级,则logstash_system用户可能由于安全原因而默认为禁用。 密码更改后,可以通过以下API调用启用用户:

PUT _xpack/security/user/logstash_system/_enable

内部用户:

       X-Pack安全性有三个内部用户(_system,_xpack和_xpack_security)负责在Elasticsearch集群内进行的操作。这些用户只能由来自群集内部的请求使用。 出于这个原因,它们不能用于对API进行认证,也没有密码来管理或重置。不时地,可能会在日志中找到对这些用户之一的引用,包括审核日志。

#剩下的请参考:https://www.elastic.co/guide/en/x-pack/current/setting-up-authentication.html

身份验证是如何工作的
允许匿名访问
本地用户身份验证
LDAP用户身份验证
Active Directory用户身份验证
PKI用户身份验证
基于文件的用户身份验证
结合其他身份验证系统
控制用户缓存

3.5 配置基于角色的访问控制

简单介绍:

      X-Pack安全性向Elasticsearch引入了授权的概念。 授权是确定传入请求后面的用户是否被允许执行的过程。 一旦请求被成功认证并且请求后面的用户被识别,该过程就发生。

角色,权限和特权:

授权过程围绕以下5个结构进行:Secured Resource、Privilege、Permissions、Role、User

权限的完整列表:https://www.elastic.co/guide/en/x-pack/current/security-privileges.html

Built-in Roles(内置角色):

      X-Pack安全性将默认角色应用于所有用户,包括匿名用户。 默认角色使用户能够访问身份验证端点,更改自己的密码并获取有关他们自己的信息。X-Pack安全性还提供了一组可以明确分配给用户的内置角色。 这些角色有一组固定的权限,不能更新。

ingest_admin  #授予访问权限以管理所有索引模板和所有摄取管道配置。这个角色不能提供创建索引的能力; 这些特权必须在一个单独的角色中定义。
kibana_dashboard_only_user  #授予对Kibana仪表板的访问权限以及对.kibana索引的只读权限。 这个角色无法访问Kibana中的编辑工具。
kibana_system  #授予Kibana系统用户读取和写入Kibana索引所需的访问权限,管理索引模板并检查Elasticsearch集群的可用性。 此角色授予对.monitoring- *索引的读取访问权限以及对.reporting- *索引的读取和写入访问权限。
kibana_user   #授予Kibana用户所需的最低权限。 此角色授予访问集群的Kibana索引和授予监视权限。
logstash_admin  #授予访问用于管理配置的.logstash *索引的权限。
logstash_system  #授予Logstash系统用户所需的访问权限,以将系统级别的数据(如监视)发送给Elasticsearch。不应将此角色分配给用户,因为授予的权限可能会在不同版本之间发生变化。此角色不提供对logstash索引的访问权限,不适合在Logstash管道中使用。
machine_learning_admin  #授予manage_ml群集权限并读取.ml- *索引的访问权限。
machine_learning_user   #授予查看X-Pack机器学习配置,状态和结果所需的最低权限。此角色授予monitor_ml集群特权,并可以读取.ml-notifications和.ml-anomalies *索引,以存储机器学习结果。
monitoring_user  #授予除使用Kibana所需的X-Pack监视用户以外的任何用户所需的最低权限。 这个角色允许访问监控指标。 监控用户也应该分配kibana_user角色。
remote_monitoring_agent  #授予远程监视代理程序将数据写入此群集所需的最低权限。
reporting_user  #授予使用Kibana所需的X-Pack报告用户所需的特定权限。 这个角色允许访问报告指数。 还应该为报告用户分配kibana_user角色和一个授予他们访问将用于生成报告的数据的角色。
superuser   #授予对群集的完全访问权限,包括所有索引和数据。 具有超级用户角色的用户还可以管理用户和角色,并模拟系统中的任何其他用户。 由于此角色的宽容性质,在将其分配给用户时要格外小心。
transport_client  #通过Java传输客户端授予访问集群所需的权限。 Java传输客户端使用节点活性API和群集状态API(当启用嗅探时)获取有关群集中节点的信息。 如果他们使用传输客户端,请为您的用户分配此角色。
watcher_admin  #授予对.watches索引的写入权限,读取对监视历史记录的访问权限和触发的监视索引,并允许执行所有监视器操作。
watcher_user  #授予读取.watches索引,获取观看动作和观察者统计信息的权限。

图片.png

#剩下的部分请参考官网:https://www.elastic.co/guide/en/x-pack/current/authorization.html

内置的角色
定义角色
授予特权指数与别名
用户和组映射到角色
设置字段和记录级安全性
代表其他用户提交请求
自定义角色提供者扩展

四、Monitoring the Elastic Stack

       X-Pack监视让深入了解Elasticsearch,Logstash和Kibana的操作。 所有监控指标都存储在Elasticsearch中,这使可以方便地查看Kibana的数据。从Kibana监控界面,可以一目了然地发现问题,深入了解系统行为,以便诊断运营问题。 除了内置状态警告之外,还可以根据监控指标中的数据设置自定义警报。

4.1 如何监测工作

      监视从Elasticsearch节点,Logstash节点和Kibana实例收集数据。 正在监视的Elasticsearch群集将控制整个堆栈的监视度量标准的存储位置。 默认情况下,它们存储在本地索引中。 在生产中,强烈建议使用单独的监控群集。 使用单独的监视群集可以防止生产群集中断影响访问监视数据的能力。 它还可以防止监视活动影响您的生产群集的性能。

     下图说明了具有独立生产和监控群集的典型监控体系结构:

图片.png

    如果至少拥有金牌照,则可以将来自多个生产群集的数据路由到单个监视群集:

图片.png

如果Kibana是堆栈的常规部分,则可能需要创建专用的Kibana实例进行监视,而不是使用单个Kibana实例来访问生产群集和监视群集:

图片.png

4.2 生产环境中的监控

       默认情况下,X-Pack监视代理将Elasticsearch索引数据导入到正在运行的集群中。 在生产中,您应该将数据发送到单独的监视群集,以便即使您正在监视的节点不是,也可以使用历史监视数据。 使用专用监视群集还可以从中央位置监视多个群集。

第一步:设置要用于监视的Elasticsearch群集,安装X-Pack,然后启动Elasticsearch。 例如,可以使用节点es-mon-1和es-mon-2设置两个主机群集。

#要监视Elasticsearch 6.x群集,必须在监视群集上运行相同或更高版本的Elasticsearch 6.x。 在监视群集上安装X-Pack不是绝对必要的,强烈建议安装它。

第二步:安装X-Pack并在Kibana中配置X-Pack监控。

第三步:在具有remote_monitoring_agent角色的监视群集上创建一个用户。 当数据从正在监视的Elasticsearch群集发送到专用监视群集时,将使用这些凭证。 例如,以下请求会创建具有remote_monitoring_agent角色的remote_monitor用户:

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

第四步:在生产群集的Elasticsearch节点上安装X-Pack。

第五步:通过在elasticsearch.yml中的xpack.monitoring.exporters设置中配置一个HTTP导出器,配置正在监视的集群中的每个Elasticsearch节点以将度量标准发送到监视集群。

xpack.monitoring.exporters:
  id1:
    type: http
    host: ["http://es-mon-1:9200", "http://es-mon2:9200"]  #如果在监视群集上启用SSL/TLS,则必须通过HTTPS进行连接。
    auth.username: remote_monitor   #如果在监视群集上禁用了X-Pack安全性,则可以省略auth.username和auth.password。
    auth.password: changeme

第六步:如果监视群集上启用了SSL/TLS,请指定将用于验证监视群集中节点身份的可信CA证书。要将CA证书添加到Elasticsearch节点的可信证书,可以使用certificate_authorities设置来指定PEM编码证书的位置:

xpack.monitoring.exporters:
  id1:
    type: http
    host: ["https://es-mon1:9200", "https://es-mon2:9200"]
    auth:
      username: agent-user
      password: password
    ssl:
      certificate_authorities: [ "/path/to/ca.crt" ]
  id2:
    type: local

或者,可以使用信任库(包含证书的Java密钥库文件)配置可信证书:

xpack.monitoring.exporters:
  id1:
    type: http
    host: ["https://es-mon1:9200", "https://es-mon2:9200"]
    auth:
      username: remote_monitor
      password: changeme
    ssl:
      truststore.path: /path/to/file
      truststore.password: password
  id2:
    type: local

第七步:在生产群集中的节点上重新启动Elasticsearch。在重新启动节点之前,您可能需要临时禁用碎片分配,以避免在安装过程中进行不必要的碎片重新分配。

第八步:要验证X-Pack监控安装,请将Web浏览器指向Kibana主机,然后从侧面导航选择Monitoring。 启用安全性时,要查看监视仪表板,必须以具有kibana_user和monitoring_user角色的用户身份登录到Kibana。 例如:

POST /_xpack/security/user/stack-monitor
{
  "password" : "changeme",
  "roles" : [ "kibana_user", "monitoring_user" ]
}

图片.png

博文来自:www.51niux.com

#我没像上面介绍的分集群,就在一个集群上面搞的,所以什么都不用配置,因为Logstash还没安装X-Pack,所以图上还没有Logstash的监控信息。

图片.png

#上面蓝色背景的字体都是可以点的,可以查看详细的信息,如上图,而且这个监控功能就算X-Pack免费体验30天到期了也是可以用的,官网是这么说的。

配置监控:

      高级监控设置使您能够控制数据收集的频率,配置超时以及为本地存储的监控索引设置保留期限。 还可以调整监视数据的显示方式。 有关更多信息,请参阅监视设置(https://www.elastic.co/guide/en/kibana/6.1/monitoring-settings-kb.html)。

配置监视的索引:

      索引模板(https://www.elastic.co/guide/en/elasticsearch/reference/6.1/indices-templates.html)用于配置存储从集群收集的监视数据的索引。可以通过_template API检索模板:

$ curl -XGET -u elastic '192.168.14.66:9200/_template/.monitoring-*'   #下面是输入密码之后的部分json信息

Enter host password for user 'elastic':   #输入用户密码
{".monitoring-alerts":{"order":0,"version":6000051,"index_patterns":[".monitoring-alerts-6"],"settings":{"index":{"format":"6","codec":"best_compression","number_of_shards":"1","number_of_replicas":"1"}},"mappings":{"doc":{"dynamic":false,"properties":{"timestamp":{"type":"date"},"update_timestamp":{"type":"date"},"resolved_timestamp":{"type":"date"},"prefix":{"type":"text"},"message":{"type":"tex

默认情况下,模板为监视索引配置一个碎片和一个副本。 要覆盖默认设置,请添加您自己的模板:

将模板模式设置为.monitoring- *。
将模板顺序设置为1.这将确保您的模板在默认模板(顺序为0)之后应用。
在设置部分指定number_of_shards和/或number_of_replicas。

例如,以下模板将碎片数量增加到五个,副本数量增加到两个。

PUT /_template/custom_monitoring
{
    "template": ".monitoring-*",
    "order": 1,
    "settings": {
        "number_of_shards": 5,
        "number_of_replicas": 2
    }
}

注:只在设置部分设置number_of_shards和number_of_replicas。 覆盖其他监视模板设置可能会导致监视仪表板停止正常工作。

4.3 监控在kibana上面的设置

      安装X-Pack时默认启用监视。 可以通过在kibana.yml中配置xpack.monitoring设置来调整Monitoring UI中监视数据的显示方式。 还有xpack.monitoring.elasticsearch.*设置,它们支持与Kibana配置设置相同的值。

      要控制从Elasticsearch节点收集数据的方式,请在elasticsearch.yml中配置xpack.monitoring.collection设置。 要控制如何从Logstash收集监视数据,可以在logstash.yml中配置xpack.monitoring设置。

监视UI设置:

可以在kibana.yml中设置以下xpack.monitoring设置,以调整监视UI显示监视数据的方式。 但是,在大多数情况下,默认值的效果最好。 有关配置Kibana的更多信息,请参阅设置Kibana服务器属性(https://www.elastic.co/guide/en/kibana/6.1/settings.html)。

xpack.monitoring.enabled   #设置为false以禁用X-Pack监视UI。
xpack.monitoring.elasticsearch.url  #监视数据存储在Elasticsearch实例的位置。 默认情况下,这与elasticsearch.url相同。 通过此设置,您可以使用单个Kibana实例来搜索和可视化生产群集中的数据,并监视发送到专用监视群集的数据。
xpack.monitoring.elasticsearch.username  #指定Kibana从监视集群中检索数据时用于身份验证的用户标识。 如果未设置,Kibana将使用elasticsearch.username设置的值。
xpack.monitoring.elasticsearch.password  #指定Kibana从监视集群中检索数据时用于身份验证的密码。 如果没有设置,Kibana将使用elasticsearch.password设置的值。
xpack.monitoring.kibana.collection.enabled  #是否启用Kibana NodeJS服务器的Kibana仪表板的数据收集功能。 默认为true。
xpack.monitoring.kibana.collection.interval  #在Kibana的NodeJS服务器的数据采样之间等待显示在Kibana仪表板中的指标之间等待的毫秒数。 默认为10000(10秒)。
xpack.monitoring.max_bucket_size  #在执行术语聚合以检索索引和节点度量标准时,要从总体术语列表中返回的术语桶的数量。 默认为10000。
xpack.monitoring.min_interval_seconds  #图表中的时间段可以表示的最小秒数。 默认为10.如果您修改elasticsearch.yml中的xpack.monitoring.collection.interval,请将此选项设置为相同的值。
xpack.monitoring.report_stats  #是否将群集统计信息发送给Elastic。报告您的群集统计信息有助于我们改善用户体验。您的数据永远不会与任何人共享。设置为false可禁用连接到Kibana实例的任何浏览器的统计报告。您也可以通过Kibana的高级设置选择退出。 默认为true。
xpack.monitoring.ui.enabled  #设置为false以隐藏Kibana中的监视UI。 监控后端将继续作为将Kibana统计信息发送到监控群集的代理运行。 默认为true。

Terms聚合:https://www.elastic.co/guide/en/elasticsearch/reference/6.1/search-aggregations-bucket-terms-aggregation.html#_size

监视UI容器设置:

       Monitoring UI公开了我们收集的Cgroup统计信息,以便您更好地决定容器性能,而不是根据整体机器性能进行猜测。 如果您没有在容器中运行应用程序,那么Cgroup统计信息将不会有用。

xpack.monitoring.ui.container.elasticsearch.enabled   #对于在容器中运行的Elasticsearch集群,此设置会根据报告的Cgroup统计信息,将节点列表更改为显示CPU利用率。 这也会将计算的Cgroup CPU利用率添加到节点概览页面,而不是整个操作系统的CPU利用率。 默认为false。

五、关于群集和索引事件的警报

请参考官网:https://www.elastic.co/guide/en/x-pack/current/xpack-alerting.html

图片.png

六、X-Pack APIs

6.1 Info API

info API提供有关已安装的X-Pack的一般信息。

Request:

$ curl -XGET -u elastic '192.168.14.66:9200/_xpack'
描述:

这个API提供的信息包括:

构建信息 - 包括构建号和时间戳。
许可证信息 - 有关当前安装的许可证的基本信息。
功能信息 - 当前许可证中当前已启用且可用的功能。

路径参数:

categories  #(列表)要包含在响应中的信息类别的逗号分隔列表。 例如,构建,许可证,功能。
human  #(boolean)定义响应中是否包含附加的可读信息。 特别是,它增加了描述和标记行。 默认值是true。

以下示例仅返回构建和功能信息:

$ curl -XGET -u elastic '192.168.14.66:9200/_xpack?categories=build,features'
以下示例从响应中删除描述:

$ curl -XGET -u elastic 192.168.14.66:9200/_xpack?human=false
#剩下的查看官网:https://www.elastic.co/guide/en/x-pack/current/xpack-api.html

Info API
Graph APIs
Machine Learning APIs
Security APIs
Watcher APIs
Definitions
作者:忙碌的柴少 分类:ELK 浏览:22405 评论:2
留言列表
soulRR
soulRR 很棒的一篇ELK X-Pack 详解。
受益匪浅。  回复
忙碌的柴少
忙碌的柴少 恩 重点是要多看官网。  回复
发表评论
来宾的头像