美文网首页
ELK经典架构之Elasticsearch

ELK经典架构之Elasticsearch

作者: im青禾 | 来源:发表于2019-05-17 11:55 被阅读0次

版本选择

elasticsearch-5.6.15.tar.gz

Elasticsearch三机集群搭建

ELK1机(ip:10.10.61.205)

Elasticsearch安装

第1、2、3步类似Logstash安装。
  1. 配置elasticsearch.yml



    elasticsearch.yml详情,如下代码块:

#
# NOTE: Elasticsearch comes with reasonable defaults for most settings.
#       Before you set out to tweak and tune the configuration, make sure you
#       understand what are you trying to accomplish and the consequences.
#
# The primary way of configuring a node is via this file. This template lists
# the most important settings you may want to configure for a production cluster.
#
# Please consult the documentation for further information on configuration options:
# https://www.elastic.co/guide/en/elasticsearch/reference/index.html
#
# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
# 集群名
 cluster.name: elk
#
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
# 节点名
 node.name: elk1
#
# Add custom attributes to the node:
# 指定节点的部落属性,这是一个比集群更大的范围。
 node.attr.rack: r1
#
# ----------------------------------- Paths ------------------------------------
#
# Path to directory where to store the data (separate multiple locations by comma):
# 这一部分是关于数据和日志的存放路径的,这两个设置十分重要,因为比如要进行版本升级,如果程序与数据分离,将非常容易实现。程序的崩溃也不影响数据。
# 如果不配置这两项,这两个目录将在ES的主目录下创建。
#path.data: /path/to/data
#
# Path to log files:
#
#path.logs: /path/to/logs
#
# ----------------------------------- Memory -----------------------------------
#
# Lock the memory on startup:
#启动后是否锁定内存,提高ES的性能。
 bootstrap.memory_lock: false
#
# Make sure that the heap size is set to about half the memory available
# on the system and that the owner of the process is allowed to use this
# limit.
#
# Elasticsearch performs poorly when the system is swapping the memory.
#
# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
# 本机地址
 network.host: 10.10.61.205
#
# Set a custom port for HTTP:
# http端口
 http.port: 9200
#
# For more information, consult the network module documentation.
#
# --------------------------------- Discovery ----------------------------------
#
# Pass an initial list of hosts to perform discovery when new node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
#
 discovery.zen.ping.unicast.hosts: ["10.10.61.205", "10.10.61.158","10.10.61.238"]
#
# Prevent the "split brain" by configuring the majority of nodes (total number of master-eligible nodes / 2 + 1):
# 为防止"脑裂",此处数值填(集群主机数量/2+1) 
 discovery.zen.minimum_master_nodes: 2
#
# For more information, consult the zen discovery module documentation.
#
# ---------------------------------- Gateway -----------------------------------
#
# Block initial recovery after a full cluster restart until N nodes are started:
#
#gateway.recover_after_nodes: 3
#
# For more information, consult the gateway module documentation.
#
# ---------------------------------- Various -----------------------------------
#
# Require explicit names when deleting indices:
#
#action.destructive_requires_name: true

ELK2机(ip:10.10.61.158)

在ELK1机配置基础上修改node.name、network.host两处即可。

ELK3机(ip:10.10.61.238)

在ELK1机配置基础上修改node.name、network.host两处即可。

  1. Elasticsearch集群运行
    1. ELK1机Elasticsearch前台启动
      ./elasticsearch

      异常1现象:
      [WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [elk1] uncaught exception in thread [main]
      org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root

      异常1原因:
      Elasticsearch只能使用非root用户启动。
      异常1解决:
      创建用户
      adduser elk1
      passwd elk1
      系统会判断密码强度,不过可以强行忽略。

      异常2现象:
      main ERROR Could not register mbeans java.security.AccessControlException: access denied ("javax.management.MBeanTrustPermission" "register")

      异常2原因:
      当前用户不是Elasticsearch文件夹的拥有者。
      异常2解决:
      将Elasticsearch文件夹的拥有者改为当前用户。
      chown -R elk1 /usr/elasticsearch-5.6.15/

      异常3现象
      ERROR: [2] bootstrap checks failed
      [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]。
      [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]。
      异常3原因
      [1]:对于elasticsearch进程,max文件描述符[4096]过低,至少增加到[65536]。
      [2]:最大虚拟内存区域vm.max_map_count[65530]太低,至少增加到[262144]。
      异常3解决
      [1]
      vim /etc/security/limits.conf

      limits.conf末尾添加下面代码块中内容:
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

[2]
当前环境设置
sysctl -w vm.max_map_count=262144

设置查询
sysctl -a|grep vm.max_map_count

写入配置
vim /etc/sysctl.conf

sysctl.conf文末添加如下代码块:
vm.max_map_count=262144

ELK1机Elasticsearch前台启动成功
  1. ELK1机Elasticsearch前台停止
    按组合键ctrl+c即可停止Elasticsearch运行。
  2. ELK1机Elasticsearch后台启动
    ./elasticsearch -d
  3. ELK1机Elasticsearch进程查询
    ps -ef|grep elasticsearch
  4. ELK1机Elasticsearch后台停止
    kill -9 14377
    14377为上步查询出的pid。
  5. ELK2机、ELK3机同ELK1机方式运行
  6. 获取集群中节点列表
    10.10.61.205:9200/_cat/nodes?v
  7. 集群健康检查
    curl '10.10.61.205:9200/_cat/health?v'
  8. 获取ElasticSearch索引
    curl '10.10.61.205:9200/_cat/indices?v'
  9. 查看ELK集群中cluster的状态
    10.10.61.205.9200/_cluster/stats

相关文章

网友评论

      本文标题:ELK经典架构之Elasticsearch

      本文链接:https://www.haomeiwen.com/subject/mwmvaqtx.html