如何在Ubuntu 20.04上安装ELK堆栈

ELK堆栈是三个流行的开源项目的首字母缩写:Elasticsearch,Logstash和Kibana。 它是开源的,也是最流行的日志管理平台之一,可以收集,处理,存储

并可视化来自多个数据源的数据。 它主要用于IT环境中的日志分析。 对于系统管理员而言,始终搜索和分析大量数据以做出实时决策非常有帮助。

Elasticsearch:这是一个用于存储所有收集数据的搜索引擎.Kibana:它提供了一个基于Web的界面,用于搜索和可视化您的数据Logstash:它是一个数据处理界面,用于同时从多个来源收集数据将数据发送到所需的存储库。

在本教程中,我们将说明如何在Ubuntu 20.04服务器上安装和配置ELK堆栈。

先决条件

  • Ubuntu 20.04 VPS(我们将使用SSD 8 VPS计划)
  • 访问root用户帐户(或访问具有root特权的管理员帐户)

登录到服务器并更新服务器操作系统软件包

首先,以root用户身份通过​​SSH登录到Ubuntu 20.04服务器:

ssh [email protected]_Address -p Port_number

您将需要用服务器各自的IP地址和SSH端口号替换“ IP_Address”和“ Port_number”。 另外,如有必要,将“ root”替换为管理员帐户的用户名。

在开始之前,您必须确保服务器上安装的所有Ubuntu OS软件包都是最新的。 您可以通过运行以下命令来执行此操作:

apt-get update -y
apt-get upgrade -y

安装必需的依赖项

在开始之前,您将需要在服务器中安装Java和其他必需的依赖项。 您可以使用以下命令安装所有组件:

apt-get install openjdk-11-jdk wget apt-transport-https curl gnupg2 -y

安装所有软件包之后,请使用以下命令验证Java的安装版本:

java -version

您应该获得以下输出:

openjdk version "11.0.9.1" 2020-11-04
OpenJDK Runtime Environment (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04)
OpenJDK 64-Bit Server VM (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)

安装Elasticsearch

默认情况下,Elasticsearch在Ubuntu标准存储库中不可用。 因此,您需要将Elasticsearch存储库添加到系统中。

首先,使用以下命令添加Elasticsearch签名密钥:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -

接下来,使用以下命令添加存储库:

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-7.x.list

添加存储库后,请更新存储库并使用以下命令安装Elasticsearch软件包:

apt-get update -y
apt-get install elasticsearch -y

安装Elasticsearch后,启动Elasticsearch服务并启用它以在系统重新引导时启动:

systemctl start elasticsearch
systemctl enable elasticsearch

此时,Elasticsearch已启动并正在侦听端口9200。您可以使用以下命令进行验证:

ss -antpl | grep 9200

您应该获得以下输出:

LISTEN   0        4096        [::ffff:127.0.0.1]:9200                  *:*       users:(("java",pid=27757,fd=257))                                              
LISTEN   0        4096                     [::1]:9200               [::]:*       users:(("java",pid=27757,fd=256))                                              

您还可以通过发送HTTP请求来检查Elasticsearch:

curl -X GET http://localhost:9200

您应该获得以下输出:

{
  "name" : "ubuntu2004",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "LhG8-a_eQHyyoRAlQQXBTQ",
  "version" : {
    "number" : "7.10.0",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "51e9d6f22758d0374a0f3f5c6e8f3a7997850f96",
    "build_date" : "2020-11-09T21:30:33.964949Z",
    "build_snapshot" : false,
    "lucene_version" : "8.7.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

安装和配置Logstash

Logstash是用于收集日志并将其存储在Elasticsearch上的日志分析软件。 您可以使用以下命令轻松安装它:

apt-get install logstash -y

一旦安装了Logstash,您将需要配置输入,过滤器和输出插件。 您可以通过在/etc/logstash/conf.d/目录中创建一个新的配置文件来配置它:

nano /etc/logstash/conf.d/logstash.conf

添加以下行:

#Specify listening port for incoming logs from the beats

input {
  beats {
    port => 5044
  }
}

# Used to parse syslog messages and send it to Elasticsearch for storing

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

# Specify an Elastisearch instance

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
  }
}

