此过程是亲自实践过的,一步步下来可成功安装,如有问题可以联系我。
目录
第 1 部分 简介
Elastic Stack(以前称为ELK Stack )是由Elastic生成的开源软件集合,允许您以任何格式搜索,分析和可视化从任何源生成的日志,这种做法称为集中式日志记录 。 在尝试识别服务器或应用程序的问题时,集中日志记录非常有用,因为它允许您在一个位置搜索所有日志。 它也很有用,因为它允许您通过在特定时间范围内关联其日志来识别跨多个服务器的问题。
我们将在Ubuntu 18.04服务器上重新安装Elastic Stack。您将学习如何安装Elastic Stack的所有组件(包括Filebeat,用于转发和集中日志和文件的Beat),并配置它们以收集和可视化系统日志。我们将在单个服务器上安装所有组件,我们将其称为Elastic Stack Server。
Elastic Stack有四个主要组件:
组件 | 说明 |
---|---|
Elasticsearch | 一个分布式RESTful搜索引擎,用于存储所有收集的数据 |
Logstash | Elastic Stack的数据处理组件,用于将传入数据发送到Elasticsearch |
Kibana | 用于搜索和可视化日志的Web界面 |
Beats | 轻量级,单一用途的数据发布者,可以将数百或数千台计算机中的数据发送到Logstash或Elasticsearch |
在本文中,您将在Ubuntu 18.04服务器上安装Elastic Stack 。 您将学习如何安装Elastic Stack的所有组件 - 包括Filebeat ,用于转发和集中日志和文件的Beat - 并配置它们以收集和可视化系统日志。 此外,由于Kibana通常只在localhost上可用,我们将使用Nginx代理它,以便可以通过Web浏览器访问它。 我们将在单个服务器上安装所有这些组件,我们将其称为Elastic Stack服务器 。
注意 :安装Elastic Stack时,必须在整个中使用相同的版本。在撰写本文时,它们是Elasticsearch 6.8.6,Kibana 6.8.6,Logstash 6.8.6和Filebeat 6.8.6。
第 2 部分 先决条件
按照Ubuntu 18.04的初始服务器设置指南设置Ubuntu 18.04服务器,包括具有sudo权限的非root用户和使用ufw配置的防火墙。 Elastic Stack服务器所需的CPU,RAM和存储量取决于您要收集的日志量。 在本教程中,我们将使用具有以下Elastic Stack服务器规范的VPS:
操作系统 | Ubuntu 18.04 |
内存 | 4GB |
CPU | 2 |
软件 | Java,Nginx |
- Java安装参考 | 如何在Ubuntu
18.04上安装Java -> Elasticsearch和Logstash所需 - Nginx安装参考 | 如何在Ubuntu
18.04上安装配置Nginx -> 后面需要配置为Kibana的反向代理
第 3 部分 安装配置过程
为隐私考虑,文中用xx.xx.xx.xx 替代了安装Elastic Stack服务器的IP
第 1 步 - 安装和配置Elasticsearch
Ubuntu的默认包存储库中不提供Elastic Stack组件。 但是,在添加Elastic的包源列表后,它们可以与APT一起安装。
所有Elastic Stack的软件包都使用Elasticsearch签名密钥进行签名,以保护您的系统免受软件包欺骗。 使用密钥进行身份验证的软件包将被包管理器视为信任。 在此步骤中,您将导入Elasticsearch公共GPG密钥并添加Elastic包源列表以安装Elasticsearch。
首先,运行以下命令将Elasticsearch公共GPG密钥导入APT:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
接下来,将Elastic源列表添加到sources.list.d目录,其中APT将查找新的源:
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
接下来,更新您的包列表,以便APT读取新的Elastic源:
sudo apt update
然后使用以下命令安装Elasticsearch:
sudo apt install elasticsearch
完成Elasticsearch安装后,使用首选文本编辑器编辑Elasticsearch的主配置文件elasticsearch.yml 。 在这里,我们将使用nano :
sudo nano /etc/elasticsearch/elasticsearch.yml
注意: Elasticsearch的配置文件采用YAML格式,这意味着缩进非常重要! 编辑此文件时,请确保不添加任何额外的空格。
Elasticsearch监听来自端口9200上各处的流量。 您需要限制对Elasticsearch实例的外部访问,以防止外人通过REST API读取您的数据或关闭您的Elasticsearch集群。 找到指定network.host的行,取消注释,并将其值替换为xx.xx.xx.xx ,如下所示:
/etc/elasticsearch/elasticsearch.yml
. . .
network.host: xx.xx.xx.xx
. . .
按CTRL+X保存并关闭elasticsearch.yml ,接着是Y ,然后如果你使用的是nano ,则ENTER 。 然后,使用systemctl启动Elasticsearch服务:
sudo systemctl start elasticsearch
接下来,运行以下命令以使Elasticsearch在每次服务器启动时启动:
sudo systemctl enable elasticsearch
您可以通过发送HTTP请求来测试您的Elasticsearch服务是否正在运行:
curl -X GET "xx.xx.xx.xx:9200"
您将看到一个响应,显示有关本地节点的一些基本信息,类似于:
{
"name" : "8eSrAWi",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "33qILJRuTKyTh8rDMlvS7g",
"version" : {
"number" : "6.8.6",
"build_flavor" : "default",
"build_type" : "deb",
"build_hash" : "3d9f765",
"build_date" : "2019-12-13T17:11:52.013738Z",
"build_snapshot" : false,
"lucene_version" : "7.7.2",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
现在Elasticsearch已经启动并运行,让我们安装Kibana,它是Elastic Stack的下一个组件。
第 2 步 - 安装和配置Kibana仪表板
根据官方文档 ,您应该在安装Elasticsearch之后安装Kibana。 按此顺序安装可确保每个产品所依赖的组件正确到位。
因为您已经在上一步中添加了Elastic包源,所以您可以使用apt安装Elastic Stack的其余组件:
sudo apt install kibana
更改kibana.yml,确保其他主机能够连接kibana主机
sudo nano /etc/kibana/kibana.yml
更改成如下所示
server.port: 5601
server.host: "xx.xx.xx.xx"
elasticsearch.hosts: ["http://xx.xx.xx.xx:9200"]
查看更改的kibana.yml配置文件内容
$ grep ^[a-Z] /etc/kibana/kibana.yml
更改后的配置文件内容
server.port: 5601
server.host: "xx.xx.xx.xx"
elasticsearch.hosts: ["http://xx.xx.xx.xx:9200"]
然后启用并启动Kibana服务:
sudo systemctl enable kibana
sudo systemctl start kibana
由于Kibana配置为仅监听xx.xx.xx.xx ,因此我们必须设置反向代理以允许对其进行外部访问。 我们将使用Nginx来实现此目的,它应该已经安装在您的服务器上。
首先,使