安装准备

此章节内容每台服务器都需要执行

服务器准备

为搭建ElasticSearch集群,准备了三台服务器,主机IP分别为:

服务器IP 系统版本
10.11.6.22 Centos6.5
10.11.6.23 Centos6.5
10.11.6.24 Centos6.5

内核参数调整

  1. vim /etc/sysctl.conf
  2. # 增加下面的内容
  3. fs.file-max = 65536
  4. vm.max_map_count = 262144
  5. # 执行命令
  6. sysctl -p

资源参数调整

  1. vim /etc/security/limits.conf
  2. # 修改以下内容
  3. * soft nofile 65536
  4. * hard nofile 65536
  5. * soft nproc 4096
  6. * hard nproc 4096
  7. elasticsearch soft memlock unlimited
  8. elasticsearch hard memlock unlimited

调整线程数

  1. vim /etc/security/limits.d/90-nproc.conf
  2. 找到如下内容:
  3. * soft nproc 1024
  4. #修改为
  5. * soft nproc 4096

导入PGP密钥

  1. rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

配置Yum

  1. vim /etc/yum.repos.d/elasticsearch.repo

加入以下信息

  1. [elasticsearch]
  2. name=Elasticsearch repository for 7.x packages
  3. baseurl=https://artifacts.elastic.co/packages/7.x/yum
  4. gpgcheck=1
  5. gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
  6. enabled=1
  7. autorefresh=1
  8. type=rpm-md

ElasticSearch安装

安装

  1. # 展示所有版本
  2. sudo yum --showduplicates list elasticsearch
  3. # 安装指定版本
  4. sudo yum install elasticsearch-7.9.3-1

配置开机启动

  1. sudo chkconfig --add elasticsearch

配置文件

elasticsearch.yml

  1. vim /etc/elasticsearch/elasticsearch.yml
  1. # 集群名称,各个节点的值必须一致
  2. cluster.name: es-prod
  3. # 节点名称,区分节点,各个节点的值不能一致
  4. node.name: node-1
  5. # 数据文件路径,需要配置datanode所有数据磁盘路径
  6. path.data:
  7. - /data/dfs/dfs00/dfs/elasticsearch
  8. - /data/dfs/dfs01/dfs/elasticsearch
  9. - /data/dfs/dfs02/dfs/elasticsearch
  10. # 日志文件路径
  11. path.logs: /var/log/elasticsearch
  12. # 设置为true来锁住内存。因为当jvm开始swapping时es的效率会降低,所以要保证它不swap,可以把ES_MIN_MEM和ES_MAX_MEM两个环境变量设置成同一个值,并且保证机器有足够的内存分配给es。同时也要允许elasticsearch的进程可以锁住内存,Linux下可以通过ulimit -l unlimited命令
  13. bootstrap.memory_lock: true
  14. # 因为Centos6不支持SecComp,而ES6.1.2默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动
  15. bootstrap.system_call_filter: false
  16. # 本机IP
  17. network.host: 10.11.6.24
  18. # 集群种子节点
  19. discovery.seed_hosts:
  20. - 10.11.6.22:9300
  21. - 10.11.6.23:9300
  22. - 10.11.6.24:9300
  23. # 集群初始主节点,需要填写node.name中的值
  24. cluster.initial_master_nodes:
  25. - node-1
  26. - node-2
  27. - node-3
  28. # 存在至少2个节点(数据节点或者 master 节点)才进行数据恢复
  29. gateway.recover_after_nodes: 2
  30. # 等待10分钟,或者3个节点上线后,才进行数据恢复,这取决于哪个条件先达到
  31. gateway.expected_nodes: 3
  32. gateway.recover_after_time: 10m
  33. search.max_buckets: 200000
  34. action.destructive_requires_name: true
  35. indices.memory.index_buffer_size: 15%
  36. thread_pool.write.queue_size: 1024

jvm.options

  1. vim /etc/elasticsearch/jvm.options
  2. # 调整内存大小根据系统资源而定,最好不要超过总资源一半
  3. -Xms8g
  4. -Xmx8g

直接启动

  1. sudo -i service elasticsearch start
  2. # 查看节点状态
  3. curl -XGET '10.11.6.24:9200/_cat/nodes?v'
  4. # 查看集群状态
  5. curl -XGET '10.11.6.24:9200/_cat/health?v'

Kibana安装

Kibana安装在单台机器,例如1.109上面

安装

  1. # 展示所有版本
  2. sudo yum --showduplicates list kibana
  3. # 安装指定版本
  4. sudo yum install kibana-7.9.3-1

配置开机启动

  1. sudo chkconfig --add kibana

配置文件

  1. vim /etc/kibana/kibana.yml
  1. # 本机IP
  2. server.host: "10.11.6.24"
  3. # 访问es的地址
  4. elasticsearch.hosts: ["http://10.11.6.22:9200","http://10.11.6.23:9200","http://10.11.6.24:9200"]

直接启动

  1. sudo -i service kibana start

启动成功后访问 http://10.11.6.24:5601/ 如果页面正常说明安装成功

Logstash安装

安装

  1. mv /usr/bin/java /usr/bin/java7
  2. ln -s $JAVA_HOME/bin/java /usr/bin/java
  3. sudo yum --showduplicates list logstash
  4. sudo yum install logstash-7.9.3-1

修改配置

  1. vim /etc/logstash/logstash.yml
  1. # 配置热加载
  2. config.reload.automatic: true
  3. # 开启持久化队列
  4. queue.type: persisted
  5. queue.max_bytes: 8gb

管道配置

在/etc/logstash/conf.d下新建 xxx.conf 编写管道处理逻辑,具体配置内容参见具体业务部署文档,此处省略

启动

在具体业务管道配置完成之后再执行启动脚本

  1. nohup /usr/share/logstash/bin/logstash --path.settings /etc/logstash >/dev/null 2>&1 &

Filebeat安装

Filebeat需要安装在待收集日志的业务模块所在服务器,每个Filebeat服务只可以收集本机日志

安装

  1. sudo yum install filebeat-7.9.3-1
  2. sudo chkconfig --add filebeat

修改配置

具体配置内容参见具体业务部署文档

  1. vim /etc/filebeat/filebeat.yml

启动

在具体业务配置完成之后再执行启动脚本

  1. service filebeat start