保存并关闭文件,然后启动Logstash并使其在系统重新引导时启动。

systemctl start logstash
systemctl enable logstash

安装和配置Kibana

Kibana通过基于Web的界面可视化存储在Elasticsearch上的数据。 您可以使用以下命令进行安装:

apt-get install kibana -y

默认情况下,Kibana监听localhost。 因此,您将需要对其进行配置以供外部访问。 您可以通过编辑文件/etc/kibana/kibana.yml对其进行配置:

nano /etc/kibana/kibana.yml

更改以下行:

server.host: "your-server-ip"
elasticsearch.hosts: ["http://localhost:9200"]

保存并关闭文件,然后启动Kibana服务并启用它以在系统重新启动时启动:

systemctl start kibana
systemctl enable kibana

安装和配置Filebeat

Filebeat用于将日志发送到Logstash或Elasticsearch进行解析。 在本节中,我们将安装Filebeat并将其配置为将日志发送到Logstash。

您可以使用以下命令进行安装:

apt-get install filebeat -y

安装完成后,编辑Filebeat主配置文件并将其配置为将日志发送到Logstash。

nano /etc/filebeat/filebeat.yml

注释掉以下几行:

#output.elasticsearch:
  # Array of hosts to connect to.
#  hosts: ["localhost:9200"]

取消注释以下行:

output.logstash:
hosts: ["localhost:5044"]

保存并关闭文件,然后启动Filebeat服务,并使其在系统重新引导时启动:

systemctl start filebeat
systemctl enable filebeat

接下来,启用Filebeat系统模块,它将检查本地系统日志:

filebeat modules enable system

接下来,使用以下命令加载索引模板:

filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'

最后,验证Filebeat是否将日志文件传送到Logstash进行处理。 处理后,数据将发送到Elasticsearch。

curl -XGET http://localhost:9200/_cat/indices?v

您应该获得以下输出:

health status index                             uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   filebeat-7.10.0-2020.12.06-000001 hkQTgSbhSKqwYV-L6Dirtg   1   1          0            0       208b           208b
green  open   .apm-custom-link                  GZekuSDGSh2h3cyaUh-Kuw   1   0          0            0       208b           208b
green  open   .kibana_task_manager_1            wsc1qi8-S6W7xiU6Gb8IUA   1   0          5           23    125.3kb        125.3kb
green  open   .apm-agent-configuration          OQ0CeuK0R7mXtevKccGjlQ   1   0          0            0       208b           208b
green  open   .kibana-event-log-7.10.0-000001   qt1r0hCbRb6-vYd5UsJVGA   1   0          2            0       11kb           11kb
green  open   .kibana_1                         s7LrkbyERnSezRhyJf-GLw   1   0          9            0     10.3mb         10.3mb

访问Kibana Web界面

默认情况下,Kibana监听端口 5601。 您可以使用URL进行访问 http://your-server-ip:5601。 您应该在以下屏幕中看到Kibana仪表板:

安装麋鹿堆栈Ubuntu 20.04

现在,点击 独自探索。 您应该看到以下屏幕:

在Ubuntu 20.04上设置麋鹿堆栈

恭喜你! 您已在Ubuntu 20.04服务器上成功安装了ELK Stack。

当然,如果您使用我们的Linux VPS托管服务之一,则无需执行任何操作,在这种情况下,您只需要求我们的专业Linux管理员为您进行设置即可。 它们全天候24×7可用,将立即处理您的请求。

聚苯乙烯。 如果您喜欢此帖子,请使用左侧的按钮在社交网络上与您的朋友分享,或者在下面留下您的答复。 谢谢。

Sidebar