Centos 7構築Skywalking 6.0シリーズ第1編-Elasticsearch 6.6クラスタ構築


Skywalking 6.0 GAバージョンのリリースに伴い、SkywalkingはついにElasticsearch 6をサポートした.xバージョン、本文はSkywalking 6.0クラスタシリーズを構築する文章の第1編として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の構成(オプション)
  • デフォルトは2 G
  • です.
  • 使用可能なRAMの50%を超えないでください
    Luceneはファイルシステムのキャッシュをうまく利用でき、システムカーネルによって管理されています.ファイルシステムのキャッシュスペースが十分でない場合、パフォーマンスに影響します.さらに、スタック専用のメモリが多いほどdoc valuesを使用する他のフィールドのメモリが少ないことを意味します.
  • は32 GBを超えないでください
    スタックサイズが32 GB未満の場合、JVMはポインタ圧縮を利用することができ、メモリの使用量を大幅に低減することができる:ポインタあたり4バイトで8バイトではなく4バイト
  • 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.ホスト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
    etwork.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
    ode.name: es_1' /etc/elasticsearch/elasticsearch.yml # -2 sed -i '/node.name/c
    ode.name: es_2' /etc/elasticsearch/elasticsearch.yml # -3 sed -i '/node.name/c
    ode.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