Ubuntu ELK软件栈安装教程介绍
ELK 栈是一组用于检索和管理日志文件的应用程序。
它是三个开源工具Elasticsearch、Kibana和Logstash 的集合。栈可以使用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 以完成该过程。
安装 Nginx
Nginx 用作 Web 服务器和代理服务器。它用于配置对 Kibana 仪表板的密码控制访问。
1. 通过输入以下内容安装 Nginx:
sudo apt-get install nginx
2. 如果出现提示,请键入y
并按Enter以完成该过程。
注意:有关其他教程,请按照我们在 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,如下图所示。
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
第 3 步:安装 Elasticsearch
1. 在安装 Elasticsearch 之前,输入以下命令更新存储库:
sudo apt-get update
2. 使用以下命令安装 Elasticsearch:
sudo apt-get install elasticsearch
配置 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.1
用localhost
。
它应该是:
network.host: localhost
http.port: 9200
4. 就在下面,找到发现部分。我们再添加一行,因为我们正在配置一个单节点集群:
discovery.type: single-node
有关更多详细信息,请参见下图。
5. 默认情况下,JVM 堆大小设置为 1GB。我们建议将其设置为不超过总内存大小的一半。打开以下文件进行编辑:
sudo nano /etc/elasticsearch/jvm.options
6. 找出以-Xms
和开头的行-Xmx
。在下面的示例中,最大 ( -Xmx
) 和最小 ( -Xms
) 大小设置为 512MB。
Ubuntu ELK软件栈安装教程:启动 Elasticsearch
1. 通过运行以下systemctl
命令启动 Elasticsearch 服务:
sudo systemctl start elasticsearch.service
系统启动服务可能需要一些时间。成功的话不会有任何输出。
2. 启用 Elasticsearch 以在启动时启动:
sudo systemctl enable elasticsearch.service
测试 Elasticsearch
使用该curl
命令来测试你的配置。输入以下内容:
curl -X GET "localhost:9200"
应该显示你的系统名称,以及集群名称的elasticsearch。这表明 Elasticsearch 可以正常工作并且正在侦听端口 9200。
第 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
注意:此配置允许来自配置 Elasticstack 的同一系统的流量。你可以将该server.host
值设置为远程服务器的地址。
启动并启用 Kibana
1. 启动 Kibana 服务:
sudo systemctl start kibana
如果服务启动成功,则没有输出。
2. 接下来,将 Kibana 配置为在启动时启动:
sudo systemctl enable kibana
允许端口 5601 上的流量
如果你的 Ubuntu 系统上启用了UFW 防火墙,你需要允许端口 5601上的流量 访问 Kibana 仪表板。
在终端窗口中,运行以下命令:
sudo ufw allow 5601/tcp
应显示以下输出:
Ubuntu ELK软件栈安装教程:测试 Kibana
要访问 Kibana,请打开 Web 浏览器并浏览到以下地址:
http://localhost:5601
Kibana 仪表板加载。
如果你收到 “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
配置 Logstash
如何在Ubuntu上安装ELK软件栈?Logstash 是 ELK 栈中高度可定制的部分。安装后,根据你自己的个人用例配置其INPUT、FILTERS和OUTPUT管道。
所有自定义 Logstash 配置文件都存储在/etc/logstash/conf.d/ 中。
注意:考虑以下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"]
有关更多详细信息,请参见下图。
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 仪表板。
启动并启用 Filebeat
如何在Ubuntu上安装ELK软件栈?启动并启用 Filebeat 服务:
sudo systemctl start filebeat
sudo systemctl enable filebeat
验证 Elasticsearch 接收数据
最后,验证 Filebeat 是否将日志文件传送到 Logstash 进行处理。处理后,数据将发送到 Elasticsearch。
curl -XGET http://localhost:9200/_cat/indices?v
注意:有关健康状态指标的更多详细信息,请参阅Elastic 的 Cluster Health文档。
Ubuntu ELK软件栈安装教程结论
Ubuntu如何安装ELK软件栈?现在你在 Ubuntu 系统上安装了一个功能齐全的 ELK 栈。我们建议定义你的要求并开始根据你的需要调整 ELK。这个强大的监控工具可以针对个别用例进行定制。
使用 Logstash 自定义数据流,使用不同的 Beats 模块收集各种类型的数据,并利用 Kibana 轻松浏览日志文件。