一个80后
程序员的笔记

Elasticsearch 安装与配置

本文档记录了在 3 节点集群上安装、配置和验证 Elasticsearch 的步骤。

集群详情

  • 集群名称: vodjk-search
  • 节点:
    • vodjk-node-1 (192.168.140.157)
    • vodjk-node-2 (192.168.140.158)
    • vodjk-node-3 (192.168.140.159)
  • Elasticsearch 版本: 8.16.1
  • 系统配置: 每节点 4 核 CPU,8GB 内存
  • 数据目录: /data/elasticsearch/data
  • 日志目录: /data/elasticsearch/logs

安装步骤

1. 下载并解压 Elasticsearch

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.16.1-linux-x86_64.tar.gz
tar -xzf elasticsearch-8.16.1-linux-x86_64.tar.gz
sudo mv elasticsearch-8.16.1 /usr/local/elasticsearch-8.16.1
sudo ln -s /usr/local/elasticsearch-8.16.1 /usr/local/elasticsearch

2. 创建 Elasticsearch 用户和目录

sudo useradd -r -m -d /data/elasticsearch -s /sbin/nologin elasticsearch
sudo mkdir -p /data/elasticsearch/data /data/elasticsearch/logs
sudo chown -R elasticsearch:elasticsearch /usr/local/elasticsearch* /data/elasticsearch
sudo chmod -R 755 /data/elasticsearch

3. 设置系统参数

  • 编辑 /etc/security/limits.conf

    elasticsearch soft nofile 65536
    elasticsearch hard nofile 65536
    elasticsearch soft memlock unlimited
    elasticsearch hard memlock unlimited
  • 编辑 /etc/sysctl.conf

    vm.max_map_count=262144

    应用修改:

    sudo sysctl -p

4. 配置 Elasticsearch

编辑每个节点的 /usr/local/elasticsearch/config/elasticsearch.yml

cluster.name: vodjk-search
node.name: vodjk-node-1  # 对于其他节点,改为 vodjk-node-2 和 vodjk-node-3
node.roles: [master, data]
network.host: 192.168.140.157  # 每个节点更改为对应 IP
http.port: 9200
discovery.seed_hosts: ["192.168.140.157", "192.168.140.158", "192.168.140.159"]
cluster.initial_master_nodes: ["vodjk-node-1", "vodjk-node-2", "vodjk-node-3"]
path.data: /data/elasticsearch/data
path.logs: /data/elasticsearch/logs
xpack.security.enabled: false

5. 设置环境变量

创建 /etc/profile.d/elasticsearch.sh

export PATH=$PATH:/usr/local/elasticsearch/bin

应用修改:

source /etc/profile.d/elasticsearch.sh

6. 创建 systemd 服务

创建 /etc/systemd/system/elasticsearch.service

[Unit]
Description=Elasticsearch
Documentation=https://www.elastic.co
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
WorkingDirectory=/usr/local/elasticsearch
ExecStart=/usr/local/elasticsearch/bin/elasticsearch -d -p /var/run/elasticsearch/elasticsearch.pid
Environment=JAVA_HOME=/usr/lib/jvm/java-17-openjdk
LimitNOFILE=65536
LimitMEMLOCK=infinity
TimeoutStartSec=600
TimeoutStopSec=600
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
User=elasticsearch
Group=elasticsearch

[Install]
WantedBy=multi-user.target

重新加载并启用服务:

sudo systemctl daemon-reload
sudo systemctl enable elasticsearch

7. 启动 Elasticsearch

sudo systemctl start elasticsearch
sudo systemctl status elasticsearch

验证

  1. 检查集群健康状态

    curl -X GET http://localhost:9200/_cluster/health?pretty

    期望输出:

    {
     "cluster_name": "vodjk-search",
     "status": "green",
     "number_of_nodes": 3,
     "number_of_data_nodes": 3
    }
  2. 查看节点列表

    curl -X GET http://localhost:9200/_cat/nodes?v

    期望输出:

    ip              heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
    192.168.140.157           20          60   2    0.10    0.15     0.20 dm        *      vodjk-node-1
    192.168.140.158           15          65   3    0.05    0.10     0.15 dm        -      vodjk-node-2
    192.168.140.159           10          50   1    0.01    0.02     0.03 dm        -      vodjk-node-3
  3. 测试索引创建

    curl -X PUT "http://localhost:9200/test_index?pretty"
  4. 查看日志

    sudo journalctl -u elasticsearch -f

总结

Elasticsearch 已成功在 3 节点集群上安装并配置。所有节点运行正常,集群健康状态为 green

赞(0) 打赏
未经允许不得转载:笨笨天地 » Elasticsearch 安装与配置
分享到: 更多 (0)

相关推荐

  • 暂无文章

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