如何在Ubuntu 18.04上安装Elasticsearch,Logstash,Kibana,Filebeat

本教程详细介绍了如何在Ubuntu 18.04服务器上安装和配置Elastic Stack,包括Elasticsearch、Logstash、Kibana和Filebeat。Elastic Stack是用于集中日志记录、搜索和分析的开源工具。首先,你需要安装Java和Nginx。然后,逐步安装Elasticsearch、Kibana、Logstash和Filebeat,配置它们以收集和可视化系统日志。Nginx作为Kibana的反向代理,允许外部访问。完成安装后,你可以在Kibana中查看和探索日志数据。

此过程是亲自实践过的,一步步下来可成功安装,如有问题可以联系我。

第 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

第 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来实现此目的,它应该已经安装在您的服务器上。

首先,使用openssl命令创建一个管理Kibana用户,您将使用该用户访问Kibana Web界面。 例如,我们将此帐户kibanaadmin ,但为了确保更高的安全性,我们建议您为用户选择难以猜测的非标准名称。

以下命令将创建管理Kibana用户和密码,并将它们存储在htpasswd.users文件中。 您将配置Ng

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值