在 CentOS/RHEL 8 上安装 Beats

为了演示,我们只在 Elastic Stack 服务器上安装 Filebeat。
但是,我们可以使用相同的步骤安装 Beats 系列的任何其他成员。

Beats 也可在 Elastic yum 存储库中使用。
因此,使用 dnf 命令并将其安装在我们要通过 Elastic Stack 监控的 Linux 服务器上。

# dnf install -y filebeat

添加系统模块以检查本地系统日志。

# filebeat modules enable system
Enabled system

运行 filebeat 设置。
它将扫描本地系统并与 Kibana 仪表板连接。

# filebeat setup
Overwriting ILM policy is disabled. Set `setup.ilm.overwrite: true` for enabling.
Index setup finished.
Loading dashboards (Kibana must be running and reachable)
Loaded dashboards
Setting up ML using setup --machine-learning is going to be removed in 8.0.0. Please use the ML app instead.
See more: https://www.elastic.co/guide/en/machine-learning/current/index.html
Loaded machine learning job configurations
Loaded Ingest pipelines

启用并启动 Filebeat 服务。

# systemctl enable --now filebeat.service

单击 Elastic Observatory 菜单下的 Logs 链接。

在 CentOS/RHEL 8 上安装 APM 服务器

APM(应用程序性能监控)服务器是 Elastic Stack 的新成员。

APM Server 是一个可选组件,但建议我们将其与 Elastic Stack 一起安装,以监控应用服务器的性能并识别其中的瓶颈。

由于我们已经在 Elasticsearch 数据库中收集了所有系统日志,因此,安装 APM 服务器会在 Elastic Observatory 中添加一个分析前端,以查明性能瓶颈的实际原因。

APM 服务器也可在 Elastic yum 存储库中使用。
因此,使用 dnf 命令安装它。

# dnf install -y apm-server

启用并启动 APM 服务。

# systemctl enable --now apm-server.service
欢迎 on it road

在 CentOS/RHEL 8 上安装 Kibana

就像 Elasticsearch 一样,我们也可以从同一个 Elastic yum 存储库安装 Kibana 软件。
我们可以使用 dnf 命令,如下所示。

# dnf install -y kibana

Kibana 软件安装成功后,需要进行配置才能使用。

Kibana 配置文件位于 /etc/kibana/kibana.yml 。
我们可以找到并更新所需的设置,也可以执行以下脚本一次性配置 Kibana 设置。

# cat >> /etc/kibana/kibana.yml << EOF
> server.port: 5601
> server.host: "0.0.0.0"
> server.name: "elastic-stack.onitroad.com"
> elasticsearch.hosts: ["http://localhost:9200"]
> EOF

创建一个 Linux 用户来拥有 Kibana 软件文件和进程。

# useradd kibana

更改以下目录的所有权。

# chown -R kibana:kibana /usr/share/kibana/*
# chown -R kibana:kibana /var/lib/kibana/

启用并启动 Kibana 服务。

# systemctl enable --now kibana.service

Kibana 服务侦听默认端口 5601/tcp 。

要使 Kibana 服务可用于网络计算机,我们必须在 Linux 防火墙中允许传入流量进入此端口。

执行以下命令在 Linux 防火墙中允许 Kibana 服务端口。

# firewall-cmd --permanent --add-port=5601/tcp
success
# firewall-cmd --reload
success

在 Web 浏览器中打开 URL http://elastic-stack.onitroad.com:5601.

如果我们看到上述网页,则 Kibana 软件已安装并配置成功。

在 CentOS/RHEL 8 上安装 Java 开发工具包 (JDK)

Elasticsearch 软件是用 Java 编写的,因此它需要 Java 运行时环境才能执行。

我们可以在 CentOS 8 上安装 Oracle JDK,也可以在 Linux 服务器上使用开源替代 OpenJDK。

# dnf install -y java-11-openjdk

安装后检查Java版本。

# java -version
openjdk version "11.0.9" 2020-10-20 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.9+11-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.9+11-LTS, mixed mode, sharing)

在 CentOS/RHEL 8 上安装 Logstash

Logstash 也可以在 Elastic yum 存储库中使用,我们可以执行 dnf 命令将其安装在 Linux 服务器上。

# dnf install -y logstash

Logstash 可以使用默认配置运行,我们只需要使用 systemctl 命令启用和启动服务。

# systemctl enable --now logstash.service
在 CentOS/RHEL 8 上安装 Elastic Stack

什么是Elastic Stack?

Elastic Stack 是一组提供日志记录、搜索和分析功能的开源软件。

Elastic Stack(以前称为“ELK Stack”)是 Elasticsearch、Logstash 和 Kibana 的组合,它作为由 Elastic NV 开发和维护的产品或者服务提供。

Elastic Stack 使用 Logstash 向 Elasticsearch 提供输入流以进行存储和搜索,Kibana 访问数据以进行仪表板等可视化。
Elastic 使用 Beats 包将各种日志传送到 Logstash 或者 Elasticsearch。

什么是Elasticsearch?

