如何在RHEL 8/CentOS 8上安装ELK堆栈

时间:2020-02-23 14:30:54  来源:igfitidea点击:

在这篇文章中,将介绍如何在RHEL 8/CentOS 8上安装和配置ELK堆栈8."ELK"是三个开源项目的首字母缩写:Elasticsearch,Logstash和Kibana。
以下是Stack.Elasticsearch中每个工具的简短描述:这是一个开源,分布式,Retful,基于JSON的搜索引擎的开源。
它是可扩展的,易于使用的和FlexiBlogStash:这是一个服务器端数据处理管道,它同时从多个源摄取数据,转换它,然后将其发送到"删除",如Elasticsearch.kibana,让用户使用图表可视化数据和Elasticsearch中的图表。

第1步:在RHEL 8/CentOS 8上安装Java

由于Elasticsearch取决于Java,我们需要在系统上安装它,然后在RHEL 8上安装Elasticsearch 6或者5.

如何在Rhel/CentOS上安装Java 11(OpenJDK 11)

第2步:将ELK存储库添加到RHEL 8/CentOS 8

安装Java后,将Elk Stack Repository添加到Rhel 8.请运行以下命令作为root用户:

适用于Elasticsearch 7.x.

cat <<EOF | sudo tee /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-7.x]
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
EOF

适用于Elasticsearch 6.x.

cat <<EOF | sudo tee /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

对于Elasticsearch 5.x.

cat <<EOF | sudo tee /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-5.x]
name=Elasticsearch repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

添加Repo后,导入GPG密钥:

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

清除并更新yum包索引。

sudo yum clean all
sudo yum makecache

第3步:安装和配置Elasticsearch

Elasticsearch存储库已准备好使用。
我们可以使用以下命令安装Elasticsearch:

sudo yum -y install elasticsearch

确认包安装。

$rpm -qi elasticsearch 
 Name        : elasticsearch
 Epoch       : 0
 Version     : 6.5.4
 Release     : 1
 Architecture: noarch
 Install Date: Wed 02 Jan 2019 02:12:22 PM EAT
 Group       : Application/Internet
 Size        : 167695796
 License     : Elastic License
 Signature   : RSA/SHA512, Tue 18 Dec 2016 01:18:33 AM EAT, Key ID d27d666cd88e42b4
 Source RPM  : elasticsearch-6.5.4-1-src.rpm
 Build Date  : Tue 18 Dec 2016 12:21:58 AM EAT
 Build Host  : packer-virtualbox-iso-1542822913
 Relocations : /usr 
 Packager    : Elasticsearch
 Vendor      : Elasticsearch
 URL         : https://www.elastic.co/
 Summary     : Elasticsearch is a distributed RESTful search engine built for the cloud. Reference documentation can be found at https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html and the 'Elasticsearch: The Definitive Guide' book can be found at https://www.elastic.co/guide/en/elasticsearch/guide/current/index.html
 Description :
 Elasticsearch subproject :distribution:packages

我们可以通过编辑文件设置像内存限制等内存限制的JVM选项: /etc/elasticsearch/jvm.options以下示例设置总堆空间的初始/最大大小

-Xms1g
-Xmx1g

如果系统内存较少,则可以将其配置为使用小兆字节的RAM。

-Xms256m
-Xmx512m

启动并启用启动时启用Elasticsearch Service:

$sudo systemctl enable --now elasticsearch.service 
 Synchronizing state of elasticsearch.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
 Executing: /usr/lib/systemd/systemd-sysv-install enable elasticsearch
 Created symlink /etc/systemd/system/multi-user.target.wants/elasticsearch.service → /usr/lib/systemd/system/elasticsearch.service.

测试以验证它是否有效:

$curl http://127.0.0.1:9200 
 {
   "name" : "bBzN5Kg",
   "cluster_name" : "elasticsearch",
   "cluster_uuid" : "LKyqXXSvRvCpX9QAwKlP2Q",
   "version" : {
     "number" : "6.5.4",
     "build_flavor" : "default",
     "build_type" : "rpm",
     "build_hash" : "d2ef93d",
     "build_date" : "2016-12-17T21:17:40.758843Z",
     "build_snapshot" : false,
     "lucene_version" : "7.5.0",
     "minimum_wire_compatibility_version" : "5.6.0",
     "minimum_index_compatibility_version" : "5.0.0"
   },
   "tagline" : "You Know, for Search"
 }

创建测试索引:

$curl -X PUT "http://127.0.0.1:9200/mytest_index"
{"acknowledged":true,"shards_acknowledged":true,"index":"mytest_index"}

第3步:在RHEL 8/CentOS 8上安装和配置Kibana

从添加的Elasticsearch存储库下载并安装Kibana。

sudo yum -y install kibana

安装成功后,配置Kibana:

$sudo vim /etc/kibana/kibana.yml
 server.host: "0.0.0.0"
 server.name: "kibana.example.com"
 elasticsearch.url: "http://localhost:9200"

根据需要更改其他设置,然后启动Kibana服务:

sudo systemctl enable --now kibana

访问http://IP地址:5601打开Kibana仪表板:

如果我们有主动防火墙服务,请允许TCP端口 5601

sudo firewall-cmd --add-port=5601/tcp --permanent
sudo firewall-cmd --reload

第4步:安装和配置RHEL 8/CentOS 8上的Logstash

最后一个安装是用于logstash。
它将充当客户端系统的集中日志服务器,该服务器运行FileBeat等代理。

sudo yum -y install logstash

LogStash自定义配置可以放在下面 /etc/logstash/conf.d/目录。
查看Logstash配置手册以获取更多详细信息。

第5步:安装其他ELK工具 - Bonus

可以安装的其他ELK工具包括:Filebeat:Logs的轻量级托运人。
它可以通过提供轻便的方式来保持简单的事情,以便向前和集中列录和FilesMetricBeat:从系统和服务中收集指标。
从CPU到内存,REDIS到NGINX,还有更多,METRICBEAT是一种轻量级的方式来发送系统和服务统计信息.PACKETBEAT:网络数据的轻量级托运人:轻量级托运人用于正常监控。
它可使用Active ProbingAuditBeat进行可用性监控服务:轻量级托运人可审核系统上的用户和流程的活动

可以安装这些工具 yum使用各自的名称包管理器。
下面的示例将安装所有elk addon工具。

sudo yum install filebeat auditbeat metricbeat packetbeat heartbeat-elastic

有关每个工具配置,请参阅官方ELK堆栈文档。