ELK Stack 之X-pack

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 打开微信扫一扫,关注微信公众号【数据与算法联盟】 转载请注明出处:http://blog.csdn.net/gamer_gyt 博主微博:http://weibo.com/234654758 Github:https://github.

这里写图片描述
打开微信扫一扫,关注微信公众号【数据与算法联盟】
转载请注明出处: http://blog.csdn.net/gamer_gyt
博主微博: http://weibo.com/234654758
Github: https://github.com/thinkgamer


前言

elasticsearch,logstash随着kibana的命名升级直接从2.4跳跃到了5.0,5.x版本的elk在版本对应上要求相对较高,不再支持5.x和2.x的混搭,同时elastic做了一个package,对原本的watch,alert做了一个封装,形成了x-pack,也就是下面我们要讨论的内容


简介

x-pack是elasticsearch的一个扩展包,将安全,警告,监视,图形和报告功能捆绑在一个易于安装的软件包中,虽然x-pack被设计为一个无缝的工作,但是你可以轻松的启用或者关闭一些功能


安装

Elasticsearh:bin/elasticsearch-plugin install x-pack
(es如果是一个集群,在每一个节点上安装)
Kibana:bin/kibana-plugin install x-pack


用户管理

x-pack安装之后有一个超级用户elastic ,其默认的密码是changeme,拥有对所有索引和数据的控制权,可以使用该用户创建和修改其他用户,当然这里可以通过kibana的web界面进行用户和用户组的管理

这里写图片描述

也可以使用shell 终端进行管理:
修改elastic用户的密码:

curl -XPUT -u elastic 'localhost:9200/_xpack/security/user/elastic/_password' -d '{
  "password" : "123456"
}'

修改kibana用户的密码:

curl -XPUT -u elastic 'localhost:9200/_xpack/security/user/kibana/_password' -d '{
  "password" : "123456"
}'

创建用户组和角色,创建所属用户
eg:创建beats_admin用户组,该用户组对filebeat*有all权限,对.kibana*有manage,read,index权限

curl -XPOST -u elastic 'localhost:9200/_xpack/security/role/beats_admin' -d '{
  "indices" : [
    {
      "names" : [ "filebeat*" ],
      "privileges" : [ "all" ]
    },
    {
      "names" : [ ".kibana*" ],
      "privileges" : [ "manage", "read", "index" ]
    }
  ]
}'

创建jockbeat用户,密码是jockbeat

curl -XPOST -u elastic 'localhost:9200/_xpack/security/user/jockbeat' -d '{
  "password" : "jockbeat",
  "full_name" : "jock beat",
  "email" : "john.doe@anony.mous",
  "roles" : [ "beats_admin" ]
}'

保护级别

X-pack提供以下几个级别保护elastic集群

  • 用户验证
  • 授权和基于角色的访问控制
  • 节点/客户端认证和信道加密
  • 审计

1:启动消息身份验证,验证消息在传输的过程中未被篡改或者修改

bin/x-pack/syskeygen

如果es是一个集群,请将生成的密钥复制到集群的其他节点
2:启动审核以跟踪与您的elasticsearch集群的尝试与成功的交互

vim config/elasticsearch.yml
xpack.security.audit.enabled: true


x-pack的权限保护

安装完x-pack,登录elasticsearch和kibana会让你输入密码

这里写图片描述

这里写图片描述


X-pack的elk之间的数据传递保护

安装完x-pack之后,我们就可以用我们所创建的用户来保护elk之间的数据传递

1:kibana<——>elasticsearch

在kibana.yml文件中配置:

elasticsearch.username: “elastic”
elasticsearch.password: “changeme”

2:logstash<——>elasticsearch

在自己写的配置文件中定义

input {
  stdin{}
  beats{
     port => 5044
  }
}
output {
    elasticsearch {
       hosts => ["http://localhost:9200"]
       user => elastic
       password => changeme
}
   stdout{
       codec=>rubydebug
   }
}

这里如果不进行相关配置的话,elk之间的数据传递就会出现问题


x-pack的监控功能

取消X-Pack监控组件使您能够通过Kibana轻松监控Elasticsearch。 您可以实时查看集群运行状况和性能,以及分析过去的集群,索引和节点指标。 此外,您可以监控Kibana本身的性能。
在群集上安装X-Pack时,监视代理会在每个节点上运行,以从Elasticsearch收集索引指标。 通过在Kibana中安装X-Pack,您可以通过一组专用仪表板查看监视数据

这里写图片描述

elasticsearch:
这里写图片描述

kibana:
这里写图片描述

