Linux 快速安装使用 Elasticsearch 与 Kibana
在 Linux 上部署Elasticsearch 和 Kibana 时,使用系统的包管理器(APT/YUM)可以极大简化安装、升级、服务管理和权限配置的复杂性,使得整个部署过程更加规范和稳定。
本文将以 Ubuntu 系统为例,使用 apt 包管理器安装和配置 Elasticsearch 和 kibana 的过程。
安装与配置 Elasticsearch
- 添加 Elastic 官方软件源
首先,我们需要让系统信任 Elastic 的软件源,以便安全地下载软件包
# 1. 下载并安装 Elastic 的 GPG 密钥
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
# 2. 添加 Elastic 软件源到系统列表
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
# 3. 更新包列表
sudo apt-get update
- 安装指定版本的 Elasticsearch
为了确保与 Kibana 版本精确匹配,我们需要安装一个指定的版本,这里我们安装的目标版本是 v8.8.1
# 安装与我们目标版本一致的 v8.8.1
sudo apt-get install elasticsearch=8.8.1
- 修改 Elasticsearch 配置文件
为了使得本机也可以访问云服务器上的 Elasticsearch,我们需要做这两步:
- 修改 Elasticsearch 的配置文件,告诉它“允许接收来自外部的连接”。
如果是通过包管理器安装的 Elasticsearch,那么配置文件就会在标准路径下:
sudo vim /etc/elasticsearch/elasticsearch.yml
找到并修改 network.host
,修改为:network.host: 0.0.0.0
,这里 0.0.0.0
的意思是监听服务器上所有网络接口的连接请求,包括对外的公网 IP 地址。
- 配置云服务器安全组
我们需要配置云服务商提供的安全组,这样才能使得本机可以正常访问 Elasticsearch。先登陆云服务商控制台,添加服务器对应的安全组配置,添加一条入站规则,允许访问 Elasticsearch 的 9200 端口(这里的授权对象最好选择自己的本地公网 IP)
- 修正权限
由于不能通过 root 身份运行和使用 Elasticsearch,我们需要修改文件所有权:
sudo chown -R elasticsearch:elasticsearch /etc/elasticsearch/
sudo chown -R elasticsearch:elasticsearch /var/lib/elasticsearch/
- 优化资源占用
对于低内存服务器(4GB),必须严格限制 Elasticsearch 的内存使用
1. 编辑 JVM 配置文件:`sudo vim /etc/elasticsearch/jvm.options`
2. 修改堆内存大小(例如设置为 512 MB,因为我发现设置为 1GB 后系统内存占用直接到 100% 了,只能再降低一点到 512MB),并确保初始值(-Xms)和最大值(-Xmx)相等:
- 启动 Elasticsearch
输入这个命令来启动 elasticsearch:sudo systemctl start elasticsearch
,然后可以通过 sudo systemctl status elasticsearch
来判断是否正常运行(running)
安装与配置 Kibana
- 安装指定版本的 Kibana
版本必须与 Elasticsearch 完全一致
sudo apt-get install kibana=8.8.1
- 修改 Kibana 配置文件
为了使得本机也可以访问云服务器上的 Kibana,我们需要做这两步:
- 修改 Kibana 的配置文件,告诉它“允许接收来自外部的连接”。
如果是通过包管理器安装的 Elasticsearch,那么配置文件就会在标准路径下:
sudo vim /etc/kibana/kibana.yml
找到并修改 server.host
,修改为:server.host: 0.0.0.0
,这里 0.0.0.0
的意思是监听服务器上所有网络接口的连接请求,包括对外的公网 IP 地址。
- 配置云服务器安全组
我们需要配置云服务商提供的安全组,这样才能使得本机可以正常访问 Kibana。先登陆云服务商控制台,添加服务器对应的安全组配置,添加一条入站规则,允许访问 Kibana 的 5601 端口(这里的授权对象最好选择自己的本地公网 IP)
- 设置页面显示为中文
通过修改 i18n.locale
可以设置页面显示为中文,如图所示:
- 修正权限
修改文件所有权
sudo chown -R kibana:kibana /etc/kibana/
- 启动 Kibana
输入这个命令来启动 Kibana:sudo systemctl start kibana
,然后可以通过 sudo systemctl status kibana
来判断是否正常运行(running)
连接与最终设置
- 配置 Kibana 连接
编辑 sudo vim /etc/kibana/kibana.yml
,确保以下配置正确:
# 允许外部访问
server.host: "0.0.0.0"
# 指向正确的 Elasticsearch 地址
elasticsearch.hosts: ["https://localhost:9200"]
-
获取并使用令牌/验证码
-
**获取注册令牌(Enrollment Token):**在服务器上运行
sudo /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token \-s kibana
,将输出的令牌粘贴到 Kibana 的初始配置页面 -
**获取验证码(Verification Code):**在令牌配置成功后,Kibana 会要求验证,在服务器上运行
sudo /usr/share/kibana/bin/kibana-verification-code
,将输出的6位数填入浏览器
-
-
重置管理员密码并登录
-
重置密码: 如果忘记了 elastic 用户的密码,随时可以在服务器上运行
sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
来重置。 -
登录: 使用用户名 elastic 和新密码登录 Kibana。
-
设置开机自启
最后使用 systemctl 将服务设置为开机自动启动,实现自动化
sudo systemctl enable elasticsearch.service
sudo systemctl enable kibana.service
评论区
请登录后发表评论