安装部署elasticsearch 7.10.0详细教程
【背景】
- 整个elk安装是基于ubuntu 22.04和jdk 11环境。
- elasticsearch采用 *.deb方式安装,需要服务器能联网。
- ubuntu 22.04 安装部署elk(elasticsearch/logstash/kibana) 7.10.0详细教程
一、下载并安装
# 下载
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.0-amd64.deb
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.0-amd64.deb.sha512
# 安装
shasum -a 512 -c elasticsearch-7.10.0-amd64.deb.sha512
# 输出应显示 elasticsearch-7.10.0-amd64.deb: OK 表示验证成功
sudo dpkg -i elasticsearch-7.10.0-amd64.deb
二、修改elasticsearch.yml配置文件
- 先备份在修改
# 备份文件后修改elasticsearch.yml配置文件
sudo cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
sudo vim /etc/elasticsearch/elasticsearch.yml
- 修改elasticsearch.yml配置文件
# 设置集群名称
cluster.name: myes
# 设置节点名称
node.name: node-1
# 设置绑定地址(如果需要远程访问)
network.host: 0.0.0.0 # 注意:生产环境建议使用具体IP而非0.0.0.0
# 设置HTTP端口
http.port: 9200
# 发现设置(单节点配置)
discovery.type: single-node
三、授权文件或者文件夹
# 查看安装文件的权限,确保所有者都是elasticsearch,如果不是可以授权
sudo chown -R elasticsearch:elasticsearch /usr/share/elasticsearch
sudo chown -R elasticsearch:elasticsearch /var/lib/elasticsearch
sudo chown -R elasticsearch:elasticsearch /var/log/elasticsearch
sudo chown -R elasticsearch:elasticsearch /etc/elasticsearch
四、启动服务
es启动需要用非root用户启动。
sudo systemctl daemon-reload #重新加载服务配置文件
sudo systemctl enable elasticsearch.service #开启自启动
sudo systemctl start elasticsearch.service #启动
sudo systemctl stop elasticsearch.service #停止
sudo systemctl restart elasticsearch.service #重启
sudo systemctl status elasticsearch.service #查看服务状态
如下图表示已经正常启动服务了
五、访问验证
如若需要可安装curl命令:sudo apt install curl
服务器访问:sudo curl http://localhost:9200
【注意】如果远程访问链接需要防火墙开发端口9200/9300,详见命令如下:防火墙操作命令
以上基本安装完成,后续可根据需要设置安全访问配置。因es需要较高的系统资源如下配置可根据需求修改。
六、性能配置
- 修改配置文件 limits.conf、sysctl.conf,可根据需求修改
# 1. 编辑文件 limits.conf
sudo vim /etc/security/limits.conf
# 添加以下内容(设置 nofile 和 nproc 限制):
elasticsearch soft nofile 65536
elasticsearch hard nofile 65536
elasticsearch soft nproc 4096
elasticsearch hard nproc 4096
# 2. 编辑 sysctl.conf
sudo vim /etc/sysctl.conf
# 添加以下内容(调整虚拟内存和最大映射数):
vm.max_map_count=262144
# 3. 使配置生效
sudo sysctl -p
- 修改jvm.options 文件,可根据需求修改
sudo vim /etc/elasticsearch/jvm.options
# 修改以下内容,7.10.0版本中默认1G,8.x版本默认更大
-Xms1g # 初始堆大小
-Xmx1g # 最大堆大小
- 修改完成后重启验证
重启服务:sudo systemctl restart elasticsearch.service
查看状态: sudo systemctl status elasticsearch.service
访问链接:sudo curl http://localhost:9200
七、开启安全功能
1. 开启用户密码登录
- 首先在es中配置文件中添加如下配置,然后重启服务
# 编辑配置文件
sudo vim /etc/elasticsearch/elasticsearch.yml
# 添加配置参数,开启登录
xpack.security.enabled: true
# 重启服务
sudo systemctl restart elasticsearch
- 设置内置用户密码
# 系统内置用户列举如下
# apm_system, beats_system ,elastic ,kibana_system, logstash_system, remote_monitoring_user
# 设置用户密码命令
# 交互式设置-手动设置
sudo /usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive
# 系统生成-自动设置(推荐生产环境)
sudo /usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto
- 验证测试es用户名密码
验证命令:sudo curl -u elastic:密码 http://localhost:9200
2. 开启安全加密通信
开启前访问链接是 http://localhost:9200,开启安全加密后是 https://localhost:9200。保证数据在传输过程中安全性。
#1. 生成证书
# 直接回车,不输入密码,证书生成后的位置:/usr/share/elasticsearch/
sudo /usr/share/elasticsearch/bin/elasticsearch-certutil ca
sudo /usr/share/elasticsearch/bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
#2. 将证书移位置并赋权
sudo mkdir /etc/elasticsearch/certs/
sudo mv /usr/share/elasticsearch/*.p12 /etc/elasticsearch/certs/
sudo chown -R elasticsearch:elasticsearch /etc/elasticsearch/certs/elastic*.p12
#3. 配置证书路径到配置文件中,如下是elasticsearch.yml配置项
# 开启安全访问(用户名密码)
xpack.security.enabled: true
# 开启加密通信(集群节点之间)
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
# [certs/elastic-certificates.p12] 该路径采用相对路径,也可以使用绝对路径
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12
# HTTP 安全设置(https,外部客户端与集群通信)
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.http.ssl.truststore.path: certs/elastic-certificates.p12
#4. 验证测试
sudo curl -k -u elastic:密码 https://localhost:9200
# 或者页面访问:https://localhost:9200
八、安装启动常见问题
- es中 常见的是文件授权问题,对elasticsearch没有赋权,如下授权
- 查看日志: sudo tail -100f /var/log/logstash/logstash-plain.log
- 路径或文件授权: sudo chown -R elasticsearch:logstash /etc/elasticsearch/