ELK Stack 之X-pack

这里写图片描述
打开微信扫一扫,关注微信公众号【数据与算法联盟】
转载请注明出处: 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

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值