es集群搭建
- 使用华为云下载速度全面:https://mirrors.huaweicloud.com/elasticsearch/
wget https://mirrors.huaweicloud.com/elasticsearch/7.10.0/elasticsearch-7.10.0-linux-x86_64.tar.gz
tar -zxvf elasticsearch-7.10.0-linux-x86_64.tar.gz
- 将安装包移动到/etc/目录下
mv elasticsearch-6.4.3 /etc/
- 修改es的启动参数为本机内存的一半(根据你的实际需要来做)
- 将es安装目录的 config/jvm.options
- 这个jvm.options用来配置各种jvm参数,比如GC、GC logging、heap dumps等。
vim /etc/elasticsearch-6.4.3/config/jvm.options
修改为:
-Xms4g
-Xmx4g
- 创建es数据目录
mkdir -p /etc/elasticsearch-6.4.3/data
- 因为es不能使用root启动所以创建启动用户
useradd es
chmod -R
chown -R es:es /etc/elasticsearch-6.4.3/ 将es安装目录赋予es用户
es配置详解
- 配置集群的名称 cluster.name
一个节点只有与集群中的所有其他节点拥有相同的 master.name 时才能加入集群。默认的集群名称是 elasticsearch,最好是设置为合适的名字,否则可能和现有的集群同名。下面的配置把集群命名为:graylog
cluster.name: graylog
- 配置节点的名称
- 如果不设置节点的名称 node.name,默认情况下,Elasticsearch 将使用随机生成的 UUID 的前七个字符作为节点的 ID,并且这个随机的字符串会被持久化下来,即使重启系统也不会丢失。但是为了提高系统的可读性,我们最好是为每个节点设置一个合适的名字:
node.name: graylog01
或者是干脆设置为主机的名称: node.name: hostname
- 列出集群中的所有节点
- Elasticsearch 自己实现了一个名称为 “Zen Discovery” 的发现节点并从集群的节点间选取主节点的功能。在集群的配置中一定要配置两个与 “Zen Discovery” 相关的配置项,其中的一个为 discovery.zen.ping.unicast.hosts。
- 在不进行任何网络配置的情况下,Elasticsearch 将绑定到可用的环回地址,并扫描端口 9300 到 9305,以尝试连接到同一服务器上运行的其他节点。这提供了一种无需进行任何配置的自动集群体验。当需要在其他服务器上使用节点组成集群时,必须通过 discovery.zen.ping.unicast.hosts 提供集群中其他节点的列表:
discovery.zen.ping.unicast.hosts: ["192.168.79.210:9300", "192.168.72.159:9300","192.168.72.160:9300"]
除了 IP 地址,这里也可以使用主机名(hostname)。
- 配置最小 master 节点数
- 另一个必须要设置的 “Zen Discovery” 相关的配置项为 discovery.zen.minimum_master_nodes。它的默认值是1,该属性定义的是为了组成一个集群,相互连接的候选主结点的最小数目,强烈推荐该属性的设置使用多数原则:(master_eligible_nodes / 2) + 1,既能避免出现脑裂(split-brain),又能在故障发生后,快速选举出新的主结点。例如:有 5 个候选主结点,推荐把该属性设置为 3。由于本文演示的 demo 中只有两个节点,因此把该值设置为 1:
# node-1
node.name: node-1
node.master: true
node.data: true
path.data: /opt/data/elasticsearch
path.logs: /opt/logs/elasticsearch
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 0.0.0.0
discovery.seed_hosts: ["172.16.72.160", "172.16.72.159","172.16.79.210"]
cluster.initial_master_nodes: ["172.16.72.160"]
http.cors.enabled: true
http.cors.allow-origin: "*"
# node-2
node.name: node-2
node.master: true
node.data: true
path.data: /opt/data/elasticsearch
path.logs: /opt/logs/elasticsearch
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 0.0.0.0
discovery.seed_hosts: ["172.16.72.160", "172.16.72.159","172.16.79.210"]
cluster.initial_master_nodes: ["172.16.72.160"]
http.cors.enabled: true
http.cors.allow-origin: "*"
# node-3
node.name: node-3
node.master: true
node.data: true
path.data: /opt/data/elasticsearch
path.logs: /opt/logs/elasticsearch
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 0.0.0.0
discovery.seed_hosts: ["172.16.72.160", "172.16.72.159","172.16.79.210"]
cluster.initial_master_nodes: ["172.16.72.160"]
http.cors.enabled: true
http.cors.allow-origin: "*"
修改/etc/sysctl.conf
- vim /etc/sysctl.conf 在文件最后一行加入以下配置
vm.max_map_count=262144
然后让配置生效
sysctl -p
启动报错
- 是因为你的 /etc/sysctl.conf 未加入vm.max_map_count=262144
Graylog
- graylog官网下载地址: https://www.graylog.org/releases
- 选择你需要的版本
我这里选择4.0.7
- 复制版本的server地址然后进入服务器wget下载
下载graylog
wget https://downloads.graylog.org/releases/graylog/graylog-4.0.7.tgz
tar -zxvf graylog-4.0.7.tgz
Graylog多节点配置
- 官方文档:https://docs.graylog.org/en/4.0/pages/configuration/server.conf.html
然后进入解压好的graylog目录中修改graylog.conf.example
#时区
root_timezone = Asia/Shanghai
#pssworde_secret可以通过命令:pwgen -N 1 -s 96 来随机生成,下面就是我随机生成的
password_secret =UQUOMnZvVGCUsEc5u8tYCCnBjMvtiAQfYOmTcXhGdie8R5OZ7Xxx6WycyWdsqA7IWIF4TjCCQEY0xnvhmvMSb4OqG3LvdQUg
# 生成后,请记住你的 YourPassword
#echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1
root_password_sha2 =1b5c432b094de3ff79b9296d09347841f38b9cdbea019399c7ed54abba92e975
# elasticsearch 相关配置
elasticsearch_hosts = http://127.0.0.1:9200
elasticsearch_shards =1
elasticsearch_replicas = 0
# mongodb 连接配置,这里直接本机起的mongodb,没有设置验证
mongodb_uri = mongodb://localhost/graylog
# 网络访问相关,重要,graylog3比2.x版本简洁了很多网络配置,只需配置http_bind_address即可。
http_bind_address = 0.0.0.0:9000
修改配置文件
因为graylog安装bin目录下,默认启动配置文件
配置文件路径 /etc/graylog/server/server.conf
所以需要将graylog.conf.example 复制到/etc/graylog/server/目录下,并改名为server.conf
执行命令
mkdir -p /etc/graylog/server/
启动GRAYLOG
进入graylog目录的bin目录下
./graylogctl start
查看Graylog运行日志
tail -200f log/graylog-server.log
使用ip:9000 进行访问可获得graylog的web界面
在graylog安装目录下执行
- 是因为你的集群还有剩余节点未启动造成的
- 也或者是你的es集群有部分节点未启动造成的