如何在 CentOS 7 上安装 ELK Stack

在本教程中,我们将向您展示如何在 CentOS 7 上安装 ELK Stack。对于那些不知道的人,ELK stack 是一个流行的开源日志管理平台。 它用作存储、分析和查看日志的集中管理。 集中管理使研究日志和识别任何数量的服务器的问题变得更加容易。

本文假设您至少具备 Linux 的基本知识,知道如何使用 shell,最重要的是,您将网站托管在自己的 VPS 上。 安装非常简单,假设您在 root 帐户下运行,如果不是,您可能需要添加 ‘sudo‘ 到命令以获取 root 权限。 我将向您展示在 CentOS 7 服务器上逐步安装 ELK Stack(Elasticsearch、Logstash 和 Kibana)。

在 CentOS 7 上安装 ELK Stack

第 1 步。首先,让我们首先确保您的系统是最新的。

yum clean all yum -y update

步骤 2. 安装 Java。

您需要一个 Java 运行时环境 (JRE),因为 Elasticsearch 是用 Java 编程语言编写的,您可以安装包含 JRE 的 OpenJDK 包:

yum install java-1.8.0-openjdk.x86_64

验证 Java 版本:

[[email protected] ~]# java -version openjdk version "1.8.0_131" OpenJDK Runtime Environment (build 1.8.0_131-b12) OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)

步骤 3. 安装 Elasticsearch。

通过添加 Elastic 的包存储库,可以使用包管理器安装 Elasticsearch:

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.0.0.rpm

然后安装刚刚下载的RPM包:

rpm -ivh elasticsearch-5.0.0.rpm

启动并启用服务:

systemctl enable elasticsearch systemctl start elasticsearch

现在从终端运行以下命令来检查 Elasticsearch 是否正常工作:

curl -X GET https://localhost:9200

您应该得到以下输出:

{ "name" : "idroot.us", "cluster_name" : "elasticsearch", "cluster_uuid" : "k27ZZFJPTaOtwg6_pyzEiw", "version" : { "number" : "5.5.0", "build_hash" : "2cfe0df", "build_date" : "2017-05-29T16:05:51.443Z", "build_snapshot" : false, "lucene_version" : "6.5.1" }, "tagline" : "You Know, for Search" }

步骤 4. 安装 Kibana。

安装 Kibana 非常简单,您可以使用 RPM 包轻松安装它:

wget https://artifacts.elastic.co/downloads/kibana/kibana-5.5.0-x86_64.rpm

现在只需执行以下命令,即可启动 Kibana 服务:

systemctl daemon-reload systemctl start kibana

Kibana 现在已安装并在我们的系统上运行。 要检查网页,请打开网络浏览器并转到下面提到的 URL(使用您的 ELK 主机的 IP 地址):

https://localhost:5601

步骤 5. 配置 ELK 堆栈。

首先,我们需要创建一个 SSL 证书。 此证书将用于保护 logstash 和 filebeat 客户端之间的通信。 在创建 SSL 证书之前,我们将在 openssl.cnf

nano /etc/ssl/openssl.cnf

查找带有“subjectAltName”的部分并将您的服务器 IP 添加到其中:

subjectAltName = IP:10.20.30.100

现在将目录更改为 /etc/ssl 并创建 SSL 证书:

cd /etc/ssl openssl req -x509 -days 365 -batch -nodes -newkey rsa:2048 -keyout logstash-forwarder.key -out logstash_frwrd.crt

步骤 6. 配置 Logstash。

我们现在将在文件夹 ‘ 下为 logstash 创建一个配置文件/etc/logstash/conf.d‘:

[[email protected] ~]# nano /etc/logstash/conf.d/logstash.conf  # input section input {  beats {  port => 5044  ssl => true  ssl_certificate => "/etc/ssl/logstash_frwrd.crt"  ssl_key => "/etc/ssl/logstash-forwarder.key"  congestion_threshold => "40"  } }

下一部分,即“过滤部分”将在将日志发送到 Elasticsearch 之前对其进行解析:

# Filter section filter { if [type] == "syslog" {  grok {  match => { "message" => "%{SYSLOGLINE}" }  }  date { match => [ "timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]  }  } }

最后一部分是“输出部分”,它定义了日志存储的位置:

# output section output {  elasticsearch {  hosts => localhost  index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"  } stdout {  codec => rubydebug  } }

现在保存文件并退出。 现在启动 logstash 服务并在启动时启用它:

systemctl start logstash systemctl enable logstash

步骤 7. 在客户端上安装 Filebeat。

现在为了能够与 ELK 堆栈通信,需要在所有客户端机器上安装 Filebeat:

$ nano /etc/yum.repos.d/filebeat.repo [beats] name=Elastic Beats Repository baseurl=https://packages.elastic.co/beats/yum/el/$basearch enabled=1 gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch gpgcheck=1

现在使用以下命令安装 filebeat:

yum install filebeat

安装 filebeat 后,将 SSL 证书从 ELK 堆栈服务器复制到 ‘/etc/ssl‘。 接下来我们将更改 filebeat 配置文件以将客户端连接到 ELK 服务器:

nano /etc/filebeat/filebeat.yml

对文件进行以下更改:

. . . paths: – /var/log/*.log . . .  . . . document_type: syslog . . .  . . . output: logstash: hosts: [“10.20.30.100:5044”] tls: certificate_authorities: [“/etc/ssl/logstash_frwrd.crt”] . . .

现在启动服务并在启动时启用它:

systemctl restart filebeat systemctl enable filebeat

服务器端和客户端的配置现已完成。 我们现在可以登录 Kibana Web 界面来查找分析的日志。

https://your-ip-address:5601/

恭喜! 您已在 CentOS 7 上成功安装 ELK Stack。感谢您使用本教程在 CentOS 7 系统上安装 ELK Stack(Elasticsearch、Logstash 和 Kibana)。 如需更多帮助或有用信息,我们建议您查看 ELK Stack 官方网站.