如何在 Ubuntu 20.04 上安装 ElasticSearch 及 Kibana
前言
ElasticSearch 及配套可视化 Web 界面 Kibana 是搭建站内搜索的基础配置,在本教程中,我们在 Ubuntu 20.04 服务器上安装 ElasticSearch 及 Kibana 。由于 Kibana 仅在 localhost
上可用,我们还会使用 Nginx 进行代理,以便可以通过 Web 浏览器远程访问。
Elastic 主要组件:
- ElasticSearch:分布式 RESTful 搜索引擎,用于存储所有收集的数据。
- Kibana:用于搜索和可视化日志的Web界面。
准备工作
要跟随本教程学习,首先我们要配置或安装好以下内容
- Ubuntu 20.04 服务器,有 sudo 的 root 用户权限,大家可根据《Ubuntu20.04初始服务器设置》指南来配置自己的服务器。
- 安装 OpenJDK
- Nginx 安装在您的服务器上,我们将在本指南的后面部分将其配置为 Kibana 的反向代理。按照我们的指南《如何在Ubuntu 20.04 上安装 Nginx》进行设置。
ElasticSearch 所管理的数据非常敏感,因此我们可通过安装 TLS / SSL 证书来确保服务器访问安全。如果你只是在本地测试,可以忽略这一点。如果是生产环境,强烈建议按照《如何在 Ubuntu20.04 上使用 Let’s Encrypt 给 Nginx 加密(SSL)》这篇指南来进行安全加密。
第 1 步 - 安装和配置 ElasticSearch
方法一:使用 apt 安装
ElasticSearch 组件在Ubuntu的默认软件包存储库中不可用。但是,可以在添加Elastic的软件包源列表之后将它们与APT一起安装。
Ubuntu repositories 自身并没有 ElasticSearch 但我们可以添加 Elastic 官方软件源,以保证我们可以下载到来自官方的软件。
首先,使用 cURL 将 ElasticSearch 公共 GPG 密钥导入到本机。
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
接下来,将 Elastic 软件源添加到 sources.list.d
目录中:
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
更新软件源
sudo apt update
接着我们开始安装 ElasticSearch
sudo apt install elasticsearch
整个安装步骤非常流畅,全自动。
方法二:直接下载安装
我们可以在 Elastic 的官网找到最新版的下载地址。然后使用 wget
下载。
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.1-amd64.deb
使用 dpkg
进行本地安装
sudo dpkg -i elasticsearch-7.10.1-amd64.deb
安装完成后,我们对 ElasticSearch 进行配置。这里很关键,如果不配置,ES 运行时会报错。
大家可使用自己趁手的编辑器打开 elasticsearch.yml
文件。本教程使用 nano
编辑器:
sudo nano /etc/elasticsearch/elasticsearch.yml
注意: ElasticSearch 的配置文件为 YAML 格式,请注意缩进。
有关 ElasticSearch 群集,节点,路径,内存,网络,网关的配置选项都在这个配置文件中配置。大多数选项,我们可以直接使用默认选项,但有两个选项非常基础,必须配置 ES 才可以在我们的机器上跑起来。
这些选项大多数使用默认值即可,但是我们也可根据需要进行更改。为了演示单服务器配置,我们将仅调整网络主机的设置。CTRL+X
保存退出。
接下来,我们就可以启动 ElasticSearch 了。
sudo systemctl start elasticsearch
我们用 http 请求来测试一下 ES 服务是否启动。
curl -X GET "localhost:9200"
我们可以看到返回本地节点的一些基本信息,类似上图。
到这里,ElasticSearch 已经运行在你到服务器中了,先放在这里待用。接着我们来安装 Kibana ,Kibana 是 ES 的可视化分析平台,可以搜索 查询存储在 ES 中的数据。
第 2 步 - 安装和配置 Kibana
根据官方文档,我们应该在安装 ES 之后来安装 Kibana ,注意安装顺序,以避免不必要的麻烦。
我们在上一步已经添加了 Elastic 的软件源,所以这里我们直接用 apt
命令来安装 kibana 。
sudo apt install kibana
安装完成后,我们启动 kibana 服务:
sudo systemctl enable kibana
sudo systemctl start kibana
如果你是在本机跑 ES 和 kibana 的话,那么可以直接在,直接跳到下一章。如果你是在虚拟机或者远程服务器安装 ES 的话,那么接下来的步骤,关乎到我们是否可以远程登录 ES 和 Kibana 。
首先我们要现在本机安装和配置 Nginx ,关于如何配置请看《如何在 Ubuntu 20.04 中安装和配置 Nginx》这篇。请按照教材安装完成 Nginx 之后继续。
首先我们使用 openssl
命令创建一个管理 Kibana 的用户, 我们使用这个账户来访问 Kibana Web 。本教程使用 KalasearchAdmin
作为用户名。
我们使用以下命令来给 Kibana 创建管理用户名和密码,这些用户名和密码会存储在 htpasswd.users
文件中。
echo "KalasearchAdmin:`openssl passwd -apr1`" | sudo tee -a /etc/nginx/htpasswd.users
在提示符里输入并确认密码。请牢记此登录名及密码,我们接下来使用浏览器访问 Kibana Web 页面时会用到。
接着,我们来创建一个 Nignx Server block 文件。本教程的 Ubuntu 服务器跑在虚拟机上,所以我使用虚拟机的 IP 地址来创建,你们可以绑定自己的域名,如果使用虚拟机,也可以像我一样使用虚拟机的 IP 地址。如果使用域名,记得修改域名 DNS 记录指向自己的服务器。
本教程使用 nano 编辑器创建 Nignx Server block 文件:注意:192.168.180.134 是我虚拟机的内网 IP 地址,请将此地址替换为你服务器的 IP 或域名
sudo nano /etc/nginx/sites-available/192.168.180.134(替换成你的域名)
我已经帮大家写好了路由代码,直接复制粘贴即可。注意:请将 server_name
后面的 IP 地址 替换成你服务器的 IP 或域名。此代码中,Nginx 会把接入服务器的请求重新定向至 Kibana 即 localhost:5601
,另外,这段代码也会读取 htpasswd.users
文件并进行身份验证。
server {
listen 80;
server_name 192.168.180.134(替换成你的域名);
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/htpasswd.users;
location / {
proxy_pass http://localhost:5601;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
完成后,保存并关闭。
接着,我们来创建 sites-enabled
目录来启动新配置。
sudo ln -s /etc/nginx/sites-available/(替换成你的域名) /etc/nginx/sites-enabled/(替换成你的域名)
然后我们来检查一下配置的语法是否有错。
sudo nginx -t
如果报错,请返回并再次检查。如果正确会看到以上成功信息。
让我们来重启 Nginx 服务:
sudo systemctl reload nginx
接着我们让服务器防火墙允许我们的 Nginx 通过:
sudo ufw allow 'Nginx Full'
更多关于 UFW 防火墙的设置,可参考我们之前写的文章《UFW 通用防火墙规则和命令》
激动人心的时刻即将到来,打开你的浏览器,访问刚刚设置的 IP 或域名:
http://(替换成你的域名)/status
我们也可以直接进入 Elastic Web 查看更多信息
至此,我们已经在服务器上成功安装和运行 ElasticSearch 及 Kibana ,下一章我们讲 Kibana 的使用。欢迎持续关注。
有任何问题,欢迎加我微信一起讨论。
同时顺便推荐一下,我们的「卡拉搜索」(Kalasearch.cn)一行代码即可快速部署站内搜索,毫秒级搜索体验,友好的可视化后台,拖拖鼠标即可实时设置搜索排序等。
少数派(sspai.com)正在使用我们的服务,欢迎前往少数派测试卡拉搜索实际效果。
附:少数派 CTO 李曦谈卡拉搜索 - 让「少数派」拥有接近谷歌级的站内搜索功能,付费文章购买量轻松提升16%