开源日志分析系统建设(五)

本节主要讲一些ELK的安全配置,比如监控、告警和安全传输。

一、前言

前面几篇文章我们介绍了ELK的各个组件以及组件的安装过程。

Elasticsearch篇:http://www.freebuf.com/column/178432.html

Kibana篇:http://www.freebuf.com/column/178551.html

Logstash篇:http://www.freebuf.com/column/178825.html

Filebeat篇:http://www.freebuf.com/column/179053.html

下面我们要考虑几个问题就是如何保证各个组件之间消息传输的可靠性?如何保证我们的组件是安全运行的?如何在第一时间接收到组件状态通知?通过下面的内容就可以了解到如何解决上述问题。

二、X-Pack介绍

没错,我们使用的是ELK自带的X-Pack插件。X-Pack是一个Elastic Stack的扩展,将安全,警报,监视,报告和图形功能包含在一个易于安装的软件包中,通过这个 插件我们可以监控各个组件的运行状态,可以第一时间获取到安全信息。在Elasticsearch 5.0.0之前,您必须安装单独的Shield,Watcher和Marvel插件才能获得在X-Pack中所有的功能。而在后面版本中只需要输入几条命令即可安装X-Pack插件。下面我们就介绍如何在ELK组件中安装该插件。

三、X-Pack安装

本文环境:

操作性系统:Ubuntu14.04 x86_64

Elasticsearch 6.3.0

Kibana6.3.0

Logstash6.3.0

Filebeat6.3.0

3.1  Elasticsearch下载安装X-Pack

1)在Es的根目录(每个节点),运行 bin/elasticsearch-plugin进行安装。

bin/elasticsearch-plugin install x-pack

image.png

两次均输入Y即可。

注意:6.3.0版本是默认安装x-pack组件的,所以不需要再次安装x-pack组件。

image.png

2)初始化x-pack用户名、密码:

安装完插件后必须要初始化用户名密码,否则后面无法跟kibana进行联动。重置密码时必须保证elasticsearch是运行状态的。

bin/x-pack/setup-passwords [ auto | interactive ]

image.png

注意:需要在elasticsearch运行的情况下配置。auto表示自动配置,interactive表示交互配置。

6.3.0版本后使用的是/usr/share/elasticsearch/bin/elasticsearch-setup-passwords命令来重置用户名密码的。

image.png在使用这个命令之前需要配置elastisearch.yml文件,开启security功能,然后重启elasticsearch【必做】

image.png

修改完配置文件,开启security功能后即可重置用户名密码
image.png重置密码完毕。重置完毕后我们可以到kibana界面中查看我们重置的账户信息。

image.png

3.2 Kibana下载安装X-Pack

在Kibana根目录运行 bin/kibana-plugin 进行安装。

bin/kibana-plugin install x-pack

image.png注:6.3.0版本后默认是自动安装x-pack的,不需要再次安装。

安装完成后,需要修改kibana.yml文件,配置用户名和密码。(这里的用户名和密码是上面Elasticsearch安装x-pack插件初始化的账号密码)

image.png

1)若验证错误,访问kibana页面时会出现如下情况:

image.png

命令行输出:

image.png

2)若验证成功,则是如下情形:

image.png

命令行输出:

image.pngimage.png

注:6.3.0版本后直接点击kibana-monitoring页面中的开启monitoring按钮即可开启监控功能。

登陆进去后查看monitoring界面:

image.png

从上面图片中我们可以看到kibana和Elasticsearch已经出现在Monitoring页面中了,点开任何一个节点都能看到其运行状态。

elasticsearch节点overview。能够看到查询速率、建立索引速率:

image.png

elasticsearch节点nodes。能够看到节点的状态、cpu、jvm等信息:

image.png

elasticsearch节点indices。能够查看节点的索引情况:

image.png

kibana节点overview。能够看到客户端请求和客户端响应时间:

image.png

kibana节点查看instance。能够看到节点的状态以及内存大小等信息:

image.png
下面我们再配置logstash和filebeat,让其也加入到监控页面中。

3.3 Logstash下载安装X-Pack

进入到logstash根目录下面,通过logstash-plugin命令来安装x-pack插件。

bin/logstash-plugin install x-pack

注:6.3.0版本是自动安装x-pack插件的。

然后在logstash的配置文件logstash.yml里增加如下配置:

xpack.monitoring.elasticsearch.url: “http://192.168.18.130:9200″        

xpack.monitoring.elasticsearch.username: “logstash_system” 

xpack.monitoring.elasticsearch.password: “logstash_system”

上面的url地址和端口是elasticsearch的ip地址和运行端口。用户名和密码也是在elasticsearch安装x-pack插件时设置的密码。

注意:这里只能配置logstash_system账户,配置其他账户测试没有连接成功。

6.3.0版本需要在配置文件中增加xpack.monitoring.enabled: true选项和sniffing为true。

image.png

同样,在Logstash.conf文件里如果有输出到elasticsearch,也需要增加身份认证信息,如下:

image.png完成后,重新加载运行logstash,然后切到kibana的monitoring页面,我们就可以看到logstash的信息了。

image.png

3.4 Filebeat下载安装X-Pack

进入到logstash根目录下面,修改filebeat.yml配置文件。(注意:只有大于等于6.2版本的beats才支持监控功能

Filebeat会使用beats_system用户向Elasticsearch发送监控数据(只需要保证在elasticsearch重置密码阶段配置好该账户密码即可)

配置监控时有两个选项:

1)如果Filebeat的输出是到Elasticsearch,则需要增加如下配置:

xpack.monitoring.enabled: true

2)如果Filebeat的输出是到logstash,而不是直接输出到Elasticsearch,则需要增加如下配置:

xpack.monitoring:

  enable: true

  elasticsearch: 

    hosts: ["http://192.168.18.130:9200"]

    username: “beats_system”

    password: “beats_system”

image.png

配置完毕后,重新启动Filebeat程序,然后切回到kibana的monitoring页面即可看到Filebeat处于监控状态。

image.png点进去,能够看到Filebeat节点的详细信息。比如事件速率、错误信息、top5等等。

image.png

点击instance能够看到节点的状态信息。

image.png

3.5 X-pack告警

安装完x-pack后会自动启用告警能力,我们只需要登陆到kibana切换到monitoring页面即可看到当前的告警信息。

image.png点击右上角的view all alerts能够查看到当前的所有告警信息。

image.png

以上就是ELK体系各个组件安装和配置X-Pack的过程。通过上面我们能够知道x-pack能够提供监控、告警等能力,通过x-pack能够大大减少管理员的工作量提高工作效率,能够保证随时监控各个组件的运行状态、在第一时间获取到告警信息,避免因告警不及时而造成重大安全事故。

附:开启或关闭X-Pack功能

默认情况下,所有的X-Pack功能都是开启的,可以编辑elasticsearch.yml、kibana.yml和logstash.yml文件来开启或者关闭某些功能。

Setting  Description
xpack.graph.enabled Set to false to disable X-Pack graph features.
xpack.ml.enabled Set to false to disable X-Pack machine learning features.
xpack.watcher.enabled Set to false to disable Watcher.
xpack.monitoring.enabled Set to false to disable X-Pack monitoring features.
xpack.reporting.enabled Set to false to disable X-Pack reporting features.
xpack.security.enabled  Set to false to disable X-Pack security features.

 

发表评论

已有 1 条评论

取消
Loading...

填写个人信息

姓名
电话
邮箱
公司
行业
职位
css.php