Elasticsearch 是一个基于 Lucene 库的开源搜索引擎。
Elasticsearch 提供了一个分布式、支持多租户的全文搜索引擎,带有 HTTP Web 界面和无模式 JSON 文档。
Elasticsearch 是用 Java 开发的,遵循开放核心的商业模式,部分软件根据各种开源许可证(主要是 Apache 许可证)获得许可,而其他部分则属于专有(源代码可用)弹性许可证。
官方客户端支持 Java、.NET (C#)、PHP、Python、Apache Groovy、Ruby 和许多其他语言。
根据 DB-Engines 排名,Elasticsearch 是最受欢迎的企业搜索引擎,其次是同样基于 Lucene 的 Apache Solr。

什么是 Kibana?

Kibana 是一个用于 Elasticsearch 的开源数据可视化仪表板。
它在 Elasticsearch 集群上索引的内容之上提供可视化功能。
用户可以在大量数据的基础上创建条形图、折线图和散点图,或者饼图和地图。
Kibana 的源代码在 Apache 2.0 版软件许可下可用。

Kibana 还提供了一个演示工具,称为 Canvas ,允许用户创建幻灯片,直接从 Elasticsearch 中提取实时数据。

Kibana 与 Elasticsearch 和更大的 Elastic Stack 紧密集成,使其成为支持以下各项的理想选择:搜索、查看和可视化 Elasticsearch 中索引的数据,并通过创建条形图、饼图、表格、直方图和地图来分析数据。

什么是 Logstash?

Logstash 是一个收集、处理和转发事件和日志消息的工具。
收集是通过可配置的输入插件完成的,包括原始套接字/数据包通信、文件拖尾和几个消息总线客户端。
一旦输入插件收集了数据,它就可以被任意数量的过滤器处理,这些过滤器修改和注释事件数据。
最后 Logstash 将事件路由到输出插件,这些插件可以将事件转发到各种外部程序,包括 Elasticsearch 、本地文件和几个消息总线实现。

各种应用程序将日志事件发送到 Logstash,后者收集消息,将它们转换为 JSON 文档,并将它们存储在 Elasticsearch 集群中。

什么是Beats?

Beats 是一个免费且开放的平台,适用于单一用途的数据托运人。
由于它们的轻量级特性,它们可以有效地将数据从成百上千台机器和系统发送到 Logstash 或者 Elasticsearch 。

Beats 系列包括 Filebeat、Metricbeat、Packetbeat、Winlogbeat、Auditbeat、Heartbeat 和 Functionbeat。
每个 Beats 系列成员都执行有关我们要监控的服务器的各个方面的日志传送。

在 CentOS/RHEL 8 上安装 Elastic Yum 存储库

所有 Elastic Stack 软件都通过一个通用的 Elastic yum 存储库提供。
如果我们将这个 yum 存储库添加到 Linux 服务器中,我们可以非常轻松地安装完整的 Elastic Stack。

使用 rpm 命令导入 Elastic yum 存储库的 GPG 密钥。

# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

在 /etc/yum.repos.d 目录中创建一个 yum 存储库文件。

# vi /etc/yum.repos.d/elasticsearch.repo

并其中添加以下指令。

[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

如果我们只想安装 Elastic Stack 的开源组件,我们可以使用 baseurl=https://artifacts.elastic.co/packages/oss-7.x/yum。

为弹性存储库构建 yum 缓存。

# dnf makecache
CentOS Linux 8 - AppStream                      1.1 kB/s | 4.3 kB     00:03
CentOS Linux 8 - BaseOS                         1.6 kB/s | 3.9 kB     00:02
CentOS Linux 8 - Extras                         541  B/s | 1.5 kB     00:02
Elasticsearch repository for 7.x packages       262 kB/s |  19 MB     01:12
Metadata cache created.

Elastic yum 存储库已成功安装。

在 CentOS/RHEL 8 上安装 Elasticsearch

因为,我们已经设置了 Elastic yum 存储库。
因此,我们可以使用 dnf 命令安装 Elasticsearch 的最新稳定版本。

# dnf install -y elasticsearch

我们必须确保安装了相同版本的其他 Elastic Stack 成员以获得更好的兼容性。

如果我们在内存有限的非生产服务器上安装,那么我们应该减小 Java 内存池的大小,以便在内存有限的服务器上运行 Elasticsearch。
在 vim 文本编辑器中编辑 jvm.options 文件。

# vi /etc/elasticsearch/jvm.options

在此文件中找到以下设置。

-Xms1g
-Xmx1g

并使用以下值进行更新。

-Xms256m
-Xmx512m

启用并启动 Elasticsearch 服务。

# systemctl enable --now elasticsearch.service

验证Elasticsearch是否配置成功,可以执行以下命令。

# curl -X GET "localhost:9200/?pretty"
{
  "name" : "elastic-stack.onitroad.com",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "KdBYBVSVT8aZ7DqJCrQayQ",
  "version" : {
    "number" : "7.10.1",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "1c34507e66d7db1211f66f3513706fdf548736aa",
    "build_date" : "2020-12-05T01:00:33.671820Z",
    "build_snapshot" : false,
    "lucene_version" : "8.7.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Elasticsearch 已经安装并配置成功。

日期:2020-09-17 00:16:36 来源:oir作者:oir