Elasticsearch学习(一)

java技术文章

2018-06-23

88

0

Elasticsearch上手——结合Kibana的安装配置

安装Elasticsearch

根据文档的说明,安装过程十分简单。系统环境:CentOS 7

下载:

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.1.2.tar.gz

解压:

tar xzvf elasticsearch-5.1.2.tar.gz
mv elasticsearch-5.1.2 elasticsearch

配置:
Elasticsearch在使用之前需要几个修改几个配置项,在elasticsearch/config目录下有两个文件elasticsearch.yml和jvm.options。 
elasticsearch.yml:

cluster.name: elasticsearch-cluster
node.name: node-1
path.data: /home/dawoo/elasticsearch/data
path.logs: /home/dawoo/elasticsearch/logs

最后两项路径的配置,需要在elasticsearch目录下创建data和logs两个子目录。 
jvm.options: 
主要修改jvm运行是的heapsize,建议的大小为有物理内存的一半,由于改机还运行其他服务,暂时设为4G:

-Xms4g
-Xmx4g

启动

cd elasticsearch/bin
./elasticsearch

安装Kibana

Kibana是配合Elasticsearch的一个数据分析和可视化的开源软件平台,通过它可以很方便地创建索引、索引文档、搜索文档,它还提供很多的图表形式,对底层的数据进行可视化。

安装 
和Elasticsearch,安装过程就是下载和解压:

wget wget https://artifacts.elastic.co/downloads/kibana/kibana-5.1.2-linux-x86_64.tar.gz
tar xzvf kibana-5.1.2-linux-x86_64.tar.gz
mv kibana-5.1.2-linux-x86_64 kibana 

配置 
前端是使用Nginx做转发,所以先配置nginx:

/etc/nginx/nginx.conf

location /app/kibana/ {
    auth_basic           "Please input username and password.";
    auth_basic_user_file /etc/nginx/default.d/passwd;

    proxy_pass            http://localhost:5601/;
    proxy_set_header      Host      $host;
    #proxy_set_header     X-Real-IP $remote_addr;
}

由于kibana是内部管理使用,因此这里增加了简单的密码限制。保存后,重新启动nginx

systemctl restart nginx.service

修改Kibana的配置,只需更改server.basePath的值即可:

server.basePath: "/app/kibana"

启动 
命令行启动

cd kibana/bin
./kibana

在浏览器访问,应该可以看到:

更进一步 
直接kibana启动会发现,一旦窗口关闭进程就会自动结束。那么如何解决问题呢?这里提供两个思路:

  • 建立一个脚本,通过nohup启动,可以将输出重定向到一个文件中
  • 安装screen(yum -y install screen),在screen中启动(./kibana &),每次进入screen都可以看到输出

二、ES运行报错

如果以root身份运行将会出现以下问题,这个错误,是因为使用root用户启动elasticsearch,elasticsearch是不允许使用root用户启动的

[root@iZbp1epx1ncetamddfjnxwZ bin]# ./elasticsearch
[2018-01-02T17:42:42,296][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException:can not run elasticsearch as root
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:125) ~[elasticsearch-6.1.1.jar:6.1.1]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112) ~[elasticsearch-6.1.1.jar:6.1.1]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.1.1.jar:6.1.1]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.1.1.jar:6.1.1]
at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.1.1.jar:6.1.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-6.1.1.jar:6.1.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:85) ~[elasticsearch-6.1.1.jar:6.1.1]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:104) ~[elasticsearch-6.1.1.jar:6.1.1]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:171) ~[elasticsearch-6.1.1.jar:6.1.1]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:322) ~[elasticsearch-6.1.1.jar:6.1.1]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:121) ~[elasticsearch-6.1.1.jar:6.1.1]
... 6 more

ES5之后[解决方法1],[解决办法2],已经不能用了,请使用[解决办法3],[解决办法4]

 

解决方法1:

在执行elasticSearch时加上参数-Des.insecure.allow.root=true,完整命令如下

./elasticsearch -Des.insecure.allow.root=true  

解决办法2:

 

用vim打开elasicsearch执行文件,在变量ES_JAVA_OPTS使用前添加以下命令

  1. ES_JAVA_OPTS="-Des.insecure.allow.root=true" 

解决办法3:

 

我们需要添加用户。

adduser ***   //添加用户

passwd ***  //给用户赋值

添加完用户之后:

用root用户执行 : chown -R 文件夹名 用户名

将这几个压缩包所在的文件夹及解压完的文件夹权限给你新建的用户。之后再使用新用户启动就OK了。

参考:https://www.cnblogs.com/yidiandhappy/p/7737003.html,http://blog.csdn.net/u010317005/article/details/52205825

 

解决办法4:

如果是用root账号启动,会报以下错误

Exception in thread "main" java.lang.RuntimeException: don't run elasticsearch as root. at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:93) at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:144) at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:285) at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35) Refer to the log for complete error details.

这是出于系统安全考虑设置的条件。由于ElasticSearch可以接收用户输入的脚本并且执行,为了系统安全考虑, 
建议创建一个单独的用户用来运行ElasticSearch

创建elsearch用户组及elsearch用户

groupadd elsearch
useradd elsearch -g elsearch -p elasticsearch

更改elasticsearch文件夹及内部文件的所属用户及组为elsearch:elsearch

cd /opt
chown -R elsearch:elsearch  elasticsearch

切换到elsearch用户再启动

su elsearch cd elasticsearch/bin
./elasticsearch
[2015-12-30 10:15:44,876][WARN ][bootstrap                ] unable to install syscall filter: prctl(PR_GET_NO_NEW_PRIVS): Invalid argument
[2015-12-30 10:15:45,175][INFO ][node                     ] [Grim Hunter] version[2.1.1], pid[26383], build[40e2c53/2015-12-15T13:05:55Z]
[2015-12-30 10:15:45,176][INFO ][node                     ] [Grim Hunter] initializing ...
[2015-12-30 10:15:45,243][INFO ][plugins                  ] [Grim Hunter] loaded [], sites []
[2015-12-30 10:15:45,272][INFO ][env                      ] [Grim Hunter] using [1] data paths, mounts [[/ (/dev/mapper/vg_yong-lv_root)]], net usable_space [33.3gb], net total_space [49gb], spins? [no], types [ext4]
[2015-12-30 10:15:47,318][INFO ][node                     ] [Grim Hunter] initialized
[2015-12-30 10:15:47,318][INFO ][node                     ] [Grim Hunter] starting ...
[2015-12-30 10:15:47,388][INFO ][discovery                ] [Grim Hunter] elasticsearch/fnXUCLOQQBiC1aR7hhB82Q
[2015-12-30 10:15:50,442][INFO ][cluster.service          ] [Grim Hunter] new_master {Grim Hunter}{fnXUCLOQQBiC1aR7hhB82Q}{127.0.0.1}{127.0.0.1:9300}, reason: zen-disco-join(elected_as_master, [0] joins received)
[2015-12-30 10:15:50,491][INFO ][node                     ] [Grim Hunter] started
[2015-12-30 10:15:50,526][INFO ][gateway                  ] [Grim Hunter] recovered [0] indices into cluster_state
ElasticSearch后端启动命令
./elasticsearch -d

 欢迎访问:www.hongfu951.com博客,查看更多技术文章

发表评论

全部评论:0条

鸿福951

努力打造一个好用的webui

热评文章

推荐文章