kebochina 2020-02-20
前言
目的:在单服务器上部署多Elasticsearch实例,并可以使用Kibana。下面过程注重流程,仅给出关键过程的细节。
ElasticSearch 6.8.4 + Kibana 6.8.4,两者版本最好匹配不然会出现告警、报错之类。
下载链接:https://www.elastic.co/cn/downloads/past-releases#kibana 。ES、Kibana以及ELK套餐都可以从这个链接中下载。
确保JDK版本在1.8及以上,Linux中配置JDK的的方法可以百度。
下面主要针对系统环境中JDK版本为1.7,而要运行ES的情况。
可以在使用root用户在/etc/profile中先配置JDK 1.8环境变量,如:JAVA8_HOME,然后在bin/elasticsearch脚本中新增如下代码即可。
export JAVA_HOME=$JAVA8_HOME export PATH=$JAVA_HOME/bin:$PATH if [ -x "$JAVA_HOME/bin/java" ]; then JAVA="$JAVA8_HOME/bin/java" else JAVA=`which java` fi
因为elasticsearch不允许使用root用户运行,所以需要新建用户,如:es,新建过程可以参考百度。唯一需要注意的是:需要给新建用户需要拥有对ES、Kibana所在目录的权限,最直接方法的是将相关目录的属主改为新建用户,可使用命令:chown -R es:elasticsearch /path
将下载好的elasticsearch的文件解压够复制一份到同一目录下(位置无要求)。修改两个文件夹中的config/elastisearch.yml文件,分别新增基本信息如下:
#假定本机ip为192.168.0.100,安装两个ES实例 #第一个实例中elasticsearch.yml配置如下: cluster.name: es-cluster node.name: node-1 path.data: /data/elasticsearch/data path.logs: /data/elasticsearch/logs network.host: 0.0.0.0 http.port: 9200 transport.tcp.port: 9300 discovery.zen.ping.unicast.hosts: ["192.168.0.100:9300","192.168.0.100:9301"] discovery.zen.minimum_master_nodes: 2 node.max_local_storage_nodes: 2 #第二个实例配置如下: cluster.name: es-cluster node.name: node-2 path.data: /data/elasticsearch/data path.logs: /data/elasticsearch/logs network.host: 0.0.0.0 http.port: 9201 transport.tcp.port: 9301 discovery.zen.ping.unicast.hosts: ["192.168.0.100:9300","192.168.0.100:9301"] discovery.zen.minimum_master_nodes: 2 node.max_local_storage_nodes: 2
总结一下:在同一个节点中安装多个elasticsearch实例时,只需将解压后的文件复制多份,并修改elasticsearch.yml,在配置文件中主要的不同在节点名和端口的变化。其实也可以不需要复制文件在启动时通过命令指定也可。
此外,还需要注意的是默认JVM太小,以及系统文件数等都需根据需求调大。
将解压的文件放到和elasticsearch同级目录(不强制),修改kibana.yml文件,新增如下:
1 server.host: "192.168.0.100" 2 elasticsearch.url: "http:// 192.168.0.100:9200"
Elasticsearch的启动是:./bin/elasticsearch
Kibana启动: ./bin/kibana
关于启动不能用root用户,建议在root下使用如下命令:
#命令中路径需要根据实际情况做相应改变 #启动es su – es -c “/opt/elasticsearch/bin/elasticsearch -d” #启动Kibana su – es -c “nohup /opt/kibana/bin/kibana &>>/opt/kibana/logs/kibana.log &”
Elasticsearch和Kibana都要用相同的非root用户启动,以避免不可用的情况。
在启动过程中也许会报错,可以根据分析报错信息并及时查询。
Ref:
另外一部分,则需要先做聚类、分类处理,将聚合出的分类结果存入ES集群的聚类索引中。数据处理层的聚合结果存入ES中的指定索引,同时将每个聚合主题相关的数据存入每个document下面的某个field下。