ELK日志系统环境配置

本次配置基于ELK 7.13.1版本

  • elasticsearch 配置启动

elasticsearch下载完后解压,执行bin目录的elasticsearch.bat 即可启动elasticsearch服务,但此时只能通过127.0.0.1端口访问,正常情况下需通过本地或内网地址都可以,需要更改config\elasticsearch.yml的配置内容如下:

network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]
  • elasticsearch 使用内置jdk

在bin目录的elasticsearch-env.bat文件中增加set JAVA_HOME="%ES_HOME%\jdk" 配置,如下

rem comparing to empty string makes this equivalent to bash -v check on env var
rem and allows to effectively force use of the bundled jdk when launching ES
rem by setting JAVA_HOME=
rem 此行设置让es使用内置的jdk
set JAVA_HOME="%ES_HOME%\jdk"

if defined ES_JAVA_HOME (
  set JAVA="%ES_JAVA_HOME%\bin\java.exe"
  set JAVA_TYPE=ES_JAVA_HOME
) else if defined JAVA_HOME (
  rem fallback to JAVA_HOME
  echo "warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME" >&2
  set JAVA="%JAVA_HOME%\bin\java.exe"
  set "ES_JAVA_HOME=%JAVA_HOME%"
  set JAVA_TYPE=JAVA_HOME
) else (
  rem use the bundled JDK (default)
  set JAVA="%ES_HOME%\jdk\bin\java.exe"
  set "ES_JAVA_HOME=%ES_HOME%\jdk"
  set JAVA_TYPE=bundled JDK
)

 

 

  • elasticsearch 集群配置,下面以单集群2个节点,说明配置文件

节点一配置文件

cluster.name: my-application #集群名称
node.name: node-1001 #节点名称
network.host: 0.0.0.0 #IP
http.port: 9201 
transport.tcp.port: 9301 #tcp监听端口
node.master: true #可以是主节点
node.data: true #可以是数据节点

#跨域配置
#action.destructive_requires_name: true
http.cors.enabled: true
http.cors.allow-origin: "*"

#查找第一个启动的节点
discovery.seed_hosts: ["172.17.36.206:9301","172.17.36.206:9302"]

#超时时间设为2分钟,超过6次心跳没有回应,则认为该节点脱离master,每隔30s发送一次心跳
discovery.zen.fd.ping_timeout: 120s  
discovery.zen.fd.ping_retries: 6  
discovery.zen.fd.ping_interval: 30s 

#集群内的可以被选为主节点的节点列表
cluster.initial_master_nodes: ["node-1001","node-1002"]

#是否启用对同一分片在同一个主机上出现多个分配实例的检测。默认false。这个选项只有在同一个node上启动多个es实例的情况下才有意义
#cluster.routing.allocation.same_shard.host: true

节点二配置文件

cluster.name: my-application #集群名称
node.name: node-1002 #节点名称
network.host: 0.0.0.0 #IP
http.port: 9202 
transport.tcp.port: 9302 #tcp监听端口
node.master: true #可以是主节点
node.data: true #可以是数据节点

#跨域配置
#action.destructive_requires_name: true
http.cors.enabled: true
http.cors.allow-origin: "*"

#查找第一个启动的节点
discovery.seed_hosts: ["172.17.36.206:9301","172.17.36.206:9302"]

#超时时间设为2分钟,超过6次心跳没有回应,则认为该节点脱离master,每隔30s发送一次心跳
discovery.zen.fd.ping_timeout: 120s  
discovery.zen.fd.ping_retries: 6  
discovery.zen.fd.ping_interval: 30s 

#只能在一台服务器上配置以下这行,重新启动集群或者有新节点加入集群时,不应使用此设置。
#cluster.initial_master_nodes: ["node-1001","node-1002"]

#是否启用对同一分片在同一个主机上出现多个分配实例的检测。默认false。这个选项只有在同一个node上启动多个es实例的情况下才有意义
#cluster.routing.allocation.same_shard.host: true

 --------------------------遇到的坑------------------------

(1)、es集群模式(我在一台电脑开了2个es实例),第一次启动时上面的配置没有任何问题,但运行过程中 会出现 非master节点断开连接的情况,出现以下警告信息

 

sending transport message [MessageSerializer{Request{indices:data/read/get[s]}{630}{false}{false}{false}}] of size [548] on [Netty4TcpChannel{localAddress=/172.17.1.23:54669, remoteAddress=172.17.1.23/172.17.1.23:9301, profile=default}] took [320186ms] which is above the warn threshold of [5000ms]

 

再次运行node2节点 也无法加入集群,此情况有可能是因为本机有多网卡造成的,把上面的配置文件中

network.host: 0.0.0.0 改为 network.host: 172.17.1.23 再次重新启动es集群后正常

(2)、es集群模式只能有一个节点设置cluster.initial_master_nodes,如果多节点设置会在重启集群时无法正常使用,2个节点都无法选举出master节点

 

posted @ 2021-07-13 11:20  doson  阅读(420)  评论(0编辑  收藏  举报