CentOS安装ELK栈教程介绍
ELK 栈是一组用于管理日志的开源软件包。它通常用于服务器日志,但对于生成大量数据集的任何项目也很灵活(有弹性)。
CentOS如何安装ELK栈?
本指南向你展示如何在 CentOS 8 服务器上安装 ELK 栈(Elasticsearch、Logstash 和 Kibana)。
先决条件
- 安装了CentOS 8 的系统
- 访问终端窗口/命令行(搜索>终端)
- 具有sudo 或 root 权限的用户帐户
- Java 版本 8 或 11(Logstash 需要)
ELK 栈代表什么?
ELK 代表 Elasticsearch、Logstash 和 Kibana。它们是ELK 栈的三个组件。
Elasticsearch(索引数据)——这是 Elastic 软件的核心。Elasticsearch 是一种用于对数据进行排序的搜索和分析引擎。
Logstash(收集数据)——这个包连接到各种数据源,整理它,并将其定向到存储。顾名思义,它收集并“隐藏”你的日志文件。
Kibana(可视化数据)—— Kibana是一种用于可视化数据的图形工具。使用它生成图表和图形,以了解数据库中的原始数据。
注意:在撰写本文时,Elasticsearch 的最新版本为 7.6.2。ELK 栈的所有包必须是相同的版本,栈才能正常运行。
第 1 步:安装 OpenJDK 8 Java
如何在CentOS上安装ELK栈?如果你的系统上已经安装了 Java 8(或 11),则可以跳过此步骤。
否则,打开终端窗口,然后输入以下内容:
sudo yum install java-1.8.0-openjdk
系统将检查存储库,然后提示你确认安装。键入
Y
然后
回车。允许该过程完成。
注意:有关详细指南,请参阅如何在 CentOS 8 上安装 Java。
第 2 步:添加 Elasticsearch 存储库
ELK 栈可以使用 YUM 包管理器下载和安装。但是,该软件不包含在默认存储库中。
导入 Elasticsearch PGP 密钥
打开终端窗口,然后输入以下代码:
sudo rpm ––import https://artifacts.elastic.co/GPG-KEY-elasticsearch
这会将 Elasticsearch 公共签名密钥添加到你的系统。当你下载 Elasticsearch 软件时,此密钥将对其进行验证。
添加 Elasticsearch RPM 存储库
CentOS如何安装ELK栈?你需要在
/etc/yum.repos.d/ 中创建存储库配置文件。首先进入目录:
cd /etc/yum.repos.d/
接下来,在你选择的文本编辑器中创建配置文件(我们使用的是 Vim):
sudo vim elasticsearch.repo
键入或复制以下行:
[elasticstack]
name=Elastic 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
如果使用 Vim,请按
Esc然后键入
:wq
并按
Enter。
最后,更新你的存储库的包列表:
dnf update
注意:此存储库授予对整个 ELK 栈的访问权限。
第 3 步:安装和设置 Elasticsearch
如何在CentOS上安装ELK栈?安装顺序很重要。首先安装 Elasticsearch。
在终端窗口中,输入以下命令:
sudo dnf install elasticsearch
这将扫描你所有存储库中的 Elasticsearch 包。
系统会计算下载大小,然后提示你确认安装。键入
Y
然后
回车。
CentOS安装ELK栈教程:配置 Elasticsearch
安装完成后,
/etc/elasticsearch/elasticsearch.yml
使用文本编辑器打开并编辑配置文件:
sudo vim /etc/elasticsearch/elasticsearch.yml
向下滚动到标记为 的部分
NETWORK
。在该条目下方,你应该看到以下几行:
# Set the bind address to a specific IP (IPv4 or IPv6):
#
#network.host: 192.168.0.1
#
# Set a custom port for HTTP:
#
#http.port: 9200
network.host
如果在本地设置单个节点,请将其调整为你服务器的 IP 地址或将其设置为 localhost。也调整一下
http.port
。
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: localhost
#
# Set a custom port for HTTP:
#
http.port: 9200
有关更多详细信息,请参见下图:
如果使用 Vim,请按
ESC
,键入
:wq
并点击
Enter
以保存更改并退出。
启动 Elasticsearch
重新启动系统以使更改生效:
sudo reboot
系统重启后,启动
elasticsearch服务:
sudo systemctl start elasticsearch
如果命令执行正确,则不会有任何输出。
现在,将服务设置为在启动时启动:
sudo systemctl enable elasticsearch
CentOS安装ELK栈教程:测试 Elasticsearch
测试软件以确保它响应连接:
curl -X GET "localhost:9200"
系统应显示完整的信息列表。在第二行,你应该看到
cluster_name
设置为
elasticsearch
。这证实了 Elasticsearch 正在运行,并且正在监听
端口 9200。
第 4 步:安装和设置 Kibana
CentOS如何安装ELK栈?Kibana 是用于解析和解释日志文件的图形界面。
Kibana 使用与 Elasticsearch 相同的 GPG 密钥,因此你无需重新导入密钥。此外,Kibana 包与 Elasticsearch 位于同一个 ELK 栈存储库中。因此,无需创建另一个存储库配置文件。
要安装 Kibanra,请打开终端窗口,输入以下内容:
sudo dnf install kibana
系统将扫描存储库,然后提示确认。键入
y
然后
Enter并允许该过程完成。
配置 Kibana
如何在CentOS上安装ELK栈?与 Elasticsearch 一样,你需要为
Kibana编辑
.yml配置文件。
打开
kibana.yml文件进行编辑:
sudo vim /etc/kibana/kibana.yml
找到以下几行,并删除该行开头的
#符号:
#server.port: 5601
#server.host: "localhost"
#elasticsearch.hosts: ["http://localhost:9200"]
这些行现在应该如下所示:
server.port: 5601
server.host: "localhost"
elasticsearch.hosts: ["http://localhost:9200"]
有关更多详细信息,请参见下图。
要分配自定义名称,请编辑该
server.name
行。
根据需要进行任何其他编辑。保存文件并退出(按
Esc,键入
:wq
并按
Enter)。
注意:该
elasticsearch.hosts
行可能会
elasticsearch.url
在某些旧版本中列出。此外,你的系统可能会替代
127.0.0.1:9200
该
localhost:9200
线路。它们都指的是你正在处理的系统。
CentOS安装ELK栈教程:启动并启用 Kibana
接下来,启动并启用 Kibana 服务:
sudo systemctl start kibana
sudo systemctl enable kibana
允许端口 5601 上的流量
如果 你的 CentOS 系统上启用了firewalld,你需要
允许端口 5601 上的流量。在终端窗口中,运行以下命令:
firewall-cmd --add-port=5601/tcp --permanent
接下来,重新加载 firewalld 服务:
firewall-cmd --reload
如果你打算从外部机器访问 Kibana 仪表板,则上述操作是先决条件。
CentOS如何安装ELK栈:测试 Kibana
打开 Web 浏览器,然后输入以下地址:
http://localhost:5601
系统应该开始加载 Kibana 仪表板。
第 5 步:安装和设置 Logstash
Logstash 是一种从不同来源收集数据的工具。它收集的数据由 Kibana 解析并存储在 Elasticsearch 中。
与 ELK 栈的其他部分一样,Logstash 使用相同的 Elastic GPG 密钥和存储库。
要在 CentOS 8 上安装 logstash,请在终端窗口中输入命令:
sudo dnf install logstash
键入
Y
并按
Enter以确认安装。
配置 Logstash
将所有自定义配置文件存储在
/etc/logstash/conf.d/目录中。配置很大程度上取决于你的用例和使用的插件。
自定义配置示例请参考
Logstash配置示例。
启动 Logstash
启动并启用 Logstash 服务:
sudo systemctl start logstash
sudo systemctl enable logstash
你现在应该已经安装了 Elasticsearch,以及 Kibana 仪表板和 Logstash 数据收集管道。
第 6 步:安装 Filebeat
如何在CentOS上安装ELK栈?为了简化日志记录,请安装一个名为
Filebeat的轻量级模块。Filebeat 是集中数据流的日志传送器。
要安装 Filebeat,请打开终端窗口并运行以下命令:
sudo yum install filebeat
注意:确保 Kibana 服务在安装过程中启动并运行。
接下来,添加
系统 模块,它将检查本地系统日志:
sudo filebeat modules enable system
接下来,运行 Filebeat 设置:
sudo filebeat setup
系统会做一些工作,扫描你的系统并连接到你的 Kibana 仪表板。
CentOS如何安装ELK栈?启动 Filebeat 服务:
sudo service filebeat start
通过访问以下地址在浏览器中启动 Kibana 仪表板:
http://localhost:5601
在左列中,单击
日志选项卡。找到并点击
直播链接。你现在应该会看到本地日志文件的实时数据流。
注意:默认情况下,Filebeat 将文件直接记录到 Elasticsearch 中。要自定义 Filebeat,请编辑 /etc/filebeat/filebeat.yml 配置文件。自定义配置选项请参考
Filebeat 的官方文档。
CentOS安装ELK栈教程结论
如何在CentOS上安装ELK栈?你现在应该在 CentOS 8 系统上安装了 ELK 栈。
ELK 栈通常用于收集、搜索、分析和显示有关 IT 环境的信息。
Elasticsearch 及其相关工具对于监控日志非常强大。你可以使用 Logstash 配置输入和输出、过滤数据和自定义数据流。使用 Kibana 轻松浏览日志文件。