如何在Ubuntu 18.04/20.04上安装ELK软件栈?

2021年11月20日19:15:19 发表评论 1,101 次浏览

Ubuntu ELK软件栈安装教程介绍

ELK 栈是一组用于检索和管理日志文件的应用程序。

它是三个开源工具ElasticsearchKibanaLogstash 的集合。栈可以使用Beats进一步升级,Beats是一个轻量级插件,用于聚合来自不同数据流的数据。

Ubuntu如何安装ELK软件栈?在本教程中,学习如何在 Ubuntu 18.04 / 20.04 上安装 ELK 软件栈。

先决条件

  • 运行 Ubuntu 20.04 或 18.04 的 Linux 系统
  • 访问终端窗口/命令行(搜索>终端
  • 具有sudo 或 root 权限的用户帐户
  • Java 版本 8 或 11(Logstash 需要)

第 1 步:安装依赖项

安装 Java

ELK 栈需要安装 Java 8。某些组件与 Java 9 兼容,但与 Logstash 不兼容。

注意:要检查你的 Java 版本,请输入以下内容:

java -version

你正在寻找的输出是1.8.x_xxx这将表明已安装 Java 8。

如果你已经安装了 Java 8,请跳至安装 Nginx。

1. 如果你没有安装 Java 8,请打开终端窗口并输入以下内容进行安装:

sudo apt-get install openjdk-8-jdk

2. 如果出现提示,请键入y并按Enter 以完成该过程。

如何在Ubuntu 18.04/20.04上安装ELK软件栈?

安装 Nginx

Nginx 用作 Web 服务器和代理服务器。它用于配置对 Kibana 仪表板的密码控制访问。

1. 通过输入以下内容安装 Nginx:

sudo apt-get install nginx

2. 如果出现提示,请键入y并按Enter以完成该过程。

如何在Ubuntu 18.04/20.04上安装ELK软件栈?

注意:有关其他教程,请按照我们在 Ubuntu上安装 Nginx和为 Kibana 设置 Nginx 反向代理的指南

第 2 步:添加弹性存储库

如何在Ubuntu上安装ELK软件栈?弹性存储库允许访问 ELK 栈中的所有开源软件。要添加它们,首先要导入 GPG 密钥。

1. 在终端窗口中输入以下内容以导入 Elastic 的 PGP 密钥:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

2. 系统应响应OK,如下图所示。

如何在Ubuntu 18.04/20.04上安装ELK软件栈?


3. 接下来,安装apt-transport-https包:

sudo apt-get install apt-transport-https

4. 将 Elastic 存储库添加到你系统的存储库列表中:

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee –a /etc/apt/sources.list.d/elastic-7.x.list
如何在Ubuntu 18.04/20.04上安装ELK软件栈?

第 3 步:安装 Elasticsearch

1. 在安装 Elasticsearch 之前,输入以下命令更新存储库:

sudo apt-get update

2. 使用以下命令安装 Elasticsearch:

sudo apt-get install elasticsearch
如何在Ubuntu 18.04/20.04上安装ELK软件栈?

配置 Elasticsearch

1. Ubuntu如何安装ELK软件栈?Elasticsearch 使用一个配置文件来控制它的行为方式。打开配置文件以在你选择的文本编辑器中进行编辑。我们将使用纳米:

sudo nano /etc/elasticsearch/elasticsearch.yml

2. 你应该会看到一个包含多个不同条目和描述的配置文件。向下滚动以找到以下条目:

#network.host: 192.168.0.1
#http.port: 9200

3.取消注释通过删除行散列#符号在两个行的开头和替换192.168.0.1localhost

它应该是:

network.host: localhost
http.port: 9200
如何在Ubuntu 18.04/20.04上安装ELK软件栈?

4. 就在下面,找到发现部分。我们再添加一行,因为我们正在配置一个单节点集群:

discovery.type: single-node

有关更多详细信息,请参见下图。

如何在Ubuntu 18.04/20.04上安装ELK软件栈?

5. 默认情况下,JVM 堆大小设置为 1GB。我们建议将其设置为不超过总内存大小的一半。打开以下文件进行编辑:

sudo nano /etc/elasticsearch/jvm.options

6. 找出以-Xms和开头的行-Xmx。在下面的示例中,最大 ( -Xmx) 和最小 ( -Xms) 大小设置为 512MB。

如何在Ubuntu 18.04/20.04上安装ELK软件栈?

Ubuntu ELK软件栈安装教程:启动 Elasticsearch

1. 通过运行以下systemctl命令启动 Elasticsearch 服务:

sudo systemctl start elasticsearch.service

系统启动服务可能需要一些时间。成功的话不会有任何输出。

2. 启用 Elasticsearch 以在启动时启动:

sudo systemctl enable elasticsearch.service
如何在Ubuntu 18.04/20.04上安装ELK软件栈?

测试 Elasticsearch

使用该curl命令来测试你的配置。输入以下内容:

curl -X GET "localhost:9200"

应该显示你的系统名称,以及集群名称的elasticsearch。这表明 Elasticsearch 可以正常工作并且正在侦听端口 9200

如何在Ubuntu 18.04/20.04上安装ELK软件栈?

第 4 步:安装 Kibana

建议接下来安装 Kibana。Kibana 是一个图形用户界面,用于解析和解释收集的日志文件。

1. 运行以下命令安装 Kibana:

sudo apt-get install kibana

2. 让过程完成。完成后,是时候配置 Kibana 了。

Ubuntu如何安装ELK软件栈:配置 Kibana

1、接下来打开kibana.yml 配置文件进行编辑:

sudo nano /etc/kibana/kibana.yml

2. 删除# 以下行开头的标志以激活它们:

#server.port: 5601
#server.host: "your-hostname"
#elasticsearch.hosts: ["http://localhost:9200"]

上述行应如下所示:

server.port: 5601
server.host: "localhost"
elasticsearch.hosts: ["http://localhost:9200"]

3. 保存文件 (Ctrl+ o) 并退出 (Ctrl+ )。 x

如何在Ubuntu 18.04/20.04上安装ELK软件栈?

注意:此配置允许来自配置 Elasticstack 的同一系统的流量。你可以将该server.host值设置为远程服务器的地址。

启动并启用 Kibana

1. 启动 Kibana 服务:

sudo systemctl start kibana

如果服务启动成功,则没有输出。

2. 接下来,将 Kibana 配置为在启动时启动:

sudo systemctl enable kibana
如何在Ubuntu 18.04/20.04上安装ELK软件栈?

允许端口 5601 上的流量

如果你的 Ubuntu 系统上启用了UFW 防火墙,你需要允许端口 5601上的流量 访问 Kibana 仪表板。

在终端窗口中,运行以下命令:

sudo ufw allow 5601/tcp

应显示以下输出:

如何在Ubuntu 18.04/20.04上安装ELK软件栈?

Ubuntu ELK软件栈安装教程:测试 Kibana

要访问 Kibana,请打开 Web 浏览器并浏览到以下地址:

http://localhost:5601

Kibana 仪表板加载。

如何在Ubuntu 18.04/20.04上安装ELK软件栈?

如果你收到 “Kibana 服务器尚未准备好” 错误,请检查 Elasticsearch 和 Kibana 服务是否处于活动状态。

注意:查看我们深入的Kibana 教程,了解可视化和数据查询所需的一切。

第 5 步:安装 Logstash

Logstash 是一种从不同来源收集数据的工具。它收集的数据由 Kibana 解析并存储在 Elasticsearch 中。

通过运行以下命令安装 Logstash:

sudo apt-get install logstash

启动和启用 Logstash

1、启动Logstash服务:

sudo systemctl start logstash

2.启用Logstash服务:

sudo systemctl enable logstash

3. 要检查服务的状态,请运行以下命令:

sudo systemctl status logstash
如何在Ubuntu 18.04/20.04上安装ELK软件栈?

配置 Logstash

如何在Ubuntu上安装ELK软件栈?Logstash 是 ELK 栈中高度可定制的部分。安装后,根据你自己的个人用例配置其INPUTFILTERSOUTPUT管道。

所有自定义 Logstash 配置文件都存储在/etc/logstash/conf.d/ 中

如何在Ubuntu 18.04/20.04上安装ELK软件栈?

注意:考虑以下Logstash 配置示例并根据你的需要调整配置。

第 6 步:安装 Filebeat

Filebeat是一个轻量级插件,用于收集和发送日志文件。它是最常用的 Beats 模块。Filebeat 的主要优势之一是,如果 Logstash 服务被数据淹没,它会减慢速度。

通过运行以下命令安装 Filebeat:

sudo apt-get install filebeat

让安装完成。

注意:确保 Kibana 服务在安装和配置过程中启动并运行。

配置 Filebeat

Ubuntu如何安装ELK软件栈?默认情况下,Filebeat 将数据发送到 Elasticsearch。Filebeat 还可以配置为将事件数据发送到 Logstash。

1. 要配置它,请编辑filebeat.yml 配置文件:

sudo nano /etc/filebeat/filebeat.yml

2. 在Elasticsearch o utput部分下,注释掉以下几行:

# output.elasticsearch:
   # Array of hosts to connect to.
   # hosts: ["localhost:9200"]

3. 在Logstash 输出部分下,删除#以下两行中的( ):

# output.logstash
     # hosts: ["localhost:5044"]

它应该是这样的:

output.logstash
     hosts: ["localhost:5044"]

有关更多详细信息,请参见下图。

如何在Ubuntu 18.04/20.04上安装ELK软件栈?

4. 接下来,启用Filebeat 系统模块,它将检查本地系统日志:

sudo filebeat modules enable system

输出应为Enabled system.

5.接下来,加载索引模板:

sudo filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'

系统会做一些工作,扫描你的系统并连接到你的 Kibana 仪表板。

如何在Ubuntu 18.04/20.04上安装ELK软件栈?

启动并启用 Filebeat

如何在Ubuntu上安装ELK软件栈?启动并启用 Filebeat 服务:

sudo systemctl start filebeat
sudo systemctl enable filebeat

验证 Elasticsearch 接收数据

最后,验证 Filebeat 是否将日志文件传送到 Logstash 进行处理。处理后,数据将发送到 Elasticsearch。

curl -XGET http://localhost:9200/_cat/indices?v
如何在Ubuntu 18.04/20.04上安装ELK软件栈?

注意:有关健康状态指标的更多详细信息,请参阅Elastic 的 Cluster Health文档。

Ubuntu ELK软件栈安装教程结论

Ubuntu如何安装ELK软件栈?现在你在 Ubuntu 系统上安装了一个功能齐全的 ELK 栈。我们建议定义你的要求并开始根据你的需要调整 ELK。这个强大的监控工具可以针对个别用例进行定制。

使用 Logstash 自定义数据流,使用不同的 Beats 模块收集各种类型的数据,并利用 Kibana 轻松浏览日志文件。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: