随着Skywalking 6.0 GA版本的发布,Skywalking终于支持Elasticsearch 6.x版本,本文作为搭建Skywalking 6.0集群系列文章的第一篇介绍下Elasticsearch 6.6集群的搭建。1. 准备1.1 节点规划IPcluster.namenode.name10.130.10.11es_loges_110.130.10.12es_loges_210.130.10.13es_loges_31.2 安装Java运行环境JREwget -c -P /tmp https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u202-b08/OpenJDK8U-jre_x64_linux_hotspot_8u202b08.tar.gzmkdir /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/defaultexport PATH=$JAVA_HOME/bin:$PATHEOF2. 安装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 packagesbaseurl=https://artifacts.elastic.co/packages/6.x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-mdEOF2.2 安装软件yum install elasticsearch -y2.3 配置LimitLimitMEMLOCK开启内存锁定LimitNPROC最大进程数,系统支持的最大进程数:32768查看系统最大支持进程数:cat /proc/sys/kernel/pid_maxLimitNOFILE打开文件数,系统默认最大文件描述符:791020查看系统最大文件描述符:cat /proc/sys/fs/file-maxmkdir /etc/systemd/system/elasticsearch.service.d;\cat > /etc/systemd/system/elasticsearch.service.d/override.conf << ‘EOF’[Service]Environment=JAVA_HOME=/usr/java/default LimitMEMLOCK=infinityLimitNOFILE=204800LimitNPROC=4096EOF2.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.options2.5 配置elasticsearch.ymlcluster.name集群名称,默认是elasticsearch,建议修改为更明确的名称,比如es_lognode.name节点名,默认随机指定一个name列表中名字,建议修改为明确的名称,比如es_1,es_2,es_3network.host主机IPpath.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.yml2.5.2 各个节点执行对应的命令#节点-1sed -i ‘/node.name/c\node.name: es_1’ /etc/elasticsearch/elasticsearch.yml#节点-2sed -i ‘/node.name/c\node.name: es_2’ /etc/elasticsearch/elasticsearch.yml#节点-3sed -i ‘/node.name/c\node.name: es_3’ /etc/elasticsearch/elasticsearch.yml2.6 启动systemctl enable elasticsearch;\systemctl daemon-reload;\systemctl start elasticsearch;\systemctl status elasticsearch2.7 配置防火墙firewall-cmd –add-port=9200/tcp –permanent;\firewall-cmd –add-port=9300/tcp –permanent;\firewall-cmd –reload3. 安装中文分词插件(可选)#查看已安装插件/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.zip4. 查询#查看节点信息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