共计 3627 个字符,预计需要花费 10 分钟才能阅读完成。
随着 Skywalking 6.0 GA 版本的发布,Skywalking 终于支持 Elasticsearch 6.x 版本,本文作为搭建 Skywalking 6.0 集群系列文章的第一篇介绍下 Elasticsearch 6.6 集群的搭建。
1. 准备
1.1 节点规划
IP
cluster.name
node.name
10.130.10.11
es_log
es_1
10.130.10.12
es_log
es_2
10.130.10.13
es_log
es_3
1.2 安装 Java 运行环境 JRE
wget -c -P /tmp https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u202-b08/OpenJDK8U-jre_x64_linux_hotspot_8u202b08.tar.gz
mkdir /usr/java;\
tar xf /tmp/OpenJDK8U-jre_x64_linux_hotspot_8u202b08.tar.gz -C /usr/java;\
rm -rf /usr/java/default;\
ln -s /usr/java/jdk8u202-b08-jre /usr/java/default;\
tee -a /etc/profile << ‘EOF’
export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH
EOF
2. 安装
2.1 导入 Elasticserach 软件源
rpm –import https://artifacts.elastic.co/GPG-KEY-elasticsearch;\
tee /etc/yum.repos.d/elasticsearch.repo << ‘EOF’
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF
2.2 安装软件
yum install elasticsearch -y
2.3 配置 Limit
LimitMEMLOCK 开启内存锁定
LimitNPROC 最大进程数,系统支持的最大进程数:32768 查看系统最大支持进程数:cat /proc/sys/kernel/pid_max
LimitNOFILE 打开文件数, 系统默认最大文件描述符:791020 查看系统最大文件描述符:cat /proc/sys/fs/file-max
mkdir /etc/systemd/system/elasticsearch.service.d;\
cat > /etc/systemd/system/elasticsearch.service.d/override.conf << ‘EOF’
[Service]
Environment=JAVA_HOME=/usr/java/default
LimitMEMLOCK=infinity
LimitNOFILE=204800
LimitNPROC=4096
EOF
2.4 配置 JVM(可选)
默认是 2G
不要超过可用 RAM 的 50%
Lucene 能很好利用文件系统的缓存,它是通过系统内核管理的。如果没有足够的文件系统缓存空间,性能会受到影响。此外,专用于堆的内存越多意味着其他所有使用 doc values 的字段内存越少
不要超过 32 GB
如果堆大小小于 32 GB,JVM 可以利用指针压缩,这可以大大降低内存的使用:每个指针 4 字节而不是 8 字节
sed -i ‘/-Xms2g/c\-Xms3g’ /etc/elasticsearch/jvm.options;\
sed -i ‘/-Xmx2g/c\-Xmx3g’ /etc/elasticsearch/jvm.options
2.5 配置 elasticsearch.yml
cluster.name 集群名称,默认是 elasticsearch,建议修改为更明确的名称,比如 es_log
node.name 节点名,默认随机指定一个 name 列表中名字,建议修改为明确的名称,比如 es_1,es_2,es_3
network.host 主机 IP
path.data 数据目录
path.logs 日志目录
discovery.zen.ping.unicast.hosts 节点发现
2.5.1 所有节点执行相同的命令
mkdir -p /home/elasticsearch/data /home/elasticsearch/logs;\
chown -R elasticsearch. /home/elasticsearch;\
sed -i ‘/cluster.name/c\cluster.name: es_log’ /etc/elasticsearch/elasticsearch.yml;\
sed -i ‘/network.host/c\network.host: 0.0.0.0’ /etc/elasticsearch/elasticsearch.yml;\
sed -i ‘/path.data/c\path.data: /home/elasticsearch/data’ /etc/elasticsearch/elasticsearch.yml;\
sed -i ‘/path.logs/c\path.logs: /home/elasticsearch/logs’ /etc/elasticsearch/elasticsearch.yml;\
sed -i ‘/discovery.zen.ping.unicast.hosts/c\discovery.zen.ping.unicast.hosts: [“10.130.10.11″,”10.130.10.12″,”10.130.10.13”]’ /etc/elasticsearch/elasticsearch.yml
2.5.2 各个节点执行对应的命令
#节点 -1
sed -i ‘/node.name/c\node.name: es_1’ /etc/elasticsearch/elasticsearch.yml
# 节点 -2
sed -i ‘/node.name/c\node.name: es_2’ /etc/elasticsearch/elasticsearch.yml
# 节点 -3
sed -i ‘/node.name/c\node.name: es_3’ /etc/elasticsearch/elasticsearch.yml
2.6 启动
systemctl enable elasticsearch;\
systemctl daemon-reload;\
systemctl start elasticsearch;\
systemctl status elasticsearch
2.7 配置防火墙
firewall-cmd –add-port=9200/tcp –permanent;\
firewall-cmd –add-port=9300/tcp –permanent;\
firewall-cmd –reload
3. 安装中文分词插件(可选)
#查看已安装插件
/usr/share/elasticsearch/bin/elasticsearch-plugin list
# 安装 IK
/usr/share/elasticsearch/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.6.0/elasticsearch-analysis-ik-6.6.0.zip
4. 查询
#查看节点信息
curl -X GET http://localhost:9200/_nodes
# 打开文件数信息
curl -X GET http://localhost:9200/_nodes/stats/process?filter_path=**.max_file_descriptors
# 集群健康状态
curl -X GET http://localhost:9200/_cat/health?v
# 查看集群索引数
curl -X GET http://localhost:9200/_cat/indices?v
# 查看磁盘分配情况
curl -X GET http://localhost:9200/_cat/allocation?v
# 查看集群节点
curl -X GET http://localhost:9200/_cat/nodes?v
# 查看集群其他信息
curl -X GET http://localhost:9200/_cat