0x01 前言

最近elasticstack技术栈发布了6.0,目前最新版本是6.1.0。而我也在最近2周看了新版的文档,发现有好多东西都发生了变化。在最近的一周里,我将我家里的elasticstack从5.6升级到6.0.1。

在5.0的时候我试用过x-pack,功能非常强大,尤其是监控和告警的功能。可这个是收费的,而且费用非常昂贵,所以在这里我需要对一些文件进行修改。

在6.0的时代我也想尝试使用,最主要是想开发告警插件,接入微信。

0x02 安装

在安装x-pack之前要先安装好elasticsearch、kibana和logstash。简单的安装过程可以参考以下文章:

然后要安装x-pack,在这里要先为elasticsearch安装,然后是kibana,最后是logstash。

因为x-pack的安全要求,需要对各个组件间的传输数据使用TLS加密,同时需要为各个内置配置密码。在这里我不对这部分内容进行说明,在elasticsearch.yml文件中使用以下参数禁用x-pack的安全配置:

添加好以上参数后先不要重启服务,先安装x-pack。

x-pack的安装包是通用的,如果网络情况不理想的话,建议下载安装包进行安装,以下是下载地址:

下载好文件后使用以下命令为elasticsearch安装x-pack:

如果不想下载安装包,还可以通过以下命令直接安装,其实还是会下载安装包,只不过不会保存到本地而已:

安装过程需要点时间,完成后重启elasticsearch服务,然后需要使用以下命令设置各个内置账号的密码:

这时候在kibana里是看不到任何变化的,因为还需要为kibana安装x-pack。用同样的安装包为kibana安装:

还可以直接安装:

完成后重启kibana,然后登入kibana即可看到机器学习、图形工作台与监控按钮:

因为在一开始就禁用了x-pack的安全功能,所以用户控制的按钮被隐藏了。如果需要用户控制功能,请参考官方网站的文档完成安全配置之后再将以下配置从elasticsearch.yml移除即可:

0x03 激活

在继续之前需要提醒大家请不要将修改过的文件应用在生产环境,这可能会导致不可挽回的错误。同时请大家支持正版软件,以下是x-pack授权的购买地址:

从上面的地址可以看到授权分为开源版、基础版、黄金版、铂金版与企业版。企业版比铂金版多ELASTIC CLOUD的管理功能,可管理多个群集,因为我用不上,所以选择铂金版。

先通过以下地址申请一个基础版的授权:

提交申请后,稍等片刻即可收到官方发送的邮件,从邮件中的地址下载授权文件,文件中的内容如下:

相关字段如下:

  • issue_date_in_millis:授权启用时间,无需修改
  • expiry_date_in_millis:授权到期时间,将时间戳的第一位加1即可
  • type:授权级别,platinum为铂金

其余内容请勿修改,保存名为license.json的文件即可。

然后在系统中新建以下文件:

然后使用openjdk进行编译,如果你也是用官方的安装包,那么以下文件的路径应该和我一致,为了安全起见,请再次确认。然后使用以下命令进行编译:

如果提示找不到javac的命令,请使用以下命令安装:

编译过程非常快,但不会输出内容,完成后会在当前目录生成一个LicenseVerifier.class的二进制文件。

这个LicenseVerifier.class文件是判断授权是否有效的文件,若有效则返还true。因此需要手动将其判断逻辑删除,直接返还true。

然后需要将编译好的文件替换到x-pack的jar包中:

完成后重启elasticsearch服务,然后将修改好的授权文件使用以下命令导入到elasticsearch中:

在此过程中需要输入elastic的密码,改密码就是安装完x-pack后手动设置的那个。

最终回到kibana的monitoring窗口即可看到授权有效期:

点击进入可以看到更详细的信息:

0x04 其他

因为x-pack的授权信息是保存在elasticsearch,授权内容则是根据授权级别的不同来确定的,因此只需要导入一次即可。

不过需要将每一个组件的x-pack的jar包进行替换,如果不升级是一直有效的。

如果各个组件都安装在不同服务器中,则需要指定elasticsearch的服务器地址,如:

将以上配置文件添加到组件的yml配置文件中即可。

最后,x-pack的监控功能确实比elasticsearch-head要棒!毕竟是是收费的软件。

0x05 结语

最后还是要提醒大家请不要将修改过的文件应用在生产环境,这可能会导致不可挽回的错误。同时请大家支持正版软件,以下是x-pack授权的购买地址: