一、简介
公司又来了,这次的任务是搭建elk。
好吧,好像很多博客都是在工作中写出来的。
本来以为两行命令搞定的事情,坑没那么多的,结果。。。
二、安装与启动ElasticSearch
链接:https://www.elastic.co/downloads
elk都有,各个系统版本都有,全家桶,要啥有啥。
到自己的服务器上执行
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.1.tar.gz
$ tar -zxvf elasticsearch-6.5.1.tar.gz
$ cd elasticsearch-6.5.1
$ cd conf
# 这里主要添加端口跟地址
# 修改一下这四行
# network.host: 10.0.98.69 # 这里的ip改成你的服务器地址
# http.port: 9200 # 端口
# bootstrap.memory_lock: false
# bootstrap.memory_lock: false
$ vim elasticsearch.yml
$ cd ../bin
# 启动elastic
$ ./elasticsearch
# 好像就是这么简单,然而这是噩梦的开始。
三、可能踩到的坑(可能遇到的错误)
我先列出我个人踩到的坑,再把网上浏览的借鉴(侵删~)过来。
1.Caused by: java.lang.RuntimeException: can not run elasticsearch as root
启动的时候可能会遇到这个错误。
什么意思?es可以直接脚本操作,为了保证系统安全,不允许以root角色启动es
那就。。。切换角色咯
# 切换到someone用户再去执行./elasticseach操作
$ su someone(用户名)
password:
$ someone ~:
这里有另一个说法,是说执行 chown -R someone:someone elasticsearch-5.6.0
把目录权限给到someone去运行即可,这个我没试过。有遇到的可以试试看!
2.max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
问题翻译过来就是:elasticsearch用户拥有的内存权限太小,至少需要262144;
# 切换到root用户
# 执行命令:
$ sysctl -w vm.max_map_count=262144
# 查看结果:
$ sysctl -a|grep vm.max_map_count
# 显示:
$ vm.max_map_count = 262144
# 上述方法修改之后,如果重启虚拟机将失效,所以:
# 解决办法:
# 在 /etc/sysctl.conf文件最后添加一行
vm.max_map_count=262144
# 即可永久修改
3.org.elasticsearch.bootstrap.StartupException: java.lang.IllegalArgumentException: unknown setting [http.cors.enable] did you mean [http.cors.enabled]
这个是因为elasticsearch 5.0 以上在启动时增加了参数校验
使用./elasticsearch -d 或者 ./elasticsearch -& 启动
如果还是希望使用./elasticsearch 启动,
则在elasticsearch.yml文件中加入这两个配置
bootstrap.memory_lock: false
bootstrap.memory_lock: false
四、安装kibana
$ wget https://artifacts.elastic.co/downloads/kibana/kibana-6.5.1-linux-x86_64.tar.gz
$ tar -zxvf kibana-6.5.1-linux-x86_64.tar.gz
$ cd kibana-6.5.1
# 如果你是在本地启动的,忽略修改配置文件这一步
$ vim config/kibana.yml
# 修改 server.host: 你的IP
$ ./bin/kibana
访问 http://你的IP:5601,看到下图界面就说明搭建成功!
五、安装logstash
$ wget https://artifacts.elastic.co/downloads/logstash/logstash-6.5.1.tar.gz
$ tar -zxvf logstash-6.5.1.tar
$ cd logstash-6.5.1
$ cp config/logstash-sample.conf logstash.conf
# 跟kibana一样,如果是本地启动的则无需修改yml配置文件,直接启动即可
$ vim config/logstash.conf
# 修改output对象中 es的host属性,把localhost改为你的IP
$ vim config/logstash
# 修改http.host: "你的 IP"
# 启动
$ ./bin/logstash -f ./config/logstash.conf
启动后访问http://你的IP:9600/,看到下图画面则说明启动成功