ELK搭建实时日志分析平台之二Logstash和Kibana搭建

我与影子孤独终老i 提交于 2020-05-08 00:24:48

本文书接前回《ELK搭建实时日志分析平台之一ElasticSearch》 文:铁乐与猫

四、安装Logstash

logstash是一个数据分析软件,主要目的是分析log日志。

1)下载和解压logstash

下载地址: https://www.elastic.co/cn/downloads/logstash

上传到服务器/usr/ELK目录后,解压:sudo tar -zxvf logstash-6.1.3.tar.gz 我下的这个6.1.3版本的logstash tar包大小有110多M了。 修改属主权限:sudo chown -R elsearch:ELK logstash-6.1.3

2)准备一个适合的配置文件:logstash.conf

可以参考官网给出的示例配置文件:

测试一段syslog日志文本。 cd logstash-6.1.3 sudo vim logstash-sample.conf 在logstash主目录创建配置文件logstash-sample.conf, 内容如下:

input { stdin { type => "syslog" } }
filter { }
output {
  elasticsearch { hosts => "192.168.251.20:9200" }
  stdout { codec => rubydebug }
}

保存,修改权限:sudo chown elsearch:ELK logstash-sample.conf

3)运行logstash:bin/logstash -f logstash.conf

切换到elsearch用户,在logstash主目录下,运行: /usr/ELK/logstash-6.1.3/bin/logstash -f /usr/ELK/logstash-6.1.3/logstash-sample.conf 运行后,测试的话我们可以在终端输入一些文字消息,比如下图: 我随意输入的是elk-test 2018-2-7,回车后就生成了一段日志记录。 Logstash在Console返回的输出内容,同时以上内容也发送到了ElasticSearch。

有一个现象是发现logstash启动会很慢,原因可能是 JVM的随机数字生成参数导致,诊断和修改方式: 修改文件 $JAVA_HOME/jre/lib/security/java.security 注:可以通过locate查找java.security来找到文件,比如我查找出来的路径就是/usr/java/jdk1.8.0_144/jre/lib/security/java.security 修改参数 securerandom.source=file:/dev/urandom 重新启动Logstash,就快多了。不过导致的效果可能是没有随机生成参数那么安全。

五、安装Kibana和x-pack安全组件

Kibana 让您能够可视化 Elasticsearch 中的数据并操作 Elastic Stack。

kibana下载地址: https://www.elastic.co/cn/downloads/kibana 注意,如果要找往期版本的话在官网上有个past releases(往期版本)的超链接。

上传到服务器/usr/ELK目录后,解压:sudo tar -zxvf kibana-6.1.3-linux-x86_64.tar.gz 我下的这个6.1.3版本的kibana tar包大小有60多M。 本来想修改属主权限的,却意外发现sudo解压后竟不是root属主和属组,而是www的属主和属组。 而原本我服务器也的确已有www用户,所以就先不动属主了,毕竟kibana是要用到web浏览的多,www属主也挺好。 不过解压后的目录名过长也不易辩识,所以有必要改名和起个软链接: sudo mv kibana-6.1.3-linux-x86_64 kibana-6.1.3 sudo ln -s kibana-6.1.3 kibana 同时做了一个软链接,映射,这样就算以后版本更新了也只需重新修改一下软链接即可。

x-pack安装说明地址: https://www.elastic.co/cn/downloads/x-pack

x-pack将诸多强大功能集合到一个单独的程序包中且与整个 Elastic Stack 无缝集成, 将它安装到 Elasticsearch 和 Kibana 中,能够让很多工作变得简单,例如,确保 Elasticsearch 中数据的安全,或通过 Kibana 添加登录屏幕。

参照上图官方所提及的x-pack安装步骤,我们先来进行第一步,从elasticsearch开始安装x-pack插件: bin/elasticsearch-plugin install x-pack 安装完成后到elasticsearch目录的plugins目录下可以看到有x-pack的子目录。x-pack目录中会有很多个jar文件。 官网第二步是运行elasticsearch,假如这个时候访问elasticsearch服务器9200端口的网页会看到和之前不同,会有授权弹窗了。 所以第三步则是生成默认的密码,这个密码用于elastic和kibana用户: 密码生成之后,我先尝试使用elastic用户和密码&wmVcGEIXB1GUliGqlFh登录可以正常访问到。可见是马上生效的。 当然,你可能会更关注要到哪里将这串随意的密码改成易记的自己的密码。 elasticsearch的话编辑主目录的config/elasticsearch.yml配置文件,同理其它两个服务也是找相应的yml配置文件。

先回到第四步,kibana安装x-pack: 进到kibana的主目录后,运行: bin/kibana-plugin install x-pack 注意的是,kibana安装x-pack会有那么一小段时间很短暂的时间很吃内存,我监控都报警了。

第五步,添加认证信息到kibana的yml配置文件; vim /usr/ELK/kibana/config/kibana.yml 添加上 elasticsearch.username: "kibana" elasticsearch.password: "etfF?FSJ~47=6E^2x6+6" 用户名为kibana,密码则可以先填之前第三步生成的随机密码。 后补注:以上填写的信息是错误的,正确的是填elsatic的用户名和密码才不会出现接下来的错误!

设置Kibaba连接上ElasticSearch 编辑文件config/kibana.yml 设置参数 server.host和elasticsearch.url 注意要和之前elasticserach中设置的一样,比如我这里填的是: server.host: "192.168.251.20" elasticsearch.url: "http://192.168.251.20:9200"

第六步,启动kibana服务,同时防火墙,安全组之类开放服务默认的5601端口; nohup bin/kibana & 或直接sudo /bin/kibana启动。 访问kibana的是默认5601端口,但要记得在kibana的配置yml文件里设置好host和url。 能正常启动,但有很多报警信息和报错。浏览器访问kibana界面时也可以看到出现登录被禁用的错误了:

登录目前禁用。管理员应该查看Kibana日志,了解更多细节。

log [03:07:31.810] [warning][license][xpack] License information from the X-Pack plugin could not be obtained from Elasticsearch for the [data] cluster. Error: Request Timeout after 30000ms

日志报错显示X-Pack插件出了问题导致超时,要先处理了。

尝试了一下,搞明白了,原来之前的config/kibana.yml配置文件中 elasticsearch.username和elasticsearch.password两项中要填入的不是kibana的用户名和密码,而是填入elstaic的用户名和密码! 因为kibana要先通过elstaic的认证!所以编辑文件config/kibana.yml elasticsearch.username: "elastic" elasticsearch.password: "&wmVcGEIXB1GUliGqlFh"

现在再重新启动kibana,再访问,可以正常登录了,输入的就是kibana用户名和密码了:

登录通过的界面:

ELK的环境搭建完成了,后续还有很多插件可以自行看着官网文档进行安装。 而关于ELK的使用,留待之后的文稿。

2018-2-13 END

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!