配置监控的索引:
编辑elasticsearch.yml,假设监控logstash-*,index1,test2索引
xpack.monitoring.collection.indices: logstash-*, index1, test2
您可以在前面加上+或 - 来显式包含或排除索引名称或模式。 例如,要包括以test开头的所有索引(test3除外),可以指定+ text *, - test3。

设置单独的集群监控:
https://www.elastic.co/guide/en/x-pack/current/monitoring-cluster.html


x-pack的alert

总体上来将和之前的单独产品watch并没有什么太大的区别,这里我们只是简单的看下x-pack的alert功能,更多详细内容参考官网
https://www.elastic.co/guide/en/x-pack/current/xpack-alerting.html

当watch被触发的时候,数据将会被加载到执行的context中,watch支持四种输入:

  • Simple:加载静态的数据到execution context中
  • Search:加载搜索的结果到execution context中
  • Http:将Http请求的结果加载到execution context中
  • chain:使用一系列输入将数据加载到execution context中

每个watch必须有一个触发器触发watch的执行开始,watch旨在支持不同类型的的触发器,但只有基于时间戳的计划触发器目前可用,watch提供了以下几种类型的时间过滤器

  • Hourly
  • Daily
  • Weekly
  • Monthly
  • Yearly
  • Cron
  • Interval

例如创建一个每小时的watch监控(每半个小时启动一次)

{ 
   "trigger" : {
           "schedule" : { 
                   "hourly" : {   "minute" : 30 }
               }
    }
 }

配置一个每小时多时间的watch(每15分钟启动一次)

{
  "trigger" : {
    "schedule" : {
      "hourly" : { "minute" : [ 0, 15, 30, 45 ] }
    }
  }
}

x-pack的Graph

https://www.elastic.co/guide/en/x-pack/current/graph-getting-started.html

这里写图片描述

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
4月前
|
存储 Prometheus 监控
Prometheus vs. ELK Stack:容器监控与日志管理工具的较量
随着容器化技术的广泛应用,容器监控与日志管理成为了关键任务。本文将对两种常用工具进行比较与选择,分别是Prometheus和ELK Stack。Prometheus是一款开源的监控系统,专注于时序数据的收集和告警。而ELK Stack则是一套完整的日志管理解决方案,由Elasticsearch、Logstash和Kibana三个组件组成。通过比较它们的特点、优势和适用场景,读者可以更好地了解如何选择适合自己需求的工具。
|
4月前
|
Go 数据处理 Docker
elk stack部署自动化日志收集分析平台
elk stack部署自动化日志收集分析平台
83 0
|
存储 消息中间件 运维
Kubernetes中部署ELK Stack日志收集平台(上)
Kubernetes中部署ELK Stack日志收集平台
Kubernetes中部署ELK Stack日志收集平台(上)
|
4月前
|
Prometheus 监控 Cloud Native
Prometheus VS ELK Stack:容器监控与日志管理工具的比较与选择
在容器化时代,有效的容器监控与日志管理工具对于确保应用程序的可靠性和可维护性至关重要。本文将比较两个主流工具,Prometheus和ELK Stack,探讨它们在容器监控和日志管理方面的特点、优势和适用场景,帮助读者做出明智的选择。
|
11月前
|
存储 监控 安全
【Elastic Stack-初识篇】 ELK介绍、搭建最新 ELK 日志分析系统
【Elastic Stack-初识篇】 ELK介绍、搭建最新 ELK 日志分析系统
696 0
|
12月前
|
消息中间件 缓存 负载均衡
【日志架构】ELK Stack + Kafka 端到端练习
【日志架构】ELK Stack + Kafka 端到端练习
|
12月前
|
消息中间件 监控 固态存储
带你读《Elastic Stack 实战手册》之71:——4.1.3.企业ELK日志搜索引擎
带你读《Elastic Stack 实战手册》之71:——4.1.3.企业ELK日志搜索引擎
BXA
|
12月前
|
Prometheus Kubernetes 监控
搭建高效微服务架构:Kubernetes、Prometheus和ELK Stack的完美组合
微服务架构是一种软件设计模式,它将单个应用程序拆分成一组更小、更独立的服务。每个服务在自己的进程中运行,并使用轻量级通信机制进行通信。由于每个服务都是独立的,因此可以独立部署、扩展和更新,从而使开发和运维更加容易。
BXA
318 0
|
消息中间件 数据采集 存储
客户端同学应该理解的 ELK Stack 组件知识
客户端同学应该理解的 ELK Stack 组件知识
129 0
客户端同学应该理解的 ELK Stack 组件知识