在本教程中,我们将向您展示如何在 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 官方网站.