简介
OpenSearch 是亚马逊发起的社区驱动项目,是 Elasticsearch 和 Kibana 的一个分支。它是一个完全开源的搜索引擎和分析套件,具有丰富的功能和创新的特性。OpenSearch 项目标重要组件是 OpenSearch(Elasticsearch 的一个分支)和 OpenSearch Dashboards(Kibana 的一个分支)。这两个组件都提供企业安全、警报、呆板学习、SQL、索引状态管理等功能。
本指南将向你展示如何在 Ubuntu 服务器上安装 OpenSearch 和 OpenSearch Dashboard。你还将使用 TLS 证书掩护 OpenSearch,并启用用户名和密码的身份验证
接下来,我将一步一步教大家如何进行安装和部署!!
准备工作
服务器准备
须要前提:
- 一个充满求知欲的大脑。
- 一台 Linux 服务器(保举腾讯云、阿里云或雨云等)。
我将以 雨云 为例,带大家创建一台自己的云服务器,以便学习本篇文章的内容。
注册链接: https://rainyun.ivwv.site
创建雨云服务器
以下步骤仅供参考,请根据实际需求选择配置。
- 点击 云产品 → 云服务器 → 立刻购买。
- 选择间隔你较近的区域,以包管低延迟。
- 按照自己需求选择配置,选择Ubuntu 22.04 版本,按照自己需求是否预装Docker。
- 最后按照提示进行购买。
- 购买后等候呆板部署完毕,点击刚刚创建好的服务器,进入管理面板,找到远程连接相干信息。
- 我们使用 PowerShell 进行 SSH 远程连接到服务器,Win+R 打开运行窗口,输入 powershell 后点击确定。
- 输入 ssh root@你的服务器IP 例如 ssh root@154.9.227.239 回车后,初次需要输入 yes,再次回车后即可登录服务器。
开始部署
添加 OpenSearch 存储库
起首,你需要将 OpenSearch 和 OpenSearch Dashboard 存储库添加到你的系统中。在这个例子中,我们将使用最新稳定版本的 OpenSearch。
起首,运行以下下令在你的 Ubuntu 系统上安装基本软件包。
- sudo apt install lsb-release ca-certificates curl gnupg2 -y
复制代码 使用以下下令下载 OpenSearch 存储库的 GPG 密钥。
- curl -o- https://artifacts.opensearch.org/publickeys/opensearch.pgp | sudo gpg --dearmor --batch --yes -o /usr/share/keyrings/opensearch-keyring
复制代码 使用以下下令将 OpenSearch 和 OpenSearch Dashboard 的存储库添加到你的系统中。在这个例子中,你将使用 OpenSearch 2.x 稳定版本。
- echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main" | sudo tee /etc/apt/sources.list.d/opensearch-2.x.list
- echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/2.x/apt stable main" | sudo tee /etc/apt/sources.list.d/opensearch-dashboards-2.x.list
复制代码 最后,运行 apt 下令来更新你的软件包索引并检索新的 OpenSearch 软件包信息。
安装 OpenSearch 和 OpenSearch Dashboard
添加 OpenSearch 存储库后,你将通过 APT 软件包管理器安装 OpenSearch 和 OpenSearch Dashboard。然后,你将通过 systemctl 实用步伐启动这两个服务。
在安装 OpenSearch 之前,运行以下下令为 OpenSearch 安装生成一个随秘密码。请确保复制输出,并包罗大写字母、数字和符号。
- sudo openssl rand -hex 16
复制代码 现在运行以下下令来安装 opensearch 和 opensearch-dashboard 软件包。请确保更改 OPENSEARCH_INITIAL_ADMIN_PASSWORD,并键入 Y 以确认安装。
- sudo env OPENSEARCH_INITIAL_ADMIN_PASSWORD=B07e_af7e9f8fe12e@85ab797ddc1f174D apt-get install opensearch opensearch-dashboard
复制代码 安装完成后,运行 systemctl 下令来重新加载 systemd 管理器并应用新的服务文件。
- sudo systemctl daemon-reload
复制代码 你现在可以使用以下下令启动、启用和验证 OpenSearch。
- sudo systemctl enable --now opensearch
- sudo systemctl status opensearch
复制代码 你可以在下面看到 OpenSearch 正在运行。
最后,你现在可以使用以下下令启动、启用和验证 OpenSearch Dashboard 服务。
- sudo systemctl enable --now opensearch-dashboards
- sudo systemctl status opensearch-dashboards
复制代码 在下面的输出中,你可以看到 opensearch-dashboards 服务正在运行。
配置 OpenSearch
安装 OpenSearch 后,你将通过 /etc/opensearch/opensearch.yml 文件配置安装。你还需要根据需要增加 OpenSearch 的默认最大 JVM(Java 虚拟机)大小。
使用 nano 编辑器打开默认的 OpenSearch 配置 /etc/opensearch/opensearch.yml。
- sudo nano /etc/opensearch/opensearch.yml
复制代码 更改以下 OpenSearch 配置:
- 将 network.host 选项更改为你的本地 IP 地址
- 添加 discovery.type 为 single-node,以便在单节点模式下运行 OpenSearch
- 将 plugins.security.disabled 设置为 false
- # Bind OpenSearch to the correct network interface. Use 0.0.0.0
- # to include all available interfaces or specify an IP address
- # assigned to a specific interface.
- network.host: 192.168.10.60
- # Unless you have already configured a cluster, you should set
- # discovery.type to single-node, or the bootstrap checks will
- # fail when you try to start the service.
- discovery.type: single-node
- # If you previously disabled the security plugin in opensearch.yml,
- # be sure to re-enable it. Otherwise you can skip this setting.
- plugins.security.disabled: false
复制代码 生存文件并退出编辑器。
接下来,使用 nano 编辑器打开 JVM(Java 虚拟机)配置 /etc/opensearch/jvm.options。
- sudo nano /etc/opensearch/jvm.options
复制代码 根据需要增加 OpenSearch 的默认最大内存。默认值是 1GB。
生存并退出文件。
最后,运行以下 systemctl 下令来重启 opensearch 并应用你的更改。这样,OpenSearch 将在单节点模式下在本地 IP 地址上运行。
- sudo systemctl restart opensearch
复制代码 使用 TLS/SSL 证书掩护 OpenSearch
现在你已经配置了 OpenSearch,你需要通过 SSL/TLS 证书设置 OpenSearch 安全性。在本节中,你将禁用演示证书,然后生成根证书、管理员证书和主机/服务器证书。
在生成 SSL 证书之前,使用以下下令从 OpenSearch 中删除演示证书。
- rm -f /opt/opensearch/{esnode-key.pem,esnode.pem,kirk-key.pem,kirk.pem,root-ca.pem}
复制代码 使用 nano 编辑器编辑 OpenSearch 配置 /etc/opensearch/opensearch.yml。
- sudo nano /etc/opensearch/opensearch.yml
复制代码 注释掉 OpenSearch 的 demo 安全配置,如下所示。
生存文件并退出编辑器。
现在创建一个新目次 /etc/opensearch/certs 并进入该目次。此目次将用于存储 OpenSearch 的新证书。
- mkdir -p /etc/opensearch/certs; cd /etc/opensearch/certs
复制代码 生成根证书
起首,运行以下下令生成根证书,该证书将用于签订你的其他证书,如服务器和客户端证书。
- openssl genrsa -out root-ca-key.pem 2048
复制代码 现在运行以下下令从你的私钥生成根证书。请务必使用你的服务器详细信息更改 -subj 选项。
- openssl req -new -x509 -sha256 -key root-ca-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=ROOT" -out root-ca.pem -days 730
复制代码 生成管理员证书
使用以下下令为你的管理员证书创建一个新的私钥。
- openssl genrsa -out admin-key-temp.pem 2048
复制代码 使用以下下令将你的管理员密钥转换为 PKCS8 格式。
- openssl pkcs8 -inform PEM -outform PEM -in admin-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out admin-key.pem
复制代码 接下来,使用以下下令为管理员证书创建一个新的署名哀求证书 (CSR)。
- openssl req -new -key admin-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=A" -out admin.csr
复制代码 现在运行以下下令使用根证书签订你新的管理员哀求证书 (CSR)。
- openssl x509 -req -in admin.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out admin.pem -days 730
复制代码
生成主机或服务器证书
生成 OpenSearch 主机/服务器的私钥,并将证书转换为 PKCS8 格式。
- openssl genrsa -out ubuntu24-key-temp.pem 2048
- openssl pkcs8 -inform PEM -outform PEM -in ubuntu24-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out ubuntu24-key.PEM
复制代码 现在运行以下下令为主机生成证书哀求 (CSR)。CN 或公用名称应与你的主机服务器的 fqdn 相匹配,而不是主机名。在此示例中,服务器的 fqdn 为 ubuntu24.howtoforge.local。
- openssl req -new -key ubuntu24-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=ubuntu24.howtoforge.local" -out ubuntu24.csr
复制代码 接下来,运行以下下令来创建一个包罗你的主机/服务器 DNS 的新扩展文件。
- echo 'subjectAltName=DNS:ubuntu24.howtoforge.local' > ubuntu24.ext
复制代码 最后,运行以下下令,使用根证书签订主机/服务器证书,并包罗你之前创建的扩展文件。
- openssl x509 -req -in ubuntu24.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out ubuntu24.pem -days 730 -extfile ubuntu24.ext
复制代码
设置证书
删除管理员和主机的临时证书、CSR(证书哀求)以及扩展文件,如下所示。
现在使用以下下令将 root-ca.pem 证书转换为 root-ca.crt 文件。
- openssl x509 -outform der -in root-ca.pem -out root-ca.crt
复制代码 之后,将 root-ca.crt 证书复制到 /usr/local/share/ca-certificates 目次,并将你的根证书加载到服务器。
- sudo cp root-ca.crt /usr/local/share/ca-certificates
- sudo update-ca-certificates
复制代码
最后,运行以下下令来设置证书文件和目次的正确权限和全部权。
- sudo chown -R opensearch:opensearch /etc/opensearch/certs
- sudo chmod 0700 /etc/opensearch/certs
复制代码- sudo chmod 0600 /etc/opensearch/certs/*.pem
- sudo chmod 0600 /etc/opensearch/certs/*.crt
复制代码 将证书添加到 OpenSearch
为 OpenSearch 生成 TLS 证书后,你需要在 opensearch.yml 文件中添加新配置。在这种情况下,你将通过 bash 脚本向 opensearch.yml 添加新配置。
在将证书添加到你的 OpenSearch 服务器之前,请运行以下下令备份 opensearch.yml 文件并设置你的服务器 fqdn。
- sudo cp /etc/opensearch/opensearch.yml /etc/opensearch/opensearch.yml.orig
- sudo hostnamectl set-hostname ubuntu24.howtoforge.local
复制代码 现在使用 nano 编辑器创建一个新文件 add-cert.sh。
将以下配置插入到文件中。这样,你将向 OpenSearch 配置文件 opensearch.yml 添加新配置
- #! /bin/bash
- # Before running this script, make sure to replace the CN in the
- # node's distinguished name with a real DNS A record.
- echo "plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/certs/ubuntu24.pem" | sudo tee -a /etc/opensearch/opensearch.yml
- echo "plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/certs/ubuntu24-key.pem" | sudo tee -a /etc/opensearch/opensearch.yml
- echo "plugins.security.ssl.transport.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem" | sudo tee -a /etc/opensearch/opensearch.yml
- echo "plugins.security.ssl.http.enabled: true" | sudo tee -a /etc/opensearch/opensearch.yml
- echo "plugins.security.ssl.http.pemcert_filepath: /etc/opensearch/certs/ubuntu24.pem" | sudo tee -a /etc/opensearch/opensearch.yml
- echo "plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/certs/ubuntu24-key.pem" | sudo tee -a /etc/opensearch/opensearch.yml
- echo "plugins.security.ssl.http.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem" | sudo tee -a /etc/opensearch/opensearch.yml
- echo "plugins.security.allow_default_init_securityindex: true" | sudo tee -a /etc/opensearch/opensearch.yml
- echo "plugins.security.authcz.admin_dn:" | sudo tee -a /etc/opensearch/opensearch.yml
- echo " - 'CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'" | sudo tee -a /etc/opensearch/opensearch.yml
- echo "plugins.security.nodes_dn:" | sudo tee -a /etc/opensearch/opensearch.yml
- echo " - 'CN=ubuntu24.hwdomain.lan,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'" | sudo tee -a /etc/opensearch/opensearch.yml
- echo "plugins.security.audit.type: internal_opensearch" | sudo tee -a /etc/opensearch/opensearch.yml
- echo "plugins.security.enable_snapshot_restore_privilege: true" | sudo tee -a /etc/opensearch/opensearch.yml
- echo "plugins.security.check_snapshot_restore_write_privileges: true" | sudo tee -a /etc/opensearch/opensearch.yml
- echo "plugins.security.restapi.roles_enabled: [\"all_access\", \"security_rest_api_access\"]" | sudo tee -a /etc/opensearch/opensearch.yml
复制代码 生存文件并在完成退却出编辑器。
现在使 add-cert.sh 文件可执行并使用以下下令执行它。新配置将添加到 opensearch.yml 文件中。
- chmod +x add-cert.sh
- ./add-cert.sh
复制代码
使用密码身份验证掩护 OpenSearch
此时,你已经使用 SSL/TLS 证书配置了 OpenSearch,在下一步中,你将为 OpenSearch 设置密码身份验证。你将设置两个用户,这两个用户将用于登录 OpenSearch 并集成到 OpenSearch Dashboard 中。
转到 /usr/share/opensearch/plugins/opensearch-security/tools 目次并执行 hash.sh 脚本以生成 OpenSearch 的新密码。执行 hash.sh 两次,为 OpenSearch 和 OpenSearch Dashboard 生成两个密码。此外,请务必将生成的密码复制到你的条记中。
- cd /usr/share/opensearch/plugins/opensearch-security/tools
- OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./hash.sh
复制代码 现在使用以下 nano 编辑器打开文件 /etc/opensearch/opensearch-security/internal_users.yml。
- sudo nano /etc/opensearch/opensearch-security/internal_users.yml
复制代码 使用你之前的密码更改用户 admin 和 kibanaserver 的哈希密码。admin 用户将用于登录 OpenSearch Dashboard,kibanaserver 用户将用于连接 OpenSearch 和 OpenSearch Dashboard。
- admin:
- hash: "$2y$12$zPtsgbrpfmInPRuDEKvDKetuzhUzsQWyCpE9foT1uun5RTMW51p9K"
- reserved: true
- backend_roles:
- - "admin"
- description: "Admin user"
- kibanaserver:
- hash: "$2y$12$zPtsgbrpfmInPRuDEKvDKetuzhUzsQWyCpE9foT1uun5RTMW51p9K"
- reserved: true
- description: "Demo OpenSearch Dashboards user"
复制代码 生存文件并在完成退却出编辑器。
现在运行以下下令来重启 opensearch 服务并应用你的更改。
- sudo systemctl restart opensearch
复制代码 OpenSearch 重启后,运行以下下令将你的 SSL 证书应用到 OpenSearch。
- cd /usr/share/opensearch/plugins/opensearch-security/tools
- OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./securityadmin.sh -h 192.168.10.60 -p 9200 -cd /etc/opensearch/opensearch-security/ -cacert /etc/opensearch/certs/root-ca.pem -cert /etc/opensearch/certs/admin.pem -key /etc/opensearch/certs/admin-key.pem -icl -nhnv
复制代码 如果顺遂,你将看到类似这样的输出:
最后,运行以下 curl 下令来验证到 OpenSearch 服务器的身份验证。
- curl https://192.168.10.60:9200 -u admin:password -k
- curl https://node-rock1:9200 -u kibanaserver:kibanapass -k
复制代码 如果成功,你将可以大概通过 HTTPS 协议使用用户名和密码访问 OpenSearch。
配置 OpenSearch Dashboard
配置密码身份验证后,你将通过编辑文件 opensearch-dashboard,yml 来设置 OpenSearch Dashboard。
使用 nano 编辑器打开 OpenSearch Dashboard 的配置 /etc/opensearch-dashboards/opensearch-dashboard.yml。
- sudo nano /etc/opensearch-dashboards/opensearch-dashboard.yml
复制代码 将你的本地 IP 地址输入到 server.host 选项中,如下所示:
- server.host: "192.168.10.60"
复制代码 请务必使用你的信息更改 OpenSearch 主机、用户名和密码。
- opensearch.hosts: ["https://192.168.10.60:9200"]
- opensearch.ssl.verificationMode: none
- opensearch.username: kibanaserver
- opensearch.password: kibanapass
复制代码 生存文件并退出编辑器。
现在运行以下 systemctl 下令来重启 OpenSearch Dashboard 并应用你的更改。这样,OpenSearch Dashboard 应该连接到 OpenSearch。
- sudo systemctl restart opensearch
- -dashboards
复制代码 接下来,打开你的 Web 欣赏器并访问 http://192.168.10.60:5601。如果你的安装成功,你将看到 OpenSearch Dashboard 登录页面。
输入你的管理员用户和密码,然后单击“Log in”。
登录后,选择“Add data”来添加新数据或单击“Explore on my own”选项。
为了确保 OpenSearch 和 OpenSearch Dashboard 之间的连接,你需要从仪表板检查 OpenSearch 状态。
在“Management”部门,单击“Dev Tools”。
在控制台部门中,输入 GET / 并单击播放按钮。如果你与 OpenSearch 和 OpenSearch Dashboard 的连接成功,你将看到以下页面。
结论
你已经在 Ubuntu 服务器上安装了 OpenSearch 和 OpenSearch Dashboard。OpenSearch 在单节点模式下运行,安装通过 HTTPS 进行了掩护。最后,你还配置了 OpenSearch 的身份验证,并将 OpenSearch 与 OpenSearch Dashboard 集成。
相干链接
雨云 - 新一代云服务提供商: https://rainyun.ivwv.site
我的博客:https://blog.ivwv.site
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |