新公司的导师打电话过来,说是以后会用到ELK,Kafka,node.js等技术,让我先学习起来。emm...既然如此,那咱们就一步步来,先学习一下ELK吧!
上网查了下资料,ELK其实是由三个核心模块组成:ElasticSearch,Logstash,Kibana 。至于它们具体派哪些用场我这个小白就不赘述了,大家百度一下就行。这里先记录一下自己是怎么搭建ELK的,以及搭建的过程中遇到了哪些问题,主要还是方便自己以后可以快速定位问题。如果有幸帮到你,也算是我这个小白的荣幸啦。
搭建Elasticsearch
配置云服务器
①为了模拟开发流程,当然是选择在linux服务器上搭建了。首先去阿里云上购买了一个ECS服务器,因为还没毕业(庆幸自己还是学生)很便宜的就买到了一年的云服务器。
②进入ECS服务器的控制台,在左侧点击‘安全组’,查看‘安全组’里的信息。
③点击配置规则,发现22端口已经被打开了。emm...既然如此,那么我就直接在Xshell里面玩耍云服务器好了。
④打开Xshell,新建,主机栏里输入云服务器的公网IP,直接确定。
⑤输入用户名和密码后就进入了新配置的服务器了。
配置elasticsearch所需环境
①因为elasticsearch基于Lucene,底层也是由java编写,所以在新的服务器里也需要安装java开发环境。这里我们可以直接输入命令行
# yum install tomcat 在下载tomcat的时候,会自动将jdk也一并安装。
②安装完成后,可以输入命令行 # java -version 查看jdk版本
③新建一个用户 # useradd newuser 并设置密码 # passwd newuser
安装并配置 elasticsearch
①去官网下载elasticsearch的压缩包,并将压缩包上传至/home/newuser/目录下,进行解压。
# tar -zxvf elasticsearch-6.2.4.tar.gz
②进入elasticsearch的config目录下,修改配置文件elasticsearch.yml
# vim elasticsearch.yml
将network.host: 127.0.0.1 # 绑定到0.0.0.0,即允许任何ip来访问,这样我们就可以在自己的浏览器内直接访问elasticsearch开通的端口号了。
③这时候切换用户,将root用户切换至新建的newuser用户,因为elasticsearch不允许root用户直接启动。
④如果此时敲入命令行 ./elasticsearch来启动时,会有可能出现如下问题:
1) [3]: max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
这是由于进程的虚拟内存空间不足。
修改配置文件 : # vim /etc/sysctl.conf
在下面添加: vm.max_map_count=262144
然后执行 # sysctl -p
2)[1] bootstrap checks failed
[1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
这时候继续编辑elasticsearch.yml文件,将 #cluster.initial_master_nodes: ["node-1", "node-2"] 修改为 cluster.initial_master_nodes: ["node-1"],记得保存。
⑤配置全部完成后,记得先kill之前的进程,再次启动,发现已经启动成功了。
⑥再次进入云服务器的控制台,选择安全组,配置规则,添加安全组规则。按照下面填写内容进行填写,将9200端口开放。
⑦开放完端口后,我们就可以在浏览器内输入 "ip:9200"来查看结果了。
到此,算是迈出了学习ELK的一小步。之后会把自己对于ELK的学习慢慢记录下来,共勉。