根据官网使用apt-get/APT来安装,自动解决一些依赖问题。这里需要使用root或者具有sudo权限的用户登录,和别的文章通过本地文件安装不能使用root账号不同。但是建议使用具有sudo权限的账户,不要用root,我这里使用就是sudo权限的账户。 如果是公司提供的镜像有做过一些相关的安全加固,可能导致安装失败,请额外注意改用原版系统。 安装程序至少需要有sudo权限,否则无法安装

一、下载并安装公共签名密钥:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg

定义好/etc/apt/sources.list.d/elastic-8.x.list到存储库路径,以提供安装

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

二、在apt存储库里面安装ES

Elasticsearch是一个Java应用程序,因此先安装Java

sudo apt install default-jdk
y

查看版本,该命令将打印Java版本 java -version 先保证安装好apt-transport-https

sudo apt-get install apt-transport-https

安装elasticsearch

sudo apt-get update && sudo apt-get install elasticsearch

安装完成后会自动生成一个密码(The generated password )和一些命令,如下,其中的密码要保存是es的超管elastic的默认密码:

--------------------------- Security autoconfiguration information ------------------------------

Authentication and authorization are enabled.
TLS for the transport and HTTP layers is enabled and configured.

The generated password for the elastic built-in superuser is : 0bu********7HoHx1

If this node should join an existing cluster, you can reconfigure this with
'/usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token <token-here>'
after creating an enrollment token on your existing cluster.

You can complete the following actions at any time:

Reset the password of the elastic built-in superuser with 
'/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic'.

Generate an enrollment token for Kibana instances with 
 '/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana'.

Generate an enrollment token for Elasticsearch nodes with 
'/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node'.

-------------------------------------------------------------------------------------------------
### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd
 sudo systemctl daemon-reload
 sudo systemctl enable elasticsearch.service
### You can start elasticsearch service by executing
 sudo systemctl start elasticsearch.service

要将 Elasticsearch 配置为在系统启动时自动启动,请运行以下命令:

sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service

可以按如下方式启动和停止 Elasticsearch:

sudo systemctl start elasticsearch.service
sudo systemctl stop elasticsearch.service

三、检查es是否正常运行

您可以通过向端口9200发送 HTTP 请求来测试您的 Elasticsearch 节点是否正在运行 localhost:

curl -X GET "localhost:9200/"

也可以通过命令 service elasticsearch status 查看状态 使用 sudo journalctl -u elasticsearch 查看es的运行日志

四、安装kibana

Kibana 是为 Elasticsearch设计的开源分析和可视化平台,安装命令:

sudo apt-get install kibana

安装成功后会提示,Created Kibana keystore in /etc/kibana/kibana.keystore 修改配置

sudo vi /etc/kibana/kibana.yml

取消注释server.host 设置为 0.0.0.0 image.pngserver.host "0.0.0.0" 如果要设置为中文,需要添加 i18n.locale: "zh-CN"

启动kibana

sudo systemctl start kibana

将 kibana 配置为在系统启动时自动启动,请运行以下命令:

sudo systemctl enable kibana.service 

检查是否运行:

sudo  systemctl status kibana.service 

五、配置kibana集成到es

通过浏览器配置kibana: 输入http://IP:5601

在安装es的机器上输入下面命令获取到key,之后输入到kibana

sudo /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana

image.png 会弹出要kibana的验证码, image.png 到kibana的服务器上输入

sudo journalctl -u kibana -f

最后一行就有验证码。 image.png 输入到验证码,等待验证。 验证通过后悔进入欢迎界面,这里输入es默认的超管账号和自动生成的密码,elastic :password image.png 到这里,es和kibana能初步运行起来,实际使用中额外的配置,需要自己进一步摸索。

六、修改ES的配置项

Elasticsearch数据存储在/var/lib/elasticsearch目录中 配置文件位于/etc/elasticsearch/elasticsearch.yml中 Java启动选项可以在/etc/default/elasticsearch文件中进行配置。 jvm配置在/etc/elasticsearch/jvm.options 默认情况下,Elasticsearch配置为仅在本地主机上监听。 / 编辑Elasticsearch配置并允许Elasticsearch监听外部连接(必须)

sudo vim /etc/elasticsearch/elasticsearch.yml

搜索包含network.host的行,取消注释,然后将值更改为0.0.0.0 network.host 0.0.0.0

设置集群的显示名称(可选): node.name: es-node1 修改data数据保存路径(可选) 修改日志数据保存路径(可选)

# ----------------------------------- Paths ------------------------------------
#
# Path to directory where to store the data (separate multiple locations by comma):
#
path.data: /usr/local/elasticsearch-7.4.2/data
#
# Path to log files:
#
path.logs: /usr/local/elasticsearch-7.4.2/logs

9200端口:Http协议,用于外部通讯(可选) 9300端口:Tcp协议,ES集群之间的通讯(可选)

重新启动Elasticsearch服务以使更改生效:sudo systemctl restart elasticsearch

jvm.options用于配置 Elasticsearch JVM 设置,可以根据实际情况修改(可选) jvm参数设置

vi /etc/elasticsearch/jvm.options

-Xms1g 修改为 ===> -Xms4g

-Xmx1g 修改为 ===> -Xmx4g

修改配置sysctl.conf(可选)

vi /etc/sysctl.conf

添加如下内容:

vm.max_map_count=655360

并执行命令:

sysctl -p

修改系统默认的限制大小(可选)

 vi /etc/security/limits.conf

设置如下

* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

第一行表示用户,* 表示所有用户 soft nproc 单个用户可用的最大进程数量(超过会警告); hard nproc 单个用户可用的最大进程数量(超过会报错); soft nofile 可打开的文件描述符的最大数(超过会警告); hard nofile 可打开的文件描述符的最大数(超过会报错);

apt安装的版本默认启用了https,所以需要在收集日志的客户端上修改配置,例如filebeat和fluentd, 这里可以参考我另外的文章:https://blog.51cto.com/xiaoyuanzheng/6122392