0. 背景

我们在使用ELK进行日志记录的时候,通过网址在Kibana中查看我们的应用程序(eg: Java Web)记录的日志,

但是默认是任何客户端都可以访问Kibana的, 这样就会造成很不安全,我们应该设置相应的用户名和密码,

只有通过登录用户名和密码才能通过Kibana查看我们的日志。

1. 在elasticsearch 2.x的版本是怎么做的

笔者网上查了一些博文,大部分推荐的是通过给elasticsearch安装Shield插件,参考链接如下:

http://blog.csdn.net/xuplus/article/details/51611658

但是,这种做法已经过时了,而且当你从官网下载的elasticsearch的最新版本,笔者写博文时候是5.x(5.2.2)

照着博文上安装插件的做法,根本是不行的

一般博文会建议进入elasticsearch的根目录,执行如下命令: bin/plugin install shield

但是,当你用的是5.x的时候,你会发现根本就没有plugin这条命令,进入es的根目录,发现只有

elasticsearch-plugin这条命令,这是怎么回事呢?
于是笔者上了官网一探究竟(任何时候查找技术,官网永远是最好最权威的选择)
官网给出的解释如下:

笔者恍然大悟,原来在5.x以后Shield插件已经作为X-Pack的一部分了,所以,必须查找关于X-Pack的相关文档。

2. X-Pack是什么?

以下是官网给出的解释:

(X-Pack is an Elastic Stack extension that bundles security, alerting, monitoring, reporting, and graph capabilities into one easy-to-install package.

Prior to Elasticsearch 5.0.0, you had to install separate Shield, Watcher, and Marvel plugins to get the features that are bundled together in X-Pack.

With X-Pack, you no longer have to worry about whether or not you have the right version of each plugin,

just install the X-Pack for the Elasticsearch version you’re running)

X-Pack是Elastic技术栈的扩展,它集安全,提醒,监控,报表以及图标功能于一体。

在Elasticsearch 5.0之前,你必须单独安装Shield插件,还要配套Watcher, Marvel等插件,现在X-Pack把它们都整合到一块儿了。

原来是这样啊!

3. 安装X-Pack

3-1) 为elasticsearch安装X-Pack插件

进入 elasticsearch根目录

执行:

bin/elasticsearch-plugin install x-pack

3-2) 配置elasticsearch.yml

进入config目录

修改配置文件,在末尾加上如下行:

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

这是为elasticsearch增加自动创建索引功能

3-3) 启动elasticsearch

bin/elasticsearch

3-4) 为Kibana安装X-Pack插件

进入Kibana根目录

执行命令:

bin/kibana-plugin install x-pack

3-5) 启动Kibana

bin/kibana

3-6) 为Logstash节点安装X-Pack插件

进入Logstash根目录

执行命令:

bin/logstash-plugin install x-pack

3-7) 用配置文件启动Logstash

bin/logstash -f config/log4j_multi_input.conf

3-8) 验证

浏览器打开路径:

http://localhost:5601/
你看回到登录对话框如下:

默认用户名和密码是:

elastic

changeme

4. LogStash::Outputs::ElasticSearch::HttpClient::Pool::BadResponseCodeError, :error=>"Got response code '401' contact Elasticsearch at URL

这个时候,你可能认为我们已经大功告成了,然而并不是这样。

当你用用户名和密码登录Kibana了以后,你会发现没有任何索引,你之前使用Java程序写的日志到哪里去了呢?

笔者十分纳闷,后来查看了Logstash的控制台,笔者发现了如下错误:

LogStash::Outputs::ElasticSearch::HttpClient::Pool::BadResponseCodeError, :error=>"Got response code '401' contact Elasticsearch at URL

因为我们刚才安装了X-Pack插件,因此,我们需要在我们logstash的配置文件中指定用户名和密码,不然是没有权限访问的,

笔者的配置文件如下:

input {file {  path => ["/Users/KG/Documents/logs/app-a/*.log"]  type => "app-a"}  file {  path => ["/Users/KG/Documents/logs/app-b/*.log"] type => "app-b"}
}output {stdout {codec => rubydebug}if [type] == "app-a" {  elasticsearch { hosts => "localhost:9200"  index =>  "app-a-%{+YYYY.MM.dd}"document_type => "log4j_type"user => elasticpassword => changeme}  }  else if [type] == "app-b" {  elasticsearch { hosts => "localhost:9200"  index => "app-b-%{+YYYY.MM.dd}"document_type => "log4j_type"user => elasticpassword => changeme}  }
}

红色字体部分为新加的

然后,再次重新启动Logstash

5. 无法查看索引下的日志问题解决

好事多磨,我们还是无法在Kibana下看到数据,究竟是怎么一回事呢?

笔者再次查看了logstash的控制台,又发现了如下错误:

logstash outputs elasticsearch error 404 >>index_not_found_exception

上网查了下资料,原来需要在elasticsearch中创建自动索引

还记得刚才我们在elasticsearch.yml配置文件最后一行加的那句代码吗,看一下:

笔者修改如下:

action.auto_create_index: .security,.monitoring*,.watches,.triggered_watches,.watcher-history*,app-a-*,app-b-*

其中红色字体部分为笔者测试程序所用的索引

再次重新启动elasticsearch

6. 最后的验证

好了,笔者使用Java代码进行验证(之前的博文中有提到怎么使用log4j进入日志到ELK)

再次访问Kibana,...看到如下结果:

好了,这回真的成功了,哈哈,是不是很有成就感啊?^_^

ELK菜鸟手记 (三) - X-Pack权限控制之给Kibana加上登录控制以及index_not_found_exception问题解决...相关推荐

  1. ELK菜鸟手记 (三) - X-Pack权限控制之给Kibana加上登录控制以及index_not_found_exception问题解决

    ELK菜鸟手记 (三) - X-Pack权限控制之给Kibana加上登录控制以及index_not_found_exception问题解决 参考文章: (1)ELK菜鸟手记 (三) - X-Pack权 ...

  2. 【ELK】ELK菜鸟手记 (一) 环境配置+log4j日志记录——转自Master HaKu

    感谢Master HaKu的分享,博客园的账号忘了,文章里面有原文链接,尊重原创 ELK菜鸟手记 (一) 环境配置+log4j日志记录 - Master HaKu - 博客园 Master HaKu ...

  3. oracle 授权 增删改查权限_linux suid,sgid,sticky-bit三种特殊权限简介

    三种特殊权限简介 SUID 当一个设置了SUID 位的可执行文件被执行时,该文件将以所有者的身份运行,也就是说无论谁来执行这个文件,他都有文件所有者的特权. 如果所有者是 root 的话,那么执行人就 ...

  4. C++的三种访问权限的继承

    C++的三种访问权限的继承 开发工具与关键技术:C++.VisualStudio 作者:何任贤 撰写时间:2019年05月20日 三种访问权限继承指的是,继承过来的成员函数和成员变量还有析构函数的访问 ...

  5. MVC与单元测试实践之健身网站(三)-角色与权限

    管理员的维护功能完成后,还有权限和角色,三者构成权限系统.这里采用的RBAC是最经典.最简单的一种,权限-角色-管理员只能层层传递,并不能直接为管理员分配权限. 一 权限.角色管理 a) 权限 之前编 ...

  6. [vue] vue要做权限管理该怎么做?如果控制到按钮级别的权限怎么做?

    [vue] vue要做权限管理该怎么做?如果控制到按钮级别的权限怎么做? 可以通过指令去做 Vue.directive('hasPermission', { bind(el, binding, vno ...

  7. 系统安全及应用(账户安全控制,系统引导和登录,弱口令检测和登录控制,PAM认证,端口扫描,用户切换和提权)

    文章目录 系统安全及应用 账户安全控制 基本安全措施 chattr--锁定账号配置文件 密码安全控制( chage) 要求用户下次登录时修改密码 命令历史,自动注销 注销时自动清空命令历史: bash ...

  8. 10-9-用户登录控制

    一.请求处理层实现 创建一个用户登录管理的控制类文件LoginController,并编写向自定义登录页面跳转的请求控制方法 @Controller public class LoginControl ...

  9. Linux系统账号安全和登录控制(安全很重要)

    账号安全 本章结构 账号安全控制 系统引导和登录控制 一.账号安全的措施 1.1.系统账号清理 1.1.1.措施一:将非登录用户的shell设为/sbin/nologin 格式: usermod -s ...

最新文章

  1. Python训练营2021:构建8个真实世界的Python项目
  2. 在闲鱼传疯了,某大厂P8面试题库泄漏!
  3. R3LIVE:一个实时鲁棒、带有RGB颜色信息的激光雷达-惯性-视觉紧耦合系统(香港大学)...
  4. 计算机网络中各层的协议图表(TCP/IP)
  5. 2. 性能测试中常见术语集合
  6. 【报告分享】百度大脑AI技术成果白皮书2018-2019.pdf
  7. C++代码一次读取文本文件全部内容到string对象
  8. php后台登陆页面代码
  9. Codis安装部署全架构
  10. 一文深入了解:分布式系统中的缓存架构
  11. K-Means优缺点
  12. ubuntu安装deep-wine下载qq,tim等文件
  13. 【190320】VC++ 机器人语音控制系统源代码
  14. TCP服务器 IO多路复用的实现:select、poll、epoll
  15. fastai v1环境搭建:Win10 MX250 CUDA10.1 cuDNN Pytorch1.0.0 Fastai v1安(bi)装(keng)指南
  16. 利用ST MCU内部基准参考电压监测电源电压及其它
  17. 用html实现抽奖大转盘,【项目实战】用CSS实现一个抽奖转盘(附详细代码+思路)...
  18. php时间戳转换成时间的方法
  19. 打印机有重影 校正对齐喷头
  20. oracle里面cat,Oracle 12c 中推荐使用 catcon.pl 执行SQL脚本

热门文章

  1. 构建一个增量推荐系统
  2. 计算机视觉相关干货文章-20190807
  3. 如何为计算机视觉任务选择正确的标注类型
  4. 机器学习系列18:核函数
  5. 神经科学家发现神经元网络可以拉伸或压缩其活动以控制时间
  6. 制度缺陷,美国96%受访公司的人工智能项目陷于停顿,难怪封堵
  7. 机器学习笔记七:损失函数与风险函数
  8. 关于机器学习你必须了解的十个真相
  9. 思考:开发者如何挑选最合适的机器学习框架?
  10. 科普丨深度学习引擎的终极形态是什么?