Docker部署ELK 7.0.1集群之Elasticsearch安装介绍

本文详细介绍了如何在三台CentOS服务器上搭建ELK集群,包括环境规划、配置修改、内核参数调整、配置文件编辑及服务启动过程。通过具体步骤,展示了如何设置集群名称、节点名、网络参数及安全策略等,最终实现跨域REST请求和集群状态监测。
摘要由CSDN通过智能技术生成

elk介绍这里不再赘述,本系列教程多以实战干货为主,关于elk工作原理介绍,详情查看官方文档

一、环境规划

主机名IP角色节点名
centos0110.10.0.10esnode-10
centos0210.10.0.11esnode-11
centos0310.10.0.12esnode-12

这里三台机器配置均为2C4G配置,生产中根据日志量选配合的机器。 

二、安装部署

es镜像官网:https://hub.docker.com/_/elasticsearch

 2.1 创建宿主机映射目录

## 三台es主机都需要创建
[root@centos01 ~]# mkdir /var/lib/elasticsearch [root@centos01 ~]# mkdir /etc/elasticsearch/

 2.2 修改内核参数

## 三台机器都需要操作
[root@centos01 ~]# echo "vm.max_map_count=262144" > /etc/sysctl.conf [root@centos01 ~]# sysctl -p vm.max_map_count = 262144

2.3 编辑es配置文件

vim /etc/elasticsearch/elasticsearch.yml

10服务器:

[root@centos01 elasticsearch]# cat elasticsearch.yml 
#集群名称
cluster.name: ES-Cluster
#节点名
node.name: node-10
#设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0,
#指绑定这台机器的任何一个ip
network.host: 0.0.0.0
#设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,
#值必须是个真实的ip地址  
network.publish_host: 10.10.0.10
#设置对外服务的http端口,默认为9200
http.port: 9200
#设置节点之间交互的tcp端口,默认是9300
transport.tcp.port: 9300
#是否允许跨域REST请求
http.cors.enabled: true
#允许 REST 请求来自何处
http.cors.allow-origin: "*"
#节点角色设置
node.master: true 
node.data: true
#有成为主节点资格的节点列表
discovery.seed_hosts: ["10.10.0.10","10.10.0.11","10.10.0.12"]
cluster.initial_master_nodes: ["node-10","node-11","node-12"]
#集群中一直正常运行的,有成为master节点资格的最少节点数(默认为1)
# (totalnumber of master-eligible nodes / 2 + 1) 
discovery.zen.minimum_master_nodes: 2
xpack.security.enabled: false 

11服务器:

[root@centos02 elasticsearch]# cat elasticsearch.yml 
#集群名
cluster.name: ES-Cluster

#节点名
node.name: node-11

#设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0,
#指绑定这台机器的任何一个ip
network.host: 0.0.0.0

#设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,
#值必须是个真实的ip地址  
network.publish_host: 10.10.0.11

#设置对外服务的http端口,默认为9200
http.port: 9200

#设置节点之间交互的tcp端口,默认是9300
transport.tcp.port: 9300

#是否允许跨域REST请求
http.cors.enabled: true

#允许 REST 请求来自何处
http.cors.allow-origin: "*"

#节点角色设置
node.master: true 
node.data: true

#有成为主节点资格的节点列表
discovery.seed_hosts: ["10.10.0.10","10.10.0.11","10.10.0.12"]
cluster.initial_master_nodes: ["node-10","node-11","node-12"]

#集群中一直正常运行的,有成为master节点资格的最少节点数(默认为1)
# (totalnumber of master-eligible nodes / 2 + 1) 
discovery.zen.minimum_master_nodes: 2
xpack.security.enabled: false

12服务器:

[root@centos03 elasticsearch]# cat elasticsearch.yml 
#集群名
cluster.name: ES-Cluster

#节点名
node.name: node-12

#设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0,
#指绑定这台机器的任何一个ip
network.host: 0.0.0.0

#设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,
#值必须是个真实的ip地址  
network.publish_host: 10.10.0.12

#设置对外服务的http端口,默认为9200
http.port: 9200

#设置节点之间交互的tcp端口,默认是9300
transport.tcp.port: 9300

#是否允许跨域REST请求
http.cors.enabled: true

#允许 REST 请求来自何处
http.cors.allow-origin: "*"

#节点角色设置
node.master: true 
node.data: true

#有成为主节点资格的节点列表
discovery.seed_hosts: ["10.10.0.10","10.10.0.11","10.10.0.12"]
cluster.initial_master_nodes: ["node-10","node-11","node-12"]

#集群中一直正常运行的,有成为master节点资格的最少节点数(默认为1)
# (totalnumber of master-eligible nodes / 2 + 1) 
discovery.zen.minimum_master_nodes: 2
xpack.security.enabled: false

  2.4 启动服务

三台节点都运行docker命令,部署es服务,以一台为例

## 需要修改宿主机es映射目录权限,容器中默认运行es服务的用户uid:gid 为1000
[root@centos01 ~]# groupadd -g 1000 elasticsearch
[root@centos01 ~]# useradd -u 1000 -g elasticsearch  -s /sbin/nologin -c "es user" elasticsearch
[root@centos01 ~]# chown -R 1000:1000 /var/lib/elasticsearch/ [root@centos01 ~]# docker run -d --name es -p 9200:9200 -p 9300:9300 \
-v /etc/elasticsearch/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ -v /var/lib/elasticsearch/data:/usr/share/elasticsearch/data \ -v /var/lib/elasticsearch/plugins:/usr/share/elasticsearch/plugins \ elasticsearch:7.0.1

 三、安装head插件查看集群状态

[root@centos01 ~]# docker run -d --name es-head -p 9100:9100 mobz/elasticsearch-head:5

浏览器访问:http://10.10.0.10:9100

可以看到,集群总共有三个节点,其中node-10服务器已经被选为master节点。

转载于:https://www.cnblogs.com/tchua/p/11236586.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值