摘要:
elasticsearch这个东西,相当的吃内存。像前面一样使用默认设置,正常得一笔,但是只要修改了elasticsearch.yml里面的内容,就可能错误不断了。所以,这里有一个过来人告诉你,真的需要耐心……哈哈,还是自己太弱了,刚入门走了不少弯路。
我们先配置elasticsearch的外网访问
在上一节中,我们做了一个elasticsearch demo。但是当时我们只是在终端里查询了结果,有的人就会想,这样会不会太局限了。是的,我们还有其他思路。
1、首先,在终端里输入ip addr
或者ifconfig
查看本地局域网ip地址,如果是远程服务器,知道ip的,就可以省略这一步了。
2、然后我们先修改elasticsearch的配置文件
修改elasticsearch 文件夹下/config/elasticsearch .yml文件,我这里的完整路径为/home/husen/Desktop/elasticsearch-5.5.1/config/elasticsearch .yml
修改大概第50几行处的两个位置
- 在
#network.host: 192.168.0.1
这行后面添加一行network.host: 0.0.0.0
- 去掉
#http.port: 9200
这行前面的#
号
3、然后运行回到elasticsearch目录下运行elasticsearch
cd /home/husen/Desktop/elasticsearch-5.5.1/
./bin/elasticsearch
4、这时候在另一台机器打开浏览器(我这里是虚拟机的centos运行的elasticsearch,所以我直接在wimdows里面用浏览器访问),输入
http://10.45.32.103:9200/_search?pretty
可以看到有内容输出,不过全都为0,这是因为我们还没有从logstash输出过内容
5、接着我们在运行logstash试试,准备好配置文件,内容如下,保存为logstash.conf,并放在logstash文件目录下
input{
stdin{}
}
output{
# 输出到elasticsearch
elasticsearch {
hosts => "10.45.32.103:9200" ##填写自己的主机ip
}
}
6、 在logstash目录下输入以下命令运行logstash
./bin/logstash -f logstash.conf
7、 运行成功后,在logstash终端里输入Hello World, Hello husen!
刷新刚刚浏览器的界面,可以看到以下输出,搞定!
常见错误 1
ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决方案
- 临时修改 (重启后失效)在终端输入
[root@localhost elasticsearch-5.5.1]# sysctl -w vm.max_map_count=262144
- 永久性修改
##备份
[root@localhost elasticsearch-5.5.1]# cd /etc/
[root@localhost etc]# cp sysctl.conf sysctl.conf_bk
##增加变量
[root@localhost etc]# echo "vm.max_map_count=262144" >> /etc/sysctl.conf
##查看是否生效
[root@localhost etc]# sysctl -p
vm.max_map_count = 262144
常见错误 2
[WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
解决方案
这个是不能用root账户运行,elasticsearch 5之后,都不能用root运行了,不要问我为什么….
常见错误 3
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
解决方案
##切换到root用户
[husen@localhost ~]$ su
Password:
##备份
[root@localhost husen]# cp /etc/security/limits.conf /etc/security/limits.conf_bk
##增加下面两行,其中husen为我运行elasticsearch的用户名
##这里elasticsearch不能用root运行,所以得为elasticsearch新建一个用户
[root@localhost husen]# echo "husen hard nofile 65536" >> /etc/security/limits.conf
[root@localhost husen]# echo "husen soft nofile 65536" >> /etc/security/limits.conf
更多常见错误详见其他博客
centos7虚拟机安装elasticsearch5.0.x-安装篇
Elasticsearch5.0 安装问题集锦