《Elasticsearch 安装与配置》

《Elasticsearch 安装与配置》

Elasticsearch 是基于 Lucene 的分布式搜索和分析引擎。本文基于 5.x 记录在 Debian 上的 tar.gz 方式安装、普通用户启动、端口与监听地址修改,以及常见的 vm.max_map_count 启动报错处理。

1 安装前准备

Elasticsearch 依赖 Java 8 环境,先确认 java -version 是否正确。ES 5.x 建议使用 JDK 1.8。

从镜像站下载安装包(示例为华为云镜像):

wget https://mirrors.huaweicloud.com/elasticsearch/5.5.3/elasticsearch-5.5.3.tar.gz wget https://artifacts.elastic.co/downloads/kibana/kibana-5.5.3-linux-x86_64.tar.gz

重要:下载前先创建 ES 普通用户,并切换到该用户之后再下载解压,避免目录权限问题(ES 不能以 root 运行)。

2 解压并创建普通用户

tar zxf elasticsearch-5.5.3.tar.gz # es 不能以 root 权限启动,因此需要添加用户(一路回车即可) adduser es # 将 Java 环境配置写入 es 用户的 bashrc # 注意:不要直接执行脚本,否则 PATH 会被覆盖,因此手动追加 cat >> /home/es/.bashrc <<EOF # java env export JAVA_HOME=/usr/local/java/jdk1.8.0_221 export JRE_HOME=\$JAVA_HOME/jre export CLASSPATH=\$CLASSPATH:\$JAVA_HOME/lib:\$JRE_HOME/lib export PATH=\$PATH:\$JAVA_HOME/bin:\$JRE_HOME/bin EOF

3 启动与健康检查

cd /home/es/elasticsearch-5.5.3 su es # 前台启动(便于观察日志) ./bin/elasticsearch # 后台启动 ./bin/elasticsearch -d

宿主机上检查集群健康状态:

curl http://127.0.0.1:9200/_cluster/health?pretty # { # "cluster_name" : "elasticsearch", # "status" : "green", # ... # }

4 修改监听地址与端口

默认监听 9200 端口。某些环境有限制(如只允许开放 8000~9000 端口),可修改配置文件:

vi config/elasticsearch.yml
network.host: <SERVER_IP> http.port: 9200

修改后重新启动,用新地址验证:

curl http://127.0.0.1:9200/_cluster/health?pretty curl http://<SERVER_IP>:9200/_cluster/health?pretty

启动常用参数参考:

-E <KeyValuePair> Configure a setting -V, --version Prints elasticsearch version information and exits -d, --daemonize Starts Elasticsearch in the background -h, --help show help -p, --pidfile <Path> Creates a pid file in the specified path on start -q, --quiet Turns off standard output/error streams logging in console -s, --silent show minimal output -v, --verbose show verbose output

5 启动 Kibana(可选)

tar zxf kibana-5.5.3-linux-x86_64.tar.gz cd kibana-5.5.3-linux-x86_64-linux-x86_64 # 修改配置文件 config/kibana.yml # elasticsearch.url: "http://127.0.0.1:9200" # server.port: 5601 # 默认只监听 localhost,需要改成本机 IP 才能远程访问 # server.host: "<SERVER_IP>" # 前台启动 ./bin/kibana # 后台启动 nohup ./bin/kibana > info.log 2> error.log &

6 常见问题

6.1 max virtual memory areas vm.max_map_count is too low

启动报错:

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

原因:Linux 最大虚拟内存映射数过小。

查看与解决:

sysctl -a | grep vm.max_map_count # vm.max_map_count = 65530 sysctl -w vm.max_map_count=655360

容器环境内可能无法调整,需要到宿主机执行该命令。

参考文档

阅读 — · 全站 —
🎸 我的歌单 0 首